私の環境では、あるサーバーから別のサーバーにデータベースをコピーする必要があります。通常、私のローカルボックスへのQAマシン。
QAマシンにアクセスできません。データベースに接続できますが、ボックスにRDPを接続することはできません。
QAサーバーから自分のマシンにデータベースをコピーする最良の方法は何ですか?
SQL Management Studioから利用できる データベースのコピーウィザード コマンドを試してみます。これは、RDPアクセスなしで実行できます。
Microsoftには、 サーバー間でデータをコピーする に関するMSDNページもあります。
SQL Serverボックスでファイル共有または管理ファイル共有(c $など)にアクセスできる場合は、SQL Server Management Studioを使用してサーバードライブにバックアップを実行し、ローカルマシンにコピーできます。
SQL Server Management Studio(例はSSMS 2008のもので、2005と同様である必要があります):
それが完了したら、ファイルをローカルマシンにコピーします。
SSMS 2008に付属しているインポート/エクスポートウィザードもあり、あるデータベースから別のデータベースに直接コピー(つまり、QAからローカル)を実行できますが、常にアクセスできるため、あまり使用していません。 DBサーバー。
ソースデータベースに接続できるが、それが実行されているマシンへのRDPは接続できない場合は、 Microsoftデータベース公開ウィザード を使用できます。
これは、完全なデータベースのSQLスクリプトを作成するMSの無料ツールです。
その後、マシンでスクリプトを実行できます。
最も簡単な方法、そしてこの状況でおそらく最も安全な方法は、データベースをバックアップし、.bakファイルをマシンに復元することです。
これは、たとえばSSRSレポート用にストアドプロシージャを作成しているとき、または単にテストしたり、何かに手を出したりするときに、私が通常特別に行うことです。そしてもちろん、私は常に自分の開発インスタンスにのみ接続していることを確認します。ライブデータベースをいじりたくありません。そのため、私は通常、深夜に特定のデータベースにバックアップを実行し、それを自分のマシンにSFTPで転送して、クイックリストアを実行します。すべてがテストされ、開発ですべてが正常に機能している場合は、ライブインスタンスとdbでスクリプトを実行します;-)
私は「バックアップ」のアイデアを2番目に考えましたが、このために新しいバックアップを取ることはしませんでした。昨夜のバックアップを取得します。余分なバックアップ時間を節約できるだけでなく、昨夜のバックアップのテストでもあります。これが通常の要件である場合は、バックアップのコピーを入手できる場所に残すようDBAに依頼するのが妥当です。
データベースが比較的小さい場合は、管理スタジオから作成スクリプトを生成して、ターゲットSQLサーバーで実行できます。データをスクリプト化する場合、これらは非常に大きくなる可能性がありますが、機能します。
データベースを右クリックして、「タスク」と「スクリプトの生成...」を選択します。
データベースを選択し、「選択したデータベース内のすべてのオブジェクトをスクリプト化する」というラベルの付いた下部のボックスをクリックします。
これは最も重要な部分ですオプションを注意深く読んでください、データ(デフォルトではfalse)、トリガーなどが含まれていることを確認してください。複雑なデータベースがある場合、実行時にスクリプトがエラーになることがあります。最も一般的なデータベーススキーマの場合、これは当てはまりません。
私はこの方法を、SQLポートを外部に開かないWebホストでよく使用します。テキストのみで、扱いやすい
ハッピーコピー。
ブレット
以前にPowerShellを使用してバックアップを作成し、それをローカルドライブに自動的にコピーしました。
あなたはおそらくpowershellsqlバックアップをグーグルすることができますが、ここにあなたが始めるためのいくつかのリンクがあります:
インストールの/ Dataディレクトリにあるファイルをコピーするだけでこれを実現できますか?