FAQ-위키
답변:
Recovery Toolbox for SQL Server에서 지원하는 데이터 저장 방법은 두 가지가 있습니다.
- SQL 스크립트를 하드 드라이브에 저장할 수 있으며, 이를 통해 데이터베이스 객체, 테이블 등을 생성하고 이러한 테이블에 데이터를 삽입할 수 있습니다.
- 사용자가 정의한 데이터베이스에서 스크립트를 실행할 수도 있습니다. 이러한 스크립트는 SQL 언어로 작성됩니다.
SQL 스크립트는 동일한 데이터베이스 파일을 기반으로 한다는 사실에도 불구하고 다를 수 있다는 점에 유의하세요. 이는 ADO를 통한 직접 서버 연결을 위해 실행되는 쿼리와 MS SQL Server와 함께 제공되는 쿼리 분석기 환경에서 수행되는 SQL 쿼리의 구문적 특성(":" 사용, Go 명령 등) 때문에 발생합니다. 첫 번째 방법이 더 안정적이고 두 번째 방법은 더 편리합니다.
데이터를 스크립트로 변환하여 디스크에 저장
1. 저장된 데이터 매핑
디스크에 데이터를 저장하도록 선택한 경우, Recovery Toolbox for SQL Server는 소스 MDF 파일의 이름을 포함하는 하위 디렉토리를 만듭니다. 이 하위 디렉토리는 사용자 정의 디렉토리에 생성되고 모든 스크립트가 거기에 배치됩니다. 모든 스크립트는 규칙에 따라 이름이 지정되고 이름은 단어와 숫자로 구성됩니다. 단어는 스크립트의 역할을 나타내고 숫자는 해당 숫자를 나타냅니다. 다음과 같은 여러 스크립트 유형이 있습니다.
- Types*.sql - 스크립트는 사용자가 정의한 데이터 유형을 생성합니다.
- Tables*.sql - 스크립트는 테이블을 생성합니다.
- Indexes*.sql - 스크립트는 기본 키와 인덱스를 생성합니다.
- ForeignKeys*.sql - 스크립트는 외래 키를 생성합니다.
- Procedure*.sql - 스크립트는 저장 프로시저를 생성합니다.
- Function*.sql - 스크립트는 사용자가 정의한 함수를 생성합니다.
- View*.sql - 스크립트는 뷰를 생성합니다.
- Triggers*.sql - 스크립트는 트리거를 생성합니다.
- Data*.sql - 스크립트는 테이블에 데이터를 삽입합니다.
스크립트 시퀀스 번호에는 유용한 데이터가 포함되지 않으며 스크립트 실행 시퀀스나 다른 정보를 가리키지 않습니다. 이러한 번호는 데이터를 분할하여 하나의 큰 파일 대신 다양한 작은 문서에 저장하는 데만 사용됩니다. 사용자는 SQL 스크립트로 파일의 최대 크기를 정의할 수 있습니다. 또한 사용자는 데이터 파일의 번호 매기기에 주의해야 합니다. 데이터 유형의 각 파일에는 하나의 테이블에 대한 데이터만 포함될 수 있다는 점에 유의해야 합니다. 시퀀스 번호가 있는 파일에는 각 테이블에 대한 모든 데이터가 포함됩니다.
메모: 일부 파일에 숫자가 누락된 경우 일부 테이블에 데이터가 전혀 없다는 의미입니다.
2. 스크립트 실행 순서
이 그림에서는 스크립트 실행의 권장 순서를 확인할 수 있습니다.

