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

溫馨提示×

溫馨提示×

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

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

innobackupex部分表備份和恢復方法是什么

發布時間:2021-11-10 11:23:51 來源:億速云 閱讀:281 作者:iii 欄目:MySQL數據庫

本篇內容主要講解“innobackupex部分表備份和恢復方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“innobackupex部分表備份和恢復方法是什么”吧!

Percona XtraBackup的功能之一“部分備份(partial backups)”,即讓用戶可以備份指定的表或 數據庫 。要注意的是:你希望備份的表必須是在獨立的表空間中,即該表在創建以前,你的 MySQL 開啟了innodb_file_per_table設置。

還一點要注意的是:不要將prepared backup備份的東西拷貝回去。部分備份使用的是導入表(importing the tables),而不是全庫備份的--copy-back參數。

關于innobackupex可以實現部分表或者庫的(增量)備份和恢復

部分備份共有三種方式,分別是:

1. 用正則表達式表示要備份的庫名及表名(參數為--include);

2. 將要備份的表名或庫名都寫在一個文本文件中(參數為--tables-file)

3. 將要備份表名或庫名完整的寫在命令行或者文件中中(參數為:--databases)

方式一:使用--include參數

這種方式通過正則表達式來匹配數據庫名和表名,你需要寫完整的數據庫名及表名,如果數據庫有用戶名密碼請使用--user和--password指定相關信息。,格式如下:databasename.tablename。下面是一個例子:

[root@tool202 2018-12-01_20-39-31]# innobackupex --include='liuwenhe.liuwenhe'  /data/

上面的方式會和其他使用innobackupex命令的備份方式一樣,創建一個時間戳命名的文件夾,不同的是,最終只包括那些正則表達式匹配的表(liuwenhe.liuwenhe)。

要注意的是,這個命令最后會傳給xtrabackup --tables命令執行;

方式二:使用--tables-file參數

這種方式是將所有要備份的完整表名都寫在一個文本文件中,每行一個完整表名,然后程序讀取這個文本文件進行備份。完整表名即:databasename.tablename,如果需要備份某個庫的全部表則可以寫成databasename.*.需要注意的是文件中每行開頭和結尾不能有空格!下面是一個例子:

[root@rongduan-renhang32 ~]# cat  name.txt

liuwenhe.liu

liuwenhe.he

liuhe.*

可以有需要的話使用下面命令去掉每行結尾的空格

[root@rongduan-renhang32 ~]#sed  -e 's/[ ]*$//g'  name.txt  >name1.txt

2.然后執行備份:

[root@rongduan-renhang32 ~]#  innobackupex  --user=root --password='V56788@1qaz' --port=3306 --tables-file=/root/name.txt   /data/

上面的方式會和其他使用innobackupex命令的備份方式一樣,創建一個時間戳命名的文件夾,不同的是,最終只包括那些文件中指定的表名。

這個命令最后會傳給xtrabackup --tables-file命令執行,而不是--tables,這個命令只會創建那些需要備份的數據庫文件夾。

方式三:使用--databases參數

使用這種方式,用戶既可以將所有要備份的數據庫名和完整表名都寫在一起,以空格分隔,也可以將數據庫名、完整表名寫在一個文件中,每行一個,需要注意的是如果需要備份整個mysql庫,那么區別于--tables-file參數,直接寫上庫名字就可以了,.下面是一個例子:

[root@tool202 liuwenhe]#  innobackupex  --user=root --password='V56788@1qaz' --port=3306 --databases="liuwenhe.liuwenhe  mysql" /data

或者

[root@rongduan-renhang32 ~]# cat  name.txt

liuwenhe.liuwenhe

mysql            ###不用寫成mysql.*區別于--tables-file參數!

可以有需要的話使用下面命令去掉每行結尾的空格

[root@rongduan-renhang32 ~]#sed  -e 's/[ ]*$//g'  name.txt  >name1.txt

2.然后執行備份:

[root@rongduan-renhang32 ~]#  innobackupex  --user=root --password='V56788@1qaz' --port=3306 --databases=/root/name.txt   /data/

上面的方式會和其他使用innobackupex命令的備份方式一樣,創建一個時間戳命名的文件夾,最終結果將包括liuwenhe數據庫中的liuwenhe表,以及整個完整的mysql數據庫。

準備部分備份(Preparing Partial Backups)

執行preparing partial backups,使用--apply-log和--export參數,并包含上一步生成的時間戳文件夾,如下:

[root@tool202 2018-12-01_21-10-20]# innobackupex   --port=3306 --apply-log  --export  /data/liuwenhe/2018-12-01_21-11-07/

執行命令的時候,對于那些不需要備份的表,會出現表不存在的提示。不用擔心,這是正常現象。

最終,記得觀察下面的輸出,已確定準備備份工作結束。

181201 21:15:50 completed OK!

恢復的操作:

1.先創建上需要恢復的表,注意表的存儲行的格式要和源端一樣,可以通過如下查看表的

root@localhost : liuwenhe 21:33:36>show  table  status like    'liuwenhe'\G;

*************************** 1. row ***************************

           Name: liuwenhe

         Engine: InnoDB

        Version: 10

     Row_format: Compact

           Rows: 4

Avg_row_length: 4096

    Data_length: 16384

Max_data_length: 0

   Index_length: 0

      Data_free: 0

Auto_increment: NULL

    Create_time: 2018-12-01 19:43:48

    Update_time: NULL

     Check_time: NULL

      Collation: utf8_general_ci

       Checksum: NULL

Create_options: row_format=COMPACT

        Comment:

1 row in set (0.00 sec)

如果不一樣可以通過如下方式修改:

root@localhost : liuwenhe 21:37:36>alter table  liuwenhe.liuwenhe Row_format=Compact;

Query OK, 0 rows affected (0.34 sec)

Records: 0  Duplicates: 0  Warnings: 0

注意:mysql5.6創建的表默認為 Row_format=Compact,而mysql5.7.18中默認是dynamic格式

通過參數innodb_default_row_format控制!!!

3.注意區別于oracle的offline表空間,mysql 中執行discard 之后,對應的表的.ibd文件就沒有了

alter table liuwenhe.liuwenhe discard tablespace ;

4.然后copy備份的目錄中的該表的.ibd文件到相應的目錄下:

5.然后加載到表空間:

alter table liuwenhe.liuwenhe import tablespace ;

至此恢復工作完成!!!

總結:我們可以通過innobackupex來實現部分表的備份和增量備份和恢復,innodb的表是不可以直接copy表文件的方式來恢復的;也可以通過使用mysqlfrm工具來讀取innobackupex備份中的某個表的表結構,用于先創建上表結構,然后再discad tablespace,copy表的.ibd文件,最后import來實現從全實例備份中來恢復個別的表!注意恢復個別表的前提是:開啟了參數innodb_file_per_table,

mysqlfrm工具可以讀取表結構,可以使用yum安裝:yum install mysql-utilities -y

到此,相信大家對“innobackupex部分表備份和恢復方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

AI

射阳县| 青浦区| 兴国县| 息烽县| 二手房| 佛学| 射洪县| 郸城县| 休宁县| 司法| 光山县| 宝坻区| 新安县| 星座| 咸丰县| 涟水县| 喜德县| 磐安县| 阿尔山市| 凤山县| 康保县| 望江县| 驻马店市| 迭部县| 托克逊县| 宁城县| 泗阳县| 满洲里市| 台南市| 玛沁县| 炉霍县| 厦门市| 武强县| 保康县| 二连浩特市| 赤水市| 柏乡县| 保靖县| 阿尔山市| 平南县| 福海县|