고 가용성에서 SQL Server 2012 데이터베이스 복원


13

다른 인스턴스의 다른 데이터베이스와 동기화 된 상시 가동 고 가용성 모드 인 데이터베이스가 있습니다. ?를 .bak사용하여 파일에서 기본 데이터베이스로 어떻게 복원 할 수 T-SQL있습니까?

고 가용성에 익숙하지 않아 복원을 수행하기 전에 데이터베이스를 고 가용성에서 꺼내고 다시 고 가용성으로 되돌려 야하지만 확실하지 않습니다.

나는 AlwaysOn여전히 활성화 되어있는 동안 기본으로 바로 복원 할 수 있기를 바랍니다 . 보조와 자동 동기화됩니다.

답변:


15

당신의 고문을 들어보십시오. 백업을 복원하면 기본적으로 데이터베이스 스키마와 데이터가 교체됩니다. WITH NORECOVERY를 사용하여 복제본 버전을 복원 상태로 유지하면서 동기화를 해제하고 HA에서 DB를 제거하고 기본 및 복제본에서 복원을 수행해야합니다. 백업이 완료되면 DB를 다시 HA에 넣고 동기화를 다시 시작하십시오.

HA는 미러링과 매우 유사하며 유사한 기술을 사용합니다. HA DB도 비슷하게 취급하려고합니다.

코드는 다음과 유사합니다.

-기본

ALTER AVAILABILITY GROUP MyAG REMOVE DATABASE AdventureWorks2012;

-기본

RESTORE DATABASE AdventureWorks2012
   FROM AdventureWorksBackups
   WITH NORECOVERY, 
      MOVE 'AdventureWorks2012_Data' TO 
'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf', 
      MOVE 'AdventureWorks2012_Log' 
TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.

RESTORE LOG AdventureWorks2012
   FROM AdventureWorksBackups
   WITH RECOVERY;

-보조

RESTORE DATABASE AdventureWorks2012
   FROM AdventureWorksBackups
   WITH NORECOVERY, 
      MOVE 'AdventureWorks2012_Data' TO 
'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf', 
      MOVE 'AdventureWorks2012_Log' 
TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf';

RESTORE LOG AdventureWorks2012
   FROM AdventureWorksBackups
   WITH NORECOVERY;

-기본

ALTER AVAILABILITY GROUP MyAG ADD DATABASE AdventureWorks2012;

-보조

ALTER DATABASE AdventureWorks2012 SET HADR AVAILABILITY GROUP = MyAG;

위의 답변에 대한 질문 ... 제공된 코드에서 PRIMARY가 NoRecovery로 복원되었습니다. NoRecovery에서는 Replica 만 수행 할 것이라고 생각했습니다.
Truett

맞지만 계속 읽으십시오. 로그 복원이 코딩 된 후 마지막으로 WITH RECOVERY를 사용하여 사용할 수있게되었습니다.
Steve Mangiameli

보조 서버에서 가용성 그룹에 다시 참여할 수없는 경우 트랜잭션 로그를 복원해야 할 수 있습니다. 이 소스 는 다음 오류를 해결하는 데 도움 되었습니다.The mirror database, "dbname", has insufficient transaction log data to preserve the log backup chain of the principal database. This may happen if a log backup from the principal database has not been taken or has not been restored on the mirror database.
Hans Vonn

따라서 로그가 복원됩니다. 위의 의견을 참조하십시오.
Steve Mangiameli

@SteveMangiameli 감사합니다. 편리해졌습니다. 파일이 아닌 논리 백업 장치에서 복원하고 있음을 이해합니다. 파일에서 복원 할 때 별도의 .bak 및 .trn 파일을 사용합니다.
한스 본
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.