programing

SQL Server 데이터베이스 복원 오류

starjava 2023. 10. 4. 20:28
반응형

SQL Server 데이터베이스 복원 오류

SQL Server 2008 R2를 사용하고 있는데 .bak 파일에서 데이터베이스를 복원해야 합니다.SQL Server 서비스를 다시 시작하기 전까지는 항상 데이터베이스가 사용 중이라는 오류가 발생합니다.

더 좋은 방법이 있을까요?

복원하기 전에 기존 연결을 모두 삭제하려면 다음 코드를 사용합니다.

USE master;
GO
ALTER DATABASE YourDB
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
ALTER DATABASE YourDB
SET MULTI_USER;
GO

복원할 백업 파일을 선택하고 옵션으로 이동하여 "대상 데이터베이스에 대한 기존 연결 닫기"를 선택한 후 확인을 누릅니다.

Screenshot

SQL 서비스를 다시 시작하면 문제가 해결됩니다.

문제는 현재 데이터베이스가 다른 사용자에 의해 사용되고 있으며 아마도 열린 연결이 있을 것이라는 점입니다.여기에 대한 기존 연결을 모두 닫고 백업을 복원해야 합니다.

다음은 활성 연결을 차단하는 방법을 보여주는 링크입니다. http://wiki.lessthandot.com/index.php/Kill_All_Active_Connections_To_A_Database

복원할 DB에서 활동 모니터 및 필터를 사용합니다.그런 다음 사용 중인 사용자에게 확인하여 DB를 복원해도 괜찮은지 확인합니다.그런 다음 다음 쿼리를 실행합니다.

    USE Master

    KILL <session_id from activity monitor>

데이터베이스 엔진을 종료하고 다시 시작합니다.인스턴스를 완전히 중지하지는 않기 때문에 재시작만 하지 마십시오.오류는 가짜일 수 있지만 사용자 환경에서 데이터베이스 연결이 끊긴 후 자동으로 다시 연결하는 실행 중인 응용 프로그램이 없는지 확인합니다.

파일에서 새 데이터베이스로 복원하는 것이 "사용 중"으로 간주되는 이유를 설명할 답을 찾지 못했습니다.

가끔 오리진 데이터베이스를 단일 사용자와 백으로 축소하려는 @Serjik의 답변이 제게 도움이 되었습니다.약 80%의 경우 SQL Server Management Server를 통해 복원하기 전에 모든 시스템을 종료하고 다시 시작해야 합니다.

여전히 해결되지 않으면 다음을 실행합니다.

Restore database YOUR_DB_NAME with recovery

제게 도움이 된 것은 다음과 같습니다.

  1. db에서 마우스 오른쪽 버튼 클릭 -> 작업 -> 오프라인으로 전환
  2. 복원 db
  3. 그런 다음 다시 온라인 상태로 전환하려면 db -> 작업 -> 온라인 상태로 전환을 마우스 오른쪽 버튼으로 클릭합니다.

SQL을 사용하여 복원 시도

RESTORE DATABASE my_new_database FROM disk = 'E:\path\name.bak'

가끔 UI에 이런 문제가 있었지만 SQL 문에 대해서는 잘 작동했습니다.복원하기 전에 열려 있는 프로세스를 모두 삭제해야 합니다. 윈도우 또는 SQL 설치 파일의 문제로 인해 프로세스가 자동으로 닫히지 않는 경우도 있습니다.

언급URL : https://stackoverflow.com/questions/18699463/sqlserver-restore-database-error

반응형