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. 确保数据库处于完整恢复模式
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
执行结果:
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. 确保数据库处于完整恢复模式
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
执行结果:
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. 在原主服务器上还原数据库为辅助数据库
执行结果:
———– ————- ——————– ——————- ————————— ————————— ————————— ————————
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镜像部署案例
镜像部署实战:
— 环境准备:
— 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
执行结果:
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日志传送部署案例
日志传送部署实战:
— 环境准备:
— 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
执行结果:
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
执行结果:
———– ————- ——————– ——————- ————————— ————————— ————————— ————————
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
