濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > SQL Server 2005 鏡像構(gòu)建手冊(cè)(sql2005數(shù)據(jù)庫(kù)同步鏡像方案)

SQL Server 2005 鏡像構(gòu)建手冊(cè)(sql2005數(shù)據(jù)庫(kù)同步鏡像方案)

熱門標(biāo)簽:創(chuàng)業(yè)電銷機(jī)器人 舞鋼市地圖標(biāo)注app 沈陽(yáng)智能外呼系統(tǒng)代理 浙江地圖標(biāo)注 九鹿林外呼系統(tǒng)怎么收費(fèi) 海南自動(dòng)外呼系統(tǒng)價(jià)格 松原導(dǎo)航地圖標(biāo)注 電銷機(jī)器人虛擬號(hào)碼 滄州營(yíng)銷外呼系統(tǒng)軟件

一、 鏡像簡(jiǎn)介

1、 簡(jiǎn)介

數(shù)據(jù)庫(kù)鏡像是將數(shù)據(jù)庫(kù)事務(wù)處理從一個(gè)SQL Server數(shù)據(jù)庫(kù)移動(dòng)到不同SQL Server環(huán)境中的另一個(gè)SQL Server數(shù)據(jù)庫(kù)中。鏡像不能直接訪問(wèn);它只用在錯(cuò)誤恢復(fù)的情況下才可以被訪問(wèn)。

要進(jìn)行數(shù)據(jù)庫(kù)鏡像所需的最小需求包括了兩個(gè)不同的SQL Server運(yùn)行環(huán)境。主服務(wù)器被稱為“主機(jī)”,第二個(gè)服務(wù)器被稱作“備機(jī)”。主機(jī)數(shù)據(jù)庫(kù)就是你實(shí)際用著的數(shù)據(jù)庫(kù),鏡像數(shù)據(jù)庫(kù)就是你的數(shù)據(jù)庫(kù)的備用拷貝。當(dāng)事務(wù)寫入你的基本服務(wù)器的時(shí)候,他們也同樣被傳送到并寫入你的鏡像數(shù)據(jù)庫(kù)中。

除了基本和鏡像之外,你還可以引入另一個(gè)可選的組件,名為“見(jiàn)證”。見(jiàn)證服務(wù)器是第三個(gè)SQL Server 2005運(yùn)行實(shí)例,它是在判斷什么時(shí)候進(jìn)行錯(cuò)誤恢復(fù)的時(shí)候,用于基本和鏡像之間內(nèi)部交流。只有當(dāng)你想實(shí)現(xiàn)自動(dòng)錯(cuò)誤恢復(fù)的時(shí)候用到這個(gè)選項(xiàng)。它實(shí)現(xiàn)了2比1投票的能力,當(dāng)我的一個(gè)組件不可達(dá),并因此需要進(jìn)行錯(cuò)誤恢復(fù)的時(shí)候。見(jiàn)證服務(wù)器只有在你想實(shí)現(xiàn)自動(dòng)錯(cuò)誤恢復(fù)的時(shí)候才需要用到。

2、 優(yōu)點(diǎn)

下表是SQL Server可用性官方解決方案的一個(gè)對(duì)照表,現(xiàn)時(shí)我中心使用的恢復(fù)模式是“冷備份”中的“備份/恢復(fù)”,通常來(lái)說(shuō)“熱備份”比“冷備份”的可用性更高,恢復(fù)更快,更適合我中心現(xiàn)時(shí)的實(shí)際情況。如果不從成本考慮的話,“熱備份”中的“故障轉(zhuǎn)移群集”的可用性是最高的,但是故障轉(zhuǎn)移群集需要借助磁盤陣列而且建設(shè)本身復(fù)雜性較高。數(shù)據(jù)庫(kù)鏡像的建立并沒(méi)有太多的硬件要求,最起碼沒(méi)有像“故障轉(zhuǎn)移群集”需要共享存儲(chǔ)這么高的要求。

2、 缺點(diǎn)

(1)由于SQL Server是一個(gè)實(shí)例多個(gè)數(shù)據(jù)庫(kù)的產(chǎn)品,數(shù)據(jù)庫(kù)鏡像技術(shù)是基于數(shù)據(jù)庫(kù)級(jí)別的,因此每次主數(shù)據(jù)庫(kù)新增數(shù)據(jù)庫(kù)都必須為備機(jī)增加數(shù)據(jù)庫(kù)并且為新增的數(shù)據(jù)庫(kù)建立鏡像關(guān)系。

