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: 查询验证同步状态
相关推荐
笃行35016 小时前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库
笃行35016 小时前
金仓数据库物理备份实战:sys_rman 全流程演练与误覆盖抢救
数据库
笃行35016 小时前
金仓数据库逻辑备份实战:从全库导出到 Schema 替换的完整闭环
数据库
SelectDB2 天前
阶跃星辰基于 SelectDB 构建 PB 级 Agent 可观测平台
大数据·数据库·aigc
这个DBA有点耶2 天前
GROUP BY优化全解:如何写出既不丢数据又飞快的分组查询
数据库·mysql·架构
掉头发的王富贵2 天前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
Nturmoils2 天前
WHERE 条件别凭习惯写,常用查询先跑一遍
数据库
Databend3 天前
在 AWS 中国峰会逛了一天,我在 Databend 展台看到了 Agent 数据基础设施的新思路
数据库·人工智能·agent
ClouGence4 天前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle