アップグレードの準備
1 台のコンピュータでアップグレードすることに決めても(SQL Server 7.0 を既存のハードウェアにインストールすることに決めても)、別のコンピュータでアップグレードすることに決めても(SQL Server 7.0 を別のコンピュータにインストールことに決めても)、ここからの説明は両方のアップグレード方法に同じように適用されます。1 台のコンピュータでのアップグレードは、別のコンピュータでのアップグレードの特殊なケースで、インポート コンピュータとエクスポート コンピュータが同じコンピュータであると考えられます。
初めに、エクスポート サーバーとインポート サーバーの両方で、システム管理者ユーザー パスワードを入手してください。Windows NT ログオンも、エクスポート サーバーとインポート サーバーの両方で Windows NT Administrators ローカル グループのメンバーである必要があります。アップグレード中は、SQL Server と Windows NT 認証モードに SQL Server 7.0 インストレーションを残してください。Windows NT 専用モード(SQL Server 6.x の統合セキュリティ モード)で実行する場合は、アップグレードが終わってからそのモードに切り替えてください。
Windows NT ローカル グループにマップされている SQL Server 6.x 統合セキュリティ ログインを使用する場合は、エクスポート サーバーと同じグループとユーザー メンバーでインポート サーバーにグループを存在させる必要があります。
SQL Server 6.x インストレーションの準備
アップグレードを始める前には、SQL Server 6.x インストレーションを確認する必要があります。SQL Server 6.x(エクスポート)インストレーションが次の要件を満たしていないと、SQL Server アップグレード ウィザードでは処理を続けられません。
tempdb データベースが最低でも 10 MB になっていること。
tempdb データベースが最低でも 10 MB なければ、SQL Server アップグレード ウィザードが SQL Server 6.x インストレーションに実行するクエリはサポートされません。tempdb データベースが 10 MB 以下である場合、アップグレードは続けられません。SQL Server 6.0 と SQL Server 6.5 の tempdb データベースは、デフォルトで 2 MB になっているので、データベースのサイズを変更しなければならないことがあります。exec sp_helpdb tempdb か SQL Server Enterprise Manager を使用して、tempdb データベースのサイズを確認してください。
@@SERVERNAME が NULL ではないこと。
SQL Server アップグレード ウィザードは、アップグレード プロセス中に @@SERVERNAME 関数を使用します。アップグレード中は、@@SERVERNAME をコンピュータ名に設定してください。SELECT @@SERVERNAME を実行した結果が NULL である場合は、exec sp_addserver 'computername', 'local' を実行し、@@SERVERNAME 関数をリセットしてください。たとえば、コンピュータ名が SQLPROD1 である場合は、exec sp_addserver 'SQLPROD1', 'local' を実行します。
master データベースに 3 MB の空き容量があること。
SQL Server アップグレード ウィザードを実行すると、Transact-SQL スクリプトがエクスポート サーバーに実行され、master データベースのシステム テーブルとストアド プロシージャが SQL 分散管理オブジェクト(SQL-DMO)とそのほかの接続コンポーネント用にアップグレードされます。変更内容には完全な下位互換性がありますが、ODBC と SQL-DMO の後のバージョンでは、SQL Server 6.x インストレーションを使用できます。3 MB の空き容量があるかどうか確認するには、次のスクリプトを実行するか、SQL Server Enterprise Manager を使用してください。
Use master
Go
exec sp_spaceused @updateusage = 'TRUE'
未割り当て容量が最低でも 3 MB(3072 KB)あることを確認してください。
オブジェクトのテキストが syscomments システム テーブルで有効であること。
トリガ、ビュー、ストアド プロシージャなど、テーブル以外のオブジェクトを作成すると、CREATE ステートメントのテキストが syscomments システム テーブルに保存されます。システム管理者がオブジェクトのテキストを削除すると、そのオブジェクトはアップグレードされません。
sp_rename システム ストアド プロシージャで syscomments のオブジェクト名が変更されることはありません。
sp_rename システム ストアド プロシージャで、ビューやストアドプロシージャなどのオブジェクト名を変更しても、オブジェクトの作成に使用した CREATE ステートメントのテキストは修正されません。このため、そのオブジェクトを SQL Server 7.0 に移行すると、名前を変更する前の名前が維持されます。
すべてのデータベース ユーザーにログインが存在すること。
データベースを移動したり、SQL Server 6.x インストレーションに復元したりした場合は、ログインが存在して各ユーザーに正しくマップされていることを確認する必要があります。SQL Server 6.0 では手動で、SQL Server 6.5 では sp_change_users_login ストアド プロシージャで確認してください。どちらのデータベースでも、ストアド プロシージャをパラメータなしで実行すると、ログインが正しくないユーザーが報告されます。ログインとユーザーのマップを訂正してからアップグレードを始めてください。
注意 システム テーブルを修正するストアド プロシージャはアップグレードされません。テーブルの EXECUTE など、効果のない権限もアップグレードされません。
SQL Server 6.x インストレーションのバックアップ
データベースをアップグレードする前には、問題ない移行を妨げるエラーの有無を調べる必要があります。DBCC CHECKDB、DBCC CHECKCATALOG、DBCC NEWALLOC、DBCC TEXTALL コマンドを使用し、すべてのデータベースでデータベース整合性チェックを行ってください。データベースの矛盾が見つかった場合は、データベースを修正するか矛盾のない状態に復元してからアップグレード プロセスを始める必要があります。次に、master データベース、model データベース、msdb データベース、ユーザーが定義したすべてのデータベースも含め、SQL Server 6.x インストレーションをバックアップしてください。実データとログ ファイルもバックアップできます。修正や復元は、すべてのアクティビティをアップグレードのために停止し、DBCC 一貫性チェックを問題なく終わらせた後で実行してください。
レプリケーションの注意事項
SQL Server 7.0 では、トランザクション レプリケーションを SQL Server 6.5 インストレーションに実行できます。新しいレプリケーション機能は、レプリケーションに関連するすべてのサーバーが(パブリッシャ、ディストリビュータ、サブスクライバなどが)SQL Server 7.0 にアップグレードされるまで使用できません。レプリケーションを有効にしている場合でも、SQL Server 7.0 へのアップグレードを実行するためにレプリケーションを無効にする必要はありません。
レプリケーションは、SQL Server 6.5 から 1 台のコンピュータでアップグレードする場合にのみアップグレードできます。そのほかの場合は、データベースをアップグレードしてから、SQL Server 7.0 でレプリケーションを手動で確立する必要があります。
最初にディストリビュータ サーバーをアップグレードしてください。SQL Server 6.5 からアップグレードする前には、次を確認してください。
初期同期を完了していない、新しいサブスクライバが追加されていないこと。
アップグレードするディストリビュータ サーバーに対応するパブリッシャ サーバーをアップグレードしないこと。
稼動サーバーでログ リーダー タスクを実行し、パブリッシャのトランザクション ログからディストリビューション データベースに、すべてのトランザクションをコピーすること。
ディストリビューション タスクを実行し、すべてのトランザクションをサブスクライバに分散してから、ディストリビューション データベースを含む SQL Server をアップグレードすること。
分散していないトランザクションがないことを確認するには、パブリッシャ データベースに exec sp_repltrans を実行します。アクティビティが停止していると、行は戻されません。次に、サポートされている各パブリッシャのディストリビューション データベースで、exec sp_MSDistribution_counter @publisher = 'publisher_servername' を実行します。メッセージを戻す行の undelivered_jobs 列は、0 以外でなければなりません。
SQL Server 7.0 のインストール
SQL Server 7.0 をインストールする場合は、SQL Server 6.x と同じ並べ替え順と文字セットを使用してください。1 台のコンピュータでのアップグレードでは、セットアップの最初で SQL Server 6.x サーバーに接続できれば、SQL Server セットアップが並べ替え順と文字セットをデフォルトで選択します。SQL Server 6.x インストレーションで使用していた文字セットと並べ替え順がわからない場合は、SQL Server 6.x サーバーに sp_helpsort システム ストアド プロシージャを実行してください。
1 台のコンピュータでアップグレードする場合は、インストールが終わると SQL Server アップグレード ウィザードが自動的に起動されます。そのほかの場合は、セットアップ プログラムが終わったら SQL Server アップグレード ウィザードを手動で起動してください。別のコンピュータでアップグレードする場合は、SQL Server サービスに Windows NT LocalSystem アカウントを使用できません。