SQL Server의 데이터베이스로 .bak 파일 가져 오기


230

.bak확장명 을 가진 파일이 있습니다.

이 날짜를 SQL Server의 데이터베이스로 가져 오려면 어떻게해야합니까?


MSSQL을 사용한다고 가정하고 복원 할 수있는 몇 가지 방법을 설명하는 스레드 가 있습니다.
Andrew Keith

.bak를 사용하여 빈 데이터베이스를 만들고 빈 데이터베이스로 데이터를 복원 할 수 있습니다.
Michel Ayres

가장 초기의 방법은 세 번째 답변, 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 가져 오기, 장치를 선택하고 .bak 파일을 선택한 후 완료하는 것입니다.
Mafii

자동화 친화적 솔루션에 대한 답변을 확장 할 수 있습니까? UI를 통해 몇 번의 클릭을하는 것은 그리 효율적이지 않습니다.
L. Holanda

답변:


251

SQL Server Management Studio를

  1. 왼쪽 분할 창에서 데이터베이스 를 마우스 오른쪽 단추로 클릭하십시오 (오브젝트 탐색기)
  2. 데이터베이스 복원 ...을 클릭하십시오 .
  3. 장치를 선택 하고을 클릭 한 ...다음 .bak 파일을 추가하십시오.
  4. 클릭 OK , 다음 확인을 다시

끝난.


4
이것은 매력처럼 작동합니다. 이들은 매우 간결한 지침이며, 여기서 가장 많이 투표 된 답변에 언급 된 공식 Microsoft 링크와 본질적으로 동일한 지침입니다.
레오나르도 로페즈

3
이것이 실패하면 기존 데이터베이스를 지워야합니다.
DigitalDesignDj

3
이것은 나를 위해 작동하지 않습니다. 올바른 폴더를 가리키고 파일이 보이지 않습니다. 대화 상자에 정확한 파일 이름을 붙여 넣고 파일이 존재하지 않는다고 말합니다. 또한 대화 상자에 서버에없는 드라이브가 표시됩니다. 데이터베이스는 마지막 백업 위치를 기억하고 해당 시점의 복원 만 허용합니까? 복원 할 백업 파일을 선택할 수 없다는 것이 매우 이상합니다.
제임스

13
내 .BAK 파일은 내 사용자 계정 아래에있는 "Downloads"디렉토리에있었습니다. 이 도구가 파일을보고 복원 할 수 있도록 .BAK 파일을 C의 루트로 이동해야했습니다. 내 사용자 아래의 파일은 어떤 이유로 볼 수 없습니다.
jeremysawesome

6
작동하지 않습니다. "데이터베이스"를 마우스 오른쪽 단추로 클릭하지만 "데이터베이스 복원 ..."이 없습니다.
user34660

53

.bak 파일은 데이터베이스 백업입니다. 아래 방법으로 백업을 복원 할 수 있습니다.

방법 : 데이터베이스 백업 복원 (SQL Server Management Studio)


8
작동하지 않습니다. "... 2) 데이터베이스 확장 데이터베이스에 따라 사용자 데이터베이스를 선택하거나 시스템 데이터베이스를 확장 한 다음 시스템 데이터베이스를 선택하십시오. 3) 데이터베이스를 마우스 오른쪽 단추로 클릭하고 작업을 가리킨 다음 복원." 아니! 존재하지 않는 데이터베이스를 마우스 오른쪽 버튼으로 클릭 할 수 없습니다! 주어진 데이터베이스를 복원하거나 가져 오려고합니다. 로드되지 않은 데이터베이스를 어떻게 마우스 오른쪽 단추로 클릭 할 수 있습니까? MSDN의 기괴하고 SSMS의 복원 기능을 악화시키는 것은 언급되었지만 작동하지 않습니다. 왜? 다행스럽게도 다른 사람들이 제공하는 SQL 명령이 작동합니다.
Nicholas Petersen

14
새 데이터베이스로 복원하기위한 다른 문서가 있습니다. msdn.microsoft.com/en-us/library/ms186390(v=sql.90).aspx
Jon Schoning

35
RESTORE FILELISTONLY 
FROM DISK = 'D:\3.0 Databases\DB.bak' 

RESTORE DATABASE YourDB
FROM DISK = 'D:\3.0 Databases\DB.bak' 

그리고 당신은 적절한 mdf, ndf 및 ldf 파일을 사용하여 이동해야합니다

 With Move 'primarydatafilename' To 'D:\DB\data.mdf', 
 Move 'secondarydatafile'To 'D:\DB\data1.ndf', 
 Move 'logfilename' To 'D:\DB\log.ldf'

1
Azure Data Studio를 사용하여 macOS 호스트를 사용하여 .bak 파일을 SQL Docker 컨테이너에 복원하려고했기 때문에 이것은 매우 유용했습니다. .bak를 컨테이너에 복사하고 경로를 조정하고 /로 변경하기 만하면 성공적으로 복원 할 수있었습니다.
andrewb 2018 년

