私はいくつかのmysqlレプリケーションを行う必要があります。いくつかの情報:
- 共有ホスティングに 2 つのデータベース インスタンスがあるため、Mysql レプリケーションを使用できません (構成ファイルにアクセスできません)。
- これは非営利プロジェクト (教育) のためのものであるため、独自のサーバーを購入する余裕はありません。
- メインサーバーが数分間ダウンした場合、通常はそれほど悪くはありませんが、メインサーバーと同期されたバックアップソリューションが本当に必要な特定の日が存在します (ウェブサイトの時間制限イベント)。
現在、システムはすべてのテーブルのすべての行でリビジョン番号を使用しており、これらの番号の変更を定期的にチェック (および対応する行を更新) しています。かなり遅いです。
私が考えているのは、すべての SELECT/INSERT/UPDATE クエリが特定のテーブルに記録され、「スレーブ サーバー」が定期的に「マスター サーバー」にこのテーブルの内容を問い合わせ、対応するクエリを適用するということです。
その考えについてどう思いますか。
完璧ではないことはわかっています。すべてのクエリが伝播される前にサーバーがダウンする可能性がありますが、可能な限り少ないコード行で、発生する可能性のある問題を最小限に抑えたいと考えています。
それを実装するための最良の方法は何でしょうか?
- PHP コードでは、すべての SELECT/INSERT/UPDATE で、特定のテーブルに別の挿入を行うことができます (クエリを挿入するだけです)。
- トリガー付き?