データベースのレプリケーション。2 台のサーバー、マスター データベース、2 台目は読み取り専用
-
08-06-2019 - |
質問
2 つのデータベース サーバーがあるとします。1 つのデータベースはすべての書き込み操作が実行される「マスター」データベースであり、「実際の/オリジナル」データベースとして扱われます。他のサーバーのデータベースはマスター データベース (スレーブ?) のミラー コピーとなり、アプリケーションの特定部分の読み取り専用操作に使用されます。
マスター データベース上のデータをミラーリングするスレーブ データベースをセットアップするにはどうすればよいでしょうか?私が理解しているところによると、スレーブ/読み取り専用データベースはマスターデータベースのトランザクションログファイルを使用してデータをミラーリングすることになっていますか?
スレーブ データベースがデータをミラーリングする頻度に関しては、どのようなオプションがありますか?(リアルタイム/x 分ごと?)。
解決
ここで必要なのは、SQL Server 2005 のトランザクション レプリケーションと呼ばれるものです。パブリッシャーとしてほぼリアルタイムで変更を複製します (つまり、"master") データベースが更新されます。
他のヒント
SQL Server 2008 には 3 つの異なるレプリケーション モードがあります。
- トランザクション 一方向の読み取り専用レプリケーションの場合
- 双方向レプリケーションのためのマージ
- スナップショット
私が理解しているところによると、スレーブ/読み取り専用データベースはマスターデータベースのトランザクションログファイルを使用してデータをミラーリングすることになっていますか?スレーブ データベースがデータをミラーリングする頻度に関しては、どのようなオプションがありますか?(リアルタイム/x 分ごと?)。
これは、レプリケーションではなくログ配布について話しているように思えます。あなたがやろうとしていることについては、私も同意しますが、 ジェレミー・マッカラム そしてトランザクションレプリケーションを行うと言います。データベースが x 分ごとに復元されるときにログ配布を実行する場合、データベースは使用できなくなります。
ここでは、この 2 つの違いについて詳しく説明します。残念ながら、読むにはアカウントにサインアップする必要があります。=/ http://www.sqlservercentral.com/articles/Replication/logshippingvsreplication/1399/
これに対する答えは、これを行うために使用しているデータベース サーバーによって異なります。
編集:申し訳ありませんが、質問だけでなくタグを確認する方法を学ぶ必要があるかもしれません。これに sqlserver というタグが付けられていることがわかります。
トランザクション レプリケーションはリアルタイムです。
データベースで何も更新する必要がない場合、必要なのは、たとえば 1 日に 1 回データを取得することだけです。次に、トランザクション レプリケーションの代わりにスナップショット レプリケーションを使用します。スナップショット レプリケーションでは、ユーザーが定義したタイミングで、たとえば 24 時間に 1 回、変更がレプリケートされます。