無意間翻開很久的技術集錦,和大家分享SQL2008鏡像的方法


無意間翻開很久的技術集錦,和大家分享SQL2008鏡像的方法

SQL2008鏡像


/*************************************************

*sql鏡像的具體配置步驟說明

*Crate DataTime:

*2016-0205-2016-02-06研究成功

*Expian:

*本實例沒有配置見證服務器,非域環境,數據庫版本為SQL2008數據中心版

*兩臺機,系統版本為SERVER 2012,IP分別為:192.168.1.25(A)、192.168.1.26(B)

*其中A為主數據庫,B為鏡像庫;

*遇到的問題記錄如下:

*1)兩臺機都要放1433、5022--5022TCP,UDP都要開

*2)主數據庫備份時要用語句備份

*3)鏡像服務器在恢復數據庫時選擇NORECOVERY(不回滾),默認為RECOVERY(回滾);

*恢復後會發現B數據中一直處於還原狀態,屬於正常現象。

*如果用的是RECOVERY,在雙方鏡像時會出現1416,沒有為鏡像配置XX數據庫。

*後在國外一網站上查到原因了,順利解決!

*證書登陸的賬號要在雙方mast庫中添加一下,否會出錯

*鏡像暫停後,再進行連接會提示無法驗證用記有,在配置安全-->驗證-->添加副鏡像庫的SQL登陸名即可

*---在網上找了很多,都沒有解決這個問題,下面記錄一下外國友人說的方法------

*I hope now it will be easy. First, backup the database on primary server,

*thern copy the backup to the mirror server and then restore the database with NORECOVERY option.

*Then backup the LOG (I hope your database is in FULL recovery mode) on the primary database,

*copy to mirror and restore this log with NORECOVERY option. And then try to start mirroring as soon as you can.

* – Alex_L Mar 28 '12 at 7:43

*-----------------------------------------------------------------------------------------

*數據庫鏡像尚未完全啟動解決方法,在兩臺機上用SA也就是相同的帳號和密碼來啟動數據庫,問題解決

***************************************************/

use master;--創建主密鑰

create master key encryption by password='xingxun66**';

go--的25上創建證書


create certificate as_a_cert--證書名

with subject='as_a_cert',

expiry_date='01/01/2099';--終止時間

go

--的25上用上面的證書創建數據庫的鏡像端點

if not exists(select 1 from

sys.database_mirroring_endpoints)

begin

create endpoint [databasemirroring] state=started as tcp(

listener_port=5022 ,listener_ip=all

)for database_mirroring(

authentication=certificate as_a_cert,encryption=required algorithm aes,role=all

);

end

---備份證書

backup certificate as_a_cert

to file='c:\\as_a_cert.cer';

go

--將證書對拷

--創建賬號

--同步證書

--映射賬號sql

--注下面語句要一起運行

create login b_login2 with password='xingxun66**';

create user b_user2 for login b_login2;

create certificate as_b_cert authorization b_user2 from file='C:\\zhengshu\\as_b_cert.cer';

grant connect on endpoint::databasemirroring to[b_login2];

go

*兩臺服務器都要依次執行,例A中要註冊B證書,B中要註冊A證書,登陸名可以相同,映射證書名也可以相同


---備份主體數據庫--依次執行

alter database news set recovery full;

--2--

backup database news

to disk='c:\\news.bak' with format;

---3--

backup log news to disk='c:\\news.bak';

------

/*備份完後將備份拷貝到鏡像機--

恢復該備份:還原時選擇不操作的回滾+覆蓋數據庫,默認就操作回滾--

*/

----在鏡像服務器上執行--

alter database news set partner='tcp://192.168.1.25:5022';--連接主服務器

---2--

/*在主服務器上運行*/

alter database news set partner='tcp://192.168.1.26:5022';--連接鏡像服務器


/*delete ZhengShu

use master;

drop certificate as_b_cert

*/

--上面的方面在B服務器上也執行只是要把證書名和登陸名改一下;

--成功後會看到主服務器上顯示"主體已同步",B鏡像服務器上顯示“正在還原”

--到這一步就大功告成了,可以來測試了,通過故障轉移來測試數據是否同步!

--2016/02/06/14:53/福田國際電商務產業園/

----------常見問題-----------------------

--消息 1413,級別 16,狀態 1,

--數據庫鏡像尚未完全啟動,與遠程服務器實例 'tcp://114.119.10.195:5022' 的通信失敗。

--ALTER DATABASE 命令失敗。請在遠程數據庫啟動後重試該命令。

--用下面的方法

--取消景象

ALTER DATABASE hyinfoa SET PARTNER OFF;


GO

--重新配置

ALTER DATABASE hyinfoa SET PARTNER = 'TCP://210.83.225.50:5022'

GO

-----------------------------------------------------------

切換鏡像

1.在主服務器上打開主體數據庫,鏡像--故障轉移

2.在次服務器上用alter database hyinfoz set partner force_service_allow_data_loss進行恢復(備用)


分享到:


相關文章: