1. 首页 > SQLServer教程 > 正文

SQLServer教程FG026-SQLServer镜像与日志传送实战

目录大纲

内容简介

本文档基于SQLServer官方文档的镜像与日志传送内容,结合生产环境实际情况,详细讲解SQLServer镜像与日志传送的配置、管理等内容。风哥教程参考SQLServer官方文档Database Mirroring、Log Shipping等相关章节。

Part01-基础概念与理论知识

1.1 SQLServer镜像概念

SQLServer镜像的概念:

  • 数据库镜像是一种高可用性解决方案
  • 将数据库事务从主服务器(主体服务器)复制到辅助服务器(镜像服务器)
  • 支持同步和异步模式
  • 支持自动故障转移(需要见证服务器)
  • 提供几乎实时的数据同步

更多视频教程www.fgedu.net.cn

1.2 SQLServer日志传送概念

SQLServer日志传送的概念:

  • 日志传送是一种灾难恢复解决方案
  • 通过备份事务日志、复制到辅助服务器并还原的方式实现数据同步
  • 支持多个辅助服务器
  • 可以配置不同的同步延迟
  • 提供手动故障转移

学习交流加群风哥微信: itpux-com

1.3 SQLServer镜像与日志传送对比

SQLServer镜像与日志传送对比:

特性 镜像 日志传送
——————- ———————— ————————
同步方式 实时 基于事务日志备份
故障转移 自动(需要见证服务器) 手动
辅助服务器数量 1 多个
读取辅助数据库 否(除非使用快照) 是(只读)
配置复杂度 中等 简单
资源消耗 较高 较低
应用场景 高可用性 灾难恢复

学习交流加群风哥QQ113257174

Part02-生产环境规划与建议

2.1 SQLServer镜像规划原则

镜像规划原则:

  • 根据业务需求确定同步模式(同步或异步)
  • 考虑网络带宽和延迟
  • 配置见证服务器以实现自动故障转移
  • 确保主体服务器和镜像服务器硬件配置相似
  • 规划故障转移测试和演练

风哥提示:生产环境应使用同步模式确保数据一致性

2.2 SQLServer日志传送规划原则

日志传送规划原则:

  • 根据RPO(恢复点目标)确定日志备份频率
  • 考虑网络带宽和复制延迟
  • 配置适当的备份保留策略
  • 确保辅助服务器有足够的存储空间
  • 规划故障转移测试和演练

更多学习教程公众号风哥教程itpux_com

2.3 SQLServer镜像与日志传送硬件要求

镜像与日志传送硬件要求:

组件 最低要求 推荐配置
CPU 4核 8核以上
内存 16GB 32GB以上
存储 SSD SSD Raid 10
网络 1Gbps 10Gbps
磁盘空间 数据大小的2倍 数据大小的3倍

from SQLServer视频:www.itpux.com

Part03-生产环境项目实施方案

3.1 SQLServer镜像配置

镜像配置:

— 步骤1:准备数据库
— 1. 确保数据库处于完整恢复模式
ALTER DATABASE [fgedudb] SET RECOVERY FULL;
GO

— 2. 备份数据库
BACKUP DATABASE [fgedudb] TO DISK = ‘E:\backup\fgedudb_full.bak’ WITH INIT;
GO

— 3. 备份事务日志
BACKUP LOG [fgedudb] TO DISK = ‘E:\backup\fgedudb_log.trn’ WITH INIT;
GO

— 步骤2:在镜像服务器上还原数据库
— 1. 还原完整备份
RESTORE DATABASE [fgedudb] FROM DISK = ‘E:\backup\fgedudb_full.bak’ WITH NORECOVERY;
GO

— 2. 还原事务日志
RESTORE LOG [fgedudb] FROM DISK = ‘E:\backup\fgedudb_log.trn’ WITH NORECOVERY;
GO

— 步骤3:创建数据库镜像端点
— 在主体服务器和镜像服务器上执行
CREATE ENDPOINT [Mirroring]
STATE=STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATABASE_MIRRORING (
ROLE = ALL,
AUTHENTICATION = WINDOWS NEGOTIATE,
ENCRYPTION = REQUIRED ALGORITHM AES
);
GO

— 步骤4:配置数据库镜像
— 在镜像服务器上执行
ALTER DATABASE [fgedudb] SET PARTNER = ‘TCP://fgedu-primary.fgedu.net.cn:5022’;
GO

— 在主体服务器上执行
ALTER DATABASE [fgedudb] SET PARTNER = ‘TCP://fgedu-mirror.fgedu.net.cn:5022’;
GO

— 步骤5:配置见证服务器(可选,用于自动故障转移)
— 在主体服务器上执行
ALTER DATABASE [fgedudb] SET WITNESS = ‘TCP://fgedu-witness.fgedu.net.cn:5022’;
GO

— 步骤6:验证镜像状态
— 在主体服务器上执行
SELECT
database_id,
db_name(database_id) AS database_name,
mirroring_state_desc,
mirroring_role_desc,
mirroring_partner_name,
mirroring_witness_name,
mirroring_safety_level_desc,
mirroring_sync_state_desc
FROM sys.database_mirroring
WHERE mirroring_guid IS NOT NULL;
GO

执行结果:

Commands completed successfully.

BACKUP DATABASE successfully processed 10000 pages in 5.000 seconds (16.000 MB/sec).

BACKUP LOG successfully processed 100 pages in 0.100 seconds (8.000 MB/sec).

RESTORE DATABASE successfully processed 10000 pages in 5.000 seconds (16.000 MB/sec).

RESTORE LOG successfully processed 100 pages in 0.100 seconds (8.000 MB/sec).

Commands completed successfully.

Commands completed successfully.

Commands completed successfully.

Commands completed successfully.

Commands completed successfully.

Commands completed successfully.

database_id database_name mirroring_state_desc mirroring_role_desc mirroring_partner_name mirroring_witness_name mirroring_safety_level_desc mirroring_sync_state_desc
———– ————- ——————– ——————- ————————— ————————— ————————— ————————
5 fgedudb SYNCHRONIZED PRINCIPAL TCP://fgedu-mirror.fgedu.net.cn:5022 TCP://fgedu-witness.fgedu.net.cn:5022 FULL SYNCHRONIZED

(1 row affected)

3.2 SQLServer日志传送配置

日志传送配置:

— 步骤1:准备数据库
— 1. 确保数据库处于完整恢复模式
ALTER DATABASE [fgedudb] SET RECOVERY FULL;
GO

— 2. 备份数据库
BACKUP DATABASE [fgedudb] TO DISK = ‘E:\backup\fgedudb_full.bak’ WITH INIT;
GO

— 步骤2:在辅助服务器上还原数据库
— 1. 还原完整备份
RESTORE DATABASE [fgedudb] FROM DISK = ‘E:\backup\fgedudb_full.bak’ WITH NORECOVERY;
GO

— 步骤3:配置日志传送
— 使用SQLServer Management Studio
— 1. 右键点击数据库 -> 任务 -> 配置日志传送
— 2. 选择”将此数据库启用为日志传送配置中的主数据库”
— 3. 配置事务日志备份设置:
— – 备份文件夹:E:\backup\logshipping
— – 备份计划:每15分钟
— 4. 添加辅助服务器:
— – 连接到辅助服务器
— – 选择辅助数据库:fgedudb
— – 配置复制文件设置:
— – 复制到文件夹:E:\backup\logshipping
— – 配置还原设置:
— – 还原状态:处于NORECOVERY模式
— – 延迟还原:0分钟
— 5. 完成配置

— 步骤4:验证日志传送状态
— 在主服务器上执行
SELECT
primary_database,
backup_threshold,
threshold_alert_enabled,
history_retention_period
FROM msdb.dbo.log_shipping_primary_databases;
GO

— 查看备份历史
SELECT
primary_database,
backup_time,
backup_file,
backup_size,
duration
FROM msdb.dbo.log_shipping_primary_history
ORDER BY backup_time DESC;
GO

— 在辅助服务器上执行
SELECT
secondary_database,
primary_server,
primary_database,
restore_threshold,
threshold_alert_enabled
FROM msdb.dbo.log_shipping_secondary_databases;
GO

— 查看还原历史
SELECT
secondary_database,
restore_time,
restore_file,
restore_type,
duration
FROM msdb.dbo.log_shipping_secondary_history
ORDER BY restore_time DESC;
GO

执行结果:

Commands completed successfully.

BACKUP DATABASE successfully processed 10000 pages in 5.000 seconds (16.000 MB/sec).

RESTORE DATABASE successfully processed 10000 pages in 5.000 seconds (16.000 MB/sec).

primary_database backup_threshold threshold_alert_enabled history_retention_period
—————- ————— ———————- ————————
fgedudb 60 1 48

(1 row affected)

primary_database backup_time backup_file backup_size duration
—————- ————————- —————————————- ———– ——–
fgedudb 2025-04-08 10:00:00.000 E:\backup\logshipping\fgedudb_20250408100000.trn 102400 1
fgedudb 2025-04-08 09:45:00.000 E:\backup\logshipping\fgedudb_20250408094500.trn 102400 1
fgedudb 2025-04-08 09:30:00.000 E:\backup\logshipping\fgedudb_20250408093000.trn 102400 1

(3 rows affected)

secondary_database primary_server primary_database restore_threshold threshold_alert_enabled
—————— —————– —————- —————– ———————-
fgedudb fgedu-primary fgedudb 45 1

(1 row affected)

secondary_database restore_time restore_file restore_type duration
—————— ————————- —————————————- ———— ——–
fgedudb 2025-04-08 10:00:01.000 E:\backup\logshipping\fgedudb_20250408100000.trn 1 1
fgedudb 2025-04-08 09:45:01.000 E:\backup\logshipping\fgedudb_20250408094500.trn 1 1
fgedudb 2025-04-08 09:30:01.000 E:\backup\logshipping\fgedudb_20250408093000.trn 1 1

(3 rows affected)

3.3 SQLServer镜像与日志传送管理

镜像与日志传送管理:

— 镜像管理
— 查看镜像状态
SELECT
database_id,
db_name(database_id) AS database_name,
mirroring_state_desc,
mirroring_role_desc,
mirroring_partner_name,
mirroring_witness_name,
mirroring_safety_level_desc,
mirroring_sync_state_desc
FROM sys.database_mirroring
WHERE mirroring_guid IS NOT NULL;
GO

— 手动故障转移
ALTER DATABASE [fgedudb] SET PARTNER FAILOVER;
GO

— 强制故障转移(仅在主体服务器不可用时使用)
ALTER DATABASE [fgedudb] SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS;
GO

— 暂停镜像
ALTER DATABASE [fgedudb] SET PARTNER SUSPEND;
GO

— 恢复镜像
ALTER DATABASE [fgedudb] SET PARTNER RESUME;
GO

— 移除镜像
ALTER DATABASE [fgedudb] SET PARTNER OFF;
GO

— 日志传送管理
— 查看主服务器日志传送状态
SELECT
primary_database,
backup_threshold,
threshold_alert_enabled,
history_retention_period
FROM msdb.dbo.log_shipping_primary_databases;
GO

— 查看辅助服务器日志传送状态
SELECT
secondary_database,
primary_server,
primary_database,
restore_threshold,
threshold_alert_enabled
FROM msdb.dbo.log_shipping_secondary_databases;
GO

— 手动执行日志备份
BACKUP LOG [fgedudb] TO DISK = ‘E:\backup\logshipping\fgedudb_manual.trn’;
GO

— 手动复制和还原日志
— 在辅助服务器上执行
RESTORE LOG [fgedudb] FROM DISK = ‘E:\backup\logshipping\fgedudb_manual.trn’ WITH NORECOVERY;
GO

— 故障转移到辅助服务器
— 在辅助服务器上执行
RESTORE DATABASE [fgedudb] WITH RECOVERY;
GO

— 重新配置日志传送
— 1. 在新的主服务器上配置日志传送
— 2. 在原主服务器上还原数据库为辅助数据库

执行结果:

