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

SQL Server:Log Shipping 说明

目录标题

      • SQL Server Log Shipping与Oracle归档日志备份对比分析
        • 一、SQL Server Log Shipping的日志截断机制
        • 二、Oracle归档日志备份对比
        • 三、关键配置对比表
        • 四、最佳实践建议
      • 如何修改和查看SQL Server默认备份配置防止自动删除?
        • 一、查看现有备份配置
        • 二、修改备份配置防止自动删除
        • 三、验证配置生效
        • 四、注意事项

SQL Server Log Shipping与Oracle归档日志备份对比分析

一、SQL Server Log Shipping的日志截断机制
  1. 日志备份与截断原理
    SQL Server的事务日志截断发生在日志备份完成后,但仅针对已提交事务的日志部分。Log Shipping的主数据库备份任务(log_backup)是日志截断的唯一触发源。若存在多个日志备份任务(如Log Shipping自带备份+第三方备份工具),可能导致:

    • 竞争性截断:先完成的备份任务触发截断,后续备份任务因日志链断裂失败
    • LSN序列混乱:日志链的连续性被破坏,导致辅助服务器还原失败
  2. 配置规避方案

    • 单一备份源控制:通过EXEC sp_delete_log_shipping_primary_secondary删除冗余备份任务
    • 共享备份目录:所有备份任务指向同一网络路径,通过WITH FORMAT参数强制覆盖旧备份
    • 保留策略增强:设置@backup_retention_period与磁盘空间监控联动,确保至少保留2个完整备份周期的日志
-- 示例:配置日志备份任务参数
EXEC master.dbo.sp_add_log_shipping_primary_database 
@database = N'AdventureWorks',
@backup_directory = N'\\SharedPath\LogBackup',
@backup_retention_period = 4320, -- 3天(分钟单位)
@backup_job_id = @jobID OUTPUT
二、Oracle归档日志备份对比
  1. 归档机制本质差异
    Oracle通过ARCH进程异步复制在线重做日志到归档目录,与SQL Server的同步日志传送存在本质区别:

    • 非阻塞写入:归档操作不影响事务提交
    • 多目标支持:通过LOG_ARCHIVE_DEST_n参数可配置多达31个归档目标
    • 删除策略:RMAN通过CONFIGURE ARCHIVELOG DELETION POLICY实现备份后自动清理
  2. 行为类比验证

    • 正确说法:两者都需要保证日志连续性,Oracle的ARCH进程故障会导致数据库挂起(类似SQL Server日志文件满)
    • 错误说法:认为Oracle允许任意多备份任务并行删除归档日志(实际受DELETE INPUTDELETE ALL INPUT严格控制)
三、关键配置对比表
特性SQL Server Log ShippingOracle归档日志备份
日志截断触发条件日志备份完成日志切换+归档完成
多任务冲突解决方案强制单一备份源多归档目标自动协调
保留策略控制粒度时间维度(分钟)备份状态+冗余副本数
故障影响范围仅影响日志传送链导致数据库挂起(如果归档失败)
四、最佳实践建议
  1. SQL Server环境

    • 使用DBCC SQLPERF(LOGSPACE)监控日志增长
    • 设置警报当log_reuse_wait_desc出现LOG_BACKUP状态时立即介入
  2. Oracle环境

    • 配置ARCHIVELOG DELAY防止IO峰值
    ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DELAY=60';
    
    • 使用RMAN交叉校验:
    CROSSCHECK ARCHIVELOG ALL;
    DELETE EXPIRED ARCHIVELOG ALL;
    

如何修改和查看SQL Server默认备份配置防止自动删除?

一、查看现有备份配置
  1. 通过维护计划查看

    • 打开SQL Server Management Studio (SSMS),依次展开:管理维护计划
    • 右键点击已创建的维护计划,选择修改,进入设计界面。
    • 检查是否存在清除维护任务(负责删除过期备份文件)。
  2. 通过SQL Server代理作业查看

    • 展开SQL Server代理作业,找到与备份相关的作业(如完整备份差异备份清除备份)。
    • 右键作业选择属性,查看步骤计划,确认是否包含删除备份文件的命令或调度逻辑。

二、修改备份配置防止自动删除
  1. 禁用或删除清除任务

    • 在维护计划设计界面,找到清除维护任务,右键选择删除,或取消勾选其启用状态。
    • 保存修改后,系统将不再自动删除备份文件。
  2. 调整备份文件保留时间

    • 双击备份数据库任务(如完整备份或差异备份),在选项页中修改备份文件过期时间
    • 若设置为0,表示永不过期(需结合操作系统权限控制手动清理)。
  3. 修改SQL Server代理作业脚本

    • 在作业的步骤中,找到执行备份的命令(通常为BACKUP DATABASE语句)。
    • 移除WITH EXPIREDATEWITH RETAINDAYS参数,避免设置过期策略。

三、验证配置生效
  1. 手动触发备份任务
    • 右键对应作业选择启动作业,观察备份文件是否生成且未被自动删除。
  2. 检查备份文件目录
    • 确认备份文件未在计划时间后被删除,例如通过文件修改时间判断。

四、注意事项
  • 定期手动清理:禁用自动删除后,需定期手动清理备份文件,避免磁盘空间不足。
  • 日志备份影响:若配置了事务日志备份,需单独检查其清除任务。

http://www.dtcms.com/a/108734.html

相关文章:

  • 位运算与集合
  • easyPan技术回顾day4
  • 【蓝桥杯刷题实战】路径之谜
  • APang网联科技项目报告【服务器篇】
  • Shell脚本中的日期变量详解
  • 理解Kotlin高阶函数:传递函数,而不是直接执行
  • 【C++11】异步编程
  • AI agent推理自私属性是否成为社会演化中的生存优势
  • 前端基础之《Vue(1)—简介》
  • 安装 AWS CLI
  • 在汇编层面理解MESI
  • win32汇编环境,网络编程入门之十八
  • 基于CNN-LSTM的深度Q网络(Deep Q-Network,DQN)求解移动机器人路径规划,MATLAB代码
  • RT-Thread 和 FreeRTOS 嵌入式实时操作系统对比
  • 嵌入式学习笔记——ARM
  • 科普:One-Class SVM和SVDD
  • 机器学习的一百个概念(9)学习曲线
  • RK3568下截屏工具weston-screenshooter
  • Oracle数据库数据编程SQL<6.3 获取用户、表名、表中文描述、列名、列中文描述、主键标识等完整信息>
  • 【愚公系列】《高效使用DeepSeek》050-外汇交易辅助
  • 使用typescript实现游戏中的JPS跳点寻路算法
  • C++20 的新工具:std::midpoint 和 std::lerp
  • Keil中关闭宏定义提示方法
  • 【JavaEE进阶】Spring AOP入门
  • OpenCV从零开始:30天掌握图像处理基础
  • DSSD框架
  • 辉视IPTV系统,重构智慧酒店全场景服务新生态
  • Postman参数化设置如何设置?
  • SpringBoot项目瘦身指南:从臃肿到高效的优化实践
  • 深度解析“熵”