SQLServer 미 러 기능 완전 구현

6862 단어 SQLServer거울 상
도 메 인 환경 에서 저 는 성 과 를 설정 하지 않 았 습 니 다.도 메 인 사용자 의 원인 일 수도 있 습 니 다.도 메 인 사용 자 를 바 꾸 려 면 SQLServer 를 다시 시작 해 야 하기 때문에 이 방법 은 포기 하고 인증서 형식 만 사용 할 수 있 습 니 다.환경:호스트:192.168.10.2(코드 A)미 러:192.168.10.1(코드 B,이따가 설명 하기 편리 함)(조건 이 제한 되 어 있 습 니 다.저 는 인증 서버 를 하지 않 았 습 니 다.)두 서버 모두 SQLServer 2005 입 니 다.먼저 호스트 호스트 에서 다음 SQL
 
--
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password';
GO
-- 10.2
CREATE CERTIFICATE As_A_cert
WITH SUBJECT = 'As_A_cert',
START_DATE = '09/02/2011',
EXPIRY_DATE = '01/01/2099';
GO
-- 10.2
CREATE ENDPOINT Endpoint_As
STATE = STARTED
AS TCP (
LISTENER_PORT=5022,
LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING (
AUTHENTICATION = CERTIFICATE As_A_cert,
ENCRYPTION = REQUIRED ALGORITHM RC4,
ROLE = ALL
);
GO
주 를 실행 하도록 설정 합 니 다.데이터 베 이 스 를 설정 하 는 미 러 포트 에 주의해 야 합 니 다.5022.--10.2 에 있 는 인증 서 를 백업 하고 10.1 에 BACKUP CERTIFICATE as 복사A_cert TO FILE = 'D:\As_A_cert.cer'; GO 주:인증서 A 를 백업 하고 미 러 서버 B 에 인증서 A 를 복사 합 니 다.미 러 서버 설정
 
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password';
GO
-- 10.1 B
CREATE CERTIFICATE As_B_cert
WITH SUBJECT = 'As_B_cert',
START_DATE = '09/2/2011',
EXPIRY_DATE = '01/01/2099';
GO
-- 10.1 B
CREATE ENDPOINT Endpoint_As
STATE = STARTED
AS TCP (
LISTENER_PORT=5022
, LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING (
AUTHENTICATION = CERTIFICATE As_B_cert
, ENCRYPTION = REQUIRED ALGORITHM AES
, ROLE = ALL
);
GO
-10.1 B 의 인증 서 를 백업 하고 10.2A 에 BACKUP CERTIFICATE as 복사B_cert TO FILE = 'D:\As_B_cert.cer'; GO 역시 백업 한 인증서 B 를 A 서버 에 복사 합 니 다.미 러 로그 인 에 사용 할 계 정 을 만 들 고 A 에서 실행-교환 인증서,동기 로그 인
 
CREATE LOGIN B_login WITH PASSWORD = 'password';

CREATE USER B_user FOR LOGIN B_login;

CREATE CERTIFICATE As_B_cert AUTHORIZATION B_user FROM FILE = 'D:\As_B_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_Bs TO [B_login];
이 B 에서 실행
 
-- ,
-- Login
CREATE LOGIN A_login WITH PASSWORD = 'password';

CREATE USER A_user FOR LOGIN A_login;

CREATE CERTIFICATE As_A_cert AUTHORIZATION A_user FROM FILE = 'D:\As_A_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_As TO [A_login];
되 었 습 니 다.다음은 전체 백업 A 서버 의 Test 라 이브 러 리
 
--
USE master;
ALTER DATABASE Test SET RECOVERY FULL;
GO
BACKUP DATABASE Test
TO DISK = 'D:\SQLServerBackups\Test.bak'
WITH FORMAT;
GO
BACKUP LOG Test TO DISK = 'D:\SQLServerBackups\Test.bak';
GO
-백업 파일 을 B 에 복사 합 니 다.전체 백업 을 실행 해 야 합 니 다.B 서버 에서 데이터 베 이 스 를 완전히 환영 합 니 다.하나씩 말 하 다.만약 에 우리 가 다음 과 같은 SQL 을 직접 실행 합 니 다.
 
RESTORE DATABASE Test
FROM DISK = 'D:\Back\Test.bak'
WITH NORECOVERY
GO
RESTORE LOG Test
FROM DISK = 'D:\Back\Test_log.bak'
WITH FILE=1, NORECOVERY
GO
[code]


3154, 16, 4, 1
'Test' 。
3013, 16, 1, 1

, , sp_addumpdevice 。

sp_addumpdevice 。 。
[code]
exec sp_addumpdevice 'disk','Test_backup',
'E:\backup\Test.bak'
exec sp_addumpdevice 'disk','Test_log_backup',
'E:\backup\Test_log.bak'
go
성공 한 후에 우 리 는 복원
 
RESTORE DATABASE Test
FROM Test_backup
WITH DBO_ONLY,
NORECOVERY,STATS;
go
RESTORE LOG Test
FROM Test_log_backup
WITH file=1,
NORECOVERY;
GO
을 수행 합 니 다.여기 서 이전에 데이터 베 이 스 를 여러 번 백업 한 적 이 있다 면 여러 개의 백업 집합 이 생 길 것 입 니 다.그래서 여기 file 은 1 로 지정 할 수 없습니다.이 오 류 는 메시지 4326,레벨 16,상태 1,첫 번 째 줄 의 백업 집중 로 그 는 LSN 3600000001430001 에서 종 료 될 수 있 습 니 다.이 LSN 은 너무 이 르 기 때문에 데이터베이스 에 적용 할 수 없습니다.LSN 3600000001840001 을 포함 하 는 새로운 로그 백업 을 복원 할 수 있 습 니 다.이 말 을 통 해 이 백업 파일 의 백업 집합 을 조회 할 수 있 습 니 다 restore headronly from disk='E:\backup\Testlog.bak'마지막 번 호 를 찾 으 면 file 에 지정 하면 됩 니 다.또 주의해 야 할 것 은 첫 번 째 완전 복구 때 NORECOVERY 를 지정 해 야 한 다 는 점 이다.이로써 모든 준비 작업 이 완료 되 었 습 니 다.미 러 를 실행 하기 시 작 했 습 니 다.먼저 미 러 서버 에서 ALTER DATABASE Test SET PARTNER='TCP:/192.168.10.2:5022'를 실행 합 니 다.성공 한 후에 호스트 에서 ALTER DATABASE Test SET PARTNER='TCP:/192.168.10.2:5022'를 실행 합 니 다.이렇게 두 서버 의 미 러 가 동기 화 되 었 다.
1
이미지 삭제:
ALTER DATABASE Test SET PARTNER OFF
호스트 에 문제 가 생기 면 호스트 실행
 
USE MASTER
Go
ALTER DATABASE Test SET PARTNER FAILOVER
Go
에서 요약 합 니 다.미 러 를 만 들 때 중간 에 있 는 그 절차 가 출국 하면 다시 실행 해 야 할 때 반드시 지 워 야 할 것 을 삭제 해 야 합 니 다.검색 미 러 select*from sys.endpoints--포트 drop endpoint 삭제 EndpointAs--조회 인증서 select*from sys.symmetrickeys--인증 서 를 삭제 하고 인증 서 를 삭제 한 다음 에 메 인 키 DROP CERTIFICATE As 를 삭제 합 니 다.A_cert--홈 키 삭제 DROP MASTER KEY--미 러 alter 데이터베이스 삭제set partner off--로그 인 이름 삭제 drop login sp_addumpdevice 의 문법
 
sp_addumpdevice [ @devtype = ] 'device_type'
, [ @logicalname = ] 'logical_name'
, [ @physicalname = ] 'physical_name'
]

@devtype: , disk tape, disk ;tape
windows 。
@logicalname: , 。
@physicalname: ,
참고:http://msdn.microsoft.com/zh-cn/library/ms187495(v=sql.90).aspxhttp://msdn.microsoft.com/zh-cn/library/ms187014.aspxhttp://msdn.microsoft.com/zh-cn/library/ms186289.aspx

좋은 웹페이지 즐겨찾기