中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于percona xtrabackup的innobackupex如何實現基于時間點數據庫恢復

發布時間:2021-11-03 15:12:49 來源:億速云 閱讀:130 作者:柒染 欄目:MySQL數據庫

基于percona xtrabackup的innobackupex如何實現基于時間點數據庫恢復,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

前言

數據庫在運行期間,可能是因為人為原因誤操作或者出現存儲故障,導致某些表不能正常訪問,此時,可以使用基于時間點的恢復,采用數據庫備份及二進制日志,把誤操作或出現故障的數據還原回來,建議不要在生產系統中進行基于時間點的恢復,可以在一個臨時的環境把數據恢復出來,然后讓業務及開發確認,然后再把數據導回到生產數據庫,這樣也不影響數據庫中其它業務的運行。

基于時間點或基于二進制日志位置的數據庫恢復

1,數據庫的當前數據庫

mysql> select * from zxydb.t_go;

+----+------+

| a  | b    |

+----+------+

|  1 |    1 |

|  2 |    2 |

|  3 |    3 |

|  5 |    5 |

|  8 |    8 |

| 10 |   10 |

| 11 |   11 |

| 12 |   12 |

+----+------+

8 rows in set (0.00 sec)

2,構建數據庫的基準備份

--構建存儲數據庫基準備份的目錄

[root@standbygtid mysql]# mkdir -p /database_base_dir

[root@standbygtid mysql]# innobackupex  -uroot -psystem /database_base_dir --no-timestamp

[root@standbygtid mysql]# cd /database_base_dir/

[root@standbygtid database_base_dir]# ll

總用量 77868

-rw-r----- 1 root root      418 11月  5 00:56 backup-my.cnf

drwxr-x--- 2 root root     4096 11月  5 00:56 completedb

-rw-r----- 1 root root 79691776 11月  5 00:56 ibdata1

drwxr-x--- 2 root root     4096 11月  5 00:56 mysql

drwxr-x--- 2 root root     4096 11月  5 00:56 performance_schema

drwxr-x--- 2 root root     4096 11月  5 00:56 test

-rw-r----- 1 root root       18 11月  5 00:56 xtrabackup_binlog_info

-rw-r----- 1 root root      115 11月  5 00:56 xtrabackup_checkpoints

-rw-r----- 1 root root      507 11月  5 00:56 xtrabackup_info

-rw-r----- 1 root root     2560 11月  5 00:56 xtrabackup_logfile

drwxr-x--- 2 root root     4096 11月  5 00:56 zxydb

3,準備用于恢復上述的基準備份

(注:其實就是用在線日志應用到基準備份,確保數據一致性)

[root@standbygtid database_base_dir]# innobackupex  -uroot -psystem --apply-log  /database_base_dir

[root@standbygtid database_base_dir]# ll

總用量 196652

-rw-r----- 1 root root      418 11月  5 00:56 backup-my.cnf

drwxr-x--- 2 root root     4096 11月  5 00:56 completedb

-rw-r----- 1 root root 79691776 11月  5 01:01 ibdata1

-rw-r----- 1 root root 50331648 11月  5 01:01 ib_logfile0

-rw-r----- 1 root root 50331648 11月  5 01:01 ib_logfile1

-rw-r----- 1 root root 12582912 11月  5 01:01 ibtmp1

drwxr-x--- 2 root root     4096 11月  5 00:56 mysql

drwxr-x--- 2 root root     4096 11月  5 00:56 performance_schema

drwxr-x--- 2 root root     4096 11月  5 00:56 test

-rw-r----- 1 root root       18 11月  5 00:56 xtrabackup_binlog_info

-rw-r--r-- 1 root root       19 11月  5 01:01 xtrabackup_binlog_pos_innodb

-rw-r----- 1 root root      115 11月  5 01:01 xtrabackup_checkpoints

-rw-r----- 1 root root      507 11月  5 00:56 xtrabackup_info

-rw-r----- 1 root root  8388608 11月  5 01:01 xtrabackup_logfile

drwxr-x--- 2 root root     4096 11月  5 00:56 zxydb

4,查看上述基準備份對應的二進制日志及位置

(注:如下基于時間點恢復就是從這個二進制日志及位置開始恢復到某個時間點,很重要喲)

[root@standbygtid database_base_dir]# more xtrabackup_binlog_info

