問題タブ [binlog]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - MySQL Binary Log Replication: エラーを無視するように設定できますか?
一部のデータについて同期していない (つまり、マスターがスレーブよりも多くのデータを保持している) マスター/スレーブ MySQL バイナリ ログ レプリケーション システム (うわー!) を実行しています。しかし、スレーブはわずかな MySQL エラーで非常に頻繁に停止します。これを無効にできますか? (おそらく、複製スレーブ ignore-replicating-errors またはいくつかの並べ替えの my.cnf 設定 ;) )
これは、スレーブが存在しないアイテムを複製しようとすると、時々発生することであり、スレーブはただ死んでしまいます。SHOW SLAVE STATUS \Gで簡単にチェックします。与える
次の手順を実行して、(スレーブが停止していることに気付いたら) すぐに修正します。
...最近、これはちょっと面倒になってきました。これを行うある種のPHPを吐き出す前に、最初のエラーでスレーブを強制終了しない my.cnf エントリがあるかどうか疑問に思っていました。
乾杯、
/mp
mysql - MySql を回避する TRUNCATE 文を使用して binlog に書き込むにはどうすればよいですか?
MySQL は、TRUNCATE のフラグ「NO_WRITE_TO_BINLOG」をサポートしていないようです。そのため、遅延が 0 になるまで待ってから、レプリケーションを停止し、テーブルの TRUNCATE を作成し、マスターをリセットしてから、レプリケーションを再開する必要があります。本当に痛い。他の提案はありますか?
mysql - mysqlのbinlogとは何ですか?
mysqlパラメーターinnodb_flush_log_at_trx_commit=0を設定しました。これは、mysqlが1秒間に1回HDDにトランザクションをフラッシュすることを意味します。(電源がオフになっているために)mysqlがこのフラッシュで失敗した場合、これらのトランザクションからデータが失われるというのは本当ですか?または、mysqlは、binlogフラッシュに関係なく、各トランザクションの後にデータファイル(ibdata1)にそれらを保存しますか?
ありがとう。
sql-server - SQLステートメントへのSQLServer差分バックアップ
適用したときに同じ結果を生成するSQLステートメントに差分バックアップを変換する方法はありますか?
または、MySQLのバイナリログに似た他のソリューションはありますか?
mysql - T-SQL を使用してすべての MySQL binlog イベント情報を取得する方法
発生する可能性のある DDL ステートメントを含む MySQL データベースに加えられたすべての変更をログに記録し、その情報を使用してリモート データベースと同期できるようにする可能性を研究しています。
アプリケーション自体は C# で記述されているため、これまでに利用可能であることがわかっている最高の同期テクノロジは Microsoft Sync Framework です。このフレームワーク自体は、削除された行を格納するためのトリガーと追加のテーブルを追加することにより、DB に加えられた変更を追跡するソリューションを提案します。
4 つ以上の製品で使用される標準 DB のスキーマを変更する必要があるため、これは私の場合には良い考えではないようです。この方法はまた、(各テーブルの削除された行に新しいテーブルを追加することによって) テーブルの数を効果的に 2 倍にしていますが、これも気分が悪いものです。
一方、MySQL にはこの素晴らしい binlog があります。これはすべての変更を追跡し、いわゆる混合モードを使用してほとんどの場合ステートメントを追跡することもできます (したがって、リモート DB で再度実行してデータを複製できます) と生データ非決定論的関数 (NOW() など) が呼び出されると、更新されるデータは両方の場所で同じになります。
また、このデータを取得するには 2 つの標準的な方法があるようです: 1) mysqlbinlog ユーティリティ 2) 'SHOW BINLOG EVENTS' を呼び出す
別の外部アプリケーションを呼び出したり、DB マシンでアプリケーションを実行したりする必要がないため、オプション 2 の方が適しているように思えますが、ログに記録された ROW 形式ステートメントの実際のデータは含まれません (次のようなもののみ: table_id: 47 flags:何も教えてくれないSTMT_END_F)。
最後に私の質問は次のとおりです。
構造全体を変更したり、大量のトリガーやテーブルを追加したりせずに、MySQL データベースに加えられた変更を追跡するより良い方法はありますか? 製品を変更して変更をログに記録することもできますが、このデータベースを使用してすべての製品を変更して、すべてを確実にログに記録する必要があります...そして、すべての人を納得させることはほとんど不可能だと思います.
SHOW BINLOG EVENTS を使用して行われた変更に関するすべての情報を取得できますか? ROW データを含みます。
PS私もMySQL Proxyを調査しましたが、すべてのケースでステートメントをログに記録する際の問題は、非決定論的関数の実際のデータが含まれていないことです。
mysql - クエリの MySQL Bin ログの検索
特定のクエリの mysql bin ログをクエリすることは可能ですか? たとえば、過去 1 時間に誰かが特定のクエリ (「Update tableX where userName = 'bob'」など) を実行したかどうかを知りたいとします。特定のクエリが最近実行されたかどうかを確認したいだけです.....
mysql - Mysql: マスターのバイナリ ログに正確にイベントが記録されたとき
マスターのイベント (更新/挿入/変更) がバイナリ ログに正確に記録されるのはいつですか?
- マスターサーバーで起動すると、bin ログに書き込まれます
- マスターで開始して完了すると、ログに記録されます
具体的には、ALTER の場合の動作を知りたいです。回答が 1 の場合、マスターで ALTER が開始されているため、通常の状態ではマスターとスレーブの間でラグは発生しません。
mongodb - mongoDB Binlog の読み取り
mysqlでは、次のようにしてレコードがどのように変更されたかをデバッグします
mysqlbinlog bin-88.log | grep "record-id" --before=2 --after=2
mongoで同様のことを行うにはどうすればよいですか?
ありがとう!
mongodb - mongodb の増分バックアップを行いたい。ジャーナリング?オプログ?
おそらくmongodumpを使用して、単一のmongodbデータベースを毎日バックアップしたいと考えています。データを失わないように、これをインクリメンタルにしたいので、その日の途中で何か問題が発生した場合、mongorestore を実行した後、障害が発生するまでその日の変更を再生できる必要があります。
これには oplog を使用する必要があることを正しく理解していますか? それともジャーナリングが答えですか?私は次のことを試しました:
- 私のmongoデータベースを1つのレプリカセットに変えて、oplogを作成します。(これはかなりハックな気がします)
- --oplog オプションを使用して mongod を再起動する
- oplog に記録する必要がある変更の実行
ただし、oplog には何も保存されません。このような増分バックアップを行う最善の方法は何ですか? 私は基本的に、mysql binlog を再生するための同様のアプローチを探しています。
ありがとう