SQL Server Always On 重新添加从库步骤

SQL Server Always On 重新添加从库步骤

环境说明

  • 主库:235
  • 从库:209
  • 可用性组:AG_235_209
  • 数据库:Test

第一步:主库 235 --- 备份数据库

确认数据库为完整恢复模式(Always On 要求),然后分别做完整备份和日志备份。

sql 复制代码
-- 确认完整恢复模式
ALTER DATABASE [Test] SET RECOVERY FULL;

-- 完整备份
BACKUP DATABASE [Test]
TO DISK = 'C:\Backup\Test_full.bak'
WITH COMPRESSION, INIT, STATS = 10;

-- 日志备份
BACKUP LOG [Test]
TO DISK = 'C:\Backup\Test_log.bak'
WITH STATS = 10;

第二步:复制备份文件到从库 209

将以下两个文件手动拷贝到从库 209 的备份目录(如 C:\Backup\):

  • Test_full.bak
  • Test_log.bak

第三步:从库 209 --- 还原数据库

⚠️ 注意:还原时必须使用 WITH NORECOVERY,不能使用 WITH RECOVERY,否则数据库会上线并脱离 Always On 同步链。

sql 复制代码
-- 还原完整备份
RESTORE DATABASE [Test]
FROM DISK = 'C:\Backup\Test_full.bak'
WITH NORECOVERY, STATS = 10;

-- 还原日志备份
RESTORE LOG [Test]
FROM DISK = 'C:\Backup\Test_log.bak'
WITH NORECOVERY;

还原完成后,SSMS 中数据库会显示 "正在还原",这是正确状态,无需处理。


第四步:主库 235 --- 将数据库加入可用性组

⚠️ 注意:必须等第三步从库还原完全完成后,再执行此步骤。

sql 复制代码
ALTER AVAILABILITY GROUP [AG_235_209] ADD DATABASE [Test];

第五步:从库 209 --- 加入可用性组

sql 复制代码
ALTER DATABASE [Test]
SET HADR AVAILABILITY GROUP = [AG_235_209];

执行后,从库数据库状态会从 "正在还原" 变为 "正在还原 / 同步中",稍等片刻即可同步完成。


验证同步状态

在主库 235 上执行以下查询,确认同步结果:

sql 复制代码
SELECT
    db.database_name               AS 数据库,
    rs.synchronization_state_desc  AS 同步状态,
    rs.synchronization_health_desc AS 健康状态
FROM sys.availability_groups ag
JOIN sys.availability_databases_cluster db ON ag.group_id = db.group_id
JOIN sys.dm_hadr_database_replica_states rs ON db.group_database_id = rs.group_database_id
WHERE ag.name = 'AG_235_209'
  AND rs.is_local = 0;

预期结果:

数据库 同步状态 健康状态
Test SYNCHRONIZED HEALTHY

显示 SYNCHRONIZED + HEALTHY 即表示从库配置成功。


操作顺序总览

复制代码
主库235: ALTER DATABASE SET RECOVERY FULL
主库235: BACKUP DATABASE
主库235: BACKUP LOG
         ↓ 将 .bak 文件复制到从库 209
从库209: RESTORE DATABASE WITH NORECOVERY  ← 等待完成
从库209: RESTORE LOG WITH NORECOVERY       ← 等待完成
         ↓ 确认从库显示"正在还原"
主库235: ALTER AVAILABILITY GROUP ADD DATABASE
从库209: ALTER DATABASE SET HADR AVAILABILITY GROUP
主库235: 查询验证同步状态
相关推荐
福建佰胜张工5 小时前
深度解析 Allen-Bradley 150-B135NBDA 智能电机控制器:选型、参数与工业应用
运维·数据库·单片机·嵌入式硬件·安全·自动化
`Levie5 小时前
MySQL-数据库服务日志管理与数据闪回
数据库·mysql
香蕉大香蕉(06敬畏市场)5 小时前
MySQL 单点详解(01)
java·数据库·mysql·面试·博客·实习
LaughingZhu5 小时前
Product Hunt 热榜 2026-10-30:Empacer、Scape、Floot in ChatGPT
java·前端·数据库·人工智能·chatgpt·notion
standxy6 小时前
即时库存同步实战:从旺店通拉取库存详情落库 MySQL 的完整策略
数据库·集成·电商
麦壳饼6 小时前
SonnetDB:工业 IoT 中的 PID 历史分析与 PLC 协作
数据库·sonnetdb
吹什么轩6 小时前
MySQL 事务管理:从 ACID 到 MVCC,一篇讲透
数据库·mysql
时间售卖铺6 小时前
Oracle DQL精髓:从基础到高级实战
运维·数据库·云原生·oracle
m0_639906947 小时前
MySQL 锁机制详解|表锁、行锁、意向锁,死锁成因与解决方案
数据库·mysql
进击的荆棘7 小时前
MySQL——在ubuntu环境下安装MySQL
数据库·mysql·ubuntu