亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

實(shí)驗(yàn)二:SQL server 2005高可用性之----數(shù)據(jù)庫(kù)

系統(tǒng) 2090 0

如轉(zhuǎn)載,請(qǐng)注明出處: http://blog.csdn.net/robinson_0612/archive/2009/11/04/4769060.aspx

?

??? SQL server 2005高可用性之?dāng)?shù)據(jù)庫(kù)鏡像,是SQL server 2005的新技術(shù)之一,是一種基于軟件的高可用性解決方案,可以對(duì)不同服務(wù)器或同一服務(wù)器不同實(shí)例之間的數(shù)據(jù)庫(kù)實(shí)驗(yàn)無數(shù)據(jù)延遲,自動(dòng)故障轉(zhuǎn)移的熱備份。數(shù)據(jù)庫(kù)鏡像是基于數(shù)據(jù)庫(kù)級(jí)別的,只適用于使用完整恢復(fù)模式的數(shù)據(jù)庫(kù)。

?

??? 一、實(shí)驗(yàn)?zāi)康模赫莆誗QL server 2005數(shù)據(jù)庫(kù)鏡像原理并配置數(shù)據(jù)庫(kù)鏡像、監(jiān)控鏡像狀態(tài)及實(shí)現(xiàn)故障轉(zhuǎn)移。

?

??? 二、數(shù)據(jù)庫(kù)鏡像的組成

????????? 數(shù)據(jù)庫(kù)鏡像由二個(gè)數(shù)據(jù)庫(kù)必須的數(shù)據(jù)庫(kù)角色組成,一個(gè)是主體服務(wù)器角色,一個(gè)是鏡像服務(wù)器角色。還有一個(gè)可選的服務(wù)器角色為見證服務(wù)器角色。

???????? 1. 主體服務(wù)器(Principal Role)之主體數(shù)據(jù)庫(kù),主體數(shù)據(jù)庫(kù)提供客戶端應(yīng)用程序的連接,查詢,更新,執(zhí)行相關(guān)事務(wù)等,主體數(shù)據(jù)庫(kù)要求使用完全恢復(fù)模式。

???????? 2. 鏡像服務(wù)器(Mirror Role)之鏡像數(shù)據(jù)庫(kù),鏡像數(shù)據(jù)庫(kù)持續(xù)同步來自主體數(shù)據(jù)庫(kù)的事務(wù),使得鏡像數(shù)據(jù)庫(kù)的數(shù)據(jù)與主體數(shù)據(jù)庫(kù)保持一致。鏡像數(shù)據(jù)庫(kù)不允許任何的連接存在,但可以對(duì)其創(chuàng)建數(shù)據(jù)庫(kù)快照來作為只讀數(shù)據(jù)庫(kù),實(shí)現(xiàn)用戶的相關(guān)查詢操作。

??????? ?3. 見證服務(wù)器(Witness Server),可選的配置,用于高可用性操作模式,通過見證服務(wù)器自動(dòng)偵測(cè)故障,實(shí)現(xiàn)角色切換和故障轉(zhuǎn)移。一個(gè)見證服務(wù)器可以為多組鏡像提供服務(wù)。

???????? 4. 角色的轉(zhuǎn)換。主體數(shù)據(jù)庫(kù)與鏡像數(shù)據(jù)庫(kù)互為伙伴,當(dāng)見證服務(wù)器偵測(cè)到主體服務(wù)器故障時(shí),在高可用性模式下,實(shí)現(xiàn)故障自動(dòng)轉(zhuǎn)移后,會(huì)自動(dòng)將主體服務(wù)器切換為鏡像服務(wù)器角色,即角色發(fā)生了互換。

?

?? 三、數(shù)據(jù)庫(kù)鏡像的工作過程

???????? 1. 主體數(shù)據(jù)庫(kù)提供服務(wù),當(dāng)有來自客戶端對(duì)主體數(shù)據(jù)庫(kù)的更新時(shí),主體數(shù)據(jù)庫(kù)將數(shù)據(jù)寫入主體數(shù)據(jù)庫(kù)的同時(shí)也將事務(wù)傳送給鏡像數(shù)據(jù)庫(kù)。

