0

私の会社には、クライアントがオフラインでタスクを実行してからオンラインバージョンと同期できる製品があります。私たちはますます頻繁に成長している問題に遭遇しました。

問題は2つあります。

  1. 同期プロセス中に、データ損失がどこかで発生することがあるようです。MySQLバイナリログにその同期のデータがないことを除いて、これは大きな問題にはなりません。データベースには、一部のデータが書き込まれたことが示されていますが、ログに書き込まれたデータはありません(DBに書き込まれたデータも)。データベース内のデータとMySQLログの間で100%の一貫性を保証するソリューションが必要です。これが頻繁に発生するテーブルは、MyISAMまたはInnoDBのいずれかです(クライアントのサイズによって異なります)。

  2. オフラインデバイスでは、データが頻繁に破損します。server2goパッケージ(WAMP)を使用して、PHP/MySQLベースの製品の派生物をデバイスでホストしています。より安定したプラットフォームを可能にするソフトウェアI/O抽象化以外の方法論はありますか?

4

1 に答える 1

0

この問題は、mysql DBへのすべての変更をSQLiteデータベースにクローン化し、「バックアップ」モジュールをDBALに移植することで解決されました。これにより、データの破損が自動的に検出され、テーブルが修復され、SQLiteデータベースから欠落している行が復元されました。

于 2012-11-13T01:01:21.460 に答える