<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      專注,勤學,慎思。戒驕戒躁,謙虛謹慎

      just do it

      導航

      SqlServer 事務復制的兩個參數immediate_sync,allow_anonymous

      SqlServer的事務復制中,immediate_sync和allow_anonymous兩個參數會影響到復制的后臺行為和分發庫(distribution)的數據保留方式,這兩個參數單從名字上看,可能有些模棱兩可甚至云里霧里,以下是個人結合復制的運維,對兩個參數的理解。

      1,immediate_sync

      參數含義:是否執行“立即同步”,立即同步啥?誰來同步?有啥作用?表面含義跟沒說一樣,完全看不懂啥意思。
      默認值:true,也就是“立即同步”。

      表面上看,基本上看不出來這個參數到底是干嘛的,那么用人話,直白地說,當該immediate_sync 參數為true時,會產生一下行為:
      1,當創建完發布之后,會立即(自動)創建一個快照備用(給誰備用,當然是訂閱了,可現在還沒有訂閱啊)。
      2,快照行為:該快照會一直保留,直至超過保留期(Retention period)之后,才會被倍自動清理。
      3,增量數據行為:在創建快照那一刻之后,分發數據庫中會保留待發布的事務,對應在distribution庫中的MSrepl_commands, ,MSrepl_transactions表,直至超過超過保留期(Retention period),才會被倍自動清理。
      4,新建訂閱會使用已有的快照完成初始化,以及結合distribution庫中的增量數據做增量數據復制。


      當該immediate_sync 參數為false時,會產生一下行為
      1,當創建完發布之后,不會立即創建一個快照,只有新增訂閱或者重新手動初始化的時候,才會生成快照
      2,增量數據行為:只要快照之后的事務,倍同步至訂閱節點之后,就會[Distribution clean up: distribution]自動刪除,不會等到保留期(Retention period)


      2,allow_anonymous

      參數含義:是否允許匿名訂閱,匿名是什么意思?為什么要匿名?同樣,表面含義跟沒說一樣,完全看不懂啥意思
      默認值:true,也就是“允許匿名訂閱”

      到底什么是“匿名”訂閱?“匿名”訂閱會產生什么結果?
      allow_anonymous依賴于上面提到的immediate_sync參數,只有在允許了匿名訂閱allow_anonymous=true的情況下,且immediate_sync=true的情況下,發布才可以在沒有訂閱的情況下生成快照,以及將快照之后的事務保留在distribution庫中。
      說白了就是,提前把發布的快照生成好(全量數據),然后事務數據(增量數據)寫入distribution庫中保留,就好像已經有了訂閱一樣,把數據都準備好。一旦真正有訂閱過來,可以直接利用快照,以及distribution中的活動事務數據做同步。

      allow_anonymous的結果就是一個發布對應一組“虛擬訂閱”。

      select * from syssubscriptions 
      
      artid       srvid  dest_dbstatus sync_type login_name subscription_type distribution_jobid                 timestamp          update_mode loopback_detection queued_reinit nosync_type srvname
      ----------- ------ -------- ------ --------- ---------- ----------------- ---------------------------------- ------------------ ----------- ------------------ ------------- ----------- ----------------
      7           -1     virtual  2     1         sa         0                 0x00000000000000000000000000000000 0x000000000000468D 0           1                  1             0           
      8           -1     virtual  2     1         sa         0                 0x00000000000000000000000000000000 0x000000000000468E 0           1                  1             0           
      9           -1     virtual  2     1         sa         0                 0x00000000000000000000000000000000 0x000000000000468F 0           1                  1             0           
      10          -1     virtual  2     1         sa         0                 0x00000000000000000000000000000000 0x0000000000004690 0           1                  1             0           
      11          -1     virtual  2     1         sa         0                 0x00000000000000000000000000000000 0x0000000000004691 0           1                  1             0           
      12          -1     virtual  2     1         sa         0                 0x00000000000000000000000000000000 0x0000000000004692 0           1                  1             0           
      7           2      pub_db  2      1         sa         0                 0x2989DF33CF30C34CB9D49BA5499115EE 0x00000000000046AB 0           1                  1             0           sub_server\MSSQLSTD
      8           2      pub_db  2      1         sa         0                 0x2989DF33CF30C34CB9D49BA5499115EE 0x00000000000046AC 0           1                  1             0           sub_server\MSSQLSTD
      9           2      pub_db  2      1         sa         0                 0x2989DF33CF30C34CB9D49BA5499115EE 0x00000000000046AD 0           1                  1             0           sub_server\MSSQLSTD
      10          2      pub_db  2      1         sa         0                 0x2989DF33CF30C34CB9D49BA5499115EE 0x00000000000046AE 0           1                  1             0           sub_server\MSSQLSTD
      11          2      pub_db  2      1         sa         0                 0x2989DF33CF30C34CB9D49BA5499115EE 0x00000000000046AF 0           1                  1             0           sub_server\MSSQLSTD
      12          2      pub_db  2      1         sa         0                 0x2989DF33CF30C34CB9D49BA5499115EE 0x00000000000046B0 0           1                  1             0           sub_server\MSSQLSTD


      3,什么情況下需要取消匿名訂閱

      3.1 在往發布中新增對象的情況下,需要關閉匿名同步和立即創建快照

      allow_anonymous和immediate_sync是一個相互依賴的參數,如果要取消立即同步:需要先關閉allow_anonymous,然后再關閉immediate_sync,否則會報錯

      關閉immediate_sync

      EXEC sp_changepublication
      @publication = 'cashier_pub',
      @property = 'allow_anonymous' ,    --想關閉immediate_sync,必須先關閉allow_anonymous
      @value = 'false'
      GO
      
      EXEC sp_changepublication
      @publication = 'cashier_pub',
      @property = 'immediate_sync' ,
      @value = 'false'
      GO
      
      --查看復制屬性
      exec sp_helppublication;
      go

      打開immediate_sync

      EXEC sp_changepublication
      @publication = 'cashier_pub',
      @property = 'immediate_sync' ,
      @value = 'true'
      GO
      
      EXEC sp_changepublication
      @publication = 'cashier_pub',
      @property = 'allow_anonymous' ,    --想打開allow_anonymous,必須先打開immediate_sync
      @value = 'true'
      GO
      
      --查看復制屬性
      exec sp_helppublication;
      go

      然后再往發布中增加發布對象,手動創建快照,此時創建的快照,是新增對象的快照,而不是整個發布的快照

      3.2 在往發布中新增對象的情況下,需要關閉匿名同步和立即創建快照

      發布數據保存在分發數據庫distribution中,當的清理機制是靠[Distribution clean up: distribution]這個job每10分鐘運行一次,自動刪除(Retention period)過期數據的,(Retention period)默認是72小時。
      如果發布對象過多,或者發布對象上的增刪改過多,會產生大量的分發日志(通俗說就是distribution爆了,這種情況大概率是[Distribution clean up: distribution] job因為某些原因停了),在immediate_sync=true以及allow_anonymous=true的情況下,這個日志又要保留72小時,
      因此可能造成distribution庫的嚴重膨脹,以及造成[Distribution clean up: distribution]執行過濾緩慢,此時需要關閉allow_anonymous和immediate_sync,關閉后,分發的數據不受控于Retention period,只要分發完成后隨即會被[Distribution clean up: distribution] job刪除。

       

      關于重Reinitialize新初始化的選項,是否可以勾選“generated the new snapshot now”,情況有點有復雜,我試了N多遍才試出來:

      1,如果allow_anonymous和immediate_sync都是true的情況下,創建的訂閱允許勾選“復選框generated the new snapshot now選項”
      2,如果allow_anonymous和immediate_sync都是true的情況下,創建訂閱,然后修改allow_anonymous和immediate_sync為false,則不允許“復選框generated the new snapshot now選項”
      3,如果allow_anonymous和immediate_sync都是false的情況下,創建的訂閱不允許勾選“復選框generated the new snapshot now選項”
      4,如果allow_anonymous和immediate_sync都是false的情況下,創建訂閱,然后修改allow_anonymous和immediate_sync為true,也不允許勾選“復選框generated the new snapshot now選項”(手動生成快照后,就允許了,這個地方搞的很亂)。

      imageimage

       

      在SqlServer的replication中,感覺這兩個參數,有點歷史遺留問題的影響,感覺有些啰嗦和混亂。

       

      https://repltalk.com/2010/03/24/what-immediate_sync-means-in-transactional-replication/
      https://repltalk.com/2010/02/03/what-is-a-virtual-subscription-in-transactional-replication/

      posted on 2025-10-20 13:18  MSSQL123  閱讀(11)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 男人添女人下部高潮视频| 免费国产高清在线精品一区| 无套内谢少妇高清毛片| 精品激情视频一区二区三区| 91久久精品美女高潮不断| 大陆精大陆国产国语精品| 国产在线拍揄自揄拍无码| 日韩一区二区三区女优丝袜| 久久精品伊人波多野结衣| 狠狠色噜噜狠狠狠狠777米奇| 激情亚洲专区一区二区三区| 国产精品一区二区三区蜜臀| 亚洲熟女片嫩草影院| 晴隆县| 中文字幕在线精品人妻| 内射干少妇亚洲69XXX| 中国CHINA体内裑精亚洲日本| 国产精品夜夜春夜夜爽久久小| 成人免费视频一区二区三区| 在线看高清中文字幕一区| 亚洲av无码专区在线亚| 91亚洲国产三上悠亚在线播放| 亚洲精品福利一区二区三区蜜桃| 国产成人午夜福利在线播放| 久久99精品久久久久久9| 国产人妻精品午夜福利免费| 色噜噜噜亚洲男人的天堂| 麻豆亚洲精品一区二区| 成全影视大全在线观看| 天堂亚洲免费视频| 国产午夜大地久久| 亚洲国产精品第一二三区| 国产综合色在线精品| 国产偷国产偷亚洲清高网站| 国产盗摄视频一区二区三区| 国产av午夜精品福利| 柞水县| 97精品国产91久久久久久久| 成人啪精品视频网站午夜| 2019亚洲午夜无码天堂| 国产精品亚洲а∨天堂2021|