当前位置: 首页 > news >正文

SQL Server 高可用集群(AOHA)数据库故障恢复

同步提交副本数据库恢复

背景
AOHA共有3个实例组成,分工如下
sql01:主库
sql02:同步提交从副本
sql03:异步提交从副本

准备工作:
使用 SSMS 图形界面将有问题的数据库从高可用集群中移除:
打开 SSMS,连接到 主副本。
展开 可用性组,找到对应的可用性组。
展开可用性组中的 可用性数据库。
右键需要删除的数据库(如 DatabaseA),选择 从可用性组中移除。

右击可用性组,选择属性->General,在Availability Databases中选择需要删除的数据库,然后点击 Remove。

故障数据库重新加入高可用集群方法:
1.1 执行完整数据库备份
在主副本 sql01 的 SQL Server Management Studio (SSMS) 中,连接到主数据库实例。

运行以下 T-SQL 语句,创建完整备份:

BACKUP DATABASE [test_DB]
TO DISK = 'E:\SQLData\Backup\test_DB.Full.202502111020.bak' 
WITH INIT, COMPRESSION;

1.2 执行事务日志备份
事务日志备份确保副本能够继续从主副本接收日志:
BACKUP LOG [test_DB] 
TO DISK = 'E:\SQLData\Backup\test_DB.Log.202502111024.trn' 
WITH INIT, COMPRESSION;

将备份文件复制到2个从副本实例的服务器上。

2. 删除当前从副本的数据库
如果从副本数据库处于 Recovery Pending 状态,需要先删除该数据库。

在辅助副本的 SSMS 中,右键问题数据库(如 DatabaseA),选择 删除。
确保数据库未被任何其他服务占用,确认删除。

ALTER DATABASE [test_DB]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [test_DB];

3. 在辅助副本上恢复数据库
在辅助副本上使用主副本的备份文件恢复数据库。

3.1 恢复完整备份(NORECOVERY)
在辅助副本的 SSMS 中,连接到实例。
恢复完整备份:
Databases->Restore Database, 
Source选择Device,
然后选择全量备份文件目录'E:\Backup\test_DB.Full.202502111024.bak',
Options中,Recovery state 选择“RESTORE WITH NORECOVERY”
然后点“OK”执行数据库恢复;

3.2 恢复事务日志(NORECOVERY)
使用主副本的事务日志备份恢复日志:

-- sql02 (同步提交副本)
RESTORE LOG [test_DB]
FROM DISK = 'E:\shareDir\test_DB.Log.202504011612.trn' 
WITH NORECOVERY;

-- sql03 (异步提交副本)也需要恢复数据库
RESTORE LOG [test_DB]
FROM DISK = 'E:\Backup\test_DB.Log.202504011612.trn' 
WITH NORECOVERY;

4. 将数据库重新添加到可用性组

在辅助副本上恢复数据库后,需要将其重新添加到可用性组,通过如下SQL脚本配置即可。

4.1 在主库上将 Da1 添加到 Always On 可用性组
USE master;
ALTER AVAILABILITY GROUP [testAG] ADD DATABASE test_DB;

4.2 在从库 sql02 上加入 Always On
USE master;
ALTER DATABASE test_DB SET HADR AVAILABILITY GROUP = [testAG];

4.3 在从库 sql03 上加入 Always On
USE master;
ALTER DATABASE test_DB SET HADR AVAILABILITY GROUP = [testAG];

相关文章:

  • 宿舍管理系统(servlet+jsp)
  • 【Audio开发四】音频audio中underrun和overrun原因详解和解决方案
  • Vue工程化开发脚手架Vue CLI
  • 【从零实现高并发内存池】Central Cache从理解设计到全面实现
  • 人工智能应用开发中常见的 工具、框架、平台 的分类、详细介绍及对比
  • 大象机器人推出myCobot 280 RDK X5,携手地瓜机器人共建智能教育机
  • 2025年最新总结安全基础(面试题)
  • MySQL 缓存机制全解析:从磁盘 I/O 到性能优化
  • Vue 图标动态加载:Ant Design Vue 的 a-tree 图标实现与优化
  • 人工智能(机器人)通识实验室解决方案
  • vue3环境搭建、nodejs22.x安装、yarn 1全局安装、npm切换yarn 1、yarn 1 切换npm
  • 21.C++11
  • UWB定位技术面临的主要挑战
  • Anconda环境下修改Jupyter notebook的启动路径(Windows)
  • 人工智能应用开发的四种主流方法(提示工程、大模型微调、RAG、Agent)的详细对比分析
  • Jenkins插件下载慢解决办法
  • 超细的ollama下载以及本地部署deepseek项目
  • 【第三章】18-常用模块6-ngx_http_mirr_module
  • CExercise_13_1排序算法_2归并排序
  • 基于EasyX库开发的球球大作战游戏
  • 文化润疆|让新疆青少年成为“小小博物家”
  • BNEF:亚洲、中东和非洲是电力基础设施投资的最大机会所在
  • “90后”樊鑫履新乌兰察布市察右中旗副旗长人选
  • 新经济与法|如何治理网购刷单与控评?数据合规管理是关键
  • 中国黄金协会:一季度我国黄金产量同比增1.49%,黄金消费量同比降5.96%
  • 百岁太极拳大师、陈氏太极拳第十一代嫡宗传人陈全忠逝世