@andrewb :)를 도와주게되어 기쁩니다
RameshVel

30

기본 SQL Server 방법을 사용하여 이러한 데이터베이스 백업 파일을 간단히 복원하거나 ApexSQL 복원 도구를 사용 하여 파일을 가상으로 빠르게 첨부하고 완전히 복원 된 데이터베이스로 액세스 할 수 있습니다.

면책 조항 : 저는 ApexSQL에서 제품 지원 엔지니어로 일하고 있습니다


18

데이터베이스 복원 ...을 선택하는 대신 파일 및 파일 그룹 복원 ...을 선택하십시오 .

그런 다음 데이터베이스 이름을 입력하고 .bak 파일 경로를 소스로 선택한 다음 복원 확인란을 선택하고 확인을 클릭하십시오. .bak 파일이 유효하면 작동합니다.

SQL Server 복원 옵션 이름은 매우 간단한 작업에 대해 직관적이지 않습니다.


이것은 좋은 충고입니다, 나는 이것을했고 복원이 성공했다고보고했습니다. 그러나 약간의 문제가 여전히 남아 있습니다 ... 데이터베이스는 객체 탐색기에 나열되지 않습니다. 나는 "첨부"를 시도하고 올바른 .mdf 파일을 사용할 수 있습니다 (복원 제품을 가정합니다). 첨부를 시도하면 이미 사용중인 오류가 발생합니다. 이 단계에 대한 팁이 있습니까?
AlanSE

새 데이터베이스를 보려면 마지막에 새로 고쳐야합니다. 이것은 시작하고 실행하는 가장 빠른 솔루션 일 수 있습니다.
demongolem

동일한 데이터베이스 .bak를 로컬로 새 데이터베이스로 가져 오려고 할 때 유용했습니다.
Gurnzbot

7
  1. DB를 저장하려는 서버에 연결
  2. 데이터베이스를 마우스 오른쪽 버튼으로 클릭
  3. 복원을 클릭하십시오
  4. 소스 섹션 에서 장치 라디오 버튼을 선택하십시오.
  5. 추가를 클릭하십시오.
  6. .bak 파일이 저장된 경로로 이동하여 선택하고 확인을 클릭하십시오.
  7. DB의 목적지를 입력하십시오
  8. DB를 저장할 이름을 입력하십시오.
  9. 확인을 클릭하십시오

끝난


4

간단히 사용

sp_restoredb '사용자 데이터베이스 이름', '복원하려는 위치'

예 : sp_restoredb 'omDB', 'D : \ abc.bak'


이 사이의 차이 무엇 RESTORE DATABASE과 같이 msdn.microsoft.com/en-us/library/ms178099(v=sql.105).aspx은 ?
unhammer

1
데이터베이스 복원은 DB의 구조가 백업 파일과 동일한 경우에만 복원 작업을 수행하지만 sp_restoredb구조가 다르거 나 완전히 비어있는 (신규) 데이터베이스도 복원을 수행합니다.
Omprakash tomar

3
  1. PC의 다음 위치에 백업 .bak 파일을 복사하십시오. C : \ Program Files \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA
  2. DB를 저장하려는 서버에 연결
  3. 데이터베이스를 마우스 오른쪽 버튼으로 클릭
  4. 복원을 클릭하십시오
  5. 소스 섹션에서 장치 라디오 버튼을 선택하십시오.
  6. 추가를 클릭하십시오.
  7. .bak 파일이 저장된 경로로 이동하여 선택하고 확인을 클릭하십시오.
  8. DB의 목적지를 입력하십시오
  9. DB를 저장할 이름을 입력하십시오.
  10. 확인을 클릭하십시오

위의 솔루션은 백업 파일 (.bak)을 보관할 위치를 놓쳤습니다. 이것은 트릭을해야합니다. 그것은 나를 위해 일했다.


1

개발 프로세스에서 데이터베이스를 자주 복원해야하는 경우 노드 패키지를 사용할 수 있습니다.

설치:

npm install -g sql-bak-restore

용법:

sql-bak-restore <bakPath> <dbName> <oldDbName> <owner>

인수 :

  • bakpath, 파일의 상대 또는 절대 경로
  • 데이터베이스를 복원 할 dbName (이 이름의 데이터베이스가 있으면 삭제됩니다 !!)
  • oldDbName, 데이터베이스 이름
  • 소유자, userName에게 db_owner 권한을 부여 (password "1")

!! sqlcmd 명령 행 유틸리티는 PATH 변수에 있어야합니다.

https://github.com/vladimirbuskin/sql-bak-restore/


1

Microsoft SQL Server Management Studio 2019에서 :

여기에 이미지 설명을 입력하십시오

데이터베이스 복원 창에서 :

  1. 장치를 선택하십시오

  2. 추가를 선택하고 대상 파일을 선택하십시오

  3. 확인 확인

  4. 확인을 클릭하여 복원 확인

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.