SQL 2008でインスタンスを複製する最も効果的な方法は何ですか?


14

データベースに十分なデータがある便利なデータベースインスタンスがあり、それをデモ目的に使用できます。ラップトップにコピーを置いて、開発作業に使用できるようにします。私はオフィスにいません。(通常のdevデータベースインスタンスは約150GBで、この1つのインスタンスは3GBです)

ラップトップでインスタンスを再作成するための最も反復可能/スクリプト可能な方法は何ですか?SqlServer2008のインストーラーを再度実行し、インスタンスを設定する必要があると確信していますが、その後...毎月かそこらで古いデータベースを削除できるようにしたいと考えていますインスタンスが1つのデモシステムでもラップトップでも変更されないため、すべての新しいものをラップトップにコピーします。ただし、データベース自体は更新され、sprocなどが更新されます。

すべての「データベースファイルのドロップ;データベースファイルの追加{パス}」をスクリプト化し、それらを何らかの実行可能なバッチファイルに保存することを検討しました。その後、「ドロップ、削除、コピー、追加」 xcopyとbatchよりも良い方法でしたか?

私は安価でこれをやろうとしているので(私たちは常に安いものでしようとしないでください)、RedGate製品などに特に興味はありません。自分用にテキストエディタで簡単に保守できるものが欲しい。


単一のデータベースまたは複数のデータベースを持つSQLサーバーインスタンスですか?ラップトップと開発マシンにSQLサーバーがインストールされており、データベースが1つあると仮定します。その場合、バックアップと復元を使用できます。開発マシンのデータベースをバックアップし、ラップトップにコピーして復元します。逆もまた同様です。
CoderHawk

SQL Server Express Editionですか?または標準?SSISは、このようなシナリオに適したオプションですが、残念ながらExpressおよびWebエディションでは使用できません。
CoderHawk

@Sandyさん、ごめんなさい。SQLDev 2008です。MSDNのおかげで、thoで推測できるほとんどすべてにアクセスできます。
jcolebrand

質問のタイトルは、「SQL 2008で|インスタンス|を複製する最も効果的な方法は何ですか?」-インスタンスまたはデータベース?
-CoderHawk

@Sandy〜 "インスタンス" ...確かに、私はすべてが欲しい。
jcolebrand

回答:


4

頭に釘を打ちました:ファイルをコピーします。私はこれを効果的に使用しました。

xcopyを含まないソリューションを準備するための時間の投資を含めるには、「安い」と定義する必要があると思います


3

うーん、これが役立つかどうかはわかりませんが、スクリプトのセットを使用して、運用データベースを "クリーン"し、開発の悪用に備えています。datetime列を持つすべての大きなテーブルを取得し、昨年のデータのみを含むテーブルを再構築しています。約200 GBの完全なデータベースから、開発用に約40 GBのデータベースを取得します。主に、各テーブルのbcpファイルを作成するための動的スクリプトを生成し、テーブル(関連する制約を含む)を再作成して、昨年のデータのみを一括挿入します。

これを行うためのツールがあるかもしれませんが、私たちの店は安くなります:-)。


ええ、私たちはたくさんのものをBCPルートに行きますので、あなたが言っていることを理解し、これの一部を切り捨てることは良いでしょうが、私はすでに必要な約3GBのデータを持っているので、本当にそうではありませんさらに追加したいと考えています。インスタンス全体をコピーし、繰り返し実行する方法があると考えています。しかし、そうでなければ、私はあなたが話しているものと同じタックにいると思う、ちょうど小さな見た目。
jcolebrand

したがって、すべての手順をバッチで繰り返します:)。SQLにはバッチパラメータがあり、バッチファイルとSQLファイルを組み合わせて、素敵なパッケージを取得できます。異なるドメインで動作するカスタムログ配布(ダム)パッケージを作成しました。すべてのデータベースの準備はcmd / sqlファイルで行われます。使用目的にのみ名前付きインスタンスを作成し、そこでサービスの開始/停止、データベースの復元、クリーニング、準備、バックアップ、特定のフォルダーへの発送を行うことができます。たぶん、PowerShellでいくつかの作業をより速く行うことができるかもしれません。
マリアン

うん

@jcolebrand-多分Norton GhostやClonezillaのようなツールが役立つでしょうか?プレイグラウンドのどこかにprodバックアップフォルダーをコピーし、そこに戻ってすべての楽しみ(restore..trim ... etc)を行うために必要です。コピーアクションのスクリプトを作成する必要はなく、sql部分のみを処理します:)。
マリアン

ああ、それは役に立つかもしれない。検討の新しい道。
jcolebrand

0

これらのシステムに合わせてスキーマをアップグレードする最も簡単な方法は、Red Gate SQL CompareやEmbarcadero DB Change Managerなどのツールを使用することです。

おそらく同じスキーマ比較を行うことができ、データベーススキーマをアップグレードするためのDDLを提供できるツールが他にもたくさんあります。

オプション

  1. サードパーティツールを使用する
  2. データベースのバックアップと復元-ステージングインスタンスに復元してデータを削除する必要がある場合があります(ラップトップのスペース制限のため)
  3. SMOを使用して独自のデータベーススクリプターを記述し、オブジェクトをスクリプト化するジョブを作成し、必要な月/時間ごとにスキーマを再作成し、SSISを使用して新しいオブジェクトにデータをロードします。

インスタンスの「データベースのバックアップと復元」はどのように機能しますか?私が欲しいのデータを保持するために、これらのことは、生産よりちょうど小さい完全なデータセット、テーブルだから。
jcolebrand

SSISはおそらく私に必要なことをさせてくれるでしょうが、それについては十分に知りません。さらに調査する必要があります。
jcolebrand

@jcolebrand-列の追加などを行うときに、ライブシステムからデモシステムにデータを移動する方法を単に検討する必要があるため、バックアップの復元をお勧めします。ただし、これには、別のバックアップと復元/デタッチとアタッチの前に復元してからデータをパージする必要があるという欠点があります。
johndacostaa
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.