(2)數(shù)據(jù)庫(kù)的登錄名和用戶是存儲(chǔ)在master數(shù)據(jù)庫(kù),master數(shù)據(jù)庫(kù)是不能做鏡像的,所以每次操作數(shù)據(jù)庫(kù)的登錄名和用戶也是需要多維護(hù)一份,

(3)數(shù)據(jù)庫(kù)作業(yè)不能得到相應(yīng)的維護(hù)。

(4)微軟號(hào)稱鏡像可以讓客戶端對(duì)故障透明,但是實(shí)際測(cè)試中發(fā)現(xiàn)只有滿足特定的條件才能實(shí)現(xiàn)透明化,而且透明化得客戶端支持才可行(.net Framework 2.0以上,Microsoft jdbc驅(qū)動(dòng) 1.1以上)。

(5)跨數(shù)據(jù)庫(kù)事務(wù)和分布式事務(wù)均不支持?jǐn)?shù)據(jù)庫(kù)鏡像。

縱觀其他幾種方式,僅有“熱備份”的“故障轉(zhuǎn)移群集”沒(méi)有這些問(wèn)題。

一、配置主備機(jī)1、 物理連接

將主備數(shù)據(jù)庫(kù)按照如圖所示連接:

2、 檢查SQL Server 2005數(shù)據(jù)庫(kù)

只有SQL Server 2005 標(biāo)準(zhǔn)版、企業(yè)版和開(kāi)發(fā)版才可以建立數(shù)據(jù)鏡像。其他版本即Express只能作為見(jiàn)證服務(wù)器。如果實(shí)在不清楚什么版本,執(zhí)行如下語(yǔ)句查看:

select @@version;

若要對(duì)此數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)庫(kù)鏡像,必須將它更改為使用完整恢復(fù)模式。若要用 Transact-SQL 實(shí)現(xiàn)此目的,請(qǐng)使用 ALTER DATABASE 語(yǔ)句:

 USE master;
 ALTER DATABASE DatabaeName> 
 SET RECOVERY FULL;

二、主備實(shí)例互通
實(shí)現(xiàn)互通可以使用域或證書(shū)來(lái)實(shí)現(xiàn),考慮實(shí)現(xiàn)的簡(jiǎn)單,以下選取證書(shū)的方式實(shí)現(xiàn)。注意:實(shí)現(xiàn)“主備數(shù)據(jù)庫(kù)實(shí)例互通”的操作只需要做一次,例如為了將兩個(gè)SQL Server 2005的實(shí)例中的5個(gè)數(shù)據(jù)庫(kù)建成鏡像關(guān)系,則只需要做一次以下操作就可以了;或者這樣理解:每一對(duì)主備實(shí)例(不是數(shù)據(jù)庫(kù))做一次互通。

1、創(chuàng)建證書(shū)(主備可并行執(zhí)行)

--主機(jī)執(zhí)行:

USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'killkill';
CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate' , 
START_DATE = '01/01/2008';

--備機(jī)執(zhí)行:

USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'killkill';
CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate', 
START_DATE = '01/01/2008';

2、創(chuàng)建連接的端點(diǎn)(主備可并行執(zhí)行)

--主機(jī)執(zhí)行:

CREATE ENDPOINT Endpoint_Mirroring 
STATE = STARTED 
AS 
TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) 
FOR 
DATABASE_MIRRORING 
( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );

--備機(jī)執(zhí)行:

CREATE ENDPOINT Endpoint_Mirroring 
STATE = STARTED 
AS 
TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) 
FOR 
DATABASE_MIRRORING 
( AUTHENTICATION = CERTIFICATE HOST_B_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );

3、備份證書(shū)以備建立互聯(lián)(主備可并行執(zhí)行)

--主機(jī)執(zhí)行:

BACKUP CERTIFICATE HOST_A_cert TO FILE = 'D:\SQLBackup\HOST_A_cert.cer';
 --備機(jī)執(zhí)行:

BACKUP CERTIFICATE HOST_B_cert TO FILE = 'D:\SQLBackup\HOST_B_cert.cer';

4、互換證書(shū)
將備份到D:\SQLBackup\的證書(shū)進(jìn)行互換,即HOST_A_cert.cer復(fù)制到備機(jī)的D:\SQLBackup\。HOST_B_cert.cer復(fù)制到主機(jī)的D:\SQLBackup\

