問題タブ [percona]
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 - innobackupex を復元すると、root と debian-sys-maint のパスワードが変更されます。mysql の再起動に失敗しました
バックアップ戦略を立てる必要があります。Debian 6 Squeeze で実行する innobackupex を選択しました。運用サーバーとバックアップ サーバー (運用サーバーがクラッシュした場合に動作するはずです) の 2 つのサーバーがあります。レプリケーションはありません。rsync を使用してバックアップを転送します。いつバックアップを行う必要があるかを知るためにconfファイルを調べるphpスクリプトがあります。
私の質問は次のとおりです: innobackupex で mysql データベースまたは users テーブルをスキップするにはどうすればよいですか?
マスターで:次のコマンドを実行します:
これはうまくいきます
バックアップ サーバーでは、ファイルを準備して復元するだけです。
すべて問題ありませんが、バックアップ サーバーでは、root ユーザーのパスワードが変更され、さらにはdebian-sys-maint
パスワードも変更されました。
root ユーザーのパスワードは、マスターのパスワードになります。
これを修正するスクリプトを作成しました。debian-sys-maint
パスワードはファイルに平文で書かれているので/etc/mysql/debian.cnf
抽出しますが、php(私はpdoオブジェクトを使用しています)ではこのパスワードを変更できないため、mysqlサーバーを再起動できません。マスターサーバーのルートパスワードではないルートユーザーのパスワードを取得できないことがあります。
でmysqlを停止/開始できる場合もあれば/etc/init.d/mysql stop/start
、service mysql停止/開始でこれが機能しないmysqladmin -u root -p shutdown
場合もあります:(パスワードを変更できる場合)
本当にmysqlを停止できない場合はkillall mysql
(間違っていることはわかっています)、ルートパスワードを変更します。
誰かが私のような問題を抱えていましたか? innobackupex で mysql データベースをスキップするにはどうすればよいですか?
mysql - MySQL マスター スレーブ レプリケーションは、スレーブのバイナリ ログのみを更新しているようです。
非常に奇妙な問題があります。スレーブが Percona Cluster ノードであるマスター/スレーブ レプリケーションをセットアップしました。
すべてが正しく実行されているように見えますが、スレーブ データベースにデータが表示されず、データ ファイル自体がスレーブ上で成長していません。
奇妙なことに、バイナリログのファイルサイズがスレーブ上でかなり大きくなっていることがわかります (現時点では、このサーバーでは他に何も実行されていません)。
私の質問はこれです..マスター/スレーブのレプリケーション中に、InnoDB/XtraDBは実際のデータベースにフラッシュする前にスレーブのbinlogに一定量のデータをキャッシュしますか?
もしそうなら、この「フラッシング」を設定できますか。
どうもありがとう
mysql - Percona XtraDB Cluster で AI 列の値にギャップがある
クラスター内の 4 台のマシンで Percona XtraDB クラスターを実行しています。AUTO_INCREMENT 列である主キー列に乱数のギャップがあることに気付きました。例えば:
なぜこれが起こっているのか、私は興味があります。私たちのマシンで有効になっているinnodb_locks_unsafe_for_binlogオプションについて読んでいますが、それと関係があると感じています。しかし、私はこれが大丈夫であることを確認したい.
ランダムなデッドロックが発生しています。私が読んだ内容からデッドロックを防ぐのに役立つと思われるため、この構成項目を原因として排除したいと考えています。
このように PK にギャップがあるのは悪いことですか? そんなことがあってはならない気がします。
php - PHP PDO - ループにすべてのステートメントを挿入しない
PDO を使用してループに多くの行を挿入する必要がある状況を想像してみましょう。
この方法では、100 行すべてがデータベースに挿入されるわけではありません。23 行目の echo は次のような出力を出力します:
1 2 3 4 5 ... 59 60 61 61 61 61 61 61
20行目のprint_rが出力されます
PDO エラー コード 00000 は、すべて正常に動作していることを意味します。また、行は影響を受けませんでした。$result が false である行を手動で挿入しようとすると、すべて問題ありません。
61 行のみがテーブルに挿入されます。そして、スクリプトが実行されるたびにこの数値が変化し、これは本当に奇妙です。
なんで?
他の方法では、すべての挿入クエリから 1 つのクエリを作成でき、100 行すべてが挿入されます。これは、コード付きのペーストビンへのリンクです。
テーブル構造は次のとおりです。
ところで。percona MySQL サーバー (5.5) と HandlerSocker プラグインを使用しています。そして、HandlerSocket を使用して行を挿入しようとしました。ここにコードがあります
そして、私はこの後、DBに〜14000行あります。なんで?また、ループ数を変更した場合 (変数$loops_number ) -
私のMySQLサーバーに問題があるようですか?
php - innobackupex - コマンドラインから出力を取得
スクリプトを実行していinnobackupex
ますが、スクリプトから出力を取得する方法がわかりません。スクリプトが成功したか失敗したかを確認するには、最後の行が必要です..
スクリプトは正常に機能し、バックアップ zip が作成されますが、$output
空です
アップデート
現在、コマンドは gzip にパイプされていませんが、まだ出力はありません
mysql - Percona ツール pt-table-sync
レプリケートされたテーブルに違いが見つかったpt-table-sync
テーブルを保持する mysql データベースで実行すると、アクセス拒否エラーが引き続き発生します。pt-table-checksum
マスターサーバーから実行します。
私が間違っていることはありますか?
mysql - MySQL 5.5 の他のテーブルへの挿入をロックする多数の INSERT ステートメント
MySQL 5.5 サーバーで発生している問題を理解しようとしています。
このサーバーは多数のデータベースをホストします。毎日特定の時間に、プロセスがこのデータベース内の 2 つのテーブルに一連の挿入を実行します。このプロセスは、挿入される行の量に応じて 5 ~ 15 分かかります。
このプロセスは完全に実行されます。しかし、これには予想外の副作用があります。他のすべての挿入と更新は、挿入される 2 つに関係のないテーブルで実行され、プロセスが停止するまでただ座って待機します。このデータベースの外部での読み取りと書き込みは問題なく機能し、SELECT ステートメントも問題ありません。
では、単一のテーブルがサーバー全体ではなくデータベースの残りの部分をブロックする (負荷が原因で) 可能性があるのはなぜでしょうか?
背景のビット:-
挿入されるテーブルは、1,000 万から 2,000 万行の MyISAM です。
MySQL は Percona V5.5 であり、Debian で実行されている 1 つのスレーブにサービスを提供しています。
レコードを挿入するプロセスによって、明示的なロックが呼び出されることはありません。
どの Insert ステートメントも、他のテーブルからデータを選択しません。これらは INSERT IGNORE ステートメントでもあります。
追加情報:
これが発生している間、PROCESS LIST に LOCK テーブル エントリはなく、この問題の原因となっているレコードを挿入するプロセッサはテーブル ロックを発行しません。
テーブル ロックの通常の原因については既に調査しており、それらを除外したと思います。この動作は、MySQL の動作方法に関係があるか、大きなデータベース ファイルを持っていることの癖であるか、OS/ファイル システムに関係している可能性さえあります。
mysql - Percona サーバーの初期インストール PID ファイル
を実行するapt-get install percona-server-server-5.6
と、percona サーバーがインストールされて開始されます。実行中のプロセス ( ps -ef | grep mysql
) は次のようになります (HOSTNAME は難読化されています)。
私の質問は、このデフォルトの PID ファイルはどこから来ているのですか? my.cnf
下にファイル/etc/mysql
はなく、下のmy.cnf
ファイルに/usr
はこの情報がありません。これは、構成ファイルを展開してサーバーを再起動しようとすると、明らかにボックスが機能しないという問題を引き起こしています。PID ファイルの正しいデフォルトは/var/run/mysqld/mysqld.pid
.