???????? 2. 鏡像數(shù)據(jù)庫(kù)Redo來自主體數(shù)據(jù)庫(kù)的事務(wù),Redo完畢后,并發(fā)送消息通知主體服務(wù)器。

???????? 3. 主體服務(wù)器收到來自鏡像服務(wù)器中鏡像數(shù)據(jù)寫入完畢的消息后,將完成結(jié)果反饋給客戶端。

?

??? 四、端點(diǎn)的作用

????????? SQL server 2005提供了多層次多級(jí)別的安全模式,連接端點(diǎn)便是安全中第一個(gè)層次級(jí)別,為實(shí)例級(jí)別,它控制著能否連接到實(shí)例。數(shù)據(jù)庫(kù)鏡像是三個(gè)實(shí)例級(jí)別的會(huì)話,故必須通過創(chuàng)建端點(diǎn)來實(shí)現(xiàn)互相通信。

???????? SQL server 2005可以創(chuàng)建兩種類型的端點(diǎn),一個(gè)是HTTP端點(diǎn),一個(gè)是TCP端點(diǎn)。我們可以創(chuàng)建TSQL, SERVICE_BROKER, 或 DATABASE_MIRRORING類型的TCP端點(diǎn)。

???????? 端點(diǎn)上安全分為三個(gè)層次,一是需要?jiǎng)?chuàng)建所需類型的端點(diǎn),但該端點(diǎn)并不能提供服務(wù)。二是在創(chuàng)建的端點(diǎn)上指定端口號(hào),并指定IP地址,數(shù)據(jù)庫(kù)缺省的端口號(hào)為5022。三是對(duì)已創(chuàng)建并指定IP及端口號(hào)采用基于Windows身份認(rèn)證或數(shù)字證書的加密功能加強(qiáng)安全。四是端點(diǎn)的狀態(tài)必須為啟動(dòng)狀態(tài),才能夠提供服務(wù),如果端點(diǎn)在停止?fàn)顟B(tài),對(duì)任意的連接,將給出錯(cuò)誤提示。五是對(duì)于已建立的會(huì)話必須擁有端點(diǎn)的connect連接權(quán)限。

?

??? 五、數(shù)據(jù)庫(kù)鏡像的操作模式

????????? 數(shù)據(jù)庫(kù)鏡像可以使用三種不同的操作模式,高可用性、高級(jí)別保護(hù)、高性能模式。在鏡像會(huì)話期間,故障發(fā)生時(shí),不同的操作模式對(duì)應(yīng)著不同的事務(wù)轉(zhuǎn)換方式。

???????? 1. 高可用性:在鏡像正常會(huì)話期間,主體服務(wù)器和鏡像服務(wù)器之間能夠持續(xù),同步的傳送事物。主體服務(wù)器中主體數(shù)據(jù)庫(kù)發(fā)送日志后等待鏡像服務(wù)器中的鏡像數(shù)據(jù)庫(kù)確認(rèn),確認(rèn)完畢后再反饋給應(yīng)用程序。高可用性模式需要使用見證服務(wù)器,參與會(huì)話的主體和鏡像實(shí)例之間不停的發(fā)送ping命令來偵測(cè)對(duì)方的狀態(tài),見證服務(wù)器則偵測(cè)主體和鏡像兩者的狀態(tài)。一旦偵測(cè)到故障發(fā)生,則主體或鏡像提交請(qǐng)求到見證服務(wù)器,由見證服務(wù)器來仲裁角色的轉(zhuǎn)換。高可用性的使用場(chǎng)景為要求提供高服務(wù)質(zhì)量、能夠自動(dòng)實(shí)現(xiàn)故障轉(zhuǎn)移、保證數(shù)據(jù)完整的場(chǎng)合。

???????? 2. 高級(jí)別保護(hù): 此模式?jīng)]有見證服務(wù)器,主體服務(wù)器和鏡像服務(wù)器之間同樣能夠持續(xù),同步的傳送事物。但由于少了見證服務(wù)器進(jìn)行仲裁,則主體和鏡像數(shù)據(jù)庫(kù)之間不能夠?qū)崿F(xiàn)故障的自動(dòng)轉(zhuǎn)移,需要手動(dòng)來實(shí)現(xiàn)角色之間的切換。高級(jí)別保護(hù)模式的使用場(chǎng)景多為高數(shù)據(jù)完整性要求、無須實(shí)現(xiàn)故障自動(dòng)轉(zhuǎn)移、對(duì)服務(wù)可用性要求相對(duì)較低的場(chǎng)合。

