MySQLでバックアップしたいデータベースがインストールされています。問題は「maia_mail」テーブルのエクスポートでmysqldump
が失敗することです
# mysqldump -u root -p maia > maia.sql
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `maia_mail` at row: 15
30秒未満で実行され、上記のようにエラーが発生します。
DBの合計サイズは1.3GBで、maia_mailテーブルは1.0GBです
my.cnf
これらのセットがあります:
[mysqld]
max_allowed_packet = 1300M
[mysqldump]
max_allowed_packet = 1300M
データベースをダンプする方法についてアドバイスまたはガイダンスを提供してください。
Mysqldumpを機能させるために、強引なInnoDB設定を変更することを簡単に提案できます。あなたは私が提案について何をしているのか気に入らないかもしれませんが、私はそれがあなたの最良の(唯一の)オプションだと信じています。ここに行く:
Mysqldumpのデフォルト設定には、単一のINSERTで数百または数千の行をまとめることが含まれます。これは拡張INSERTと呼ばれます。 max_allowed_packetを超えるオーバーランが発生しています 。
私はSep 01, 2011
( MySQLサーバーが大規模なダンプのインポートを妨害しなくなった )に返信し、大規模なmysqldumpをインポートするために同じことを行うことについて話しました。拡張INSERTを無効にすると、厄介なmysqldumpの作成にも役立つと思います。
mysqldump -u root --skip-extended-insert -p maia > maia.sql
悪い知らせ:これが行ごとにINSERTコマンドを作成する方法これにより、mysqldumpの実行にかかる時間が確実に長くなります。その結果、リロードにかかる時間が長くなります(おそらく10から100倍になるでしょう)。
以前skip-extended-insert
について話しました
Aug 12, 2011
: mysqldumpファイルが非常に大きいのはなぜですか?Aug 09, 2013
: バックアップ/ MySQL 5.5添付ファイルテーブルからのデータのエクスポートが失敗し続ける!Nov 16, 2014
: MySQLでデータベースダンプの複数の挿入ステートメントをバッチ処理する方法Mysqldumpのバイナリデータをよりポータブルにするには このようなデータを16進数でダンプする
mysqldump -u root --skip-extended-insert --hex-blob -p maia > maia.sql
悪いニュース:それはmysqldumpをもう少し膨らませます
12 GBのデータベースをダンプしようとしたときにも同じエラーが発生しました。私はそれを動作させるために以下の変更を行いました。
注:私はタイムアウト値が高すぎる(7200秒、つまり20時間)ことを知っています。しかし、私は偶然を排除するために意図的にそうしました。現在、最適なタイムアウト値を見つけています。
My.ini(Windows)またはmy.cnf(Linux)構成ファイルに以下を含めるだけです。
[mysqld]
max_allowed_packet=1024M
[mysqldump]
max_allowed_packet=1024M
net_read_timeout=3600
net_write_timeout=3600
ダンプを取るのに十分なメモリがあることを確認してください。ダンプを取る間、メモリをチェックし続けてください。次のようなコマンドを使用します。
free -mt
ダンプを取るときにメモリが枯渇すると、
mysqldump:エラー2013:接続が失われました
私が見つけた:
--max-allowed-packet=1G --net-buffer-length=32704
...ネット読み取り/書き込みタイムアウトの変更、TCPキープアライブなど)にもかかわらず、以前は(確実に)機能しなかった場所で機能します。
max_allowed_packet
設定だけでは機能しなかったため、net_buffer_length
を使用する場合は必要ない場合があります。 - ralph-bolton
max-allowed-packet
およびnet-buffer-length
の変更は、拡張挿入を無効にするよりもはるかに良いようです。 - クリストファー