답변:
이는 복원 스크립트가 WITH NORECOVERY
매개 변수를 추가 하여 복원 후 트랜잭션 로그에 데이터베이스를 적용 할 수 있도록하기 때문일 수 있습니다.
데이터베이스가 이제 최신 트랜잭션 로그 파일을 기다리고 있습니다.
다음 중 하나를 수행 할 수 있습니다.
RESTORE LOG database_name FROM backup_device WITH RECOVERY;
...를 사용하여 최신 트랜잭션 로그를 적용하십시오.... WITH RECOVERY;
... 또는RESTORE DATABASE YourDb WITH RECOVERY;
이 작업을 수행하기 전에 이러한 옵션의 의미를 이해해야합니다. 주의하지 않으면 데이터가 손실 될 수 있습니다.
자세한 내용은 다음을 참조하십시오.
이 문제를 해결하기위한 간단한 T-SQL 스크립트 :
새 쿼리 창에이 스크립트를 작성하고 다음을 실행하십시오.
RESTORE DATABASE [DataBase Name] WITH RECOVERY;
방금 이런 상황이 있었고 치료법은 매우 놀랍습니다.
ALTER DATABASE DBName SET ONLINE;
분명히 고장난 NetBackup 복원은 이상한 상태로 남았습니다. 다른 솔루션은 작동하지 않았습니다 (아직 SQL Server 서비스를 다시 시작하지는 않았지만)
이론적으로 복원이 시작되면 실패하면 데이터가 손상되었을 수 있으므로 데이터베이스에주의를 기울여야합니다. 어쨌든 데이터베이스를 다시 복원하려고하므로 중요하지 않습니다.
ALTER DATABASE
허용되지 않는, 내 경우, 데이터베이스 상태를 회복하기로 보여주는 사실이었다 당신을 확신하고, 사용 SET ONLINE
사실은 했다 . 그러니 당신이 나를 잘못 생각하거나 거짓말한다고 부르십시오. 대안이있을 때 실제로해야 할 일입니까?
ONLINE
상태 로 설정 될 수 있습니다 . 짧은 이야기로, 귀하의 의견과 공감대가이 사이트와 일치하지 않으며 귀하의 정보는 내가 제시 한 데이터로 제대로 검증되지 않았기 때문에 사실 부정확합니다.
아시다시피 기본 데이터베이스 복원 옵션은 복구 기능으로 데이터베이스를 사용할 수 있고 데이터베이스 복원이 완료된 후 온라인으로 사용할 수 있습니다.
예:
RESTORE DATABASE YourDB FROM DISK= 'C:\\Data\\YourDBBackup.bak'
WITH RECOVERY
GO
NO Recovery with Restore에 대한 중요한 사항을 살펴 보겠습니다
복구하지 않고 복원
이 옵션은 특히 여러 백업을 복원 할 때 사용됩니다. 즉, norecovery 옵션과 함께 restore 명령을 실행하면 마지막 백업 순서가 복원 될 때까지 데이터베이스가 사용자에게 해제되지 않습니다. 마지막 백업에서는 복구 옵션이 사용되며 데이터베이스는 온라인 상태가됩니다.
예:
RESTORE DATABASE YourDB FROM DISK - 'C:\\Data\\Backup_part1.bak'
WITH NORECOVERY
GO
그리고:
RESTORE LOG YourDB FROM DISK = 'C:\\Data\\BackupLog-part2.trn'
WITH RECOVERY
GO
RESTORE ...WITH NORECOVERY
. 다시 확인해 주시겠습니까?