這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)SQL Server如何實(shí)現(xiàn)Standby的日志傳送,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、南京網(wǎng)絡(luò)推廣、微信小程序定制開發(fā)、南京網(wǎng)絡(luò)營銷、南京企業(yè)策劃、南京品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供南京建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:chinadenli.net
SQLSERVER下實(shí)現(xiàn)熱備用可用性中日志傳送以及同步復(fù)制的方式:
1. 使用企業(yè)版的“日志傳送向?qū)А?被集成在“數(shù)據(jù)庫維護(hù)向?qū)А敝?
2. 通過編寫腳本,并將其作為普通的SQL Server代理作業(yè)來進(jìn)行調(diào)度而實(shí)現(xiàn)
3. 使用同步復(fù)制
-------------------------------------------
集群是一種實(shí)現(xiàn)高可用性的有效解決方案,有時(shí)它會(huì)適得其反。而且,它還非常昂貴。因此,數(shù)據(jù)庫管理員可使用日志轉(zhuǎn)移代替集群來提供較高的可用性。
日志轉(zhuǎn)移是這樣一種處理過程,它能將某一數(shù)據(jù)庫中的事務(wù)日志文件依次轉(zhuǎn)存到備份的數(shù)據(jù)庫中,進(jìn)而為這一數(shù)據(jù)庫創(chuàng)建一個(gè)“近乎”熱備份。SQL Server 2000的數(shù)據(jù)庫引擎中設(shè)置了日志轉(zhuǎn)移功能,并在其中進(jìn)行處理。所以它會(huì)自動(dòng)完成復(fù)原到備份服務(wù)器的進(jìn)程,而不需要數(shù)據(jù)庫管理員手動(dòng)操作。只有你的產(chǎn)品服務(wù)器操作失敗,你才需手動(dòng)完成到備份服務(wù)器的復(fù)原進(jìn)程。(注釋:盡管SQL Server 7.0和2005中均有日志轉(zhuǎn)移功能,但本文主要針對SQL Server 2000。)
◆為什么要使用日志轉(zhuǎn)移?
日志轉(zhuǎn)移是一種解決高可用性的措施,并且十分有效。同樣作為高可用性的措施方案,日志轉(zhuǎn)移相對集群來說,最大的好處是它要便宜許多。這是因?yàn)?,使用集群功能有硬件要求,而日志轉(zhuǎn)移則不需要。
日志轉(zhuǎn)移在數(shù)據(jù)庫與數(shù)據(jù)庫而非服務(wù)器與服務(wù)器之間進(jìn)行;因此才有可能將備份數(shù)據(jù)庫存儲(chǔ)在你已用作其他用途的服務(wù)器上。但如果轉(zhuǎn)移失敗則有可能會(huì)出現(xiàn)問題,這時(shí)你可換用備份數(shù)據(jù)庫,這種選擇是可用的。日志轉(zhuǎn)移相對比較容易安裝。SQL Server提供了非常完善的向?qū)椭惆惭b這個(gè)進(jìn)程。日志轉(zhuǎn)移允許你保存分布在不同地理位置中的冗余數(shù)據(jù),SQL Server的集群功能則很難做到這一點(diǎn)。這一特點(diǎn)十分出眾,因?yàn)?,?dāng)你的數(shù)據(jù)中心遭到災(zāi)難時(shí),你仍能在備份服務(wù)器中將其恢復(fù)過來。而在相同的數(shù)據(jù)中心,如果你使用的是集群功能,你就會(huì)陷入麻煩。
日志轉(zhuǎn)移的另一優(yōu)點(diǎn)是你能將備份數(shù)據(jù)庫作為報(bào)告數(shù)據(jù)庫使用,這對許多公司來說是很不錯(cuò)的選擇。但如果你決定了用這個(gè)備份數(shù)據(jù)庫作報(bào)告使用,就必須注意它的局限性。使用原始數(shù)據(jù)庫中的日志時(shí),SQL Server 要求指定唯一的通道,所以,當(dāng)日志文件正在被應(yīng)用時(shí),報(bào)告則不能同時(shí)進(jìn)行。
◆使用日志轉(zhuǎn)移要考慮的相關(guān)因素
在將日志轉(zhuǎn)移作為高可用性的方案來使用時(shí),我們必須考慮以下幾點(diǎn)因素。由于從原始數(shù)據(jù)庫到備份數(shù)據(jù)庫有一個(gè)潛伏期,對你的公司而言,它并非一定是可行的實(shí)現(xiàn)高可用性的一種解決方案。潛伏期由數(shù)據(jù)庫管理員設(shè)置,時(shí)間也因需要而縮短, 但永遠(yuǎn)不能避免。
日志轉(zhuǎn)移中沒有設(shè)置恢復(fù)功能,這就意味著在將日志轉(zhuǎn)移到備份服務(wù)器上時(shí),這些日志都暫時(shí)不可用。因此,數(shù)據(jù)庫管理員必須在將備份數(shù)據(jù)庫放到網(wǎng)上前完成一系列的操作,這些步驟包括:將已存儲(chǔ)在備份數(shù)據(jù)服務(wù)器上原始數(shù)據(jù)庫里的備份標(biāo)簽存儲(chǔ)起來。一旦所有的標(biāo)簽被存儲(chǔ)后,數(shù)據(jù)庫就必須得到恢復(fù),然后放到網(wǎng)上。
一旦所有的數(shù)據(jù)庫都已放在網(wǎng)上,所有需要訪問數(shù)據(jù)庫的應(yīng)用程序就需要改變自身的鏈接。如果你不能將應(yīng)用程序盡快指向剛剛恢復(fù)的數(shù)據(jù)庫,你就前功盡棄了。
一個(gè)SQL Server的實(shí)例能用于監(jiān)控日志轉(zhuǎn)移。這個(gè)實(shí)例可以在原始數(shù)據(jù)庫、備份數(shù)據(jù)庫或單獨(dú)的數(shù)據(jù)庫中。任何一種版本的SQL Server都能用于SQL Server監(jiān)控。
注釋:數(shù)據(jù)庫登錄必須在原始數(shù)據(jù)庫與備份數(shù)據(jù)庫之間同時(shí)進(jìn)行
-------------------------------------------
操作步驟:
Log Shipping Operations Guide
Version: 1.0
Create Log Shipping.. 3
Monitor.. 9
Delete Log shipping.. 10
Role Change.. 13
Create Log Shipping
1. SQL Server 節(jié)點(diǎn)1 Tonym 和 Tonym02必須位于同一域中,并且SQL1 和SQL2都要使用域賬戶啟動(dòng)SQL Server服務(wù)和SQLServerAgent服務(wù)。
2. 在企業(yè)管理器中刪掉local連接,應(yīng)用Server Name注冊本地服務(wù)器 Tonym,輔助服務(wù)器Tonym02
3. 在SQL1 服務(wù)器上新建共享文件夾NorthwindBackupShare01,賦予啟動(dòng)SQL Server賬戶的Full 權(quán)限。在SQL1服務(wù)器上新建文件夾 ReceiveSQL2Logs,用來在進(jìn)行數(shù)據(jù)庫角色轉(zhuǎn)換時(shí)接收從SQL2上傳送過來的日志。
在SQL2 服務(wù)器上新建共享文件夾NorthwindBackupShare02,賦予啟動(dòng)SQL Server賬戶的Full 權(quán)限。在SQL2服務(wù)器上新建文件夾 ReceiveSQL1Logs,用來接收數(shù)據(jù)庫SQL1上傳送過來的日志。
4. 設(shè)置想要應(yīng)用Log Shipping的服務(wù)器為完全恢復(fù)模式。
5. 在Database Maintenance Plans上右鍵 New maintenance Plan,選擇進(jìn)行LogShipping 的數(shù)據(jù)庫,每次只允許選擇一個(gè)數(shù)據(jù)庫。
6.去掉Back up the database as part of the maintenance plan,保證維護(hù)計(jì)劃唯一性(推薦)
7.指定數(shù)據(jù)庫日志備份路徑。
8.指定存放日志文件的共享文件夾。
9.添加目的數(shù)據(jù)庫。
Server Name 為目的名稱
Transaction Log Destination Directory 填寫從SQL1上傳送到SQL2上日志文件的接收路徑.
Destination Database 選擇新建數(shù)據(jù)庫(指定數(shù)據(jù)文件,日志文件存放路徑)或者應(yīng)用已存在的數(shù)據(jù)庫
Database Load State
No recovery mode:使用者將無法進(jìn)行資料查詢,只供備份使用.
Standby mode :設(shè)置成只讀模式,只要不是進(jìn)行日志回存的時(shí)候,都可以進(jìn)行查詢。
Terminate users in database(Recommended) :在回存數(shù)據(jù)庫或是交易日志文件時(shí),回存程序?qū)⑹菙?shù)據(jù)庫唯一的使用者。
Allow database to assume primary role:允許主要服務(wù)器與次要服務(wù)器之間進(jìn)行角色轉(zhuǎn)換。
選擇進(jìn)行角色轉(zhuǎn)換后新主要服務(wù)器的共享目錄路徑。
9.Initialize the Destination Database: 挑選最近一次的資料或是建立一份新的備份資料。對大型數(shù)據(jù)庫,使用即有備份比較有效率。但是要保證從備份之后的日志都存在于主服務(wù)器上的日志共享目錄中。
10.設(shè)定主服務(wù)器上日志備份頻率。
11.設(shè)置輔助服務(wù)器復(fù)制備份日志和加載備份日志的頻率,以及日志文件在輔助服務(wù)器上的留存時(shí)間。
12.針對日志備份及日志回存工作,設(shè)定合理的延遲時(shí)間,當(dāng)超過臨界時(shí)間時(shí),日志傳送監(jiān)控程序?qū)υ捒驎?huì)相應(yīng)一個(gè)警告信息。
13.指定監(jiān)控服務(wù)器,應(yīng)該指定獨(dú)立于主服務(wù)器,輔助服務(wù)器的第三臺服務(wù)器作為監(jiān)控服務(wù)器,或者指定輔助服務(wù)器為監(jiān)控服務(wù)器。
14.點(diǎn)擊Next,指定維護(hù)計(jì)劃的名稱。Finish,開始進(jìn)行Log shipping 的創(chuàng)建。
Log Shipping 創(chuàng)建好后,和Log Shipping 相關(guān)的信息存儲(chǔ)在msdb的7個(gè)表中:
Log_shipping_plans
Log_shipping_plan_databases
Log_shipping_databases
Log_shipping_plan_history
Log_shipping_monitor
Log_shipping_primaries
Log_shipping_secondaries
2.可以在監(jiān)控服務(wù)器的management 下看到Log shipping 備份,復(fù)制,加載等動(dòng)作的狀態(tài)信息。
Delete Log shipping
1. 選擇主要服務(wù)器上的log shipping 維護(hù)計(jì)劃,打開屬性,選擇【Log shipping】設(shè)定頁,然后點(diǎn)選【Remove Log Shipping】。此動(dòng)作將從次要服務(wù)器上移除SQL Server Agent的備份與回存工作,并清除日志傳送資料表內(nèi)的所有相關(guān)資料。此外,日志傳送監(jiān)控程序的相關(guān)信息也會(huì)一并被清除。然而此動(dòng)作將會(huì)適當(dāng)?shù)乇A糁饕?wù)器上SQL Server Agent的交易日志備份工作。只有在刪除數(shù)據(jù)庫維護(hù)計(jì)劃時(shí),該工作才會(huì)被移除。假如您想從監(jiān)控服務(wù)器內(nèi)移除掉日志傳送監(jiān)控程序,請用手動(dòng)方式將log_shipping_primaries與log_shipping_secondarie 這兩個(gè)資料表(位于監(jiān)控服務(wù)器的msdb數(shù)據(jù)庫)的資料刪除即可。
如果您在數(shù)據(jù)庫維護(hù)計(jì)劃內(nèi)設(shè)定日志傳送時(shí),就已允許目的數(shù)據(jù)庫可以做為新的日志傳送來源數(shù)據(jù)庫。當(dāng)您刪除主要服務(wù)器的維護(hù)計(jì)劃時(shí),次要服務(wù)器上仍然會(huì)保留其數(shù)據(jù)庫維護(hù)計(jì)劃,以及交易日志文件備份工作。刪除這些項(xiàng)目的方式是將次要服務(wù)器上與日志傳送相關(guān)的數(shù)據(jù)庫維護(hù)計(jì)劃直接刪除。
Role Alter
1. 在主服務(wù)器上創(chuàng)建登陸同步DTS包。
2. 打開企業(yè)管理器并連接到主服務(wù)器。展開企業(yè)管理器樹至“Data Transformation Services” 組,選擇“Local Packages”。右擊“Local Packages”并選擇 “New Package”。從“Task”菜單選擇“16 Transfer Logins Task”。在源選擇 主服務(wù)器,目的選項(xiàng)卡 選擇 輔助服務(wù)器。在“Logins”選項(xiàng)卡,選擇傳輸與特定數(shù)據(jù)庫關(guān)聯(lián)的登陸,或者傳輸該服務(wù)器的所有登陸。(對于我們的環(huán)境推薦使用傳輸該服務(wù)器的所有登陸)
3.將DTS包保存在主服務(wù)器。
4.指定DTS同步時(shí)間(至少每周一次)。
5.同步登陸賬戶SID
1. bcp master..syslogins out localpath\syslogins.dat /N /S current_primary_server /U sa /P sa_password.
稍后會(huì)用到導(dǎo)出的syslogins信息.
2. 降級主要服務(wù)器.在主服務(wù)器運(yùn)行以下存儲(chǔ)過程。
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. 升級輔助服務(wù)器.在輔助服務(wù)器運(yùn)行以下存儲(chǔ)過程。
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
該存儲(chǔ)過程會(huì)將數(shù)據(jù)庫質(zhì)為單用戶模式。明明沒有任何使用者正在存取數(shù)據(jù)庫,它卻告訴我數(shù)據(jù)庫目前為使用中,解決的方式為重新執(zhí)行一次該存儲(chǔ)過程。
4. 通知監(jiān)控服務(wù)器角色已變更,在監(jiān)控服務(wù)器上運(yùn)行以下存儲(chǔ)過程。
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. 在次要服務(wù)器上解析登入帳號
Use master
Exec sp_resolve_logins
@dest_db = ‘dbname’,
@dest_path = ‘destination_path’,
@filename = ‘filename’ (from step 1 export)
6. 連接數(shù)據(jù)庫存取與權(quán)限。將轉(zhuǎn)移后已解析的登入帳號連結(jié)至相對應(yīng)的數(shù)據(jù)庫使用者及其權(quán)限. (SQL BOOK Online 缺少此步)
Use sourcename
Exec sp_change_users_login ‘update_one’ , ‘username’ , ‘LoginName’
1. 在新主要服務(wù)器的數(shù)據(jù)庫維護(hù)計(jì)劃內(nèi)移除日志傳送功能。
2. 在主要服務(wù)器上刪除數(shù)據(jù)庫維護(hù)計(jì)劃。
3. 在次要服務(wù)器上刪除數(shù)據(jù)庫維護(hù)計(jì)劃。
4. 維護(hù)所有交易日志。
5. 在新主要服務(wù)器上建立一個(gè)新的數(shù)據(jù)庫維護(hù)計(jì)劃,指定新次要服務(wù)器所在,目的數(shù)據(jù)庫位置,以及交易日志之適當(dāng)存放位置。
6. 重新開始新主要服務(wù)器的所有活動(dòng)。
在您成功設(shè)定角色互換且建置新日志傳送配對服務(wù)器后,Enterprise Manager 的日志傳送監(jiān)視器可能會(huì)告訴您新次要服務(wù)器數(shù)據(jù)庫并未與新主要服務(wù)器數(shù)據(jù)庫取得同步(out of sync)。如果“最近一次加載的交易日志”與“最近一次備份的交易日志”之間的時(shí)間差超過了 out-of-sync設(shè)定值,您就會(huì)收到此報(bào)告。你需要把新主服務(wù)器的備份日志拷貝到新次服務(wù)器的同步備份路徑下。到最近一次的備份資料被加載之后,日志傳送監(jiān)視器會(huì)回到平常無錯(cuò)誤狀態(tài)。
上述就是小編為大家分享的SQL Server如何實(shí)現(xiàn)Standby的日志傳送了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前名稱:SQLServer如何實(shí)現(xiàn)Standby的日志傳送
分享鏈接:http://chinadenli.net/article32/giidpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、自適應(yīng)網(wǎng)站、網(wǎng)站策劃、做網(wǎng)站、ChatGPT、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)