SQL SERVER 日志傳送,設置,監控,角色轉移
2024-08-31 00:48:07
供稿:網友
 
 
 
 
 
 
 
 
 
log shipping
operations guide
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
version: 1.0
 
 by tonymeng
2004-11-30
 
 
  
index
 
 
create log shipping.. 3
monitor.. 9
delete log shipping.. 10
role alter.. 11
role change.. 13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
create log shipping
1.       sql server 節點1 tonym 和 tonym02必須位于同一域中,并且sql1 和sql2都要使用域賬戶啟動sql server服務和sqlserveragent服務。
2.       在企業管理器中刪掉local連接,應用server name注冊本地服務器 tonym,輔助服務器tonym02
3.       在sql1 服務器上新建共享文件夾northwindbackupshare01,賦予啟動sql server賬戶的full 權限。在sql1服務器上新建文件夾 receivesql2logs,用來在進行數據庫角色轉換時接收從sql2上傳送過來的日志。 
 在sql2 服務器上新建共享文件夾northwindbackupshare02,賦予啟動sql server賬戶    的full 權限。在sql2服務器上新建文件夾 receivesql1logs,用來接收數據庫sql1上傳送過來的日志。 
 
4.       設置想要應用log shipping的服務器為完全恢復模式。
5.       在database maintenance plans上右鍵 new maintenance plan,選擇進行logshipping 的數據庫,每次只允許選擇一個數據庫。
6.去掉back up the database as part of the maintenance plan,保證維護計劃唯一性(推薦)
7.指定數據庫日志備份路徑。
8.指定存放日志文件的共享文件夾。
8.添加目的數據庫。
  server name 為目的名稱
  transaction log destination directory 填寫從sql1上傳送到sql2上日志文件的接收路徑.
  destination database 選擇新建數據庫(指定數據文件,日志文件存放路徑)或者應用已存在的數據庫
  database load state 
  no recovery mode:使用者將無法進行資料查詢,只供備份使用.
  standby mode :設置成只讀模式,只要不是進行日志回存的時候,都可以進行查詢。
  terminate users in database(recommended) :在回存數據庫或是交易日志文件時,回存程序將是數據庫唯一的使用者。
  allow database to assume primary role:允許主要服務器與次要服務器之間進行角色轉換。
  選擇進行角色轉換后新主要服務器的共享目錄路徑。
o
9.initialize the destination database: 挑選最近一次的資料或是建立一份新的備份資料。對大型數據庫,使用即有備份比較有效率。但是要保證從備份之后的日志都存在于主服務器上的日志共享目錄中。
10.設定主服務器上日志備份頻率。
11.設置輔助服務器復制備份日志和加載備份日志的頻率,以及日志文件在輔助服務器上的留存時間。
12.針對日志備份及日志回存工作,設定合理的延遲時間,當超過臨界時間時,日志傳送監控程序對話框會相應一個警告信息。
13.指定監控服務器,應該指定獨立于主服務器,輔助服務器的第三臺服務器作為監控服務器,或者指定輔助服務器為監控服務器。
14.點擊next,指定維護計劃的名稱。finish,開始進行log shipping 的創建。
monitor
1.       log shipping 創建好后,和log shipping 相關的信息存儲在msdb的7個表中:
log_shipping_plans
log_shipping_plan_databases
log_shipping_databases
log_shipping_plan_history
log_shipping_monitor
log_shipping_primaries
log_shipping_secondaries
2.可以在監控服務器的management 下看到log shipping 備份,復制,加載等動作的狀態信息。
delete log shipping
1.  選擇主要服務器上的log shipping 維護計劃,打開屬性,選擇【log shipping】設定頁,然后點選【remove log shipping】。此動作將從次要服務器上移除sql server agent的備份與回存工作,并清除日志傳送資料表內的所有相關資料。此外,日志傳送監控程序的相關信息也會一并被清除。然而此動作將會適當地保留主要服務器上sql server agent的交易日志備份工作。只有在刪除數據庫維護計劃時,該工作才會被移除。假如您想從監控服務器內移除掉日志傳送監控程序,請用手動方式將log_shipping_primaries與log_shipping_secondarie 這兩個資料表(位于監控服務器的msdb數據庫)的資料刪除即可。
 