??????? 3. 高性能: 此模式?jīng)]有見證服務(wù)器,主體服務(wù)器和鏡像服務(wù)器之間采用異步傳送模式。主體服務(wù)器上的事務(wù)直接提交后通知應(yīng)用程序,無須等待鏡像服務(wù)器的確認(rèn),所主體數(shù)據(jù)庫(kù)和鏡像數(shù)據(jù)庫(kù)之間有延遲的現(xiàn)象存在。沒有了見證服務(wù)器進(jìn)行仲裁,主體和鏡像數(shù)據(jù)庫(kù)之間不能夠?qū)崿F(xiàn)故障的自動(dòng)轉(zhuǎn)移,需要手動(dòng)來實(shí)現(xiàn)角色之間的切換。高性能模式多使用于對(duì)性能要求高、主體鏡像服務(wù)器相對(duì)較遠(yuǎn)、允許有延遲現(xiàn)象的場(chǎng)合。

???????? 4. 事務(wù)安全性的說明:數(shù)據(jù)庫(kù)鏡像會(huì)話中數(shù)據(jù)庫(kù)的安全性可以設(shè)定為Full或Off。Full模式的特性為主體和鏡像數(shù)據(jù)庫(kù)實(shí)現(xiàn)同步傳輸,主體發(fā)送日志后需要等待鏡像數(shù)據(jù)庫(kù)的確認(rèn),主體數(shù)據(jù)庫(kù)和鏡像數(shù)據(jù)庫(kù)的日志完全一致。Off模式則表現(xiàn)為主體和鏡像使用的異步傳輸模式,主體發(fā)送日志后無須等待鏡像數(shù)據(jù)庫(kù)的確認(rèn),主體數(shù)據(jù)庫(kù)失敗時(shí),鏡像服務(wù)器上可能會(huì)丟失部分日志,使得兩者不能實(shí)時(shí)同步。

???????? 5. 仲裁: 仲裁用于設(shè)定了見證服務(wù)器的鏡像會(huì)話,用于高可用性模式。仲裁要求必須有兩個(gè)或兩個(gè)以上的服務(wù)器實(shí)例,且任一時(shí)間內(nèi)必須要有一個(gè)伙伴為數(shù)據(jù)庫(kù)提供服務(wù),當(dāng)故障發(fā)生時(shí),仲裁決定故障的轉(zhuǎn)移。

???????? 6. 幾種數(shù)據(jù)庫(kù)鏡像模式的比較,如下:???????????????????

? 操作模式 傳輸機(jī)制 事務(wù)安全 見證服務(wù)器 是否要仲裁 故障轉(zhuǎn)移類型
? 高可用性 同步 Full Y Y 自動(dòng)或手動(dòng)
? 高級(jí)別保護(hù) 同步 Full N Y 僅手動(dòng)
? 高性能 異步 Off N/A N 僅強(qiáng)制

?

??? 六、數(shù)據(jù)庫(kù)鏡像所需的環(huán)境

???????? 1. 支持?jǐn)?shù)據(jù)庫(kù)鏡像所需的版本,確保主體服務(wù)器和鏡像服務(wù)器使用相同的版本,如兩個(gè)伙伴運(yùn)行SQL server 2005標(biāo)準(zhǔn)版或SQL server 2005運(yùn)行企業(yè)版,安裝sp2以上補(bǔ)丁,否則需要使用跟蹤標(biāo)記1400來實(shí)現(xiàn)。

???????? 2. 一個(gè)主體服務(wù)器,一個(gè)鏡像服務(wù)器,一個(gè)可選的見證服務(wù)器,見證服務(wù)器可以使用任意版本的SQL server 2005。

???????? 3. 主體服務(wù)器的主體數(shù)據(jù)庫(kù)設(shè)置為 FULL恢復(fù)模式。?????

?

