Sqlserver 2012 for windows 2012ミラーライブラリ構築と読み取り操作


目次
 
1.テスト検証環境
2、相互信頼の確立
2.1、メインライブラリの操作
2.2、ミラーライブラリ操作
3、メインライブラリデータの同期
3.1、メインライブラリ
3.2、ミラーライブラリ
4、ミラーmap関係を確立する
4.1、ミラーライブラリ
4.2、メインライブラリ
5、スナップショットを使用してデータベースを読む
6、ミラーライブラリの取り外し

1.テスト検証環境


 
サーバーの役割
マシン名
IP
SQL Server Ver(select @@VERSION)
db
WIN-82QUK19NNLH
192.168.68.137
Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
mirror db
Winbak
192.168.68.139
Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 

2、相互信頼の確立


2.1、メインライブラリの操作

-- 
USE master   
GO   
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Pa$$w0rd';

select top 100 is_master_key_encrypted_by_server,* from sys.databases;



-- , 
USE master   
GO   
CREATE CERTIFICATE Host_A_Cert    
WITH Subject = 'Host_P Certificate',   
Expiry_Date = '2050-1-1'; --  


-- , 
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 Host_A_Cert, ENCRYPTION = REQUIRED Algorithm AES, ROLE =   
            ALL );   
    END 

-- 
BACKUP CERTIFICATE Host_A_Cert   
TO FILE = 'C:\mirror\Host_A_Cert.cer';
   
-- 

CREATE LOGIN Host_B_Login WITH PASSWORD = 'Pa$$w0rd';


-- , Step 5 
CREATE USER Host_B_User For Login Host_B_Login;

-- 
CREATE CERTIFICATE Host_B_Cert   
AUTHORIZATION Host_B_User   
FROM FILE = 'C:\mirror\Host_S_Cert.cer';  


select * from sys.certificates;

-- Step 5 
GRANT CONNECT ON ENDPOINT::[DatabaseMirroring] TO [Host_B_Login];  






2.2、ミラーライブラリ操作

-- 
USE master   
GO   
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Pa$$w0rd';

select top 100 is_master_key_encrypted_by_server,* from sys.databases;



-- , 
USE master   
GO   
CREATE CERTIFICATE Host_S_Cert    
WITH Subject = 'Host_S Certificate',   
Expiry_Date = '2050-1-1'; --  


-- 
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 Host_S_Cert, ENCRYPTION = REQUIRED Algorithm AES, ROLE =   
            ALL );   
    END 

-- , 
BACKUP CERTIFICATE Host_A_Cert   
TO FILE = 'C:\miroor\Host_S_Cert.cer';
   
-- 

CREATE LOGIN Host_A_Login WITH PASSWORD = 'Pa$$w0rd';


-- , Step 5 
CREATE USER Host_A_User For Login Host_A_Login;

-- 
CREATE CERTIFICATE Host_A_Cert   
AUTHORIZATION Host_A_User   
FROM FILE = 'C:\miroor\Host_A_Cert.cer';  

-- Step 5 
GRANT CONNECT ON ENDPOINT::[DatabaseMirroring] TO [Host_A_Login];  






 

3、メインライブラリデータの同期


3.1、メインライブラリ

BACKUP DATABASE test TO DISK='c:\bak\db.bak' WITH FORMAT 
GO 


CREATE TABLE test.dbo.TB_test(ID int) 
GO

BACKUP LOG test TO DISK='c:\bak\db_log.bak' WITH FORMAT 
GO 

3.2、ミラーライブラリ

RESTORE DATABASE test FROM DISK='c:\bak\db.bak' WITH REPLACE,NORECOVERY 
GO 
-- ( ,  

RESTORE LOG test FROM DISK='c:\bak\db_log.bak' WITH NORECOVERY 
GO 


4、ミラーmap関係を確立する


4.1、ミラーライブラリ

ALTER DATABASE [test] 
    SET PARTNER = 'TCP://192.168.68.137:5022';
GO

4.2、メインライブラリ

ALTER DATABASE [test] 
    SET PARTNER = 'TCP://192.168.68.138:5022';
GO

 

5、スナップショットを使用してデータベースを読む


スナップショット・ライブラリは、作成された時点のデータのみを読み込むことができます.
create database snap_test2
on ( name = test ,filename = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\test_data_1902.ss')
AS SNAPSHOT OF test;
go

6、ミラーライブラリの取り外し


 
alter database test set partner off;

restore database test with recovery;