国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

mssql2005數據庫鏡像搭建教程

2024-08-31 01:00:58
字體:
來源:轉載
供稿:網友

一 概述

數據庫鏡像是SQL SERVER 2005用于提高數據庫可用性的新技術。數據庫鏡像將事務日志記錄直接從一臺服務器傳輸到另一臺服務器,并且能夠在出現故障時快速轉移到備用服務器。可以編寫客戶端程序自動重定向連接信息,這樣一旦出現故障轉移就可以自動連接到備用服務器和數據庫。

優勢:數據庫鏡像可以在不丟失已提交數據的前提下進行快速故障轉移,無須專門的硬件,并且易于配置和管理。

二 環境準備

操作系統:Window 2003 enterprise sp2(至少兩臺,如要啟用自動故障轉移,必需三臺)

SQL版本:MSSQL SERVER 2005 SP3

檢查SQL SERVER版本:

exec xp_msver

select SERVERPROPERTY('productlevel')

數據庫準備:準備一個數據庫:ccerp_jzt ,備份此數據庫還原到另外一臺機器上,另外一臺必須是with no recovery

這里我假設服務器A,B,C

A為主體服務器,B為鏡像服務器,C為見證服務器

mssql2005數據庫鏡像搭建教程restore database ccerp_jzt from disk=N'f:/databak/ccerp_jzt_backup_200911250100.bak' with replace,recovery,

move 'ccerp_ydswzip_Data' to 'd:/data/ccerp_jzt.mdf',

move 'ccerp_ydswzip_Log' to 'd:/data/ccerp_jzt_log.ldf'

exec sp_helpdb 'ccerp_jzt'

backup database ccerp_jzt to disk =N'f:/databak/sk.bak' with init

--更改恢復模式

alter database ccerp_jzt set recovery full

B服務器:

CREATE DATABASE ccerp_jzt

ON

( NAME = Sales_dat,

FILENAME = 'd:/data/ccerp_jzt.mdf',

SIZE = 10

)

LOG ON

( NAME = 'ccerp_jzt_log',

FILENAME = 'd:/data/ccerp_jzt_log.ldf',

SIZE = 5MB

)

GO

restore filelistonly from disk=N'f:/xxzx/data/sk.bak'

use master

go

restore database ccerp_jzt from disk=N'f:/xxzx/data/sk.bak' with replace,norecovery,

exec sp_helpdb 'ccerp_jzt'

C服務器只要裝上SQL SERVER 2005就可以,無需其他準備

準備完成后如下圖所示:

mssql2005數據庫鏡像搭建教程mssqlserver服務的的登陸方式為域帳戶登陸方式:

進入windows服務管理控制臺,更改服務登陸帳戶,使域賬戶有更改MSSQL SERVER服務狀態的權限.三臺機器都做同樣設置

mssql2005數據庫鏡像搭建教程

3.1.2建立端點:

通過圖形界面建立端點:

啟動SQLWB,按圖一直下一步

mssql2005數據庫鏡像搭建教程

用域帳戶登陸

如果成功則:

mssql2005數據庫鏡像搭建教程主體服務器上執行

--backup certificate

BACKUP CERTIFICATE HOST_B_cert TO FILE = 'e:/HOST_B_cert.cer'

見證服務器上執行:

BACKUP CERTIFICATE HOST_c_cert TO FILE = 'e:/HOST_C_cert.cer'

將備份到的證書進行互換,即HOST_A_cert.cer復制到B機的e:/ 將HOST_B_cert.cer復制到A機的E:/,也就是每臺服務器有三個證書

三:建立登陸用戶:

鏡像服務器上執行:

--Create user

CREATE LOGIN HOST_B_login WITH PASSWORD = 'test';

CREATE USER HOST_B_user FOR LOGIN HOST_B_login;

CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'e:/HOST_B_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];

CREATE LOGIN HOST_C_login WITH PASSWORD = 'test';

CREATE USER HOST_C_user FOR LOGIN HOST_c_login;

CREATE CERTIFICATE HOST_c_cert AUTHORIZATION HOST_c_user FROM FILE = 'e:/HOST_c_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_c_login];

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];

--query user sid

select loginname,name,sid From syslogins

主體服務器上執行:

--Create user

CREATE LOGIN HOST_A_login WITH PASSWORD = 'test';

CREATE USER HOST_A_user FOR LOGIN HOST_A_login;

CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'e:/HOST_A_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];

-- add witness user

CREATE LOGIN HOST_C_login WITH PASSWORD = 'test';

CREATE USER HOST_C_user FOR LOGIN HOST_c_login;

CREATE CERTIFICATE HOST_c_cert AUTHORIZATION HOST_c_user FROM FILE = 'e:/HOST_c_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_c_login];

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];

--query sid

select loginname,name,sid From syslogins

見證服務器上執行:

--Create user

CREATE LOGIN HOST_A_login WITH PASSWORD = 'test';

CREATE USER HOST_A_user FOR LOGIN HOST_A_login;

CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'e:/HOST_A_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];

--add user host_b_login to have pemission to access witness

CREATE LOGIN HOST_B_login WITH PASSWORD = 'test';

CREATE USER HOST_B_user FOR LOGIN HOST_B_login;

CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'e:/HOST_B_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];

grant connect on endpoint::endpoint_mirroring to HOST_C_login

USE master;

exec sp_addlogin

@loginame = 'HOST_B_login',

@passwd = 'test',

@sid = 0x1A914CA3D1D00C4793EBC96E4C4F4352 ;

ALTER DATABASE ccerp_jzt SET PARTNER = 'TCP://192.168.137.32:5022';

四.建立鏡像:

先在鏡像服務器上執行:

ALTER DATABASE ccerp_jzt SET PARTNER = 'TCP://192.168.137.44:5022';

接著主體服務器執行:

ALTER DATABASE ccerp_jzt SET PARTNER = 'TCP://192.168.137.32:5022';

ALTER DATABASE ccerp_jzt SET witness = 'TCP://192.168.137.49:5022';

至此引證書建立完畢

mssql2005數據庫鏡像搭建教程

1、主備互換

--主機執行:

1USE master;
2ALTER DATABASE <DatabaseName> SET PARTNER FAILOVER;

2、主服務器Down掉,備機緊急啟動并且開始服務

--備機執行:

1USE master;
2ALTER DATABASE <DatabaseName> SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS; 

3、原來的主服務器恢復,可以繼續工作,需要重新設定鏡像

1--備機執行:
2USE master;
3ALTER DATABASE <DatabaseName> SET PARTNER RESUME; --恢復鏡像
4ALTER DATABASE <DatabaseName> SET PARTNER FAILOVER; --切換主備 

4、原來的主服務器恢復,可以繼續工作

--默認情況下,事務安全級別的設置為 FULL,即同步運行模式,而且SQL Server 2005 標準版只支持同步模式。

--關閉事務安全可將會話切換到異步運行模式,該模式可使性能達到最佳。

1USE master;
2ALTER DATABASE <DatabaseName> SET PARTNER SAFETY FULL; --事務安全,同步模式
3ALTER DATABASE <DatabaseName> SET PARTNER SAFETY OFF; --事務不安全,異步模式

錯誤說明:
消息1498,級別16,狀態3,第1 行

默認情況下,數據庫鏡像是被禁用的。當前提供的數據庫鏡像僅供評估使用,并不應使用于生產環境中。若要以評估為目的啟用數據庫鏡像,請在啟動過程中使用跟蹤標志1400。有關跟蹤標志和啟動選項的詳細信息,請參閱SQL Server 聯機叢書。

解決辦法:沒打SP1以上補丁.強烈建議打SP3

消息1475,級別16,狀態2,第1 行

由于"ccerp_jzt" 數據庫可能有尚未備份的大容量日志記錄更改,所以無法啟用數據庫鏡像。必須在鏡像上還原主體數據庫的上一次日志備份。

主體上:backup log ccerp_jzt to disk ='e:/log.trn' with no_truncate

鏡像上:restore log ccerp_jzt from disk='e:/log.trn' with norecovery

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁津县| 晋州市| 乌鲁木齐县| 新津县| 建始县| 大港区| 昭苏县| 铜陵市| 大新县| 华阴市| 娱乐| 黔南| 江安县| 新邵县| 临朐县| 长泰县| 阿坝县| 亳州市| 正阳县| 厦门市| 沙湾县| 定兴县| 平邑县| 奈曼旗| 昔阳县| 远安县| 都江堰市| 华亭县| 凉城县| 宽城| 和平区| 清涧县| 湖北省| 富阳市| 汪清县| 黄平县| 宝山区| 公安县| 灌南县| 开封市| 年辖:市辖区|