??? 七、本次實(shí)驗(yàn)的環(huán)境

???????? 1. windows xp pro (英文版) + sp2

???????? 2. SQL server 2005 Developer + sp3

???????? 3. 同一主機(jī)的三個(gè)實(shí)例: ROBINSON , ROBINSON/MIRROR,ROBINSON/WITNESS

???????? 4. 用于實(shí)現(xiàn)鏡像的數(shù)據(jù)庫(kù)為Performance,此Performance數(shù)據(jù)庫(kù)為SQL server 2005技術(shù)內(nèi)幕:T-SQL查詢中的腳本生成,現(xiàn)轉(zhuǎn)其腳本如下,此數(shù)據(jù)生成后大小為1GB左右,主要是日志文件較大,可以修改@max和@numorders的值來縮小數(shù)據(jù)庫(kù),也可以停止MSSQLSERVER服務(wù)后刪除日志文件,使用sp_attach_single_file_db來重新生成較小日志文件。

SET NOCOUNT ON;
USE master;
GO
IF DB_ID('Performance') IS NULL
? CREATE DATABASE Performance;
GO
USE Performance;
GO

-- Creating and Populating the Nums Auxiliary Table
IF OBJECT_ID('dbo.Nums') IS NOT NULL
? DROP TABLE dbo.Nums;
GO
CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);
DECLARE @max AS INT, @rc AS INT;
SET @max = 1000000;
SET @rc = 1;

INSERT INTO Nums VALUES(1);
WHILE @rc * 2 <= @max
BEGIN
? INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums;
? SET @rc = @rc * 2;
END

INSERT INTO dbo.Nums
? SELECT n + @rc FROM dbo.Nums WHERE n + @rc <= @max;
GO

-- Drop Data Tables if Exist
IF OBJECT_ID('dbo.Orders') IS NOT NULL
? DROP TABLE dbo.Orders;
GO
IF OBJECT_ID('dbo.Customers') IS NOT NULL
? DROP TABLE dbo.Customers;
GO
IF OBJECT_ID('dbo.Employees') IS NOT NULL
? DROP TABLE dbo.Employees;
GO
IF OBJECT_ID('dbo.Shippers') IS NOT NULL
? DROP TABLE dbo.Shippers;
GO

-- Data Distribution Settings
DECLARE
? @numorders?? AS INT,
? @numcusts??? AS INT,
? @numemps???? AS INT,
? @numshippers AS INT,
? @numyears??? AS INT,
? @startdate?? AS DATETIME;

SELECT
? @numorders?? =?? 1000000,
? @numcusts??? =???? 20000,
? @numemps???? =?????? 500,
? @numshippers =???????? 5,
? @numyears??? =???????? 4,
? @startdate?? = '20030101';

-- Creating and Populating the Customers Table
CREATE TABLE dbo.Customers
(
? custid?? CHAR(11)???? NOT NULL,
? custname NVARCHAR(50) NOT NULL
);

INSERT INTO dbo.Customers(custid, custname)
? SELECT
??? 'C' + RIGHT('000000000' + CAST(n AS VARCHAR(10)), 10) AS custid,
??? N'Cust_' + CAST(n AS VARCHAR(10)) AS custname
? FROM dbo.Nums
? WHERE n <= @numcusts;

ALTER TABLE dbo.Customers ADD
? CONSTRAINT PK_Customers PRIMARY KEY(custid);

-- Creating and Populating the Employees Table
CREATE TABLE dbo.Employees
(
? empid???? INT????????? NOT NULL,
? firstname NVARCHAR(25) NOT NULL,
? lastname? NVARCHAR(25) NOT NULL
);

INSERT INTO dbo.Employees(empid, firstname, lastname)
? SELECT n AS empid,
??? N'Fname_' + CAST(n AS NVARCHAR(10)) AS firstname,
??? N'Lname_' + CAST(n AS NVARCHAR(10)) AS lastname
? FROM dbo.Nums
? WHERE n <= @numemps;

ALTER TABLE dbo.Employees ADD
? CONSTRAINT PK_Employees PRIMARY KEY(empid);

