データベースのバックアップに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データベースをプレーンテキストファイルにダンプし、各データベースのテーブルスキーマとデータに個別のダンプファイルを作成するバックアップスクリプトを次に示します(別のmysqlサーバーでテーブルを復元または作成することはよくあります)データ、そしてCREATE TABLE/CREATE INDEXなどのコマンドだけですでに小さなファイルを持っている場合は、はるかに簡単です)
#! /bin/bash # backup-mysql.sh # #Craig Sanders <[email protected]> #thisスクリプトはパブリックドメインにあります。 MYUSER = "USERNAME" MYPWD = "PASSWD" ARGS = "-single-transaction --flush-logs --complete-insert " DATABASES = $(mysql -D mysql --skip-column-names -B -e 'データベースを表示;' | 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 in $ DATABASES; do 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 echo "done。" done #30日より古いバックアップファイルを削除 OLD = $(find $ BACKUPDIR -type d -mtime +30) if [-n "$ OLD"];次に、 古いバックアップファイルの削除をエコーします:$ OLD echo $ OLD | xargs rm -rfv fi
mysql
コマンドラインインターフェースからDESCRIBE <tablename>
と結果をコピーして貼り付けます。