zoukankan      html  css  js  c++  java
  • Replication--备份初始化需要还原备份么?

    测试场景:
    发布服务器:SQLVM6SQL2
    订阅服务器:SQLVM5SQL2
    分发服务器:SQLVM3SQL2
    发布数据库:RepDB2
    订阅数据库:RepDB2
    发布:RepDB2_TB1

    测试步骤:
    1>停止发布库上的日志备份
    2>备份发布服务器上数据库"RepDB2" 至"E:REPDB2.BAK"
    3>将备份复制到订阅服务器,还原出数据库RepDB2_Temp
    4>在订阅服务器上将 RepDB2_Temp 订阅相关的数据导入到 RepDB2(INSERT SELECT)
    5>将发布RepDB2_TB1的属性"允许从备份文件初始化"设置为True

    --==================================================
    --发布服务器上运行
    USE [RepDB2]
    GO
    DECLARE @publication AS sysname
    SET @publication = N'RepDB2_TB1'
    EXEC sp_changepublication
    @publication = @publication,
    @property = N'allow_initialize_from_backup',
    @value = true
    View Code

    6>运行以下脚本创建订阅

    use [RepDB2]
    go
    exec sp_addsubscription 
    @publication = N'RepDB2_TB1', 
    @subscriber = N'SQLVM5SQL2', 
    @destination_db = N'RepDB2', 
    @subscription_type = N'Push', 
    @sync_type = N'initialize with backup',
    @article = N'all', 
    @update_mode = N'read only', 
    @subscriber_type = 0,
    @backupdevicetype='disk',
    @backupdevicename='E:REPDB2.BAK'--最后一次备份的备份文件(发布服务器上的存放位置)
    GO
    exec sp_addpushsubscription_agent 
    @publication = N'RepDB2_TB1',
    @subscriber = N'SQLVM5SQL2', 
    @subscriber_db = N'RepDB2', 
    @job_login = null, 
    @job_password = null, 
    @subscriber_security_mode = 0, 
    @subscriber_login = N'dba', 
    @subscriber_password = 'dba@123', 
    @frequency_type = 64, 
    @frequency_interval = 0, 
    @frequency_relative_interval = 0, 
    @frequency_recurrence_factor = 0, 
    @frequency_subday = 0, 
    @frequency_subday_interval = 0, 
    @active_start_time_of_day = 0, 
    @active_end_time_of_day = 235959, 
    @active_start_date = 20131028,
    @active_end_date = 99991231, 
    @enabled_for_syncmgr = N'False', 
    @dts_package_location = N'Distributor'
    GO

    7>检查复制,一切正常

    在测试过程中,特地在订阅库上增加部分无关表,复制搭建完毕后,这些无关表依然存在,表明本次操作对这些表无影响。

    误区:在讨论备份初始化时,一部分人都认为需要使用备份在订阅上还原,如果订阅库上存在其他数据,则不能使用备份初始化来初始化订阅。
    解释:使用备份初始化时为了避免生成快照时对发布库的影响,而在创建订阅时指定备份,只是需要利用该备份来获取一个LSN,使用该LSN来告诉订阅应该从哪个点开始同步数据。

    补充:注意在备份初始化前停止发布库日志备份

    相关:
    http://www.cnblogs.com/TeyGao/p/3521231.html
    http://www.cnblogs.com/TeyGao/p/3521234.html

  • 相关阅读:
    Win7 VSCode 在线安装Rust语言及环境配置
    Win7 VSCode 离线安装Rust语言及环境配置
    Win7崩溃程序目录
    fatal error C1047: The object or library file xxx was created with an older compiler than other objects
    Notepad++正则表达式合并多行代码为1行
    Win7 VS2019安装后创建C++工程失败解决
    关于Visual Studio中书签Bookmark的一些问题
    Fira Code,可以让不等号!=直接显示出来的字体
    免费商用字体
    Win7 64位注册32位DLL
  • 原文地址:https://www.cnblogs.com/TeyGao/p/3529407.html
Copyright © 2011-2022 走看看