13

MySQLレプリケーションで何ができるかについてはかなり良い感じがします。他のどのデータベースがレプリケーションをサポートしているか、そしてそれらがMySQLや他のデータベースとどのように比較されているのか疑問に思っていますか?

私が持っているいくつかの質問は次のとおりです。

  1. レプリケーションは組み込まれていますか、それともアドオン/プラグインですか?
  2. レプリケーションはどのように機能しますか(高レベル)?MySQLは、ステートメントベースのレプリケーション(および5.1では行ベースのレプリケーション)を提供します。他のデータベースとの比較に興味があります。何が有線で出荷されますか?変更はどのようにレプリカに適用されますか?
  3. マスターとスレーブ間の整合性をチェックするのは簡単ですか?
  4. 失敗したレプリカをマスターと同期させるのは簡単ですか?
  5. パフォーマンス?MySQLレプリケーションについて私が嫌うことの1つは、シングルスレッドであり、マスターが多くの更新を並行して実行できるため、レプリカが追いつくのに問題が生じることが多いことですが、レプリカはそれらをシリアルに実行する必要があります。他のデータベースにこのような落とし穴はありますか?
  6. その他の興味深い機能...
4

10 に答える 10

8

MySQLのレプリケーションは、完全なマスター/マスターサポートを取得するために他の機能を犠牲にする必要があるため、弱くなります(サポートされるバックエンドの制限のため)。

組み込みでサポートされているのはマスター/スタンバイのみであるため、PostgreSQLのレプリケーションは脆弱です(ログ配布を使用)。より強力なソリューション(SlonyやLondisteなど)には、アドオン機能が必要です。アーカイブログセグメントはネットワーク経由で出荷されます。これは、スタンドアロンデータベースがクリーンでない起動時に動作し、一貫した状態にあることを確認するために使用されるのと同じレコードです。これは私が現在使用しているものであり、再同期(およびセットアップやその他の機能)は完全に自動化されています。これらのアプローチはどれも完全に同期していません。PostgreSQL 8.5以降、より完全なサポートが組み込まれる予定です。ログ配布ではデータベースの同期が解除されないため、プロセスが同期ステータスをテストする必要はありません。2つのデータベースを同期に戻すには、マスターにバックアップフラグを設定する必要があります。スレーブに同期し(データベースはまだ実行中です。これは安全です)、バックアッププロセス中に生成されたアーカイブログを使用してバックアップフラグの設定を解除します(そしてスレーブプロセスを再起動します)。私の店では、このプロセス(他のすべての管理タスクと同様)が自動化されています。マスターは他の作業に加えてログセグメントを内部で再生する必要があるため、パフォーマンスは問題になりません。したがって、スレーブは常にマスターよりも負荷が少なくなります。

OracleのRAC(ストレージバックエンドが1つしかないため、適切にレプリケーションされていませんが、負荷を共有するフロントエンドが複数あり、その共有ストレージバックエンド自体に冗長性を組み込むことができるため、ここで言及する価値があります)はマルチマスターです。他のソリューションよりもはるかに包括的なアプローチですが、非常にコストがかかります。データベースの内容は「ネットワーク経由で出荷」されません。代わりに、それらは共有バックエンドに保存され、関係するすべてのシステムがアクセスできます。バックエンドが1つしかないため、システムの同期が外れることはありません。

Continuentは、上記の3つのデータベースすべてをサポートする、完全に同期したステートメントレベルのレプリケーションを実行するサードパーティソリューションを提供します。ただし、市販されているバージョンの製品は特に安価ではありません(ただし、はるかに安価です。前回管理したとき、Continuentのソリューションでは、クラスターを同期に戻すために手動で介入する必要がありました。

于 2008-09-26T22:20:40.023 に答える
5

MS-SQL 2005(パブリッシャー)およびSQLEXPRESS(サブスクライバー)の海外マージレプリケーションの経験があります。これが私のコメントです:

1-レプリケーションは組み込まれていますか、それともアドオン/プラグインですか?

ビルトイン

2-レプリケーションはどのように機能しますか(高レベル)?

スナップショット(サブスクライバーレベルで静的データを提供する)からトランザクションレプリケーション(各INSERT / DELETE / UPDATE命令はすべてのサーバーで実行される)まで、さまざまなレプリケーション方法。マージレプリケーションは、最終的な変更のみをレプリケートします(同じレコードに対する連続したUPDATEは、レプリケーション中に一度に行われます)。

3-マスターとスレーブ間の整合性を確認するのは簡単ですか?

私がやったことのないこと...

4-失敗したレプリカをマスターと同期させるのは簡単ですか?

基本的な再同期プロセスはダブルクリックするだけです...。ただし、64 Kb接続で再初期化する4Goのデータがある場合は、カスタマイズしない限り、長いプロセスになります。

5-パフォーマンス?

ええと...もちろん、どこかにボトルネックがあります。それは、接続パフォーマンス、データ量、または最終的にはサーバーパフォーマンスです。私の構成では、ユーザーはサブスクライバーにのみ書き込みます。サブスクライバーはすべて、メインデータベース=パブリッシャーで複製されます。その後、このサーバーは最終ユーザーによって要求されることはなく、そのCPUは(複数のサーバーへの)データ複製とバックアップ専用になります。サブスクライバーはクライアントと1つのレプリケーション(パブリッシャーへの)専用であり、最終ユーザーのデータ可用性に関して非常に興味深い結果をもたらします。パブリッシャーとサブスクライバー間のレプリケーションは、一緒に起動できます。

6-その他の興味深い機能...

ある程度の期待を持って、レプリケーションプロセスを停止することなく、データベースの開発を続けることができます。テーブル(間接的な方法)、フィールド、およびルールを追加して、サブスクライバーにレプリケートできます。

マージまたはトランザクションレプリケーションを実行している場合でも、サブスクライバー側で無料のSQLEXPRESSを使用できるため、メインのパブリッシャーと複数のサブスクライバーを使用した構成は非常に安価です(他のいくつかと比較した場合...)。

于 2008-10-06T13:37:06.790 に答える
4

SQL Server(特に、現在変更追跡機能を備えているSQL 2008)でオプションを追加するだけです。考慮すべきことは、Microsoftの同期フレームワークです。そこにはいくつかのオプションがあります。単一の中央サーバーと時々接続されたクライアントがある場合に最適な基本的なハブアンドスポークアーキテクチャから、はるかに高度な機能を提供するピアツーピア同期までです。複数の「マスター」データベースとの同期。

従来のレプリケーションの代わりにこれを検討する理由は、コードからより多くの制御ができるためです。たとえば、更新/更新、更新/削除、削除/更新、挿入/挿入の競合の同期進行中にイベントを取得できます。そして、ビジネスロジックに基づいてそれらを解決する方法を決定し、必要に応じて、競合のデータの敗者を手動または自動処理のためにどこかに保存します。このガイドを参照して、レプリケーションや同期のさまざまな方法で何が可能かを判断するのに役立ててください。

熱心なプログラマーにとって、同期フレームワークは十分にオープンであるため、クライアントはWCFを介してWCFサービスに接続でき、バックエンドデータストアを抽象化できます(バックエンドとしてOracleを使用して実験している人もいます)。

私のチームは、中央のSQL ServerデータベースからのデータのサブセットをWANおよびインターネット(場合によっては低速のダイヤルアップ接続)を介して同期する複数のSQLExpressデータベースを含む大規模なプロジェクトをリリースしました。

于 2008-10-23T04:25:35.430 に答える
4

SybaseSQLAnywhereをお試しください

于 2008-10-06T13:43:55.980 に答える
3

MS SQL 2005 Standard Edition 以降には、優れたレプリケーション機能とツールがあります。を見てみましょう:

http://msdn.microsoft.com/en-us/library/ms151198(SQL.90).aspx

かなり有能です。SQL Server Express を読み取り専用サブスクライバーとして使用することもできます。

于 2008-09-26T21:41:10.647 に答える
2

データベースがレプリケーションを呼び出すさまざまなものがあります。それらのすべてが実際に複製を伴うわけではなく、大きく異なる方法で機能するものもあります。一部のデータベースは、いくつかの異なるタイプをサポートしています。

MySQL は非同期レプリケーションをサポートしており、これはいくつかの点で非常に優れています。ただし、弱点があります。ステートメントベースのレプリケーションは、ほとんどの (ある?) 他のデータベースが行うことと同じではなく、常に期待どおりの動作になるとは限りません。行ベースのレプリケーションは、本番対応ではないバージョンでのみサポートされています (ただし、他のデータベースの方法とより一貫しています)。

各データベースには独自のレプリケーション方法があり、一部のデータベースには他のツールのプラグインが含まれます。

于 2008-10-01T19:46:40.880 に答える
1

トピックから少し外れますが、MySQL レプリケーションを支援するツールについて Maatkit を確認することをお勧めします。

于 2008-09-27T13:30:16.793 に答える
0

私は自分で試したことはありませんが、OpenBaseSQL を調べることもできます。これには、使いやすいレプリケーションが組み込まれているようです。

于 2009-01-09T14:43:54.593 に答える
0

すべての主要な商用データベースは適切なレプリケーションを備えていますが、一部のデータベースは他のデータベースよりも適切です。IBM Informix Dynamic Server (バージョン 11 以降) は特に優れています。実際には 2 つのシステムがあります。1 つは高可用性用 (HDR - 高可用性データ レプリケーション) で、もう 1 つはデータ分散用 (ER - エンタープライズ レプリケーション) です。また、Mach 11 の機能 (RSS - リモート スタンドアロン セカンダリ、および SDS - 共有ディスク セカンダリ) も優れており、HDR ペアのプライマリまたはセカンダリに書き込むことができる 11.50 では 2 倍になります。

(完全な開示: 私は Informix ソフトウェアに取り組んでいます。 )

于 2008-09-27T05:23:50.553 に答える
-1

もう 1 つの方法は、仮想化環境で実行することです。このブログ記事のデータは面白いと思いました

http://chucksblog.typepad.com/chucks_blog/2008/09/enterprise-apps.html

これは EMC の幹部によるものであり、明らかに独立したものではありませんが、実験は再現可能でなければなりません

Oracle固有のデータは次のとおりです

http://oraclestorageguy.typepad.com/oraclestorageguy/2008/09/to-rac-or-not-to-rac-reprise.html

編集:仮想化を実行する場合、何でも複製する方法があります

http://chucksblog.typepad.com/chucks_blog/2008/05/vmwares-srm-cha.html

于 2008-09-26T21:29:12.347 に答える