web-dev-qa-db-ja.com

MySQLを再起動せずに大きなBLOBをロードする方法はありますか?

最後のいくつかのデータベースを古いmysqlサーバーから移動しようとしていますが、特に1つは困惑しています。

595行目のエラー1118(42000):1つのトランザクションに挿入されたBLOB/TEXTデータのサイズがREDOログサイズの10%を超えています。 innodb_log_file_sizeを使用してREDOログのサイズを増やします。

移行先のサーバーは実行中です5.6.29-76.2-log Percona Server、これは 回避策 のように見えます。大きなBLOBのトランザクション整合性バグの場合です。

Innodb_log_file_sizeを変更するにはサービスを再起動する必要があるので、トランザクションが無効になっているデータベースなどをインポートする方法はありますか? SQL * Loaderには、インポート時にトランザクションを無効にするためのいくつかのオプションがあります。MySQLにも同様のツールと設定がありますか?

1
jldugger

ここでは回避策はありません。再起動する必要があります。

InnoDBのすべては、トランザクションで実行されます。暗黙的なものである場合もあります(自動コミットが有効になっている場合、実行される各ステートメントは、技術的には独自のトランザクションを開始してコミットします)が、それでも関連する意味でのトランザクションです。

REDOログは重要なコンポーネントであり、再起動時にのみサイズを変更できます。

1