-- Creating and Populating the Shippers Table
CREATE TABLE dbo.Shippers
(
? shipperid?? VARCHAR(5)?? NOT NULL,
? shippername NVARCHAR(50) NOT NULL
);
INSERT INTO dbo.Shippers(shipperid, shippername)
? SELECT shipperid, N'Shipper_' + shipperid AS shippername
? FROM (SELECT CHAR(ASCII('A') - 2 + 2 * n) AS shipperid
??????? FROM dbo.Nums
??????? WHERE n <= @numshippers) AS D;

ALTER TABLE dbo.Shippers ADD
? CONSTRAINT PK_Shippers PRIMARY KEY(shipperid);

-- Creating and Populating the Orders Table
CREATE TABLE dbo.Orders
(
? orderid?? INT??????? NOT NULL,
? custid??? CHAR(11)?? NOT NULL,
? empid???? INT??????? NOT NULL,
? shipperid VARCHAR(5) NOT NULL,
? orderdate DATETIME?? NOT NULL,
? filler??? CHAR(155)? NOT NULL DEFAULT('a')
);

INSERT INTO dbo.Orders(orderid, custid, empid, shipperid, orderdate)
? SELECT n AS orderid,
??? 'C' + RIGHT('000000000'
??????????? + CAST(
??????????????? 1 + ABS(CHECKSUM(NEWID())) % @numcusts
??????????????? AS VARCHAR(10)), 10) AS custid,
??? 1 + ABS(CHECKSUM(NEWID())) % @numemps AS empid,
??? CHAR(ASCII('A') - 2
?????????? + 2 * (1 + ABS(CHECKSUM(NEWID())) % @numshippers)) AS shipperid,
????? DATEADD(day, n / (@numorders / (@numyears * 365.25)), @startdate)
??????? -- late arrival with earlier date
??????? - CASE WHEN n % 10 = 0
??????????? THEN 1 + ABS(CHECKSUM(NEWID())) % 30
??????????? ELSE 0
????????? END AS orderdate
? FROM dbo.Nums
? WHERE n <= @numorders
? ORDER BY CHECKSUM(NEWID());

CREATE CLUSTERED INDEX idx_cl_od ON dbo.Orders(orderdate);

CREATE NONCLUSTERED INDEX idx_nc_sid_od_cid
? ON dbo.Orders(shipperid, orderdate, custid);

CREATE UNIQUE INDEX idx_unc_od_oid_i_cid_eid
? ON dbo.Orders(orderdate, orderid)
? INCLUDE(custid, empid);

ALTER TABLE dbo.Orders ADD
? CONSTRAINT PK_Orders PRIMARY KEY NONCLUSTERED(orderid),
? CONSTRAINT FK_Orders_Customers
??? FOREIGN KEY(custid)??? REFERENCES dbo.Customers(custid),
? CONSTRAINT FK_Orders_Employees
??? FOREIGN KEY(empid)???? REFERENCES dbo.Employees(empid),
? CONSTRAINT FK_Orders_Shippers
??? FOREIGN KEY(shipperid) REFERENCES dbo.Shippers(shipperid);

?? 八、實(shí)驗(yàn)步驟

???????? 1. 檢查Performance數(shù)據(jù)庫(kù)的還原類型是否為FULL,否則請(qǐng)修改Performance的恢復(fù)模式為FULL。

???????? 2. 從主服務(wù)器備份主數(shù)據(jù)庫(kù)后恢復(fù)到鏡像服務(wù)器中,并確保兩者數(shù)據(jù)庫(kù)處于一致狀態(tài),在恢復(fù)時(shí)指定norecovery選項(xiàng),此處也可以使用日志傳送來初始化數(shù)據(jù)庫(kù)鏡像,恢復(fù)其他的如增量備份和日志備份文件,同樣需使用norecovery選項(xiàng)。

???????? 3. 復(fù)制其他需要的對(duì)象到鏡像服務(wù)器,如logins,SSIS,Jobs等。

???????? 4. 創(chuàng)建端點(diǎn)。端點(diǎn)的創(chuàng)建需要在每個(gè)實(shí)例上創(chuàng)建,且必須是sysadmin角色的成員,創(chuàng)建時(shí)需指定端點(diǎn)角色,并對(duì)端點(diǎn)激活。

