2006年10月26日

SQL Server 2000 サーバー名を変更後ジョブの更新ができない

SQL Server 2000 のインスタンスで、以前に作成したジョブの更新または削除ができない場合がある。この場合、以下のエラーメッセージが表示される。

エラー 14274: MSX サーバーからのジョブ、ステップ、スケジュールの追加、更新、または削除はできません。ジョブは保存されませんでした。

この現象は、以下のような操作を行った場合に発生することがある。

SQL Server を実行するコンピュータのコンピュータ名を変更した
SQL Server 2000 のデータベースを別のコンピュータ名のコンピュータに移行した
SQL Server 7.0 の仮想サーバーを SQL Server 2000 の仮想サーバーにアップグレードした

SQL Server 7.0 では、msdb..sysjobs テーブルの originating_server フィールドに、ローカルサーバーを参照する値「(local)」が格納されるため、この問題は発生しない。したがって、サーバー名をどのように変更しても、ローカルサーバージョブには影響ない。

SQL Server 2000 では複数インスタンスがサポートされているため、originating_server フィールドには「サーバー名¥インスタンス名」形式のインスタンス名が格納されている。サーバーの既定のインスタンスにも、「(local)」の代わりに実際のサーバー名が使用されている。そのため、Windows サーバーの名前が変更されたあとでも、これらのジョブではまだ元の名前のサーバー名が参照され、新しいサーバー名からの処理ではこれらのジョブを更新または削除できないことがある。

SQL Server 7.0 から SQL Server 2000 にアップグレードしたあとは、すべての既存ジョブの originating_server 列も更新され、値「(local)」は使用されなくなる。

○ 対処方法

この問題に対処するには、以下の手順を実行する。

1. 問題となったサーバー名を元の名前に戻す
2. すべてのジョブのスクリプトを作成した後で、すべてのジョブを削除する
3. サーバー名を新しい名前に変更する
4. 手順 2. で生成したスクリプトを実行して、ジョブを元に戻す

【参照】 マイクロソフト 技術方法 281642
          SQL Server 2000 Books Online 「マルチサーバー管理」

posted by w@ko at 22:38|  ・SQL Server | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。