web-dev-qa-db-ja.com

テーブルレベルのバックアップ

MS SQL Server 2005/2008でテーブルレベルのバックアップ(ダンプ)を取得する方法は?

91
user82431

もちろん、問題のテーブルが独自のFILEGROUPに割り当てられていない限り、BACKUP DATABASEコマンドを使用して単一のテーブルをバックアップすることはできません。

提案したとおり、できることは、テーブルデータをCSVファイルにエクスポートすることです。テーブルの定義を取得するために、CREATE TABLEスクリプトを 'スクリプトアウト'できます。

これは、SQL Server Management Studio内で次の方法で実行できます。

データベースを右クリック>タスク>スクリプトを生成

スクリプトを作成するテーブルを選択し、制約やインデックスなどの関連オブジェクトを含めることもできます。

DATAだけでなくschemaを取得するには、[スクリプトオプションの設定]タブでAdvancedを選択し、GENERALセクションでTypes of data to scriptを設定する必要があります。 Schema and Dataを選択します

これがお役に立てば幸いですが、さらなる支援が必要な場合はお気軽に直接ご連絡ください。

88
John Sansom

一括コピーユーティリティ を使用して、テーブルレベルのバックアップを実現しています

輸出する:

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を使用する他の方法とは対照的に、スクリプト化が可能です。

54
kenwarner

必要な手順は次のとおりです。ステップ5は、データが必要な場合に重要です。ステップ2では、個々のテーブルを選択できます。

EDITスタックのバージョンはあまり読めません...ここにフルサイズのイメージがあります http://i.imgur.com /y6ZCL.jpg

Here are the steps from John Sansom's answer

44
Alex C

以下のクエリを実行して、既存のテーブルのバックアップを作成すると、データとともに古いテーブルの既存の構造を持つ新しいテーブルが作成されます。

select * into newtablename from oldtablename

テーブル構造のみをコピーするには、次のクエリを使用します。

select * into newtablename from oldtablename where 1 = 2
19
Haripriya

これは qntmfredのソリューション に似ていますが、直接テーブルダンプを使用します。このオプションは少し高速です( BCP docs を参照):

エクスポートする:

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
6
Diego

MySQLのDUMPのようなものを探している場合は、朗報です。SQLServer 2008 Management Studioがその機能を追加しました。

SSMSで、問題のDBを右クリックして、Tasks> Generate Scriptsを選択します。次に、オプションウィザードの2ページ目で、 dataもスクリプト化することを選択してくださいDUMPファイルに相当するものが生成されます。

4

新しいファイルグループを作成し、このテーブルを配置して、このファイルグループのみをバックアップします。

3

ここで説明した問題と一致するかどうかはわかりません。テーブルの増分バックアップを作成する必要がありました! (新しい挿入データのみをコピーする必要があります)。以前はDTSパッケージを設計していました。

  1. (「ステータス」列に基づいて)新しいレコードを取得し、データを宛先に転送しました。 (「データ変換タスク」を通じて)

  2. 次に、「ステータス」列を更新しました。 (「SQLタスクの実行」を通じて)

「ワークフロー」を適切に修正する必要がありました。

2
azmnoman

Microsoftの無料の Database Publishing Wizard を使用して、SQLスクリプト(CREATE TABLEおよびINSERT INTO)でテキストファイルを生成できます。

単一のテーブルに対してこのようなファイルを作成でき、SQLスクリプトを実行するだけで、データを含むテーブル全体を「復元」できます。

2

SQL Serverのインポートおよびエクスポートウィザードを使用します。

  1. ssms
  2. データベースエンジンを開く
  3. Alt。エクスポートするテーブルを含むデータベースをクリックします
  4. 「タスク」を選択します
  5. 「データのエクスポート...」を選択します
  6. ウィザードに従ってください
2
EndUzr

すべての復旧モデルでは、SQL Serverデータベース全体または一部、またはデータベースの個々のファイルまたはファイルグループをバックアップできます。 テーブルレベルのバックアップは作成できません

From: バックアップの概要(SQL Server)

1
Mitch Wheat

SqlTableZipという名前の無料アプリが仕事を終わらせます。基本的に、anyクエリ(もちろん、[select * from table]にすることもできます)を記述すると、アプリはすべてのデータを含む圧縮ファイルを作成します、後で復元できます。

リンク: http://www.doccolabs.com/products_sqltablezip.html

0
asapir

誰かが誤って行を削除した後にテーブルを復元できるようにしたい場合、データベースのスナップショットを見ることができます。スナップショットから非常に簡単にテーブル(または行のサブセット)を復元できます。 http://msdn.Microsoft.com/en-us/library/ms175158.aspx を参照してください

0
SPE109

BMC Recovery Manager(以前のSQLBacktrack)を使用すると、データベース(テーブル)内の個々のオブジェクトのポイントインタイムリカバリが可能になります。安くはありませんが素晴らしい仕事をします: 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

0
Matt Rogish

Handy Backupは、MSSQL 2005/2008を含むMS SQL Serverから自動的にダンプファイルを作成します。これらのダンプは、特定のデータベースコンテンツの正確なコピーを含むテーブルレベルのバイナリファイルです。

Handy Backupで簡単なダンプを作成するには、次の指示に従ってください:

  1. Handy Backupをインストールして、新しいバックアップタスクを作成します。
  2. データソースとして、ステップ2で「MSSQL」を選択します。新しいウィンドウで、バックアップするデータベースをマークします。
  3. バックアップを保存するさまざまな宛先から選択します。
  4. ステップ4で、「フル」バックアップオプションを選択します。必要に応じてタイムスタンプを設定します。
  5. 結果のダンプファイルを圧縮または暗号化する必要がない限り、手順5をスキップします。
  6. ステップ6で、タスクのスケジュールを設定して、定期的にダンプを作成します(そうでなければ、タスクを手動で実行します)。
  7. 繰り返しますが、ステップ7をスキップし、ステップ8でタスクに名前を付けます。タスクが終了しました。

次に、名前の前のアイコンをクリックして新しいタスクを実行するか、スケジュールされた時間を待ちます。 Handy Backupは、データベースのダンプを自動的に作成します。次に、バックアップ先を開きます。 MS SQLバックアップを含むフォルダー(またはいくつかのフォルダー)があります。このようなフォルダには、いくつかのバイナリテーブルと設定が単一のZipに圧縮されたテーブルレベルのダンプファイルが含まれます。

その他のデータベース

Handy Backupは、MySQL、MariaDB、PostgreSQL、Oracle、IBM DB2、Lotus Notes、およびODBCドライバーを持つ汎用SQLデータベースのダンプを保存できます。これらのデータベースの中には、DBMSとHandy Backup間の接続を確立するために追加の手順が必要なものがあります。

上記のツールは、多くの場合、SQLデータベースをテーブルレベルのSQLコマンドシーケンスとしてダンプし、これらのファイルを必要な手動変更に備えています。

0
Mark Geek

SQL Serverはテーブルバックアップをサポートしていないため、おそらく2つのオプションがあります。どちらも、テーブル作成のスクリプト作成から始まります。次に、多数の挿入ステートメントを生成するスクリプトテーブル-INSERTオプションを使用するか、統合サービス(2000でのDTS)などを使用して、CSVなどとしてデータをエクスポートできます。

0
Miles D