sql >> データベース >  >> RDS >> Mysql

mysqldumpはプログレスバーをサポートしていますか?

    pvをインストールして使用する (CentOSのyumパッケージとして利用可能です)

    http://www.ivarch.com/programs/pv.shtml

    結果のdumpfile.sqlファイルの予想サイズが100m(100メガバイト)であると仮定すると、pvを使用します。 次のようになります:

    mysqldump <parameters> | pv --progress --size 100m > dumpfile.sql

    コンソール出力は次のようになります:

    [===> ] 20%

    マニュアルページman pvを見てください その他のオプションについては。転送速度、経過時間、転送バイト数などを表示できます。

    ダンプファイルのサイズがわからない場合は、table_schemaからMySQLデータベースのサイズを取得する方法があります。これはダンプファイルのサイズではありませんが、ニーズに十分近い場合があります。

    SELECT table_schema AS "Database", ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema;
    

    更新

    私の経験では、MySQLサーバー全体をダンプする場合、mysqlダンプの実際の非圧縮サイズ(mysqldump --hex-blobオプションを使用)は、information_schemaから取得したMySQLデータのライブサイズの約75%から85%です。したがって、一般的な解決策として、次のことを試してみます。

    SIZE_BYTES=$(mysql --skip-column-names <parameters> <<< 'SELECT ROUND(SUM(data_length) * 0.8) AS "size_bytes" FROM information_schema.TABLES;')

    mysqldump <parameters> --hex-blob | pv --progress --size $SIZE_BYTES > dumpfile.sql



    1. MariaDBでのTIME_FORMAT()のしくみ

    2. Kubernetesで作成されたときにmysqlコンテナを初期化する方法は?

    3. FROM句で更新対象のテーブル'NAME'を指定することはできません

    4. PHPの変数に複数の列を渡す方法