データベースのバックアップを作成するためにMySQL Administratorを使用しています。データベース全体とそのすべてのテーブルを完全にバックアップできます。サイズが非常に大きいテーブルがいくつかあるため、テーブルの構造(要素のみ)のみをバックアップし、データはバックアップできないのではないかと考えています。
データベースのバックアップを作成するためにMySQL Administratorを使用しています。データベース全体とそのすべてのテーブルを完全にバックアップできます。サイズが非常に大きいテーブルがいくつかあるため、テーブルの構造(要素のみ)のみをバックアップし、データはバックアップできないのではないかと考えています。
回答:
--no-data
mysqldumpでスイッチを使用して、データをダンプせず、テーブル構造のみをダンプするように指示します。
これにより、テーブルのCREATE TABLEステートメントが出力されます。
このようなもの
mysqldump --no-data -h localhost -u root -ppassword mydatabase > mydatabase_backup.sql
特定のテーブルをターゲットにするには、データベース名の後にそれらを入力します。
mysqldump --no-data -h localhost -u root -ppassword mydatabase table1 table2 > mydatabase_backup.sql
http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_no-data
LukeRが言ったように、mysqldumpの--no-dataオプションはあなたが望むことをします。
それに加えて、すべてのmysqlデータベースをプレーンテキストファイルにダンプし、各データベースのテーブルスキーマとデータ用に個別のダンプファイルを作成するバックアップスクリプトですデータ。これは、CREATE TABLE / CREATE INDEXなどのコマンドだけで小さなファイルを既に作成している場合に非常に簡単です。
#!/ bin / bash #backup-mysql.sh # #Craig Sanders <cas@taz.net.au> #このスクリプトはパブリックドメインにあります。好きなことをしてください。 MYUSER = "USERNAME" MYPWD = "PASSWD" ARGS = "-single-transaction --flush-logs --complete-insert" DATABASES = $(mysql -D mysql --skip-column-names -B -e 'show databases;' | egrep -v 'information_schema'); BACKUPDIR = / var / backups / mysql YEAR = $(date + "%Y") MONTH = $(date + "%m") DAY = $(date + "%d") DATE = "$ YEAR- $ MONTH / $ YEAR- $ MONTH- $ DAY" mkdir -p $ BACKUPDIR / $ DATE cd $ BACKUPDIR / $ DATE for i for $ DATABASES; 行う echo -n "$ iのバックアップ:スキーマ..." mysqldump $ ARGS --no-data -u $ MYUSER -p $ MYPWD $ i> $ i.schema.sql echo -n "data ..." mysqldump $ ARGS --skip-opt --no-create-db --no-create-info -u $ MYUSER -p $ MYPWD $ i> $ i.data.sql echo -n "compressing ..." gzip -9fq $ i.schema.sql $ i.data.sql エコー「完了」。 やった #30日より古いバックアップファイルを削除する OLD = $(find $ BACKUPDIR -type d -mtime +30) if [-n "$ OLD"]; それから 古いバックアップファイルを削除するエコー:$ OLD echo $ OLD | xargs rm -rfv fi
--routines
スキーマスクリプトに追加することをお勧めしますか?