創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),宜良企業(yè)網(wǎng)站建設(shè),宜良品牌網(wǎng)站建設(shè),網(wǎng)站定制,宜良網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,宜良網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。這篇文章將為大家詳細講解有關(guān)使用alwayson后收縮數(shù)據(jù)庫日志的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
問題描述:
在使用了alwayson后,主從庫實時同步,原理是通過事務(wù)日志同步的,所以造成主數(shù)據(jù)庫的事務(wù)日志一直在使用,而且無法收縮主數(shù)據(jù)庫的事務(wù)日志。
在主從庫同步時,收縮數(shù)據(jù)庫是不起作用的。由于主數(shù)據(jù)庫無法收縮,所以從數(shù)據(jù)庫的日志也會一直跟著增長,造成磁盤空間一直增長。
網(wǎng)上大量的收縮日志的方法,基本上都不管用,懷疑根本沒有在實際環(huán)境中使用過,以下方案是我在實際中使用后總結(jié)記錄的。
解決方案:
最開始發(fā)現(xiàn)這個問題后,也是研究了好久,發(fā)現(xiàn)的方法,先是全手動操作。因為這些操作,并不能用語句來實現(xiàn)自動化,所以一直是手動處理的。
可能人都是比較懶的吧(人只有懶,才能促進機械自動化,才會有各種發(fā)表創(chuàng)造!不是嗎?呵呵),一直想能過腳本,實現(xiàn)自動化。
今天終于摸索出來了,總結(jié)一下。
大概的思路如下
通過腳本將alwayson從庫,從可用性數(shù)據(jù)庫是移除,就是取消主從同步,這樣主庫變成單庫模式了。然后再收縮事務(wù)日志,收縮后再把主從數(shù)據(jù)庫加上。
考慮到有一點,操作中需要刪除從庫上的數(shù)據(jù)庫,為防止操作錯誤,把主庫的數(shù)據(jù)庫刪除了,這個操作相當危險啊,所以將腳本分為三個。在兩個機器上來回操作。
第一個腳本在db1上執(zhí)行。
第二個腳本在db3上執(zhí)行
第三個腳本在db1上執(zhí)行
(這里db1是主庫,db3是從庫。不要問我db2呢,因為創(chuàng)建時先創(chuàng)建的db2后來db2有問題刪除了。你根據(jù)你的實際情況替換就行了。)
待時機成熟,或者加上判斷,可以考慮將以下三個腳本合成一個腳本,然后一鍵執(zhí)行,或者加到定時任務(wù),每月自動執(zhí)行一次。
以下腳本經(jīng)過親測可用
syncdb 為alwayson同步的名字,
DBSERVER1和DBSERVER3是主從數(shù)據(jù)庫的名稱。DBSERVER1為主庫,DBSERVER3為從庫。
:Connect DBSERVER1 -U sa -P abc@123 是使用SQLCMD模式連接數(shù)據(jù)庫,請修改后面的密碼。
test為數(shù)據(jù)庫名稱。
1、取消主從同步
--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE. :Connect DBSERVER1 -U sa -P abc@123 USE [master] GO ALTER AVAILABILITY GROUP [syncdb] REMOVE DATABASE [test]; GO