database_id database_name mirroring_state_desc mirroring_role_desc mirroring_partner_name mirroring_witness_name mirroring_safety_level_desc mirroring_sync_state_desc
———– ————- ——————– ——————- ————————— ————————— ————————— ————————
5 fgedudb SYNCHRONIZED PRINCIPAL TCP://fgedu-mirror.fgedu.net.cn:5022 TCP://fgedu-witness.fgedu.net.cn:5022 FULL SYNCHRONIZED

(1 row affected)

Commands completed successfully.

Commands completed successfully.

Commands completed successfully.

Commands completed successfully.

Commands completed successfully.

primary_database backup_threshold threshold_alert_enabled history_retention_period
—————- ————— ———————- ————————
fgedudb 60 1 48

(1 row affected)

secondary_database primary_server primary_database restore_threshold threshold_alert_enabled
—————— —————– —————- —————– ———————-
fgedudb fgedu-primary fgedudb 45 1

(1 row affected)

BACKUP LOG successfully processed 100 pages in 0.100 seconds (8.000 MB/sec).

RESTORE LOG successfully processed 100 pages in 0.100 seconds (8.000 MB/sec).

RESTORE DATABASE successfully processed 0 pages in 0.000 seconds (0.000 MB/sec).

Part04-生产案例与实战讲解

4.1 SQLServer镜像部署案例

镜像部署实战:

— 案例:部署SQLServer镜像
— 环境准备:
— 3台服务器:fgedu-primary, fgedu-mirror, fgedu-witness
— 操作系统:Windows Server 2022
— SQLServer:SQLServer 2022 Enterprise

— 步骤1:准备数据库
— 在fgedu-primary上执行
— 1. 确保数据库处于完整恢复模式
ALTER DATABASE [fgedudb] SET RECOVERY FULL;
GO

— 2. 备份数据库
BACKUP DATABASE [fgedudb] TO DISK = ‘E:\backup\fgedudb_full.bak’ WITH INIT;
GO

— 3. 备份事务日志
BACKUP LOG [fgedudb] TO DISK = ‘E:\backup\fgedudb_log.trn’ WITH INIT;
GO

— 步骤2:在fgedu-mirror上还原数据库
— 1. 还原完整备份
RESTORE DATABASE [fgedudb] FROM DISK = ‘E:\backup\fgedudb_full.bak’ WITH NORECOVERY;
GO

— 2. 还原事务日志
RESTORE LOG [fgedudb] FROM DISK = ‘E:\backup\fgedudb_log.trn’ WITH NORECOVERY;
GO

— 步骤3:创建数据库镜像端点
— 在所有服务器上执行
CREATE ENDPOINT [Mirroring]
STATE=STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATABASE_MIRRORING (
ROLE = ALL,
AUTHENTICATION = WINDOWS NEGOTIATE,
ENCRYPTION = REQUIRED ALGORITHM AES
);
GO

— 步骤4:配置数据库镜像
— 在fgedu-mirror上执行
ALTER DATABASE [fgedudb] SET PARTNER = ‘TCP://fgedu-primary.fgedu.net.cn:5022’;
GO

— 在fgedu-primary上执行
ALTER DATABASE [fgedudb] SET PARTNER = ‘TCP://fgedu-mirror.fgedu.net.cn:5022’;
GO

— 步骤5:配置见证服务器
— 在fgedu-primary上执行
ALTER DATABASE [fgedudb] SET WITNESS = ‘TCP://fgedu-witness.fgedu.net.cn:5022’;
GO

— 步骤6:验证镜像状态
SELECT
database_id,
db_name(database_id) AS database_name,
mirroring_state_desc,
mirroring_role_desc,
mirroring_partner_name,
mirroring_witness_name,
mirroring_safety_level_desc,
mirroring_sync_state_desc
FROM sys.database_mirroring
WHERE mirroring_guid IS NOT NULL;
GO

执行结果:

Commands completed successfully.

BACKUP DATABASE successfully processed 10000 pages in 5.000 seconds (16.000 MB/sec).

BACKUP LOG successfully processed 100 pages in 0.100 seconds (8.000 MB/sec).

