参照:https://help.aliyun.com/knowledge_detail/41817.html?spm = a2c4g.11186623.4.3.49bf4292RNNrSC
原因:タイミングタスクが原因で、実稼働環境が閉じられていません。実行されるべきではなかった時限タスクが実行されます。重要なビジネスデータの損失につながります!
1.バックアップ状況を確認します
インシデント時間は1月5日の1:30(時間指定タスク実行時間)だったためです。
Alibaba Cloudのバックアップを確認してください。最新のバックアップは1月2日の7:43でした(1月5日のバックアップは利用できません)。
したがって、1月2日の7:43から1月5日の1:30までのbinlogログを探してください。
次に、ダウンロードする必要のあるbinlog:mysql-bin.000667-000678をロックします。また、図に示すように、上記の完全バックアップもダウンロードする必要があります。
2.データの復元を開始します
準備:mysqlサービスとPerconaXtraBackupソフトウェアがインストールされているLinux環境を見つける必要があります
mysqlをインストールする手順:https ://blog.csdn.net/sumengnan/article/details/108736935
Percona XtraBackupをインストールする手順:
1、yumインストールhttps://repo.percona.com/yum/percona-release-latest.noarch.rpm
- MySQL 5.6以前のバージョンでは、Percona XtraBackup2.3をインストールする必要があります。
- MySQL 5.7バージョンでは、Percona XtraBackup2.4がインストールされている必要があります
2、yum install percona-xtrabackup-24
rpmがインストールされている場合、依存パッケージは次のとおりです。yuminstall cmake gcc gcc-c ++ libaio libaio-devel automake autoconf \ bison libtool ncurses-devel libgcrypt-devel libev-devel libcurl-devel \ vim-common
(1)最初に完全バックアップを復元します
1.完全なバックアップをLinux環境にアップロードします
2、解包:cat hins14138181_data_20210102074244_qp.xb | xbstream -x -v -C / home / sumengnan / data2
3、解圧:innobackupex --decompress --remove-original / home / sumengnan / data2
4、恢复:innobackupex --defaults-file = / home / sumengnan / data2 / backup-my.cnf --apply-log / home / sumengnan / data2
5./home/sumengnan/data2/backup-my.cnfファイルを変更します
次のパラメータを追加します。
lower_case_table_names=1
skip-grant-tables
次のパラメータに注釈を付けます。
#innodb_log_checksum_algorithm
#innodb_fast_checksum
#innodb_log_block_size
#innodb_doublewrite_file
#innodb_encrypt_algorithm
#rds_encrypt_data
#redo_log_version
#master_key_id
#server_uuid
6、启PINmysqlだから:mysqld --defaults-file = / home / sumengnan / data2 / backup-my.cnf --user = mysql --datadir = / home / sumengnan / data2
7. mysql -uroot(パスワードなし)を使用してデータベースに接続し、結果を確認するか、Navicatに接続します。
質問: mysqlサービスへの接続時にNavicatがエラーを報告した場合:テーブル「performance_schema.session_variables」は存在しません
my.cnfに構成を追加し、mysqlを再起動する必要があります。
[mysqld]
show_compatibility_56 = ON
performance_schema
(2)binlogバックアップを再度復元します
1.最初にbinlogをローカルでsqlファイルに変換します(ローカルでmysqlコマンドを使用するか、同じものを実行するにはLinux環境に配置する必要があります)
私はmacを使用しているので、スクリプトrecover_data.shを直接作成しました。
000667のbinlogを選択して開始時刻を設定し、recover_data.sqlを作成します。他のbinlogは、recover_data.sqlに追加で書き込まれます。000678の最後のbinlogは、終了時刻を選択します
mysqlbinlog mysql-bin.000667 --start-datetime='2021-01-02 07:43:36' > recover_data.sql
mysqlbinlog mysql-bin.000668 >> recover_data.sql
mysqlbinlog mysql-bin.000669 >> recover_data.sql
mysqlbinlog mysql-bin.000670 >> recover_data.sql
mysqlbinlog mysql-bin.000671 >> recover_data.sql
mysqlbinlog mysql-bin.000672 >> recover_data.sql
mysqlbinlog mysql-bin.000673 >> recover_data.sql
mysqlbinlog mysql-bin.000674 >> recover_data.sql
mysqlbinlog mysql-bin.000675 >> recover_data.sql
mysqlbinlog mysql-bin.000676 >> recover_data.sql
mysqlbinlog mysql-bin.000677 >> recover_data.sql
mysqlbinlog mysql-bin.000678 --stop-datetime='2021-01-05 01:30:00' >> recover_data.sql
gzip recover_data.sql
スクリプト実行後の結果
2.Linux環境にアップロードした後に解凍します
- mysql-urootを実行してmysqlにログインします
- セット@@ GLOBAL.GTID_MODE = OFF_PERMISSIVEを実行します
- ソースrecover_data.sqlを実行してSQLファイルをインポートします
3.検証結果
コンプリート