??????????? --ROBINSON :

??????????? CREATE ENDPOINT [DB_mirroring]?
?????????????? STATE=STARTED
?????????????? AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
?????????????? FOR DATA_MIRRORING (ROLE = PARTNER, AUTHENTICATION = WINDOWS NEGOTIATE,
?????????????? ENCRYPTION = SUPPORTED ALGORITHM RC4);

???????????? --ROBINSON/MIRROR:

???????????? CREATE ENDPOINT [DB_mirroring]?
?????????????? STATE=STARTED
?????????????? AS TCP (LISTENER_PORT = 5023, LISTENER_IP = ALL)
?????????????? FOR DATA_MIRRORING (ROLE = PARTNER, AUTHENTICATION = WINDOWS NEGOTIATE,
?????????????? ENCRYPTION = SUPPORTED ALGORITHM RC4);

?

???????????? --ROBINSON/WITNESS:

????????????? CREATE ENDPOINT [DB_mirroring]?
?????????????? AS TCP (LISTENER_PORT = 5024, LISTENER_IP = ALL)
?????????????? FOR DATA_MIRRORING (ROLE = WITNESS, AUTHENTICATION = WINDOWS NEGOTIATE,
?????????????? ENCRYPTION = SUPPORTED ALGORITHM RC4);

?????????????? ALTER ENDPOINT [DB_MIRRORING] STATE = STARTED;

?

????????? 5. 分別在各個(gè)實(shí)例上查看端點(diǎn)的配置情況及端點(diǎn)的狀態(tài)。

??????????? SELECT * FROM SYS.DTABASE_MIRRORING_ENDPOINTS;

??????????? GO

???????? 6. 分別在各個(gè)實(shí)例上配置數(shù)據(jù)庫(kù)鏡像的安全性,本實(shí)驗(yàn)使用的同一帳戶,故配置數(shù)據(jù)庫(kù)鏡像的安全性語句相同,如下。如要設(shè)定不同的帳戶,請(qǐng)?jiān)诟鲗?shí)例上增加Login帳戶,映射到Windows。

???????????? USE MASTER

???????????? GO

???????????? GRANT CONNECT ON ENDPOINT::”db_mirroring” TO ”robinson/SQL_mirror”;

???????????? GO

???????? 7. 單擊各個(gè)實(shí)例的Security,Logins下的SQL_mirror帳戶,查看其Properities,在Securables可以看到SQL_mirror被授予了connect權(quán)限。

???????? 8. 啟動(dòng)數(shù)據(jù)庫(kù)鏡像

???????????? 在鏡像服務(wù)器上執(zhí)行以下語句,用已指明主服務(wù)器的伙伴。注意應(yīng)先在鏡像服務(wù)器上指明主服務(wù)器伙伴,然后才在主服務(wù)器上指明鏡像伙伴。

???????????? ALTER DATABASE Performance SET PARTNER = N ‘TCP://Robinson:5022’;? ----在鏡像服務(wù)器上執(zhí)行

???????????? GO

???????????? ALTER DATABASE Performance SET PARTNER = N ‘TCP://Robinson:5023’;? ----在主服務(wù)器上執(zhí)行

???????????? GO

???????????? ALTER DATABASE Performance SET WITNESS = N ‘TCP://Robinson:5024’;? ----在主服務(wù)器上執(zhí)行

???????????? GO

???????? 9. 配置數(shù)據(jù)庫(kù)事務(wù)鏡像安全級(jí)別

???????????? ALTER DATABASE Performance SET SAFETY FULL;

???????????? GO

???????? 10. 查看數(shù)據(jù)庫(kù)鏡像的狀態(tài)

?????????????? 可以在主服務(wù)器上選擇主體數(shù)據(jù)庫(kù),再單擊屬性,單擊鏡像,可以查看當(dāng)前鏡像數(shù)據(jù)庫(kù)所使用的狀態(tài),端口及鏡像模式等,也可以通過以下視圖來查看當(dāng)前鏡像的狀態(tài)。