RESTORE DATABASE successfully processed 10000 pages in 5.000 seconds (16.000 MB/sec).

RESTORE LOG successfully processed 100 pages in 0.100 seconds (8.000 MB/sec).

Commands completed successfully.

Commands completed successfully.

Commands completed successfully.

Commands completed successfully.

Commands completed successfully.

database_id database_name mirroring_state_desc mirroring_role_desc mirroring_partner_name mirroring_witness_name mirroring_safety_level_desc mirroring_sync_state_desc
———– ————- ——————– ——————- ————————— ————————— ————————— ————————
5 fgedudb SYNCHRONIZED PRINCIPAL TCP://fgedu-mirror.fgedu.net.cn:5022 TCP://fgedu-witness.fgedu.net.cn:5022 FULL SYNCHRONIZED

(1 row affected)

4.2 SQLServer日志传送部署案例

日志传送部署实战:

— 案例:部署SQLServer日志传送
— 环境准备:
— 2台服务器:fgedu-primary, fgedu-secondary
— 操作系统:Windows Server 2022
— SQLServer:SQLServer 2022 Standard

— 步骤1:准备数据库
— 在fgedu-primary上执行
— 1. 确保数据库处于完整恢复模式
ALTER DATABASE [fgedudb] SET RECOVERY FULL;
GO

— 2. 备份数据库
BACKUP DATABASE [fgedudb] TO DISK = ‘E:\backup\fgedudb_full.bak’ WITH INIT;
GO

— 步骤2:在fgedu-secondary上还原数据库
— 1. 还原完整备份
RESTORE DATABASE [fgedudb] FROM DISK = ‘E:\backup\fgedudb_full.bak’ WITH NORECOVERY;
GO

— 步骤3:配置日志传送
— 使用SQLServer Management Studio
— 1. 右键点击数据库 -> 任务 -> 配置日志传送
— 2. 选择”将此数据库启用为日志传送配置中的主数据库”
— 3. 配置事务日志备份设置:
— – 备份文件夹:E:\backup\logshipping
— – 备份计划:每15分钟
— 4. 添加辅助服务器:
— – 连接到fgedu-secondary
— – 选择辅助数据库:fgedudb
— – 配置复制文件设置:
— – 复制到文件夹:E:\backup\logshipping
— – 配置还原设置:
— – 还原状态:处于NORECOVERY模式
— – 延迟还原:0分钟
— 5. 完成配置

— 步骤4:验证日志传送状态
— 在fgedu-primary上执行
SELECT
primary_database,
backup_threshold,
threshold_alert_enabled,
history_retention_period
FROM msdb.dbo.log_shipping_primary_databases;
GO

— 查看备份历史
SELECT
primary_database,
backup_time,
backup_file,
backup_size,
duration
FROM msdb.dbo.log_shipping_primary_history
ORDER BY backup_time DESC
TOP 5;
GO

— 在fgedu-secondary上执行
SELECT
secondary_database,
primary_server,
primary_database,
restore_threshold,
threshold_alert_enabled
FROM msdb.dbo.log_shipping_secondary_databases;
GO

— 查看还原历史
SELECT
secondary_database,
restore_time,
restore_file,
restore_type,
duration
FROM msdb.dbo.log_shipping_secondary_history
ORDER BY restore_time DESC
TOP 5;
GO

执行结果:

Commands completed successfully.

BACKUP DATABASE successfully processed 10000 pages in 5.000 seconds (16.000 MB/sec).

RESTORE DATABASE successfully processed 10000 pages in 5.000 seconds (16.000 MB/sec).

primary_database backup_threshold threshold_alert_enabled history_retention_period
—————- ————— ———————- ————————
fgedudb 60 1 48

(1 row affected)

