6

ミラーリングされたデータベースがあり、それにいくつかの変更を加える必要があります。主に、ビューといくつかのストアドプロシージャを追加します。これで、スキーマを変更する場合は、ミラーリングとミラーデータベースを削除し、プリンシパルに変更を加えてから、プリンシパルをバックアップ復元し、ミラーリングを復元する必要があることがわかりました。これは、ストアドプロシージャとビューにも当てはまりますか?プリンシパルに変更を加えてからフェイルオーバーを行い、ミラーにも変更を加えることはできますか?このようなことをすることで起こりうる問題と影響は何ですか?主にデータベースが10ギガを超えているため、バックアップと復元に少し時間がかかるため、小さな変更を加えるたびに実行する必要があるのは非常に面倒な作業のようです。

4

3 に答える 3

11

ミラーリングしている場合、これらの変更をプリンシパルに適用できるはずであり、それらはミラーリングされた側に表示されます。2 つの間にスキーマの違いが必要な場合は、ミラーリングを使用できません。スキーマの変更をミラーリングされたデータベースのみに適用するか、または両方に適用するか? 両方の場合は、特別なことをする必要はありません。

于 2009-08-19T17:39:02.130 に答える
2

これで、スキーマを変更した場合、ミラーリングとミラーデータベースを削除し、プリンシパルに変更を加えてから、プリンシパルをバックアップ復元し、ミラーリングを復元することになっていることがわかりました。

これは実際には間違っています。プリンシパルデータベースとミラーデータベースは、実際には2つの物理的な場所に格納されている単一のデータベースです。プリンシパルで発生するすべて変更は、ミラーでも発生します。それらは文字通り常に同一です。

したがって、テーブル、ビュー、プロシージャ、関数、スキーマ、データベースプリンシパル、アセンブリなどを含むスキーマの変更は、プリンシパルとミラーの両方で発生します。

特別な注意が必要な唯一の変更は、データベースに関連しているがデータベースでは発生しない変更です。エージェントジョブ(msdbにあります)、サーバープリンシパル(ログイン)、レプリケーション設定(データベース内のいたるところにあります)。 、msdbおよびディストリビューター。

于 2009-08-19T18:01:52.693 に答える
1

ログシップされたデータベースとミラーリングされたデータベースの両方にスキーマの変更を適用しましたが、特別なアクションを実行する必要はありませんでした。
ただし、レプリケーションの形式によっては、特別な手段が必要です。

于 2009-08-19T17:43:16.910 に答える