非域環境下SQL Server mirror建立
環境:
SQLServer2012SP1
主:10.202.11.47
備:10.202.11.49
不配置見證伺服器
步驟:
第1 步:建立master key(主金鑰)
主庫中執行:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Aa000000'
檢視主金鑰是否建立:
select is_master_key_encrypted_by_server ,* from sys . databases
備庫中執行同樣操作:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Aa000000'
第2 步:建立證照使用金鑰加密
主庫中執行:
USE master
GO
CREATE CERTIFICATE Host_A_Cert
WITH Subject = 'Host_47 Certificate' ,
Expiry_Date = '2055-1-1' ; -- 過期日期
備庫中執行:
USE master
GO
CREATE CERTIFICATE Host_B_Cert
WITH Subject = 'Host_49 Certificate' ,
Expiry_Date = '2055-1-1' ; -- 過期日期
第3 步:建立endpoint
主庫中執行:
IF NOT EXISTS
( SELECT 1 FROM sys . database_mirroring_endpoints )
BEGIN
CREATE 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 )
END
如果存在endpoint則可以修改使用
SELECT * FROM sys . database_mirroring_endpoints
ALTER 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 )
備庫中執行:
IF NOT EXISTS
( SELECT 1 FROM sys . database_mirroring_endpoints )
BEGIN
CREATE 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 )
END
第4 步:備份證照
主備庫OS中建立資料夾 C:\MIRROR
主庫中執行:
BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\MIRROR\HOST_A_cert.cer' ;
備庫中執行:
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\MIRROR\HOST_B_cert.cer' ;
主備庫OS中相互copy證照
第5 步:建立登入login
主庫中執行:
CREATE LOGIN Host_B_Login WITH PASSWORD = 'Password666'
備庫中執行:
CREATE LOGIN Host_A_Login WITH PASSWORD = 'Password666'
第6 步:建立User並對映到login
主庫中執行:
CREATE USER Host_B_User For Login Host_B_Login ;
備庫中執行:
CREATE USER Host_A_User For Login Host_A_Login ;
第7 步:建立證照,並使用從夥伴伺服器中copy過來的證照匯入,再授權證照給賬號
*****************************************
如果存在則先刪除
IF EXISTS( select * from sys . certificates WHERE name = 'HOST_B_cert' )
DROP CERTIFICATE HOST_B_cert
GO
*****************************************
主庫中執行:
CREATE CERTIFICATE Host_B_Cert AUTHORIZATION Host_B_User FROM FILE = 'C:\MIRROR\Host_B_Cert.cer' ;
備庫中執行:
CREATE CERTIFICATE Host_A_Cert AUTHORIZATION Host_A_User FROM FILE = 'C:\MIRROR\Host_A_Cert.cer' ;
第8 步:授權connect on endpoint許可權至login
主庫中執行:
GRANT CONNECT ON ENDPOINT :: [Mirroring] TO [Host_B_Login]
備庫中執行:
GRANT CONNECT ON ENDPOINT :: [Mirroring] TO [Host_A_Login]
第9 步:備份還原db
主庫中執行:
右鍵需要做mirror的DB->Tasks->back up...
Backup type選擇Full,並設定back up to:備份檔案目錄,之後點OK完成Full backup
再Backup type選擇Transaction log,並設定back up to:備份檔案目錄, Options->Overwrite media->Back up to the existing media set,之後點OK完成Transaction backup
備庫中執行:
右鍵database->restore database
Device選擇主庫已備份的檔案
Options->recovery state:選擇restore with norecovery模式還原,否則會報錯Msg 1416
點選OK
第10 步:開啟mirror
在備庫上執行( 必須備庫上先執行 ):
IP TCP://10.202.11.47:5022 為主庫IP
ALTER DATABASE mesdb SET PARTNER = 'TCP://10.202.11.47:5022' ;
在主庫上執行:
IP TCP://10.202.11.49:5022 為備主庫IP
ALTER DATABASE mesdb SET PARTNER = 'TCP://10.202.11.49:5022' ;
此時,mirror已經開啟。主庫狀態已變為principal, synchronized
另,根據需求可以修改mirror為high performance模式(預設試high safety)
ALTER DATABASE mesdb SET SAFETY OFF
第11 步:可以對備庫mirror DB建立只讀快照DB(選用)
備庫中執行:
create database snap_mesdb
on ( name = mesdb , -- 檔案邏輯名,需要和 mes 中一致
filename = 'c:\db_snapshot\snap_mes_1.ss' –- 快照物理檔名,可隨便取
)
as snapshot of mesdb --- 需要做快照的 DB
至此,非域環境中SQL Server mirror的搭建完成
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25583515/viewspace-2636654/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 2000非域環境下資料庫異機備份SQLServer資料庫
- 域環境下配置連線sql server 的asp.net網站SQLServerASP.NET網站
- SQL Server 2008 建立非聚集索引SQLServer索引
- 非掃描式定位攻擊域內SQL ServerSQLServer
- 建立Python虛擬環境——下Python
- Centos7下搭建Laravel環境(非docker)CentOSLaravelDocker
- 修改SQL Server 2005執行環境SQLServer
- 在域環境下對賬戶的操作
- SQL Server索引 - 非聚集索引SQLServer索引
- gym建立環境、自定義gym環境
- 開發環境下PP檔案的建立開發環境
- gdb linux下eclipse環境的建立LinuxEclipse
- Linux環境下建立FTP使用者LinuxFTP
- windows server 2003下搭建amp環境WindowsServer
- SUSE11環境下NFS Server搭建過程NFSServer
- 刪除Linux非rac環境下的ASM例項LinuxASM
- 在Windows下如何建立指定的虛擬環境Windows
- SQL Server 跨域查詢SQLServer跨域
- Docker 環境下 Vue dev 跨域的深刻回憶DockerVuedev跨域
- windows環境下Django環境搭建WindowsDjango
- 刪除Linux非rac環境下的ASM例項(轉)LinuxASM
- 建立索引——提高SQL Server效能索引SQLServer
- maven環境下建立一個spring的java工程MavenSpringJava
- 【ASM學習】在windows 環境下建立ASM例項ASMWindows
- SQL Server建立Linked Server訪問OracleSQLServerOracle
- Jmeter除錯工具---HTTP Mirror ServerJMeter除錯HTTPServer
- python pipenv建立環境Python
- SQL Server下載SQLServer
- AD域環境的搭建 基於Server 2008 R2Server
- Windows環境下的Nginx環境搭建WindowsNginx
- 執行環境和作用域
- 執行環境及作用域
- 操作 WebSphere Process Server 環境概述WebServer
- 【QT6】pycharm整合qt desinger(非anaconda等環境下)QTPyCharm
- SQL Server不可以增加非空列SQLServer
- 適用於SQL Server生產環境DBA的七大技巧SQLServer
- Docker-compose搭建ELK環境並同步MS SQL Server資料DockerSQLServer
- Mac 下 vue 開發環境的搭建以及專案建立MacVue開發環境