5、添加登陸名、用戶(主備可并行執(zhí)行)
以下操作只能通過(guò)命令行運(yùn)行,通過(guò)圖形界面無(wú)法完成。(截至文檔編寫結(jié)束,SQL Server2005的不定號(hào)為SP2)

--主機(jī)執(zhí)行:

CREATE LOGIN HOST_B_login WITH PASSWORD = 'killkill';
CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'D:\SQLBackup\HOST_B_cert.cer';
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];

--備機(jī)執(zhí)行:

CREATE LOGIN HOST_A_login WITH PASSWORD = 'killkill';
CREATE USER HOST_A_user FOR LOGIN HOST_A_login;
CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'D:\SQLBackup\HOST_A_cert.cer';
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];


三、建立鏡像關(guān)系
以下步驟是針對(duì)每個(gè)數(shù)據(jù)庫(kù)進(jìn)行的,例如:現(xiàn)有主機(jī)中有5個(gè)數(shù)據(jù)庫(kù)以下過(guò)程就要執(zhí)行5次。

1、 手工同步登錄名和密碼
在第一章中提到數(shù)據(jù)庫(kù)鏡像的缺點(diǎn)之一是無(wú)法維護(hù)登錄名,所以需要我們手工維護(hù)登錄。

通常來(lái)說(shuō)數(shù)據(jù)庫(kù)都將會(huì)有若干個(gè)用戶作為訪問(wèn)數(shù)據(jù)庫(kù)的用戶,并且數(shù)據(jù)庫(kù)會(huì)有相應(yīng)的登錄名,但是在備機(jī)中缺少與之相對(duì)應(yīng)的登錄名,例如某業(yè)務(wù)系統(tǒng)使用'myuser'作為登錄名訪問(wèn)數(shù)據(jù)庫(kù),但是在備機(jī)中沒(méi)有'myuser'這個(gè)登錄名,因此一旦主備切換,業(yè)務(wù)系統(tǒng)就無(wú)法登錄數(shù)據(jù)庫(kù)了,這種情況稱為"孤立用戶"

在主數(shù)據(jù)庫(kù)中執(zhí)行如下語(yǔ)句:

USE master;
select sid,name from syslogins;

查找出相應(yīng)的用戶名和sid,例如:上述的'myuser'

在備數(shù)據(jù)庫(kù)中執(zhí)行如下語(yǔ)句:

USE master;
exec sp_addlogin 
@loginame = 'LoginName>', 
@passwd = 'Password>', 
@sid = sid> ;

這里的'LoginName'即主數(shù)據(jù)庫(kù)中的登錄名,sid即是上述通過(guò)SQL語(yǔ)句查找出的sid。

例如,查詢得到的sid和name如下所示。

sid name
---------------------------------- -----------------
0x074477739DCA0E499C29394FFFC4ADE4 cz_account

則建立登錄名的SQL語(yǔ)句:

USE master;
exec sp_addlogin 
@loginame = 'cz_account', 
@passwd = 'password', 
@sid = 0x074477739DCA0E499C29394FFFC4ADE4;

到此為止可以認(rèn)為備機(jī)數(shù)據(jù)庫(kù)的環(huán)境已經(jīng)與主機(jī)同步了,還差數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)未同步。

2、 準(zhǔn)備備機(jī)數(shù)據(jù)庫(kù)
承接上文,該節(jié)是描述如何同步主備數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)。

可以嘗試從剛剛使用的全備文件進(jìn)行還原,在還原數(shù)據(jù)的時(shí)候需要使用選上“with non recover”。如圖所示:

如果執(zhí)行成功數(shù)據(jù)庫(kù)將會(huì)變成這個(gè)樣子:

3、 建立鏡像

由于是實(shí)驗(yàn),沒(méi)有為服務(wù)器配置雙網(wǎng)卡,IP地址與圖有點(diǎn)不一樣,但是原理一樣。

--主機(jī)執(zhí)行:

ALTER DATABASE shishan SET PARTNER = 'TCP://10.168.6.45:5022';

--如果主體執(zhí)行不成功,嘗試在備機(jī)中執(zhí)行如下語(yǔ)句:

ALTER DATABASE shishan SET PARTNER = 'TCP://10.168.6.49:5022';

如果執(zhí)行成功,則主備數(shù)據(jù)庫(kù)將會(huì)呈現(xiàn)如上圖所示的圖標(biāo)。