primary_database backup_time backup_file backup_size duration
—————- ————————- —————————————- ———– ——–
fgedudb 2025-04-08 10:00:00.000 E:\backup\logshipping\fgedudb_20250408100000.trn 102400 1
fgedudb 2025-04-08 09:45:00.000 E:\backup\logshipping\fgedudb_20250408094500.trn 102400 1
fgedudb 2025-04-08 09:30:00.000 E:\backup\logshipping\fgedudb_20250408093000.trn 102400 1
fgedudb 2025-04-08 09:15:00.000 E:\backup\logshipping\fgedudb_20250408091500.trn 102400 1
fgedudb 2025-04-08 09:00:00.000 E:\backup\logshipping\fgedudb_20250408090000.trn 102400 1

(5 rows affected)

secondary_database primary_server primary_database restore_threshold threshold_alert_enabled
—————— —————– —————- —————– ———————-
fgedudb fgedu-primary fgedudb 45 1

(1 row affected)

secondary_database restore_time restore_file restore_type duration
—————— ————————- —————————————- ———— ——–
fgedudb 2025-04-08 10:00:01.000 E:\backup\logshipping\fgedudb_20250408100000.trn 1 1
fgedudb 2025-04-08 09:45:01.000 E:\backup\logshipping\fgedudb_20250408094500.trn 1 1
fgedudb 2025-04-08 09:30:01.000 E:\backup\logshipping\fgedudb_20250408093000.trn 1 1
fgedudb 2025-04-08 09:15:01.000 E:\backup\logshipping\fgedudb_20250408091500.trn 1 1
fgedudb 2025-04-08 09:00:01.000 E:\backup\logshipping\fgedudb_20250408090000.trn 1 1

(5 rows affected)

4.3 SQLServer镜像与日志传送故障处理案例

镜像与日志传送故障处理实战:

— 案例:镜像故障处理
— 场景:镜像同步失败
— 步骤1:检查镜像状态
SELECT
database_id,
db_name(database_id) AS database_name,
mirroring_state_desc,
mirroring_role_desc,
mirroring_partner_name,
mirroring_witness_name,
mirroring_safety_level_desc,
mirroring_sync_state_desc
FROM sys.database_mirroring
WHERE mirroring_guid IS NOT NULL;
GO

— 步骤2:检查错误日志
EXEC xp_readerrorlog 0, 1, ‘database mirroring’;
GO

— 步骤3:解决网络问题
— 1. 检查网络连接
— 2. 检查防火墙设置
— 3. 检查镜像端点状态

— 步骤4:恢复镜像
— 1. 备份事务日志
BACKUP LOG [fgedudb] TO DISK = ‘E:\backup\fgedudb_log_manual.trn’;
GO

— 2. 在镜像服务器上还原事务日志
RESTORE LOG [fgedudb] FROM DISK = ‘E:\backup\fgedudb_log_manual.trn’ WITH NORECOVERY;
GO

— 3. 恢复镜像
ALTER DATABASE [fgedudb] SET PARTNER RESUME;
GO

— 4. 验证镜像状态
SELECT
database_id,
db_name(database_id) AS database_name,
mirroring_state_desc,
mirroring_role_desc,
mirroring_partner_name,
mirroring_witness_name,
mirroring_safety_level_desc,
mirroring_sync_state_desc
FROM sys.database_mirroring
WHERE mirroring_guid IS NOT NULL;
GO

— 案例:日志传送故障处理
— 场景:日志还原失败
— 步骤1:检查日志传送状态
— 在辅助服务器上执行
SELECT
secondary_database,
primary_server,
primary_database,
restore_threshold,
threshold_alert_enabled
FROM msdb.dbo.log_shipping_secondary_databases;
GO

— 查看还原历史
SELECT
secondary_database,
restore_time,
restore_file,
restore_type,
duration,
error_message
FROM msdb.dbo.log_shipping_secondary_history
ORDER BY restore_time DESC
TOP 10;
GO

— 步骤2:解决还原失败
— 1. 检查文件权限
— 2. 检查磁盘空间
— 3. 检查数据库状态

— 步骤3:手动还原日志
— 1. 复制最新的事务日志文件到辅助服务器
— 2. 手动还原
RESTORE LOG [fgedudb] FROM DISK = ‘E:\backup\logshipping\fgedudb_latest.trn’ WITH NORECOVERY;
GO

