Programing

테이블 수준 백업

lottogame 2020. 9. 2. 20:23
반응형

테이블 수준 백업


MS SQL Server 2005/2008에서 테이블 수준 백업 (덤프)을 수행하는 방법은 무엇입니까?


BACKUP DATABASE물론 문제의 테이블이 자체적으로 할당되지 않는 한이 명령을 사용하여 단일 테이블을 백업 할 수 없습니다 FILEGROUP.

제안한대로 할 수있는 작업은 테이블 데이터를 CSV 파일로 내보내는 것입니다. 이제 테이블의 정의를 얻기 위해 스크립트를 ' CREATE TABLE스크립트로 작성 '할 수 있습니다 .

SQL Server Management Studio 내에서 다음을 수행하여이 작업을 수행 할 수 있습니다.

데이터베이스> 작업> 스크립트 생성을 마우스 오른쪽 버튼으로 클릭

그런 다음 스크립팅 할 테이블을 선택하고 제약 조건 및 인덱스와 같은 관련 개체를 포함하도록 선택할 수도 있습니다.

를 얻기 위해 DATA단지와 함께 schema, 당신은 선택할 수있어 Advanced설정 스크립팅 옵션 탭에서, 그리고에서 GENERAL섹션 설정 Types of data to script선택을Schema and Data

도움이되기를 바라지 만 추가 지원이 필요한 경우 저에게 직접 연락 주시기 바랍니다.


대량 복사 유틸리티사용하여 테이블 수준 백업을 수행하고 있습니다.

내보내기 :

bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E

가져 오기 :

bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000

보시다시피 모든 쿼리를 기반으로 내보낼 수 있으므로이를 통해 증분 백업을 수행 할 수도 있습니다. 또한 SSMS를 사용하는 여기에 언급 된 다른 방법과 달리 스크립트가 가능합니다.


필요한 단계는 다음과 같습니다. 데이터를 원한다면 Step5가 중요합니다. 2 단계에서는 개별 테이블을 선택할 수 있습니다.

EDIT 스택의 버전이 읽기 어렵습니다 ... 여기에 전체 크기 이미지가 있습니다. http://i.imgur.com/y6ZCL.jpg

John Sansom의 답변 단계는 다음과 같습니다.


아래 쿼리를 실행하여 데이터와 함께 기존 테이블의 기존 구조로 새 테이블을 만드는 기존 테이블의 백업을 수행 할 수 있습니다.

select * into newtablename from oldtablename

테이블 구조 만 복사하려면 아래 쿼리를 사용하십시오.

select * into newtablename from oldtablename where 1 = 2

이것은 qntmfred의 솔루션 과 유사 하지만 직접 테이블 덤프를 사용합니다. 이 옵션은 약간 더 빠릅니다 ( BCP 문서 참조 ).

내보내기 :

bcp "[MyDatabase].dbo.Customer " out "Customer.bcp" -N -S localhost -T -E

가져 오기 :

bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000

MySQL과 같은 것을 찾고 있다면 DUMP좋은 소식이 있습니다. SQL Server 2008 Management Studio가 그 기능을 추가했습니다.

SSMS에서 해당 DB를 마우스 오른쪽 버튼으로 클릭하고 작업> 스크립트 생성을 선택 합니다. 그런 다음 옵션 마법사의 두 번째 페이지에서 스크립팅 된 데이터도 선택해야DUMP 합니다. 그러면 파일 크기가 생성됩니다 .


새 파일 그룹을 만들고이 테이블을 그 위에 놓고이 파일 그룹 만 백업합니다.


Microsoft 의 무료 데이터베이스 게시 마법사사용하여 SQL 스크립트 (CREATE TABLE 및 INSERT INTO)로 텍스트 파일을 생성 할 수 있습니다 .

단일 테이블에 대해 이러한 파일을 생성 할 수 있으며 SQL 스크립트를 실행하여 데이터를 포함한 전체 테이블을 "복원"할 수 있습니다.


여기에 설명 된 문제와 일치하는지 모르겠습니다. 테이블의 증분 백업을해야했습니다! (새로 삽입 된 데이터 만 복사해야합니다). 저는 DTS 패키지를 디자인했습니다.

  1. ( '상태'열을 기준으로) 새 레코드를 가져 와서 데이터를 목적지로 전송했습니다. ( '데이터 변환 작업'을 통해)

  2. 그런 다음 '상태'열을 업데이트했습니다. ( 'SQL 실행 태스크'를 통해)

'워크 플로'를 제대로 수정해야했습니다.


SQL Server 가져 오기 및 내보내기 마법사를 사용합니다.

  1. ssms
  2. 데이터베이스 엔진 열기
  3. Alt. 내보낼 테이블이 포함 된 데이터베이스를 클릭합니다.
  4. "작업"을 선택합니다.
  5. "데이터 내보내기 ..."를 선택합니다.
  6. 마법사 따르기

모든 복구 모델을 사용하면 전체 또는 부분 SQL Server 데이터베이스 또는 데이터베이스의 개별 파일 또는 파일 그룹을 백업 할 수 있습니다. 테이블 수준 백업을 만들 수 없습니다 .

출처 : 백업 개요 (SQL Server)


SQL Server는 테이블 백업을 지원하지 않으므로 두 가지 옵션이 있습니다. 둘 다 테이블 생성 스크립팅으로 시작됩니다. 그런 다음 스크립트 테이블-INSERT 옵션을 사용하여 많은 삽입 문을 생성하거나 통합 서비스 (DTS 2000)를 사용하거나 유사한 데이터를 CSV 또는 유사한 형식으로 내보낼 수 있습니다.


BMC Recovery Manager (formerly known as SQLBacktrack) allows point-in-time recovery of individual objects in a database (aka tables). It is not cheap but does a fantastic job: http://www.bmc.com/products/proddocview/0,2832,19052_19429_70025639_147752,00.html

http://www.bmc.com/products/proddocview/0,2832,19052_19429_67883151_147636,00.html


If you are looking to be able to restore a table after someone has mistakenly deleted rows from it you could maybe have a look at database snapshots. You could restore the table quite easily (or a subset of the rows) from the snapshot. See http://msdn.microsoft.com/en-us/library/ms175158.aspx


A free app named SqlTableZip will get the job done. Basically, you write any query (which, of course can also be [select * from table]) and the app creates a compressed file with all the data, which can be restored later.

Link: http://www.doccolabs.com/products_sqltablezip.html


Handy Backup automatically makes dump files from MS SQL Server, including MSSQL 2005/2008. These dumps are table-level binary files, containing exact copies of the particular database content.

To make a simple dump with Handy Backup, please follow the next instruction:

  1. Install Handy Backup and create a new backup task.
  2. Select “MSSQL” on a Step 2 as a data source. On a new window, mark a database to back up.
  3. Select among different destinations where you will store your backups.
  4. On a Step 4, select the “Full” backup option. Set up a time stamp if you need it.
  5. Skip a Step 5 unless you have a need to compress or encrypt a resulting dump file.
  6. On a Step 6, set up a schedule for a task to create dumps periodically (else run a task manually).
  7. Again, skip a Step 7, and give your task a name on a Step 8. You are finished the task!

Now run your new task by clicking on an icon before its name, or wait for scheduled time. Handy Backup will automatically create a dump for your database. Then open your backup destination. You will find a folder (or a couple of folders) with your MS SQL backups. Any such folder will contains a table-level dump file, consisting of some binary tables and settings compressed into a single ZIP.

Other Databases

Handy Backup은 MySQL, MariaDB, PostgreSQL, Oracle, IBM DB2, Lotus Notes 및 ODBC 드라이버가있는 모든 일반 SQL 데이터베이스에 대한 덤프를 저장할 수 있습니다. 이러한 데이터베이스 중 일부는 DBMS와 Handy Backup 간의 연결을 설정하기위한 추가 단계가 필요합니다.

위에서 설명한 도구는 종종 SQL 데이터베이스를 테이블 수준의 SQL 명령 시퀀스로 덤프하여 필요한 수동 수정을 위해 이러한 파일을 준비합니다.

참고 URL : https://stackoverflow.com/questions/680552/table-level-backup

반응형