SQLserver2016鏡像備份不需要見證服務(wù)器(實戰(zhàn)親測)
環(huán)境:aliyun
系統(tǒng)版本:Microsoft Windows Server 2019 Datacenter
數(shù)據(jù)庫版本:SQL server 2016
服務(wù)器1:192.168.1.1 test001
服務(wù)器2:192.168.1.2 test002
一、更改主機名字
主機:test001 →更改為→ test001.xxx.net
副機:test002 →更改為→ test002.xxx.net
操作過程(主/副機操作一樣)
更改完會提示需要重啟,確認(rèn)重啟即可;
二、更改host(主機/副機都要)
進入C:\Windows\System32\drivers\etc,找到host文件,編輯添加主機和副機的IP 主機名
如:
192.168.1.1 test001.xxx.net
192.168.1.2 test002.xxx.net
三、數(shù)據(jù)庫/日志還原
主/副數(shù)據(jù)庫的名字,賬號密碼建議統(tǒng)一一樣;
1、數(shù)據(jù)庫還原(備份時選擇“完整”備份):
2、日志還原(備份時選擇“事務(wù)日志”就行)
在還原日志時,“選項”里選擇“norecovery”選項;
四、創(chuàng)建鏡像
配置鏡像(整個操作都需要在master下操作)
信息確認(rèn):
主機(生產(chǎn)數(shù)據(jù)庫):test001.xxx.net
副機(鏡像數(shù)據(jù)庫):test002.xxx.net
切換到主機服務(wù)器
創(chuàng)建數(shù)據(jù)庫主密鑰
--user master --a.創(chuàng)建數(shù)據(jù)庫主密鑰 create master key encryption by password = 'qwe123'; --可用以下語句查看生成的數(shù)據(jù)庫主密鑰 --select * from sys.symmetric_keys ;
創(chuàng)建一個證書
--b.創(chuàng)建一個證書 create certificate db_host_a_cert with subject = 'db_host_a certificate for database mirroring', start_date = '02/12/2016', expiry_date = '12/31/2039' --db_host_a_cert 證書名字 --查詢證書 --select * from sys.certificates;
【創(chuàng)建主密鑰小插曲 不報錯可以忽略】
如果在創(chuàng)建數(shù)據(jù)庫主密鑰時,提示已經(jīng)存在;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'kk_2020'; ############################返回提示########################### 消息 15578,級別 16,狀態(tài) 1,第 1 行 數(shù)據(jù)庫中已存在主密鑰。執(zhí)行此語句前,請先刪除該主密鑰。
刪除主密鑰
DROP MASTER KEY ############################返回提示########################### 消息 15580,級別 16,狀態(tài) 1,第 1 行 無法刪除 主密鑰,因為 證書 'db_host_a_cert' 是由它加密的。
先刪除證書再刪除主密鑰即可
DROP CERTIFICATE db_host_a_cert ############################返回提示########################### 命令已成功完成。 ###若提示正在有一個或多個端點正在使用,要先 drop endpoint xxx端點名 ###########################刪除主密鑰########################### DROP MASTER KEY ############################返回提示########################### 命令已成功完成。
創(chuàng)建鏡像端點
--c.創(chuàng)建鏡像端點 create endpoint db_mirr state = started as tcp(listener_port=5022, --鏡像端點使用的通信端口 listener_ip = all) -- 偵聽的IP地址 for database_mirroring ( authentication = certificate db_host_a_cert, -- 證書身份驗 encryption = required algorithm rc4, -- 不對傳輸?shù)臄?shù)據(jù)加密,如果需要加密,可以配置為 SUPPORTED 或 REQUIRED, 并可選擇加密算法 role = all); -- 端點支持所有的數(shù)據(jù)庫鏡像角色, 也可以設(shè)置為 WITNESS(僅見證服務(wù)器),或 PARTNER(僅鏡像伙伴) --查詢 --select * from sys.tcp_endpoints --select * from sys.database_mirroring_endpoints;
備份證書
--d.備份證書 backup certificate db_host_a_cert to file = 'D:\ShareFile\db_a_run.cer';
創(chuàng)建登入
--e.創(chuàng)建登入 create login to_host_a_login with password = 'qwe123'; create user to_host_a_user for login to_host_a_login; ******************************************************* --有問題的時候需要刪除之前的用戶 --drop login to_host_a_login,drop user to_host_a_user
切換到副機服務(wù)器
-- user master --1.創(chuàng)建數(shù)據(jù)庫主密鑰 create master key encryption by password = 'qwe123'; --可用以下語句查看生成的數(shù)據(jù)庫主密鑰 --select * from sys.symmetric_keys ;
創(chuàng)建一個證書
--2.創(chuàng)建一個證書 create certificate db_host_b_cert with subject = 'db_host_b certificate for database mirroring', start_date = '02/12/2016', expiry_date = '12/31/2029' --查詢 --select * from sys.certificates;
創(chuàng)建鏡像端點
--3.創(chuàng)建鏡像端點 create endpoint db_mirr state = started as tcp( listener_port=5022 ,listener_ip = all ) for database_mirroring( authentication = certificate db_host_b_cert, encryption = required algorithm rc4, role = all); --查詢 --select * from sys.tcp_endpoints --select * from sys.database_mirroring_endpoints;
備份證書
--4.備份證書 backup certificate db_host_b_cert to file = 'D:\ShareFile\db_b_run.cer';
創(chuàng)建登入
--5.創(chuàng)建登入 create login to_host_b_login with password = 'qwe123'; create user to_host_b_user for login to_host_b_login;
切換到主機服務(wù)器
從副機服務(wù)器上D:\ShareFile\下拷貝備份出來的證書db_b_run.cer到主機服務(wù)器的D:\ShareFile\下
還原副機服務(wù)器證書到主機服務(wù)器上;
use master create certificate db_host_b_cert authorization to_host_a_user from file = 'D:\ShareFile\db_b_run.cer' --賦權(quán) grant connect on endpoint::db_mirr to [to_host_a_login];
切換到副機服務(wù)器
從主機服務(wù)器上D:\ShareFile\下拷貝備份出來的證書db_a_run.cer到副機服務(wù)器的D:\ShareFile\下
還原主機服務(wù)器證書到副機服務(wù)器上;
use master create certificate db_host_a_cert authorization to_host_b_user from file = 'D:\ShareFile\db_a_run.cer' --賦權(quán) grant connect on endpoint::db_mirr to [to_host_b_login];
設(shè)置伙伴(自動啟動鏡像)
切換到副機服務(wù)器
alter database DB_1 set partner = 'tcp://test001.xxx.net:5022';
切換到主機服務(wù)器
alter database DB_2 set partner = 'tcp://test002.xxx.net:5022';
鏡像日志清理
在做SQL 2016鏡像,由于主服務(wù)器必須做完整備份,這時log日志很大,必須定期清理log日志,將下列存儲過程每6個小時執(zhí)行一次,其定期會將日志文件縮小到300M
Create PROC [dbo].[CleanTranLog] AS BEGIN DECLARE @num TINYINT --執(zhí)行次數(shù) DECLARE @backLogName VARCHAR(100) ;--備份日志文件名稱 DECLARE @backLogPath VARCHAR(100) ; --備份日志文件的路徑 SET @num = 0 ; SET @backLogPath = N'C:\SQLBackup' ;--設(shè)定需要備份日志的路徑 --備份3次鏡像日志文件,同時刪除 WHILE( @num < 3 ) BEGIN DECLARE @LogPath VARCHAR(100) SET @backLogName = CAST(@num as VARCHAR(2)) + '.trn' ; SET @LogPath = @backLogPath + '\' + @backLogName BACKUP LOG DB TO DISK = @LogPath WITH NOFORMAT, NOINIT, NAME= @backLogName, SKIP, REWIND, NOUNLOAD,STATS = 10 SET @num = @num + 1 --刪除剛備份的trn日志文件結(jié)束的備份日志文件 EXECUTE master.dbo.xp_delete_file 0, @LogPath ; end --收縮日志文件到300M DBCC SHRINKFILE (DB_log, 300) ; --注意 --DB 這里指: 數(shù)據(jù)庫名稱 --DB_log 為日志邏輯名稱 可以通過數(shù)據(jù)庫屬性中“文件”查看日志的邏輯名稱。 END
存儲過程創(chuàng)建后(手動執(zhí)行一下測試是否成功)
① 新建一個維護計劃
② 在工具箱內(nèi)打開“執(zhí)行T-SQL語句”
?雙擊打開執(zhí)行框,確認(rèn)即可
USE [testdb] --數(shù)據(jù)庫 GO exec CleanTranLog --需要執(zhí)行的存儲過程
?④ 在子計劃中按照實際需求設(shè)置“計劃”
確定后保存,最后測試一下執(zhí)行計劃是否成功即可?。?!
到此這篇關(guān)于SQLserver2016鏡像備份不需要見證服務(wù)器(實戰(zhàn)親測)的文章就介紹到這了,更多相關(guān)SQL2016鏡像備份內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
navicat導(dǎo)入sql數(shù)據(jù)庫文件的簡單實現(xiàn)
在很多項目當(dāng)中都有sql文件導(dǎo)入到MySQL數(shù)據(jù)庫的需要,因為有sql數(shù)據(jù)庫文件,這個項目才能正常運行起來,本文主要介紹了navicat導(dǎo)入sql數(shù)據(jù)庫文件的簡單實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-11-11SQL2005、SQL2008允許遠(yuǎn)程連接的配置說明(附配置圖)
這篇文章主要介紹了SQL2005、SQL2008允許遠(yuǎn)程連接的配置過程,需要的朋友可以參考下2015-08-08SQL Server 數(shù)據(jù)頁緩沖區(qū)的內(nèi)存瓶頸分析
數(shù)據(jù)頁緩存是SQL Server的內(nèi)存使用主要的方面,也是占用量最大的部分。在一個穩(wěn)定的DB Server上,這部分內(nèi)存使用會相對較穩(wěn)定2012-08-08SQL Server 樹形表非循環(huán)遞歸查詢的實例詳解
這篇文章主要介紹了SQL Server 樹形表非循環(huán)遞歸查詢的實例詳解的相關(guān)資料,本文介紹的非常詳細(xì)具有參考借鑒價值,需要的朋友可以參考下2016-10-10行轉(zhuǎn)列之SQL SERVER PIVOT與用法詳解
這篇文章主要給大家介紹了關(guān)于行轉(zhuǎn)列之SQL SERVER PIVOT與用法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用SQL SERVER具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09圖書管理系統(tǒng)的sqlserver數(shù)據(jù)庫設(shè)計示例
這篇文章主要介紹了圖書管理系統(tǒng)的sqlserver數(shù)據(jù)庫設(shè)計示例,文中通過E_R圖、數(shù)據(jù)字典、數(shù)據(jù)庫腳本代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08