廃止予定のサーバーからWorkbenchを使用してエクスポートしたSQLダンプファイルがあります。ホストおよびターゲットOSはMicrosoft Windows Server 2008 R2です(したがって、ネイティブではx64)。このSQLダンプファイルをインポートする方法はありません。どうしてもハングするからです。ファイルサイズが500 MB未満です。データベーススキーマ自体を調べたところ、テーブルは最初に作成されたDBを同じ名前で上書きしたように見えますが、インポートは何も実行せず、ハングします。私はDBAではなく、単なるネットワーク/システム管理者なので、これをインポートすることに最も不満を感じています。誰か提案はありますか?
1.2G SQLファイルのインポートで同様の問題が発生し、ラップトップ(Core i-5 x64 8G RAM)で約10時間かかりました。もちろんマルチタスクでした。
進行状況を確認するには、このクエリを使用して1時間ごとにクエリを実行します
select table_name as "Table", round(((data_length + index_length) / 1024 / 1024), 2) AS "SIZE" from information_schema.TABLES where table_schema = "Name_of_Database_You_Import";
ありがとう
実際の問題は、インポートプロセスの進捗率がわからないことだと思います。そのため、インポートがバックグラウンドで進行しているときにハングしているように見えます。
次の詳細がこれからコピーされました how-can-i-monitor-the-progress-of-an-import-of-a-large-sql-file 承認済みの回答
* nixのCLIからダンプファイルからインポートするだけの場合。
mysql -uxxx -pxxx dbname < /sqlfile.sql
次に、最初にOSにpipe viewerをインストールしてから、次のようなことを試してください。
pv sqlfile.sql | mysql -uxxx -pxxxx dbname
プログラムの実行中に進行状況バーが表示されます。
これは非常に便利で、mysqldumpの進行状況の推定値を取得するためにも使用できます。
pvはsqlfile.sql
をダンプし、それらをmysqlに渡します(パイプ演算子のため)。ダンプしている間、進行状況が表示されます。クールなことは、mysqlがデータを処理できるのと同じ速さでデータを取得するため、pvがインポートの進行状況を表示できることです。私には証拠がありません。しかし、そうです。バッファーが使用されていると思いますが、ある時点で、mysql
がまだビジー状態のときにデータを読み取らないと思います。
Workbenchの代わりにmysqlコマンドラインツールを使用してロードします。