問題タブ [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.

0 投票する
6 に答える
18613 参照

mysql - MySQL Binary Log Replication: エラーを無視するように設定できますか?

一部のデータについて同期していない (つまり、マスターがスレーブよりも多くのデータを保持している) マスター/スレーブ MySQL バイナリ ログ レプリケーション システム (うわー!) を実行しています。しかし、スレーブはわずかな MySQL エラーで非常に頻繁に停止します。これを無効にできますか? (おそらく、複製スレーブ ignore-replicating-errors またはいくつかの並べ替えの my.cnf 設定 ;) )

これは、スレーブが存在しないアイテムを複製しようとすると、時々発生することであり、スレーブはただ死んでしまいます。SHOW SLAVE STATUS \Gで簡単にチェックします。与える

次の手順を実行して、(スレーブが停止していることに気付いたら) すぐに修正します。

...最近、これはちょっと面倒になってきました。これを行うある種のPHPを吐き出す前に、最初のエラーでスレーブを強制終了しない my.cnf エントリがあるかどうか疑問に思っていました。

乾杯、

/mp

0 投票する
3 に答える
2017 参照

mysql - MySql を回避する TRUNCATE 文を使用して binlog に書き込むにはどうすればよいですか?

MySQL は、TRUNCATE のフラグ「NO_WRITE_TO_BINLOG」をサポートしていないようです。そのため、遅延が 0 になるまで待ってから、レプリケーションを停止し、テーブルの TRUNCATE を作成し、マスターをリセットしてから、レプリケーションを再開する必要があります。本当に痛い。他の提案はありますか?

0 投票する
3 に答える
1465 参照

mysql - Binlog MySQL レプリケーションは「傷だらけ」です。良い代替手段はありますか?

私は正直にこれ左右に試し てみましたが、レプリケーションスレーブとして設定されたミラーサーバーがまだ遅れていることがわかりました私のアプリのユーザーベースは成長を続けており、今ではデータベースを「再同期」するために「シャットダウン」し続けることができないところまで来ています (週末であっても)。

とにかく、私の質問: binlog レプリケーションに代わる、妥当で手頃な価格の代替手段はありますか? 私は 2 台のサーバーを持っているので、それが唯一の選択肢でない限り、負荷分散のために 3 台目のサーバーを購入することはまだ考えていません。

乾杯、

/mp

0 投票する
2 に答える
20364 参照

mysql - mysqlのbinlogとは何ですか?

mysqlパラメーターinnodb_flush_log_at_trx_commit=0を設定しました。これは、mysqlが1秒間に1回HDDにトランザクションをフラッシュすることを意味します。(電源がオフになっているために)mysqlがこのフラッシュで失敗した場合、これらのトランザクションからデータが失われるというのは本当ですか?または、mysqlは、binlogフラッシュに関係なく、各トランザクションの後にデータファイル(ibdata1)にそれらを保存しますか?

ありがとう。

0 投票する
1 に答える
257 参照

sql-server - SQLステートメントへのSQLServer差分バックアップ

適用したときに同じ結果を生成するSQLステートメントに差分バックアップを変換する方法はありますか?

または、MySQLのバイナリログに似た他のソリューションはありますか?

0 投票する
1 に答える
887 参照

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)。

最後に私の質問は次のとおりです。

  1. 構造全体を変更したり、大量のトリガーやテーブルを追加したりせずに、MySQL データベースに加えられた変更を追跡するより良い方法はありますか? 製品を変更して変更をログに記録することもできますが、このデータベースを使用してすべての製品を変更して、すべてを確実にログに記録する必要があります...そして、すべての人を納得させることはほとんど不可能だと思います.

  2. SHOW BINLOG EVENTS を使用して行われた変更に関するすべての情報を取得できますか? ROW データを含みます。

PS私もMySQL Proxyを調査しましたが、すべてのケースでステートメントをログに記録する際の問題は、非決定論的関数の実際のデータが含まれていないことです。

0 投票する
3 に答える
16821 参照

mysql - クエリの MySQL Bin ログの検索

特定のクエリの mysql bin ログをクエリすることは可能ですか? たとえば、過去 1 時間に誰かが特定のクエリ (「Update tableX where userName = 'bob'」など) を実行したかどうかを知りたいとします。特定のクエリが最近実行されたかどうかを確認したいだけです.....

0 投票する
1 に答える
963 参照

mysql - Mysql: マスターのバイナリ ログに正確にイベントが記録されたとき

マスターのイベント (更新/挿入/変更) がバイナリ ログに正確に記録されるのはいつですか?

  1. マスターサーバーで起動すると、bin ログに書き込まれます
  2. マスターで開始して完了すると、ログに記録されます

具体的には、ALTER の場合の動作を知りたいです。回答が 1 の場合、マスターで ALTER が開始されているため、通常の状態ではマスターとスレーブの間でラグは発生しません。

0 投票する
2 に答える
5006 参照

mongodb - mongoDB Binlog の読み取り

mysqlでは、次のようにしてレコードがどのように変更されたかをデバッグします

mysqlbinlog bin-88.log | grep "record-id" --before=2 --after=2

mongoで同様のことを行うにはどうすればよいですか?

ありがとう!

0 投票する
2 に答える
15038 参照

mongodb - mongodb の増分バックアップを行いたい。ジャーナリング?オプログ?

おそらくmongodumpを使用して、単一のmongodbデータベースを毎日バックアップしたいと考えています。データを失わないように、これをインクリメンタルにしたいので、その日の途中で何か問題が発生した場合、mongorestore を実行した後、障害が発生するまでその日の変更を再生できる必要があります。

これには oplog を使用する必要があることを正しく理解していますか? それともジャーナリングが答えですか?私は次のことを試しました:

  1. 私のmongoデータベースを1つのレプリカセットに変えて、oplogを作成します。(これはかなりハックな気がします)
  2. --oplog オプションを使用して mongod を再起動する
  3. oplog に記録する必要がある変更の実行

ただし、oplog には何も保存されません。このような増分バックアップを行う最善の方法は何ですか? 私は基本的に、mysql binlog を再生するための同様のアプローチを探しています。

ありがとう