binlog.000001120

[root@standbygtid database_base_dir]# 

5,為了更好模擬基于時間點恢復,切換二進制日志,產生新的二進制日志

mysql> flush logs;

Query OK, 0 rows affected (0.01 sec)

6,查看當前的二進制日志及位置

mysql> show master status;

+---------------+----------+--------------+------------------+-------------------+

| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+---------------+----------+--------------+------------------+-------------------+

| binlog.000002 |      337 |              |                  |                   |

+---------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

--共計2個二進制日志

mysql> show binary logs;

+---------------+-----------+

| Log_name      | File_size |

+---------------+-----------+

| binlog.000001 |       164 |

| binlog.000002 |       337 |

+---------------+-----------+

2 rows in set (0.00 sec)

7,產生數據變更

mysql> use zxydb;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select * from t_go;

+----+------+

| a  | b    |

+----+------+

|  1 |    1 |

|  2 |    2 |

|  3 |    3 |

|  5 |    5 |

|  8 |    8 |

| 10 |   10 |

| 11 |   11 |

| 12 |   12 |

+----+------+

8 rows in set (0.00 sec)

mysql> insert into t_go select 13,13;

Query OK, 1 row affected (0.00 sec)

Records: 1  Duplicates: 0  Warnings: 0

mysql> commit;

Query OK, 0 rows affected (0.00 sec)

8,查看當前二進制日志對應的事件信息

mysql> show binlog events in 'binlog.000002';

+---------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------+

| Log_name      | Pos | Event_type  | Server_id | End_log_pos | Info                                                                 |

+---------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------+

| binlog.000002 |   4 | Format_desc |         1 |         120 | Server ver: 5.6.25-enterprise-commercial-advanced-log, Binlog ver: 4 |

| binlog.000002 | 120 | Query       |         1 |         201 | BEGIN                                                                |

| binlog.000002 | 201 | Query       |         1 |         306 | use `zxydb`; insert into t_go select 13,13                           |

| binlog.000002 | 306 | Xid         |         1 |         337 | COMMIT /* xid=41 */                                                  |

+---------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------+

4 rows in set (0.00 sec)

9,繼續變化數據

mysql> insert into t_go select 18,18;

Query OK, 1 row affected (0.02 sec)

Records: 1  Duplicates: 0  Warnings: 0

mysql> commit;

Query OK, 0 rows affected (0.00 sec)

mysql> show binlog events in 'binlog.000002';

+---------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------+

| Log_name      | Pos | Event_type  | Server_id | End_log_pos | Info                                                                 |

+---------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------+

| binlog.000002 |   4 | Format_desc |         1 |         120 | Server ver: 5.6.25-enterprise-commercial-advanced-log, Binlog ver: 4 |

| binlog.000002 | 120 | Query       |         1 |         201 | BEGIN                                                                |

| binlog.000002 | 201 | Query       |         1 |         306 | use `zxydb`; insert into t_go select 13,13                           |

| binlog.000002 | 306 | Xid         |         1 |         337 | COMMIT /* xid=41 */                                                  |

| binlog.000002 | 337 | Query       |         1 |         418 | BEGIN                                                                |

| binlog.000002 | 418 | Query       |         1 |         523 | use `zxydb`; insert into t_go select 18,18                           |

| binlog.000002 | 523 | Xid         |         1 |         554 | COMMIT /* xid=48 */                                                  |

+---------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------+

7 rows in set (0.00 sec)

10,因為基于時間點恢復要用于二進制日志,備份下述的二進制文件到另一個目錄

(注:即使二進制日志非常重要,一定要定期進行備份,不然真要進行基于時間點恢復,而所需要的二進制日志又沒有了,哪就會導致數據損失了)

[root@standbygtid database_base_dir]# cd /var/lib/mysql

[root@standbygtid mysql]# ll

總用量 188464

-rw-rw---- 1 mysql mysql       56 11月  4 23:52 auto.cnf

-rw-rw---- 1 mysql mysql      164 11月  5 01:06 binlog.000001

-rw-rw---- 1 mysql mysql      554 11月  5 01:12 binlog.000002

-rw-rw---- 1 mysql mysql       32 11月  5 01:06 binlog.index

drwxr-x--- 2 mysql mysql     4096 11月  4 23:48 completedb

-rw-r----- 1 mysql mysql 79691776 11月  5 01:12 ibdata1

