*dumpでオプションを付ける
-show variables like '%max_allowed_packet%';
-show variables like '%net_buffer_length%';
-mysqldump --max_allowed_packet=? --net_buffer_length=? --opt --no-autocommit --skip-comments
MySQL 5.1以降、
--opt
が表すオプションは全てデフォルトで有効化されています。これは、--opt
がデフォルトで有効なためです。
--quote-names,
-Q
‘
`
’文字でデータベース、テーブル、そしてカラム名をクオートします。ANSI_QUOTES
SQLモードが有効化されている場合、名前は‘"
’キャラクタでクオートされます。*ダンプしながら圧縮する
-mysqldump database table1 table2 | gzip >...sql.gz
gunzip < outputfile.sql.gz | mysql < mysql options>
As for speeding up gzip, you could try pigz, which uses multiple processors/cores.
*作業ディレクトリをNFSを使わず、ioDriveを使う
-df -h
*リストアの高速化設定
-general_log = 0
-sql_log_bin = 0
-innodb_doublewrite = 0
-autocommit = 0
-unique_checks = 0
-foreign_key_checks = 0
すでにあった。
These aren't really comments even though they look that way. They are conditional-execution tokens.
Take this line:
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */
*テーブルを分けて移行する
-特定なテーブルだけ:mysqldump database table1 table2
-特定なテーブル除外:mysqldump database --ignore-table=database.table1 --ignore-table=database.table2
#!/bin/bash
echo "SET unique_checks=0;
SET foreign_key_checks=0;" > backup.sql
mysqldump -u myuser --password=mypassword mydatabase >> backup.sql
echo "COMMIT;" >> backup.sql
mysqldump --skip-comments commentを出力しない。はやくなる?
mysql --max_allowed_packet=1G
★最大1Gである。
★設定ファイルを修正する必要がない。
==>★
echo 'SET sql_log_bin=0;' > **.sql"
mysqldump -u ** --password=** --socket=*.sock --max_allowed_packet=1G --net_buffer_length=16384 --no-autocommit ** >> **.sql"
tail -2 ${REMOTE_BACK_UP_DIR}$3.sql
=>ファイルの最後を確認する、dump completed....
★リストアする
設定ファイルでdouble-write=0を設定する
mysql -u ** --password=** --max_allowed_packet=1G ** < **.sql
★サイズの変化
DB物理ファイルサイズー>DUMPファイル(*.sql) 3.8倍大きくなる
DUMPファイル(*.sql)ー>圧縮して
gzファイル(*.sql.gz)
gzip -c a.txt > a.gz
239G->19G 十分の一ぐらいね。。
総合的に考えると、gzを使う場合、物理ファイルの30%ぐらいになるね。
gunzip -c mydb.sql.gz | mysql -u root -p mydb
gzip -c mydb.sql | ssh mysql_server 'cat > *.sql.gz'