?????????????? 使用數(shù)據(jù)庫(kù)鏡像監(jiān)視器。展開主服務(wù)器的主體數(shù)據(jù)庫(kù),右單擊主體數(shù)據(jù)庫(kù),單擊任務(wù), 單擊啟動(dòng)數(shù)據(jù)庫(kù)鏡像。在“數(shù)據(jù)庫(kù)鏡像監(jiān)視器”對(duì)話框中,單擊“注冊(cè)鏡像數(shù)據(jù)庫(kù)”以注冊(cè)一個(gè)或多個(gè)鏡像數(shù)據(jù)庫(kù)。

?????????????? 使用動(dòng)態(tài)管理視圖監(jiān)控鏡像數(shù)據(jù)的轉(zhuǎn)態(tài)。

??????????????? SYS.DATABASE_MIRRORING:此視圖顯示一個(gè)服務(wù)器實(shí)例中每個(gè)鏡像數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)鏡像元數(shù)據(jù)。

??????????????? SYS.DATABASE_MIRRORING_ENDPOINTS:顯示有關(guān)服務(wù)器實(shí)例的數(shù)據(jù)庫(kù)鏡像的端點(diǎn)信息。

??????????????? SYS.DATABASE_MIRRORING_WITNESSES:顯示服務(wù)器實(shí)例為見證服務(wù)器的每個(gè)會(huì)話的數(shù)據(jù)庫(kù)鏡像元數(shù)據(jù)。

??????????????? SYS.DM_DB_MIRRORING_ CONNECTIONS:為每個(gè)數(shù)據(jù)庫(kù)鏡像網(wǎng)絡(luò)連接返回一行。

???????? 11. 鏡像數(shù)據(jù)庫(kù)故障時(shí)角色轉(zhuǎn)換的幾種方式

?????????????? 自動(dòng)故障轉(zhuǎn)移: 僅適用于高可用性,設(shè)置事務(wù)鏡像安全級(jí)別為FULL。

?????????????? 手動(dòng)故障轉(zhuǎn)移: 適用于高可用性和高級(jí)別保護(hù)模式,設(shè)置事務(wù)鏡像安全級(jí)別為FULL。

?????????????? 強(qiáng)制故障轉(zhuǎn)移: 僅適用于高性能模式,設(shè)置事務(wù)鏡像安全級(jí)別為OFF。

???????? 12. 演示幾種轉(zhuǎn)移過程

?????????????? 自動(dòng)故障轉(zhuǎn)移:在使用高可用性的配置環(huán)境中,手動(dòng)停止主體服務(wù)器,并刪除主體數(shù)據(jù)庫(kù)日志文件后,再啟動(dòng)主體服務(wù)器,觀察主體和鏡像服務(wù)器中數(shù)據(jù)庫(kù)名后所顯示的字樣發(fā)生了變化,主體數(shù)據(jù)庫(kù)變成了鏡像數(shù)據(jù)庫(kù),鏡像修復(fù)后成了主體數(shù)據(jù)庫(kù)。??

?????????????? 手動(dòng)故障轉(zhuǎn)移:可以在無故障的情況下實(shí)現(xiàn)手動(dòng)故障轉(zhuǎn)移。在主體數(shù)據(jù)庫(kù)中執(zhí)行 ALTER DATABASE? Performance SET PARTNER FAILOVER;

?????????????? 強(qiáng)制故障轉(zhuǎn)移: 通常應(yīng)用于高性能模式中,高可用性鏡像和見證服務(wù)器均不可用時(shí),可以使用此方法快速修復(fù),但此方法容易以導(dǎo)致數(shù)據(jù)的丟失。強(qiáng)制故障轉(zhuǎn)移語句:ALTER DATABASE? Performance SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS;我們對(duì)上述采用了高可用性模式的實(shí)驗(yàn)切換到高性能模式并實(shí)行強(qiáng)制故障轉(zhuǎn)移,執(zhí)行下述語句:

?????????????? ALTER DATABASE Performance SET WITNESS OFF;????? ----在主服務(wù)器上執(zhí)行,停用Witness

?????????????? GO

?????????????? ALTER DATABASE Performance SET SAFETY OFF;???????? ----在主服務(wù)器上執(zhí)行,關(guān)閉事務(wù)安全?

?????????????? GO

?????????????? ----然后停止主服務(wù)器的SQL server服務(wù)