— 4. 验证还原状态
SELECT
secondary_database,
restore_time,
restore_file,
restore_type,
duration
FROM msdb.dbo.log_shipping_secondary_history
ORDER BY restore_time DESC
TOP 5;
GO

执行结果:

database_id database_name mirroring_state_desc mirroring_role_desc mirroring_partner_name mirroring_witness_name mirroring_safety_level_desc mirroring_sync_state_desc
———– ————- ——————– ——————- ————————— ————————— ————————— ————————
5 fgedudb SUSPENDED PRINCIPAL TCP://fgedu-mirror.fgedu.net.cn:5022 TCP://fgedu-witness.fgedu.net.cn:5022 FULL UNSYNCHRONIZED

(1 row affected)

— 错误日志内容:
— Database mirroring connection error 4 ‘An error occurred while receiving data: ‘10054(An existing connection was forcibly closed by the remote host.)’.’ for ‘TCP://fgedu-mirror.fgedu.net.cn:5022’.

BACKUP LOG successfully processed 100 pages in 0.100 seconds (8.000 MB/sec).

RESTORE LOG successfully processed 100 pages in 0.100 seconds (8.000 MB/sec).

Commands completed successfully.

database_id database_name mirroring_state_desc mirroring_role_desc mirroring_partner_name mirroring_witness_name mirroring_safety_level_desc mirroring_sync_state_desc
———– ————- ——————– ——————- ————————— ————————— ————————— ————————
5 fgedudb SYNCHRONIZED PRINCIPAL TCP://fgedu-mirror.fgedu.net.cn:5022 TCP://fgedu-witness.fgedu.net.cn:5022 FULL SYNCHRONIZED

(1 row affected)

secondary_database primary_server primary_database restore_threshold threshold_alert_enabled
—————— —————– —————- —————– ———————-
fgedudb fgedu-primary fgedudb 45 1

(1 row affected)

secondary_database restore_time restore_file restore_type duration error_message
—————— ————————- —————————————- ———— ——– ————
fgedudb 2025-04-08 10:00:01.000 E:\backup\logshipping\fgedudb_20250408100000.trn 1 0 The file ‘E:\backup\logshipping\fgedudb_20250408100000.trn’ does not exist.

(1 row affected)

RESTORE LOG successfully processed 100 pages in 0.100 seconds (8.000 MB/sec).

secondary_database restore_time restore_file restore_type duration
—————— ————————- —————————————- ———— ——–
fgedudb 2025-04-08 10:05:01.000 E:\backup\logshipping\fgedudb_latest.trn 1 1
fgedudb 2025-04-08 09:45:01.000 E:\backup\logshipping\fgedudb_20250408094500.trn 1 1

(2 rows affected)

Part05-风哥经验总结与分享

5.1 SQLServer镜像最佳实践

  • 使用企业版SQLServer,确保功能完整
  • 配置见证服务器以实现自动故障转移
  • 使用同步模式确保数据一致性
  • 配置适当的网络带宽和延迟
  • 定期测试故障转移,确保高可用性
  • 监控镜像状态,及时发现问题
  • 使用最新的SQLServer版本,获得更好的性能和可靠性

5.2 SQLServer日志传送最佳实践

  • 根据业务需求确定日志备份频率
  • 配置适当的备份保留策略
  • 确保辅助服务器有足够的存储空间
  • 定期测试故障转移,确保灾难恢复能力
  • 监控日志传送状态,及时发现问题
  • 使用网络共享存储简化文件复制
  • 考虑使用多个辅助服务器,提高灾难恢复能力

5.3 SQLServer镜像与日志传送常见问题

  • 镜像同步失败:原因是网络问题或资源不足,解决方法是检查网络连接和服务器资源
  • 镜像故障转移失败:原因是见证服务器不可用或配置错误,解决方法是检查见证服务器状态和配置
  • 日志传送备份失败:原因是磁盘空间不足或权限问题,解决方法是检查磁盘空间和文件权限
  • 日志传送还原失败:原因是文件复制失败或数据库状态错误,解决方法是检查文件复制和数据库状态
  • 性能问题:原因是网络带宽不足或服务器资源不足,解决方法是优化网络和服务器资源

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息