新聞中心
在異步數(shù)據(jù)庫鏡像中,移動(dòng)鏡像數(shù)據(jù)庫文件實(shí)戰(zhàn)
創(chuàng)新互聯(lián)長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為銀州企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都做網(wǎng)站,銀州網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
某數(shù)據(jù)庫部署為異步數(shù)據(jù)庫鏡像,鏡像數(shù)據(jù)庫所在磁盤空間不足,我得移動(dòng)鏡像數(shù)據(jù)庫文件到新的磁盤上。
在異步數(shù)據(jù)庫鏡像中,應(yīng)用程序連接到主數(shù)據(jù)庫訪問。我們這里要根據(jù)你的線上環(huán)境考慮選擇哪種方式合適:
直接重做鏡像,將數(shù)據(jù)文件放在新的位置。
直接移動(dòng)鏡像數(shù)據(jù)庫文件。
移動(dòng)數(shù)據(jù)庫文件的所有操作都是對鏡像數(shù)據(jù)庫實(shí)例,如果鏡像數(shù)據(jù)庫實(shí)例上沒有其他線上主數(shù)據(jù)庫,不會(huì)對線上業(yè)務(wù)產(chǎn)生影響的情況下,可以直接移動(dòng)鏡像數(shù)據(jù)庫文件。
1. 在主庫上點(diǎn)擊“Pause”,暫停鏡像會(huì)話。
2. 在鏡像庫上使用Alter Database指向一個(gè)新的位置。
a) 確定DXListing數(shù)據(jù)庫的邏輯文件名稱以及這些文件在磁盤上的當(dāng)前位置。
SELECT name, physical_name FROM sys.master_files WHERE database_id = DB_ID('DXListing'); GO
b) 使用 ALTER DATABASE更改每個(gè)文件的位置。
USE master; GO ALTER DATABASE DXListing MODIFY FILE (NAME = DXListing, FILENAME = 'E:\SQL-DATA\DXListing.mdf'); GO ALTER DATABASE DXListing MODIFY FILE (NAME = DXListing_log, FILENAME = 'E:\SQL-DATA\DXListing.ldf'); GO
3. 停止鏡像數(shù)據(jù)庫所在實(shí)例的SQL Server服務(wù)。
4. 移動(dòng)鏡像數(shù)據(jù)庫文件到一個(gè)新位置,并確保文件上的權(quán)限也還在。
5. 啟動(dòng)鏡像數(shù)據(jù)庫所在實(shí)例的SQL Server服務(wù)。
6. 在主庫上點(diǎn)擊“RESUME”,恢復(fù)鏡像恢復(fù),并驗(yàn)證鏡像成功恢復(fù)。
還有一種方式,只需要重啟鏡像數(shù)據(jù)庫所在實(shí)例的SQL Server服務(wù),而不用暫停服務(wù)一段時(shí)間用于移動(dòng)數(shù)據(jù)文件,實(shí)際線上我是用這種方式操作的。
1. 在主庫上點(diǎn)擊“Pause”,暫停鏡像會(huì)話。
2. 在鏡像庫上使用Alter Database指向一個(gè)新的位置。
a) 確定DXListing數(shù)據(jù)庫的邏輯文件名稱以及這些文件在磁盤上的當(dāng)前位置。
SELECT name, physical_name FROM sys.master_files WHERE database_id = DB_ID('DXListing'); GO
b) 使用 ALTER DATABASE更改每個(gè)文件的位置。
USE master; GO ALTER DATABASE DXListing MODIFY FILE (NAME = DXListing, FILENAME = 'E:\SQL-DATA\DXListing.mdf'); GO ALTER DATABASE DXListing MODIFY FILE (NAME = DXListing_log, FILENAME = 'E:\SQL-DATA\DXListing.ldf'); GO
3. 重啟鏡像數(shù)據(jù)庫所在實(shí)例的SQL Server服務(wù)。
4. 移動(dòng)鏡像數(shù)據(jù)庫文件到一個(gè)新位置,并確保文件上的權(quán)限也還在。
這時(shí),我們來看看鏡像狀態(tài)。
在主庫上:
在鏡像庫上:
可以看到,鏡像庫狀態(tài)不正常。這時(shí),我在鏡像庫上執(zhí)行以下操作:
USE master GO ALTER DATABASE DXListing SET PARTNER RESUME GO
報(bào)錯(cuò)如下:
Msg 945, Level 14, State 2, Line 1
Database 'DXListing' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.
5. 使DXListing數(shù)據(jù)庫 OFFLINE 再 ONLINE,以實(shí)施更改。(當(dāng)然,此時(shí)重啟SQL Server服務(wù)應(yīng)該也可以,但建議還是在數(shù)據(jù)庫級別操作)
USE master GO ALTER DATABASE DXListing SET OFFLINE ALTER DATABASE DXListing SET ONLINE GO
錯(cuò)誤如下:
Msg 954, Level 14, State 1, Line 1
The database "DXListing" cannot be opened. It is acting as a mirror database.
Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.
這時(shí),我們再來看看數(shù)據(jù)庫狀態(tài)。
在鏡像庫上:
在主庫上:
發(fā)現(xiàn)狀態(tài)已經(jīng)正常。之前的錯(cuò)誤可以忽略。
6. 在主庫上點(diǎn)擊“RESUME”,恢復(fù)鏡像會(huì)話。驗(yàn)證鏡像狀態(tài)已同步。
參考:
https://msdn.microsoft.com/zh-cn/library/bb522469.aspx
當(dāng)前題目:在異步鏡像中移動(dòng)鏡像數(shù)據(jù)庫文件實(shí)戰(zhàn)
轉(zhuǎn)載來源:http://www.ef60e0e.cn/article/iiogej.html