?????????????? ALTER DATABASE Performance SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS;? ----在鏡像服務(wù)器上執(zhí)行

?????????????? GO??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ----用于強(qiáng)制轉(zhuǎn)移故障

?????????????? ALTER DATABASE Performance SET SAFETY OFF;???????? ----在鏡像服務(wù)器上執(zhí)行后,鏡像服務(wù)器開始提供服務(wù),此句可以不用執(zhí)行。

?????????????? GO

?????????????? 執(zhí)行上述操作后,鏡像服務(wù)器開始提供服務(wù),原主體服務(wù)器處于掛起狀態(tài),此時(shí)可以使用以下SQL語句來恢復(fù)掛起的數(shù)據(jù)庫(kù)。

?????????????? ALTER DATABASE? Performance SET PARTNER RESUME;?????????? ----在新的主體服務(wù)器上執(zhí)行

?????????????? GO

???????? 13. 實(shí)現(xiàn)客戶端重定向

?????????????? 自動(dòng)重定向連接,使用ADO.NET或者SQL Native Client能夠自動(dòng)連接到故障轉(zhuǎn)移后的伙伴,連接字符串中必須指定故障轉(zhuǎn)移伙伴。

??????????????? ConnectionString=”Data Source=computerA;Failover Partner=computerB;

??????????????? Initial Catalog=Profermance;Integrated Security=True;”

?

???????? 14. 對(duì)鏡像數(shù)據(jù)庫(kù)創(chuàng)建快照用作報(bào)表服務(wù)器等,減輕主數(shù)據(jù)的負(fù)載

???????????????? 鏡像數(shù)據(jù)庫(kù)的不可直接訪問的特性,使得創(chuàng)建數(shù)據(jù)庫(kù)的快照用作報(bào)表服務(wù)器的特性得以體現(xiàn)。用戶可以通過快照來訪問鏡像實(shí)例上的數(shù)據(jù)。當(dāng)發(fā)生故障轉(zhuǎn)移后,快照仍保留在原實(shí)例上,以下我們對(duì)Performance的鏡像數(shù)據(jù)庫(kù)創(chuàng)建快照。

??????????????? CREATE DATABASE Performance_snap ON?

??????????????? (NAME = N’Performance_data’,FILENAME = N‘D:/SQL_Data/Performance_mirror/Performance.ss’)

??????????????? AS SNAPSHOT OF Performance;

??????????????? GO

??????? 15. 及時(shí)刪除不用的快照,減輕鏡像服務(wù)器的負(fù)載。

?

?

?

?

實(shí)驗(yàn)二:SQL server 2005高可用性之----數(shù)據(jù)庫(kù)鏡像


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 天天综合网天天做天天受 | 国产呦精品系列在线 | 4虎影院永久地址www | 日本三级日本三级人妇三级四 | 夜夜骑加勒比 | 久久久久欧美精品三级 | 国产精品亚洲综合一区在线观看 | 久久99久久精品国产只有 | 一道本一区二区三区 | 成人影院免费在线观看 | 欧美精品blacked中文字幕 | 亚洲精品综合久久中文字幕 | 99久久精品国产片 | 欧美成人怡红院在线观看 | 亚洲性事| 免费国产成人综合 | 综合精品一区 | 久久在线免费观看 | 国产精品2020观看久久 | 免费国产a国产片高清不卡 免费国产阿v视频在线观看 | 毛片爱做的片 | 国产啪爱视频精品免视 | 五月狠狠亚洲小说专区 | 九九视频免费在线 | 美国美女一级毛片免费全 | 亚洲一区二区三区高清网 | 欧美综合图区亚欧综合图区 | 欧美真人毛片动作视频 | 国产色在线 | 真实偷清晰对白在线视频 | 日韩三级久久 | 欧美日韩视频在线播放 | 精品日本久久久久久久久久 | 性做久久久久久免费观看 | 久久精品国产99精品最新 | 九九影院理论片在线观看 | 中文字幕第13亚洲另类 | 成人ab片| 人人爱天天做夜夜爽88 | 日韩欧美亚洲国产一区二区三区 | 久久99亚洲精品久久久久网站 |