스크립트 실행 순서는 기존 데이터와 테이블 구조에 대한 기존 제한에 따라 달라집니다. 다음 요소에 특히 주의하세요.
- 보조 키를 만들려면 해당 기본 키를 지정하세요. 이러한 사실로 인해 이러한 작업은 다른 파일에 저장되며 이 순서대로 실행해야 합니다.
- 인덱스와 보조 키를 생성하기 전에 프로그램은 테이블을 채웁니다. 보조 키가 정의된 테이블이 채워질 때 참조 무결성 검사가 수행되기 때문에 필수적입니다. 보조 키가 있는 테이블이 해당 기본 키가 있는 테이블보다 먼저 채워지면 오류가 발생합니다. 게다가 이 방법은 또 다른 특성을 가지고 있습니다. 복구된 데이터가 기본 키, 고유 인덱스 등과 충돌하는 경우, 이 경우 테이블은 어차피 데이터로 채워지지만 제한은 생성되지 않습니다(인덱스, 기본 키 등). 사용자가 다른 동작을 요구하는 경우 스크립트 실행 순서를 직접 선택할 수 있습니다.
- 절차, 함수, 뷰 및 트리거 객체 생성은 이러한 객체가 정교하고 까다로운 종속성을 가질 수 있기 때문에 데이터베이스에서 어려움이 있습니다. 절차는 다른 절차를 참조할 수 있고, 뷰는 함수를 참조할 수 있으며, 트리거는 모든 객체를 참조할 수 있습니다. 그렇기 때문에 프로그램은 얽힘을 해결하는 데 도움이 될 수 없습니다. 사용자는 모든 종속성을 수동으로 찾아서 필요한 순서로 SQL 스크립트를 실행해야 합니다. 또 다른 방법은 이 그룹의 모든 스크립트를 모든 오류 메시지가 사라질 때까지 여러 번 실행하는 것입니다.
3. Install.bat 파일
Install.bat 파일은 모든 스크립트의 자동 실행을 보장하기 위해 생성됩니다. 이 파일은 도구에서 이전에 저장한 모든 스크립트를 실행합니다. 스크립트 실행 순서는 데이터베이스에 적용할 때와 동일합니다. 이 배치 파일을 사용하려면 isqlw 유틸리티를 설치해야 하며, MS SQL Server 클라이언트 부분의 일부입니다. 명령줄에서 install.bat 파일에 대한 서버 이름, 데이터베이스 이름, 사용자 이름 및 암호 매개변수를 지정하세요. 예: install.bat SQLServer SQLDatabase SQLUser SQLUserPassword
주목:
- 매개변수는 공백으로 구분해야 합니다. 매개변수 자체에 공백이 포함된 경우 큰따옴표로 묶어야 합니다.
- 매개변수 시퀀스는 수정할 수 없습니다.
- NEW EMPTY 데이터베이스로 데이터를 가져오세요. 데이터를 가져오기 전에 데이터베이스에 테이블, 인덱스, 저장 프로시저 등이 포함되어서는 안 됩니다.
- install.bat 파일이 매개변수 없이 실행될 경우, 이 파일을 실행하는 방법에 대한 간략한 가이드를 볼 수 있습니다.
4. InstallTrusted.bat
Windows 계정을 통해 Microsoft SQL Server에 로그인하려면 InstallTrusted.bat 파일을 사용합니다. InstallTrusted.bat 파일에는 서버 이름, 데이터베이스 이름이라는 두 가지 매개변수가 있습니다.
사용 예: installtrusted.bat SQLServer SQLDatabase Windows 계정을 통해 로그인하는 방법에 대한 자세한 내용은 여기를 참조하세요. https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/principals-database-engine?view=sql-server-2017
답변:
여러 소스 파일에서 MS SQL Server 형식의 데이터베이스 복구
MS SQL Server 형식의 데이터베이스에는 하나 이상의 파일이 들어 있습니다. 파일에는 여러 가지 유형이 있습니다. 주 데이터 파일(기본 확장자 *.mdf), 보조 데이터 파일(기본 확장자 *.ndf) 및 트랜잭션 로그 파일(기본 확장자 *.ldf)입니다. Recovery Toolbox for SQL Server로 데이터를 복구하려면 모든 보조 데이터 파일과 주 데이터 파일에 대한 경로를 지정해야 합니다. 파일 열기 대화 상자에서 지정할 수 있습니다.

손상된 데이터베이스에 주 데이터 파일, 보조 데이터 파일 및 트랜잭션 로그 파일이 포함되어 있는 경우 *.mdf 형식의 주 데이터 파일과 *.ndf 형식의 모든 보조 데이터 파일을 선택해야 합니다 (보다 fig. 2).

