2011-06-22 19 views
4

77個のデータベースを含むSQL Server 2000を使用しています。新しいSQL Server 2008 R2に移行する必要があります。SQL Server 2000からSQL Server 2008 R2への移行

この操作は、attachコマンドまたはrestoreコマンドで個別に行うことができます。 SQL Server 2008 R2にインストールされた新しいサーバーに77データベースを移行するためのスクリプトはありますか?

あなたは

答えて

0

あなたはSql Compareのようなソフトウェアツールを使用することができますありがとうございます。

個別にスクリプトを作成しないと失敗します。

内部でsysobjects tableを実行して結合スクリプトを作成することはできますが、そうではありません。

+0

SQLは比較に行くことは "解除スクリプト" ツールのより多くの、移行ツールではありません。データはどうですか? – gbn

+0

Sqlデータ比較は、通常、Red Gate(バットマン(?!)のようなユーティリティ・ベルトと呼ばれていた)と同じパッケージの一部で、データを転送します。 – amelvin

+0

はい、毎日(開発者用パッケージ)使用していますが、まだ移行ツールではありません。 – gbn

2

あなたは、ループ内でバックアップするスクリプトを記述している限り、バックアップファイルが両方のサーバーに見えるよう、別のサーバー

に復元することができます。これはWITH MOVEオプションが異なるドライブ/フォルダを許可するようにします。

バックアップは、あなたが本当にバックアップよりも多くを行うと、復元したいと思うようあなたが独自のスクリプトを作成する必要がありますあまりにも少ないコピー

2

へのMDF /なLDFよりも小さいです。 DBCC UpdateUsageを実行し、互換性レベルを設定し、統計を更新し、DBCC CheckDBをData_Purityで実行し、ページ検証オプションをチェックサムに変更することをお勧めします。また、レプリケーションとフルテキストカタログを扱うこともできます。これらすべてのことはおそらくあなたのスクリプトに入る必要があります。

以前にデータベースに記述されているもののすべてまたは一部を実行し、すべてのデータベースをループするようにスクリプトを拡張するスクリプトをセットアップする必要があります。これは、バッチファイルまたはPowerShellファイルの組み合わせを使用して、sqlcmdを使用して実行できます。

たとえば、これは新しいサーバーにバックアップを復元した後に実行するスクリプトです。これはsqlcmdを介してWindowsのバッチファイルから呼び出されます。 NO_WAIT WITH

​​

GO

ALTERデータベース[$(DATABASENAME)] SET COMPATIBILITY_LEVEL = 100

ALTERデータベース[$(DATABASENAME)] SET PAGE_VERIFY CHECKSUM GO

使用[$ (DATABASENAME)]

go @DBO sysnameを宣言する

- saユーザーです

sysから@DBO = name を選択してください。server_principals がカウント

--fix

を行くprincipal_id = 1

DB所有者

のexec SA --assign( 'sp_changedbownerを ''' + @DBO + '' '') (0) デシベル--check を行く

DBCC UPDATEUSAGEは、列の値の整合性を含め

DBCC CHECKDB(0)でDATA_PURITY、ALL_ERRORMSGS、NO_INFOMSGS

--make統計情報が最新のもの

EXEC sp_updatestatsであることを確認

ゴー

+0

スクリプトはありますか?自分の環境に使用できます。 –

+0

私はスクリプトを個別に書くことができます。すべてのデータベースでは動作しません+77 –

関連する問題