0

共有ウェブホストにmysqlデータベースがあります。一部のテーブルはかなり大きく、夜間のダンププロセスが強制終了されていました。そこで、データベースですべてのテーブル名を照会し、それらを個別にダンプして、すべてを1つのファイルに連結するスクリプトを作成しました。

mysql -uusername -ppassword -hhostname dbname < <(echo 'SHOW TABLES') | xargs -I TableName sh -c 'nice -19 mysqldump --opt -uusername -ppassword -hhostname dbname TableName >> /path/to/dump.sql'

ビュー定義の1つ(私が理解しているように、MySQLのダンプファイルに特異なビュー作成ステートメントがあります)がエラーを引き起こすという問題があります

ERROR 1146 (42S02) at line 5182: Table 'dbname.vView' doesn't exist

ダンプファイルの行5182を調べたところ、ビューの作成を開始するのはこの最初の行です。

/*!50001 DROP TABLE `vView`*/;
/*!50001 DROP VIEW IF EXISTS `vView`*/;
/*!50001 CREATE ALGORITHM=UNDEFINED */

しかし、何らかの理由で、ダンプファイルの他のビューには

/*!50001 DROP TABLE IF EXISTS `vOtherView`*/;

そして、彼らは大丈夫に作成されます。

この質問に続いて、ダンプをインポートしようとmysql -fしましたが、mysqlはエラーで停止しました。

ダンプファイルに適切にフォーマットされたビュー作成ステートメントを含めるにはどうすればよいですか(ダンプファイルの後処理を行う以外に)?または、どうすればmysqlを先に進めることができますか?

4

1 に答える 1

1

問題が何であるかは理解できませんでしたが、私の回避策は、最初にテーブル定義のみをでダンプし--no-data、次にxargsを使用して各テーブルのデータをで個別にダンプすること--no-create-tableでした。

于 2012-05-01T02:42:43.393 に答える