データベースのバックアップを作成するためにMySQL Administratorを使用しています。データベース全体とそのすべてのテーブルを完全にバックアップできます。サイズが非常に大きいテーブルがいくつかあるため、テーブルの構造(要素のみ)のみをバックアップし、データはバックアップできないのではないかと考えています。
データベースのバックアップを作成するためにMySQL Administratorを使用しています。データベース全体とそのすべてのテーブルを完全にバックアップできます。サイズが非常に大きいテーブルがいくつかあるため、テーブルの構造(要素のみ)のみをバックアップし、データはバックアップできないのではないかと考えています。
回答:
--no-datamysqldumpでスイッチを使用して、データをダンプせず、テーブル構造のみをダンプするように指示します。
これにより、テーブルの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スキーマスクリプトに追加することをお勧めしますか?