MS SQL Server 2005/2008 でテーブルレベルのバックアップ (ダンプ) を取得する方法は?
16 に答える
BACKUP DATABASE
もちろん、問題のテーブルがそれ自体に割り当てられていない限り、コマンドを使用して単一のテーブルをバックアップすることはできませんFILEGROUP
。
あなたが提案したように、あなたができることは、テーブルデータをCSVファイルにエクスポートすることです。これで、テーブルの定義を取得するために、スクリプトを「スクリプトアウト」することができますCREATE TABLE
。
これは、SQL ServerManagementStudio内で次の方法で実行できます。
[データベース]>[タスク]>[スクリプトの生成]を右クリックします
次に、スクリプト化するテーブルを選択し、制約やインデックスなどの関連オブジェクトを含めることも選択できます。
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 では、個々のテーブルを選択できます。
編集スタックのバージョンは完全に判読できません... フルサイズの画像はこちらhttp://i.imgur.com/y6ZCL.jpg
以下のクエリを実行して、既存のテーブルのバックアップを作成し、データとともに古いテーブルの既存の構造を持つ新しいテーブルを作成できます。
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
、朗報です。SQLServer 2008ManagementStudioがその機能を追加しました。
SSMSで、問題のDBを右クリックし、[タスク]>[スクリプトの生成]を選択します。次に、オプションウィザードの2ページ目で、データのスクリプトも作成することを選択してください。これにより、ファイルに相当する量が生成さDUMP
れます。
新しいファイル グループを作成し、このテーブルをその上に置き、このファイル グループのみをバックアップします。
Microsoftの無料のデータベース公開ウィザードを使用して、SQLスクリプト(CREATETABLEおよびINSERTINTO)を含むテキストファイルを生成できます。
このようなファイルを1つのテーブルに作成し、SQLスクリプトを実行するだけで、データを含むテーブル全体を「復元」できます。
ここで説明した問題と一致するかどうかはわかりません。テーブルの増分バックアップを取る必要がありました!(新しく挿入されたデータのみをコピーする必要があります)。私は以前、DTSパッケージをどこで設計していました。
(「ステータス」列に基づいて)新しいレコードをフェッチし、データを宛先に転送しました。(「データ変換タスク」を通じて)
次に、「ステータス」列を更新しました。(「SQLタスクの実行」を通じて)
「ワークフロー」を適切に修正する必要がありました。
SQL Server インポートおよびエクスポート ウィザードを使用します。
- ssms
- データベース エンジンを開く
- 代替。エクスポートするテーブルを含むデータベースをクリックします
- 「タスク」を選択
- 「データのエクスポート...」を選択します
- ウィザードに従ってください
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
SqlTableZip という名前の無料アプリで作業が完了します。基本的に、任意のクエリを記述し (もちろん、[select * from table] にすることもできます)、アプリはすべてのデータを含む圧縮ファイルを作成します。このファイルは後で復元できます。
Handy Backup は、MSSQL 2005/2008 を含む MS SQL Server から自動的にダンプ ファイルを作成します。これらのダンプは、特定のデータベース コンテンツの正確なコピーを含む、テーブル レベルのバイナリ ファイルです。
Handy Backup で簡単なダンプを作成するには、次の手順に従ってください。
- Handy Backup をインストールし、新しいバックアップ タスクを作成します。
- 手順 2 でデータ ソースとして「MSSQL」を選択します。新しいウィンドウで、バックアップするデータベースをマークします。
- バックアップを保存するさまざまな宛先の中から選択します。
- ステップ 4 で、「フル」バックアップ オプションを選択します。必要に応じてタイムスタンプを設定してください。
- 結果のダンプ ファイルを圧縮または暗号化する必要がない限り、ステップ 5 をスキップします。
- ステップ 6 で、定期的にダンプを作成するタスクのスケジュールを設定します (それ以外の場合は、タスクを手動で実行します)。
- ここでも、ステップ 7 をスキップして、ステップ 8 でタスクに名前を付けます。これでタスクは完了です。
名前の前にあるアイコンをクリックして新しいタスクを実行するか、スケジュールされた時間を待ちます。Handy Backup は、データベースのダンプを自動的に作成します。次に、バックアップ先を開きます。MS SQL バックアップを含むフォルダー (またはいくつかのフォルダー) が見つかります。このようなフォルダーには、単一の ZIP に圧縮されたいくつかのバイナリ テーブルと設定で構成されるテーブル レベルのダンプ ファイルが含まれます。
その他のデータベース
Handy Backup は、MySQL、MariaDB、PostgreSQL、Oracle、IBM DB2、Lotus Notes、および ODBC ドライバーを備えた汎用 SQL データベースのダンプを保存できます。これらのデータベースの中には、DBMS と Handy Backup 間の接続を確立するために追加の手順が必要なものがあります。
上記のツールは多くの場合、SQL データベースをテーブル レベルの SQL コマンド シーケンスとしてダンプし、これらのファイルを手動で変更する必要がある場合に備えます。
誰かが誤ってテーブルから行を削除した後にテーブルを復元できるようにしたい場合は、データベース スナップショットを参照してください。スナップショットからテーブル (または行のサブセット) を非常に簡単に復元できます。http://msdn.microsoft.com/en-us/library/ms175158.aspxを参照してください。