如果您在數據庫維護計劃內設定日志傳送時,就已允許目的數據庫可以做為新的日志傳送來源數據庫。當您刪除主要服務器的維護計劃時,次要服務器上仍然會保留其數據庫維護計劃,以及交易日志文件備份工作。刪除這些項目的方式是將次要服務器上與日志傳送相關的數據庫維護計劃直接刪除。
 
role alter 
1.       在主服務器上創建登陸同步dts包。
2.       打開企業管理器并連接到主服務器。展開企業管理器樹至“data transformation services” 組,選擇“local packages”。右擊“local packages”并選擇 “new package”。從“task”菜單選擇“16 transfer logins task”。在源選擇 主服務器,目的選項卡 選擇 輔助服務器。在“logins”選項卡,選擇傳輸與特定數據庫關聯的登陸,或者傳輸該服務器的所有登陸。(對于我們的環境推薦使用傳輸該服務器的所有登陸)
3.將dts包保存在主服務器。
3.指定dts同步時間(至少每周一次)。
同步登陸賬戶sid
1.         bcp master..syslogins out localpath yslogins.dat  /n /s current_primary_server /u sa /p sa_password.
稍后會用到導出的syslogins信息.
2.         降級主要服務器.在主服務器運行以下存儲過程。
use master
exec msdb..sp_change_primary_role
        @db_name = ‘current_primary_dbname’
        @backup_log = 1,
        @terminate = 1,
        @final_state = 3,
        @access_level = 1
3.         升級輔助服務器.在輔助服務器運行以下存儲過程。
use master
exec msdb..sp_change_secondary_role
        @db_name = ‘current_secondary_dbname’
        @do_load = 1,
        @force_load = 1,
        @final_state = 1,
        @access_level = 1,
        @terminame = 1,
        @keep_replication = 0,
        @stopat = null
該存儲過程會將數據庫質為單用戶模式。明明沒有任何使用者正在存取數據庫,它卻告訴我數據庫目前為使用中,解決的方式為重新執行一次該存儲過程。
4.         通知監控服務器角色已變更,在監控服務器上運行以下存儲過程。
use master
exec msdb..sp_change_monitor_role
        @primary_server = ‘current_primary_server_name’,
        @secondary_server = ‘current_secondary_server_name’,
        @database = ‘current_secondary_dbname’,
        @new_source = ‘new_source_directory’
5.         在次要服務器上解析登入帳號
use master
exec sp_resolve_logins
        @dest_db = ‘dbname’,
        @dest_path = ‘destination_path’,
        @filename = ‘filename’ (from step 1 export)
6.         連接數據庫存取與權限。將轉移后已解析的登入帳號連結至相對應的數據庫使用者及其權限. (sql book online 缺少此步)
use sourcename
exec sp_change_users_login ‘update_one’ , ‘username’ , ‘loginname’
role change
1.         在新主要服務器的數據庫維護計劃內移除日志傳送功能。
2.         在主要服務器上刪除數據庫維護計劃。
3.         在次要服務器上刪除數據庫維護計劃。
4.         維護所有交易日志。
5.         在新主要服務器上建立一個新的數據庫維護計劃,指定新次要服務器所在,目的數據庫位置,以及交易日志之適當存放位置。
6.         重新開始新主要服務器的所有活動。
在您成功設定角色互換且建置新日志傳送配對服務器后,enterprise manager 的日志傳送監視器可能會告訴您新次要服務器數據庫并未與新主要服務器數據庫取得同步(out of sync)。如果“最近一次加載的交易日志”與“最近一次備份的交易日志”之間的時間差超過了 out-of-sync設定值,您就會收到此報告。你需要把新主服務器的備份日志拷貝到新次服務器的同步備份路徑下。到最近一次的備份資料被加載之后,日志傳送監視器會回到平常無錯誤狀態。