손상된 복구 SQL Server MDF 데이터베이스

. SQL Server MDF 데이터베이스가 손상되었습니다. 다음 방법을 사용하여 데이터를 복구하여 손실을 줄일 수 있습니다.

참고 : 데이터 복구 작업을 수행하기 전에 먼저 손상된 MDF 및 NDF 데이터베이스 파일을 백업하십시오.

  1. 우선 시도해 볼 수 있습니다. SQL Server 내장 명령 DBCC 체크DB 데이터베이스를 복구합니다. 손상된 데이터베이스 파일이 'MyDatabase.mdf'라고 가정하면 다음과 같이 파일 내부의 데이터를 복구 할 수 있습니다.
    1. 해상도tart SQL Server.
    2. 어떤 작업도 수행하지 마십시오.
    3. In SQL Server Management Studio에서 다음 SQL 문을 실행합니다.
      use master declare @databasename varchar (255) set @ databasename = 'MyDatabase.mdf'exec sp_dboption @databasename, N'single ', N'true'-대상 데이터베이스를 단일 사용자 모드로 설정합니다. ) dbcc checkdb (@ databasename, REPAIR_REBUILD) exec sp_dboption @databasename, N'single ', N'false'-대상 데이터베이스를 다시 다중 사용자 모드로 설정
      

      dbcc checkdb (@ databasename, REPAIR_ALLOW_DATA_LOSS)
      

      복구 작업을 수행 할 때 데이터베이스의 일부 데이터가 손실 될 수 있습니다.

      성명 동안

      dbcc checkdb (@ databasename, REPAIR_REBUILD)
      

      복구 작업 중에 데이터 손실이 발생하지 않지만 시간이 더 많이 걸립니다.

      따라서 긴급하지 않은 경우 먼저 두 번째 dbcc checkdb 문만 수행 할 수 있습니다. 해당 명령문이 데이터베이스 복구에 도움이되지 않으면 첫 번째 및 두 번째 dbcc checkdb 명령을 수행 할 수 있습니다.

      수리 작업 후 전화 할 수 있습니다.

      dbcc checkdb ( 'MyDatabase.mdf')
      

      다시 데이터베이스가 고정되었는지 확인합니다.

      dbcc checkdb 명령에 대한 자세한 정보는 다음에서 찾을 수 있습니다. https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. 방법 1을 사용한 후에도 dbcc checkdb가 여전히 일부 테이블에서 오류를보고하면 시도 할 수 있습니다. SQL Server 기본 제공 명령 DBCC CHECKTABLE을 사용하여 데이터베이스에서 이러한 테이블을 복구합니다. 손상된 데이터베이스 파일이 'MyDatabase.mdf'이고 복구하려는 테이블이 'MyTable'이라고 가정하면 다음과 같이 복구 할 수 있습니다.
    1. 해상도tart SQL Server.
    2. 어떤 작업도 수행하지 마십시오.
    3. In SQL Server Management Studio에서 다음 SQL 문을 실행합니다.
      myDatabase.mdf 선언 @dbname varchar (255) set @ dbname = 'MyDatabase.mdf'exec sp_dboption @ dbname, 'single user', 'true'dbcc checktable ( 'MyTable', REPAIR_ALLOW_DATA_LOSS) dbcc checktable ( 'MyTable', REPAIR_REBUILD ) exec sp_dboption @ dbname, 'single user', 'false'
      

      dbcc 체크 테이블 ( 'MyTable', REPAIR_ALLOW_DATA_LOSS)
      

      수리 작업을 수행 할 때 테이블의 일부 데이터가 손실 될 수 있습니다.

      성명 동안

      dbcc 체크 테이블 ( 'MyTable', REPAIR_REBUILD)
      

      복구 작업 중에 데이터 손실이 발생하지 않지만 시간이 더 많이 걸립니다.

      따라서 긴급하지 않은 경우 먼저 두 번째 dbcc checktable 문만 수행 할 수 있습니다. 해당 문이 데이터베이스 복구에 도움이되지 않으면 첫 번째 및 두 번째 dbcc checktable 명령을 수행 할 수 있습니다.

      모든 손상된 테이블에 대한 복구 작업을 완료 한 후 다음을 호출 할 수 있습니다.

      dbcc checkdb ( 'MyDatabase.mdf')
      

      다시 데이터베이스의 테이블이 고정되어 있는지 확인합니다.

    dbcc checktable 명령에 대한 자세한 정보는 다음에서 찾을 수 있습니다. https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. 방법 1과 2가 여전히 손상된 데이터베이스 또는 테이블을 수정할 수 없거나 이러한 방법으로 원하는 데이터를 복구 할 수없는 경우 다음을 사용할 수 있습니다. DataNumen SQL Recovery MDF 데이터베이스에서 데이터를 복구합니다.