MySqlフル・バックアップ、インクリメンタル・バックアップおよびリカバリ
3033 ワード
文書ディレクトリ1.準備 1.1プロファイルの変更 1.2 MySql を再起動2.フルバックアップ 2.1 mysqldumpを使用したフルバックアップ 三.リカバリ 3.1全量回復 3.2増分回復 参考文書 零細な点 一.準備作業
MySqlには既存のインクリメンタルバックアップ機能はありませんが、binlogでインクリメンタルバックアップを実現できるので、binlog機能をオンにする必要があります.同時に、全バックアップ中にデータベースの操作を避ける.本稿のシナリオは、プライマリ・セカンダリ・レプリケーションが構成されており、ライブラリからのログ・ファイルを使用してデータ・リカバリを行います.
1.1プロファイルの変更 mysqlプロファイルの変更 このファイルの下[mysqld]で指定したMasterの構成は以下の通りです:
1.2 MySqlの再起動
二.フル・バックアップ
2.1 mysqldumpによるフルバックアップ
三.リカバリ回復する前にbinlogを閉じて を再開する同期を一時停止
3.1全量回復
3.2インクリメンタル・リカバリ最後のフル・バックアップ・ファイルでリカバリするには、前のステップ を参照してください.誤動作のあるbinlogファイル を見つける例えばmysql-binで誤操作する.000005では、誤動作の位置または時刻 が見つかる.順次回復: 時間ベースのリカバリ:誤操作をスキップした時間[親測は成功しなかった!] 位置ベースの復元:誤動作をスキップする位置
参考記事 Mysqlのインクリメンタル・バックアップと、ポイント・イン・タイム・ポイント・ベースのリカバリ MySQLインクリメンタルバックアップ/リカバリインスタンス mysqlフルインクリメンタルバックアップスクリプト MySQLバックアップ・スキーム->(mysqldumpおよびbinlogバイナリ・ログを使用) 零細な点
MySqlには既存のインクリメンタルバックアップ機能はありませんが、binlogでインクリメンタルバックアップを実現できるので、binlog機能をオンにする必要があります.同時に、全バックアップ中にデータベースの操作を避ける.本稿のシナリオは、プライマリ・セカンダリ・レプリケーションが構成されており、ライブラリからのログ・ファイルを使用してデータ・リカバリを行います.
1.1プロファイルの変更
#linux
vi /etc/my.cnf
#windows
my.ini
#
log-bin=mysql-bin
# binlog
log_slave_updates = 1
1.2 MySqlの再起動
#linux
service mysqld restart
#windows
net stop mysql
net start mysql
二.フル・バックアップ
2.1 mysqldumpによるフルバックアップ
# , , cmd
mysqldump -u -p [ 1 2 …… N] >
#
mysqldump -u root -p --single-transaction --flush-logs --master-data=2 liberty > backup_test.sql
--single-transaction, , , , , . -single-transaction select , dml ,ddl select
--flush-logs ,
--master-data=2 SQL ,
三.リカバリ
vi /etc/my.cnf
#log-bin=mysql-bin
mysql
mysql>stop slave;
3.1全量回復
shell :
shell> mysql -u -p < .sql
mysql :
mysql> source .sql;
3.2インクリメンタル・リカバリ
:
# mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.00000x [-d dbname]
mysql :
mysql> show binlog events in 'mysql-bin.00000x';
# mysqlbinlog --no-defaults mysql-bin.000001 | mysql -u root -p
# mysqlbinlog --no-defaults mysql-bin.000002 | mysql -u root -p
# mysqlbinlog --no-defaults mysql-bin.000003 | mysql -u root -p
# mysqlbinlog --no-defaults mysql-bin.000004 | mysql -u root -p
# mysqlbinlog --no-defaults --stop-datetime='2018-07-03 18:19:49' /usr/local/mysql/data/mysql-bin.00000x | mysql -u root -p
# mysqlbinlog --no-defaults --start-datetime='2018-07-03 18:22:21' /usr/local/mysql/data/mysql-bin.00000x | mysql -u root -p
# mysqlbinlog --no-defaults --stop-position=347 /usr/local/mysql/data/mysql-bin.00000x | mysql -u root -p
# mysqlbinlog --no-defaults --start-position=395 /usr/local/mysql/data/mysql-bin.00000x | mysql -u root -p
参考記事