如果建立失敗,提示類似數(shù)據(jù)庫(kù)事務(wù)日志未同步,則說(shuō)主備數(shù)據(jù)庫(kù)的數(shù)據(jù)(日志)未同步,為保證主備數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)一致,應(yīng)在主數(shù)據(jù)庫(kù)中實(shí)施一次“事務(wù)日志”備份,并還原到備數(shù)據(jù)庫(kù)上。備份“事務(wù)日志”如圖所示:

還原事務(wù)日志時(shí)需在選項(xiàng)中選擇“restore with norecovery”,如圖所示:

成功還原以后再執(zhí)行建立鏡像的SQL語(yǔ)句。

四、測(cè)試操作

1、主備互換

--主機(jī)執(zhí)行:

USE master;
ALTER DATABASE DatabaseName> SET PARTNER FAILOVER;

2、主服務(wù)器Down掉,備機(jī)緊急啟動(dòng)并且開(kāi)始服務(wù)

--備機(jī)執(zhí)行:

USE master;
ALTER DATABASE DatabaseName> SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS;

3、原來(lái)的主服務(wù)器恢復(fù),可以繼續(xù)工作,需要重新設(shè)定鏡像

4、原來(lái)的主服務(wù)器恢復(fù),可以繼續(xù)工作

--默認(rèn)情況下,事務(wù)安全級(jí)別的設(shè)置為 FULL,即同步運(yùn)行模式,而且SQL Server 2005 標(biāo)準(zhǔn)版只支持同步模式。

--關(guān)閉事務(wù)安全可將會(huì)話切換到異步運(yùn)行模式,該模式可使性能達(dá)到最佳。

USE master;
ALTER DATABASE DatabaseName> SET PARTNER SAFETY FULL; --事務(wù)安全,同步模式
ALTER DATABASE DatabaseName> SET PARTNER SAFETY OFF; --事務(wù)不安全,異步模式

您可能感興趣的文章:
  • sqlserver 2000數(shù)據(jù)庫(kù)同步 同步兩個(gè)SQLServer數(shù)據(jù)庫(kù)的內(nèi)容
  • SQLServer 2000 數(shù)據(jù)庫(kù)同步詳細(xì)步驟[兩臺(tái)服務(wù)器]
  • SQLServer2005與SQLServer2008數(shù)據(jù)庫(kù)同步圖文教程
  • SQLServer 跨庫(kù)查詢實(shí)現(xiàn)方法
  • SqlServer2005 數(shù)據(jù)庫(kù)同步配置圖文詳解
  • SQL Server雙服務(wù)器架設(shè)并數(shù)據(jù)自動(dòng)同步教程
  • 使用Sqlserver事務(wù)發(fā)布實(shí)現(xiàn)數(shù)據(jù)同步(sql2008)
  • 通過(guò)SQL Server 2008數(shù)據(jù)庫(kù)復(fù)制實(shí)現(xiàn)數(shù)據(jù)庫(kù)同步備份
  • SqlServer2008 數(shù)據(jù)庫(kù)同步的兩種方式(發(fā)布、訂閱使用方法)
  • SQL Server 跨庫(kù)同步數(shù)據(jù)

標(biāo)簽:西藏 日喀則 寶雞 商洛 臺(tái)灣 咸寧 公主嶺

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL Server 2005 鏡像構(gòu)建手冊(cè)(sql2005數(shù)據(jù)庫(kù)同步鏡像方案)》,本文關(guān)鍵詞  SQL,Server,2005,鏡像,構(gòu)建,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL Server 2005 鏡像構(gòu)建手冊(cè)(sql2005數(shù)據(jù)庫(kù)同步鏡像方案)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于SQL Server 2005 鏡像構(gòu)建手冊(cè)(sql2005數(shù)據(jù)庫(kù)同步鏡像方案)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    鄂伦春自治旗| 雷波县| 科技| 运城市| 乌兰浩特市| 辉县市| 岚皋县| 乐清市| 故城县| 南部县| 朔州市| 卫辉市| 达孜县| 济阳县| 十堰市| 揭西县| 翼城县| 鄢陵县| 义乌市| 临朐县| 三门县| 厦门市| 泰顺县| 辉县市| 麻阳| 永安市| 金平| 庆阳市| 天柱县| 仁怀市| 霍邱县| 克东县| 昌黎县| 汝南县| 灵武市| 和田市| 绥德县| 江都市| 虹口区| 鄂托克前旗| 乐昌市|