-rw-r----- 1 mysql mysql 50331648 11月  5 01:12 ib_logfile0

-rw-r----- 1 mysql mysql 50331648 11月  4 23:48 ib_logfile1

-rw-r----- 1 mysql mysql 12582912 11月  4 23:48 ibtmp1

drwxr-x--- 2 mysql mysql     4096 11月  4 23:48 mysql

srwxrwxrwx 1 mysql mysql        0 11月  4 23:52 mysql.sock

-rw------- 1 root  root       159 11月  4 23:52 nohup.out

drwxr-x--- 2 mysql mysql     4096 11月  4 23:48 performance_schema

-rw-r----- 1 mysql root      2508 11月  4 23:52 standbygtid.err

-rw-rw---- 1 mysql mysql        6 11月  4 23:52 standbygtid.pid

drwxr-x--- 2 mysql mysql     4096 11月  4 23:48 test

drwxr-x--- 2 mysql mysql     4096 11月  4 23:48 zxydb

[root@standbygtid mysql]# mysqlbinlog  binlog.000001 binlog.000002 --start-position=120 --stop-position=337 > /base_binlog_pos.sql

[root@standbygtid mysql]# 

11,關閉數據庫

 mysqladmin -uroot -psystem shutdown

12,物理刪除數據文件

[root@standbygtid mysql]# pwd

/var/lib/mysql

[root@standbygtid mysql]# rm -rf *

13,還原上述的備份到數據庫的數據文件目錄

[root@standbygtid mysql]# innobackupex  --datadir=/var/lib/mysql --copy-back /database_base_dir

14,授權數據庫的數據文件目錄

[root@standbygtid mysql]# chown -Rf mysql:mysql *

[root@standbygtid mysql]# ll

總用量 188448

drwxr-x--- 2 mysql mysql     4096 11月  5 01:49 completedb

-rw-r----- 1 mysql mysql 79691776 11月  5 01:49 ibdata1

-rw-r----- 1 mysql mysql 50331648 11月  5 01:49 ib_logfile0

-rw-r----- 1 mysql mysql 50331648 11月  5 01:49 ib_logfile1

-rw-r----- 1 mysql mysql 12582912 11月  5 01:49 ibtmp1

drwxr-x--- 2 mysql mysql     4096 11月  5 01:49 mysql

drwxr-x--- 2 mysql mysql     4096 11月  5 01:49 performance_schema

drwxr-x--- 2 mysql mysql     4096 11月  5 01:49 test

-rw-r----- 1 mysql mysql       19 11月  5 01:49 xtrabackup_binlog_pos_innodb

-rw-r----- 1 mysql mysql      507 11月  5 01:49 xtrabackup_info

drwxr-x--- 2 mysql mysql     4096 11月  5 01:49 zxydb

15,刪除上述與xtrabackup相關的文件

[root@standbygtid mysql]# rm -rf xtrabackup_*

16,重啟數據庫

[root@standbygtid mysql]# nohup mysqld_safe  --user=mysql&

17,基于時間點恢復

(注:我們就恢復到二進制日志的 337,見上述的第9步)

[root@standbygtid mysql]# mysql -uroot -psystem < /base_binlog_pos.sql

Warning: Using a password on the command line interface can be insecure.

[root@standbygtid mysql]# 

mysql> select * from zxydb.t_go;

+----+------+

| a  | b    |

+----+------+

|  1 |    1 |

|  2 |    2 |

|  3 |    3 |

|  5 |    5 |

|  8 |    8 |

| 10 |   10 |

| 11 |   11 |

| 12 |   12 |

| 13 |   13 |

+----+------+

9 rows in set (0.00 sec)

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

方城县| 东光县| 襄城县| 安康市| 海盐县| 家居| 高邮市| 图们市| 融水| 湘潭县| 瑞丽市| 龙口市| 金门县| 合作市| 麻栗坡县| 任丘市| 马鞍山市| 宾川县| 秀山| 和龙市| 东丽区| 滁州市| 湘乡市| 蒙山县| 平顶山市| 麻江县| 孟州市| 洞头县| 郸城县| 台州市| 乌兰察布市| 宝应县| 南宫市| 游戏| 尼勒克县| 灵丘县| 丰镇市| 武鸣县| 宁河县| 安塞县| 揭东县|