답변:
Recovery Toolbox for SQL Server는 랜섬웨어 바이러스에 의해 암호화된 Microsoft SQL Server 데이터베이스 파일의 .MDF/.NDF 파일에서 정보를 부분적으로 또는 전체적으로 복구할 수 있습니다.
Recovery Toolbox for SQL Server는 데이터를 해독하지 않습니다.
일반적으로 이런 경우에는 데이터 복호화가 적용되지 않습니다.
그러나 Recovery Toolbox for SQL Server는 MDF 파일이 부분적으로 암호화된 경우에 유용할 수 있습니다. 일반적으로 바이러스는 파일의 크기가 크기 때문에 헤더 및/또는 시작 부분만 암호화합니다. 이러한 경우 헤더 또는 MDF 파일의 일부만 암호화된 경우 Recovery Toolbox for SQL Server가 도움이 될 수 있습니다. 이 프로그램은 모든 데이터 블록과 파일에서 수집된 데이터 구조를 분석합니다. 그런 다음 가능한 경우 원래 데이터 구조와 데이터 자체를 다시 만듭니다.
Microsoft SQL Server MDF 파일 구조
랜섬웨어 바이러스에 감염된 후 MDF 파일에서 데이터를 복구할 수 있을까요?
프로그램을 사용하여 데이터의 100% 또는 일부 데이터를 복구할 수 있다는 보장은 없습니다. 이 질문에 대한 확실한 답을 얻으려면 Recovery Toolbox for SQL Server의 데모 버전을 다운로드하고 암호화된 MDF 파일을 지정한 다음 파일 분석이 완료될 때까지 기다려야 합니다.
프로그램의 데모 버전에서 .mdf 파일 분석이 완료되면 파일에서 추출할 수 있는 데이터의 전체 미리보기를 이용할 수 있습니다.
메모:Recovery Toolbox의 고객 지원 부서는 일반적으로 랜섬웨어 프로그램은 데이터베이스 파일의 헤더만 암호화한다고 알려줍니다. 그 이유는 그 크기가 크기 때문입니다. 그 결과, 소스 파일에서 거의 모든 데이터 구조와 거의 모든 정보를 복구하는 것이 종종 가능합니다.
스크립트를 실행한 후 다음 오류가 표시되는 경우:
Server: Msg 242, Level 16, State 3, Line 1
[Microsoft][ODBC SQL Server Driver][SQL Server] char 데이터 형식을 datetime 데이터 형식으로 변환하는 과정에서 datetime 값의 범위가 벗어났습니다.
해당 문장은 종료되었습니다.
답변:
즉, 다음을 수행하여 서버 언어 설정을 변경해야 함을 의미합니다.
- Enterprise Manager를 시작합니다.
- 필요한 서버를 선택하여 연결하세요.
- 마우스 오른쪽 버튼을 클릭하고 Properties을 선택하여 속성 창을 엽니다.
- Server Settings 탭을 엽니다.
- Default Language for user 드롭다운 목록에서 English를 선택하고 OK을 누릅니다.
- SQL 서버를 중지합니다. 그렇게 하려면 상황에 맞는 메뉴에서 Stop를 선택하고 확인 창에서 Are you sure you wish to stop SQL Server service?라는 질문에 Yes라고 답합니다.
- SQL Server를 시작합니다. 그렇게 하려면 컨텍스트 메뉴에서 시작을 선택합니다.
- 이제 Recovery Toolbox for SQL Server에서 하드 드라이브에 저장된 스크립트를 실행할 수 있습니다. 데이터베이스 스크립트 실행 모드에서도 프로그램을 실행할 수 있습니다.
- 이제 설정을 복원해야 합니다. 그러려면 Enterprise Manager에서 필요한 서버의 속성 창을 엽니다.
- Default Language for user 목록에서 기본 언어를 선택하고 OK을 누릅니다.
- SQL 서버를 중지합니다. 그렇게 하려면 상황에 맞는 메뉴에서 Stop를 선택하고 확인 창에서 Are you sure you wish to stop SQL Server service?라는 질문에 Yes라고 답합니다.
- SQL Server를 시작합니다. 그렇게 하려면 컨텍스트 메뉴에서 시작을 선택합니다.
스크립트를 실행한 후 다음 오류가 표시되는 경우:
Server: Msg 242, Level 16, State 3, Line 1
[Microsoft][ODBC SQL Server Driver][SQL Server] char 데이터 형식을 datetime 데이터 형식으로 변환하는 과정에서 datetime 값의 범위가 벗어났습니다.
해당 문장은 종료되었습니다.
답변:
즉, 다음을 수행하여 서버 언어 설정을 변경해야 함을 의미합니다.
- Management Studio를 시작합니다.
- 필요한 서버를 선택하세요.
- 보안\로그인으로 이동합니다.
- 데이터베이스를 사용할 사용자를 선택하고 사용자 속성 창을 엽니다.
- Default Language for user 드롭다운 목록에서 English를 선택하고 OK을 누릅니다.
- 이제 Recovery Toolbox for SQL Server로 하드 드라이브에 저장된 스크립트를 실행할 수 있습니다. 또는 데이터베이스 스크립트 실행 모드에서 프로그램을 시작할 수 있습니다.
- 이제 설정을 복원해야 합니다. 그러려면 필요한 사용자 Management Studio의 속성 창을 엽니다.
- Default Language for user 목록에서 기본 언어를 선택하고 OK을 누릅니다.
- SQL Server Management Studio를 시작합니다.
- Object Explorer에서 Databases를 마우스 오른쪽 버튼으로 클릭합니다.
- Attach를 클릭하세요
- Add 버튼을 클릭하세요
- mdf 파일을 선택하고 Ok 버튼을 클릭하세요.
- Ok 버튼을 클릭하세요
- 작업이 완료될 때까지 기다리세요.
이 문제를 해결하려면 다음을 수행하세요.
- 데이터를 스크립트로 저장
- 명령줄에서 필요한 모든 매개변수를 포함하여 install.bat 파일을 실행합니다.
- 성공적으로 실행되지 않은 스크립트를 찾으려면 응답 파일(*????.sql.txt)을 참조하세요.
- 오류가 발생한 스크립트를 Microsoft SQL Server에서 Query Analyzer로 로드하고 거기서 실행해 보세요. 오류 메시지가 나타나면 어떤 명령이 오류를 발생시켰는지 알아내야 합니다. 이 명령이 가치가 없는 데이터를 쓰는 경우, 파일에서 제거하면 됩니다. 그렇지 않으면 오류가 발생한 스크립트와 Query Analyzer의 스크린샷을 개발자에게 보내야 합니다. 그 밖에 나중에 개발자가 문제를 연구할 수 있도록 소스 *.mdf 파일을 개발자에게 보내야 할 수도 있습니다.
복원을 통해 새 서버에서 MSDB 데이터베이스를 마이그레이션한 후 DTS 패키지를 열고 실행할 수 없습니다. 오류 메시지가 나타납니다. 지정된 파일을 시스템에서 찾을 수 없습니다.
새 서버의 MSDB 데이터베이스에서 데이터 테이블을 복사하거나 복원하는 것만으로는 DTS Packages를 복원할 수 없습니다. 이는 DTS 패키지가 생성되고 마이그레이션 전에 사용된 서버의 실행 컨텍스트에 내부 연결이 있기 때문입니다. 서버 간에 DTS 패키지를 복사하려면 VB scripts를 사용해야 합니다. 따라서 Recovery Toolbox for SQL Server 프로그램은 DTS 패키지를 복원하는 데 적합하지 않습니다.
도구 isqlw.exe는 MS SQL Server 패키지의 구성 요소입니다. Microsoft 사이트에서 항상 최신 버전의 MS SQL Server를 다운로드하여 컴퓨터에 필요한 구성 요소를 설치할 수 있습니다. Microsoft 사이트에서 다운로드한 MS SQL Server 데모 버전을 사용하면 EULA에 지정된 기간 내에 구성 요소를 사용할 수 있습니다.
Microsoft.com에서 적절한 도구를 찾을 수 있다면 저희 웹사이트에서 Query Analyzer를 다운로드하여 설치할 수 있습니다. 다운로드 링크는 다음과 같습니다. https://recoverytoolbox-kr.com/download/isqlwInstall.exe
대규모 MS SQL Server 데이터베이스를 복구하려면 많은 RAM이 필요합니다. 프로그램 개발자는 충분한 여유 물리적 메모리가 있는 컴퓨터에서 대규모 데이터베이스를 복구할 것을 권장합니다. 프로그램에서 사용하는 물리적 메모리는 복구하려는 파일의 크기를 500으로 나눈 값에 프로그램을 실행하기 위해 20-100MB를 더한 크기보다 작아서는 안 됩니다. 즉, 100GB 크기의 .mdf 파일을 복구하려면 컴퓨터에 최소 (100GB / 500) + 120MB = 320MB의 여유 물리적 메모리가 있어야 합니다.
- Primary Key 필드의 값이 올바르지 않은 경우(예: 음수이거나 다른 모든 값의 수십 배 큰 경우) 소스 데이터가 심각하게 손상되었으며 완전히 복구할 수 없음을 의미합니다.
- Primary Key 필드에 중복 값이 나타나면 프로그램이 데이터베이스에서 삭제하도록 표시되어야 하는 데이터가 있는 시트를 복구했음을 의미합니다(mdf, ndf 파일). 하지만 실제로 데이터가 있는 시트를 삭제해야 한다는 표시는 없습니다. 따라서 프로그램은 모든 시트에서 데이터를 복구합니다. 이로 인해 과도한 복구 데이터가 발생하고 Recovery Toolbox for SQL Server 개발자는 과도한 항목을 필터링하기 위한 기준을 찾을 수 없습니다. 이 경우 데이터베이스 관리자 및/또는 소프트웨어 개발자가 복구된 데이터베이스에서 삭제해야 하는 과도한 항목에 대한 최종 결정을 내립니다.
시도와 등록 사이에 MDF에 추가적으로 무언가가 발생했을 가능성이 있습니다(다른 소프트웨어나 다른 것으로 복구됨). 다른 컴퓨터에서 이 파일에 대해 데모 버전을 실행하여 확인할 수 있습니다.
Recovery Toolbox for SQL Server는 데이터베이스가 사용된 서버 버전을 자동으로 감지합니다. 따라서 데이터베이스가 MS SQL Server 2000에서 사용된 경우 프로그램은 새 데이터베이스로 가져오기 위해 저장된 스크립트에 isqlw 도구를 씁니다. 데이터베이스가 MS SQL Server 2005 이상에서 사용된 경우 스크립트에서 sqlcmd 도구가 사용됩니다. 원래 버전과 다른 버전의 서버에 있는 데이터베이스로 데이터를 가져오려면 해당 서버에 대한 도구를 사용해야 합니다.
- Isqlw - MS SQL Server 2000용
- Sqlcmd - MS SQL Server 2005 이상