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

溫馨提示×

溫馨提示×

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

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

MySQL - Xtrabackup安裝及出現問題處理方法

發布時間:2020-05-22 17:26:56 來源:網絡 閱讀:377 作者:三月 欄目:MySQL數據庫

下面講講關于MySQL - Xtrabackup安裝及出現問題處理方法,文字的奧妙在于貼近主題相關。所以,閑話就不談了,我們直接看下文吧,相信看完MySQL - Xtrabackup安裝及出現問題處理方法這篇文章你一定會有所受益。

Xtarbackup簡介
Xtrabackup是由percona開源的免費數據庫熱備份軟件,它能對InnoDB數據庫和XtraDB存儲引擎的數據庫非阻塞地備份(對于MyISAM的備份同樣需要加表鎖);mysqldump備份方式是采用的邏輯備份,其最大的缺陷是備份和恢復速度較慢,如果數據庫大于50G,mysqldump備份就不太適合。
Xtrabackup優點

1)備份速度快,物理備份可靠
2)備份過程不會打斷正在執行的事務(無需鎖表)
3)能夠基于壓縮等功能節約磁盤空間和流量
4)自動備份校驗
5)還原速度快
6)可以流傳將備份傳輸到另外一臺機器上
7)在不增加云服務器負載的情況備份數據

Xtrabackup備份原理
備份開始時首先會開啟一個后臺檢測進程,實時檢測mysql redo的變化,一旦發現有新的日志寫入,立刻將日志記入后臺日志文件xtrabackup_log中,之后復制innodb的數據文件一系統表空間文件ibdatax,復制結束后,將執行flush tables with readlock,然后復制.frm MYI MYD等文件,最后執行unlock tables,最終停止xtrabackup_log。
Xtrabackup增量備份介紹

xtrabackup增量備份的原理是:

1)、首先完成一個完全備份,并記錄下此時檢查點LSN;
2)、然后增量備份時,比較表空間中每個頁的LSN是否大于上次備份的LSN,若是則備份該頁并記錄當前檢查點的LSN。

增量備份優點:

1)、數據庫太大沒有足夠的空間全量備份,增量備份能有效節省空間,并且效率高;
2)、支持熱備份,備份過程不鎖表(針對InnoDB而言),不阻塞數據庫的讀寫;
3)、每日備份只產生少量數據,也可采用遠程備份,節省本地空間;
4)、備份恢復基于文件操作,降低直接對數據庫操作風險;
5)、備份效率更高,恢復效率更高。

安裝
運行環境是centos 7.2
下載XtraBackup:
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/Percona-XtraBackup-2.4.9-ra467167cdd4-el7-x86_64-bundle.tar

(Percona-XtraBackup-8.0下載:
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-8.0.4/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.4-1.el7.x86_64.rpm
依賴:yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses5-devel perl perl-devel perl-Digest-MD5 perl-Time-HiRes perl-DBD-MySQL libev libev-devel libgcrypt libgcrypt-devel curl curl-devel python-setuptools libarchive-devel)

解壓:tar -xf Percona-XtraBackup-2.4.9-ra467167cdd4-el7-x86_64-bundle.tar
檢查安裝percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm所需依賴包:
yum -y install percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm --skip-broken
根據提示進行安裝:
yum -y install perl-* mariadb-libs
還有一個依賴包需要手動下載安裝
wget http://mirror.centos.org/centos/7/extras/x86_64/Packages/libev-4.15-7.el7.x86_64.rpm
安裝完成幾個依賴包,嘗試安裝percona-xtrabackup
yum -y install percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm
我這顯示正確安裝,沒有報錯。

[root@localhost src]# which xtrabackup
/usr/bin/xtrabackup
[root@localhost src]# innobackupex -v
innobackupex version 2.4.9 Linux (x86_64) (revision id: a467167cdd4)
[root@localhost src]#
MySQL - Xtrabackup安裝及出現問題處理方法

mysql創建數據庫以及表
mysql> create database home ;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
mysql> create table address (name varchar(10) not null,homeaddress varchar(20) not null);
Query OK, 0 rows affected (0.08 sec)
mysql> use home ;
Database changed
mysql> insert into address values('zhuangsan','guangzhou');
Query OK, 1 row affected (0.02 sec)

mysql> insert into address values('lisi','shanghai');
Query OK, 1 row affected (0.01 sec)

mysql> insert into address values('waner','shenzhen');
Query OK, 1 row affected (0.03 sec)
全量備份:
[root@localhost run]# innobackupex --defaults-file=/etc/my.cnf --user=root --password="123abc" --backup /data/mysqldata

--user :mysql的用戶帳號
--password:為帳號的密碼
/data/mysqldata:數據備份目錄
MySQL - Xtrabackup安裝及出現問題處理方法
[root@localhost run]# ls /data/mysqldata/2018-03-09_17-25-31/       #在這個目錄中可以看到備份信息,同樣可以看到我們創建的庫的名稱。
MySQL - Xtrabackup安裝及出現問題處理方法
[root@localhost ~]# innobackupex --apply-log /data/mysqldata/2018-03-09_17-25-31/    #使用此參數使相關數據性文件保持一致性狀態。
MySQL - Xtrabackup安裝及出現問題處理方法
MySQL - Xtrabackup安裝及出現問題處理方法

恢復:
刪除表信息:
mysql> show databases
-> ;
+------------------------------+
| Database                     |
+------------------------------+
| information_schema           |
| #mysql50#2018-03-09_17-25-31 |
| home                         |
| mysql                        |
| performance_schema           |
| sys                          |
+------------------------------+
6 rows in set (0.09 sec)

mysql> use home;
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> show tables;
+----------------+
| Tables_in_home |
+----------------+
| address        |
+----------------+
1 row in set (0.00 sec)

mysql> drop table address;
Query OK, 0 rows affected (0.02 sec)
mysql> select * from address
->;

ERROR 1146 (42S02): Table 'home.address' doesn't exist
mysql>
MySQL - Xtrabackup安裝及出現問題處理方法
恢復之前必須保證數據目錄為空,即mysqldata目錄。由于之前的備份數據在mysqldata目錄中,所以需要將里面的數據copy出來,確保mysqldata目錄是空的。才能正常恢復數據。要不然會報mysqldata目錄非空錯誤。
[root@localhost mysqldata]# innobackupex --defaults-file=/etc/my.cnf --copy-back /data/mysqldata.bak/2018-03-09_17-25-31/
MySQL - Xtrabackup安裝及出現問題處理方法
MySQL - Xtrabackup安裝及出現問題處理方法
所遇問題處理 注:
恢復數據后,啟動mysql出現報錯,無法啟動。
[root@localhost mysqldata]# service mysqld start
Starting MySQL.. ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).
MySQL - Xtrabackup安裝及出現問題處理方法
檢查過/var/run/mysqld目錄沒問題,進入恢復數據文件目錄和之前的數據進行對比,發現所以數據的所有者不是mysql而是root
MySQL - Xtrabackup安裝及出現問題處理方法
MySQL - Xtrabackup安裝及出現問題處理方法
修改恢復目錄的數據權限
[root@localhost data]# chown -R mysql:mysql mysqldata
重新啟動mysql,正常啟動
MySQL - Xtrabackup安裝及出現問題處理方法
查看數據是否恢復。
MySQL - Xtrabackup安裝及出現問題處理方法
數據恢復正常。
增量備份與恢復:
新插入一些數據,創建用于增量備份的數據,用來模擬刪除掉了全備后的數據,能否通過增量備份文件來恢復。
mysql> select * from address;
+-----------+-------------+
| name      | homeaddress |
+-----------+-------------+
| zhuangsan | guangzhou   |
| lisi      | shanghai    |
| waner     | shenzhen    |
| jinjin    | jiangxi     |
| xiaoxiong | xi`an       |
| meimei    | fujian      |
+-----------+-------------+
6 rows in set (0.00 sec)

mysql>

MySQL - Xtrabackup安裝及出現問題處理方法

增量備份:
[root@localhost mysqldata.bak]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123abc --incremental /data/mysqldata --incremental-basedir=/data/mysqldata.bak/2018-03-09_17-25-31
--incremental /data/mysqldata      指定增量備份文件存放目錄
--incremental-basedir=/data/mysqldata.bak/2018-03-09_17-25-31        指定上一次全量備份或增量備份的存放目錄
MySQL - Xtrabackup安裝及出現問題處理方法
顯示以下內容說明成功:
180323 14:54:20 Executing UNLOCK TABLES
180323 14:54:20 All tables unlocked
180323 14:54:20 [00] Copying ib_buffer_pool to /data/mysqldata/2018-03-23_14-54-12/ib_buffer_pool
180323 14:54:20 [00]        ...done
180323 14:54:20 Backup created in directory '/data/mysqldata/2018-03-23_14-54-12/'
180323 14:54:20 [00] Writing /data/mysqldata/2018-03-23_14-54-12/backup-my.cnf
180323 14:54:20 [00]        ...done
180323 14:54:20 [00] Writing /data/mysqldata/2018-03-23_14-54-12/xtrabackup_info
180323 14:54:20 [00]        ...done
xtrabackup: Transaction log of lsn (2564189) to (2564198) was copied.
180323 14:54:20 completed OK!
[root@localhost mysqldata.bak]#

查看備份情況
MySQL - Xtrabackup安裝及出現問題處理方法
刪除一條數據測試增量恢復
MySQL - Xtrabackup安裝及出現問題處理方法
在恢復數據之前記得關閉數據庫服務。
MySQL - Xtrabackup安裝及出現問題處理方法
MySQL - Xtrabackup安裝及出現問題處理方法
MySQL - Xtrabackup安裝及出現問題處理方法

對于以上MySQL - Xtrabackup安裝及出現問題處理方法相關內容,大家還有什么不明白的地方嗎?或者想要了解更多相關,可以繼續關注我們的行業資訊板塊。

向AI問一下細節

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

AI

高阳县| 衡南县| 平南县| 南岸区| 溆浦县| 藁城市| 六枝特区| 漠河县| 平南县| 馆陶县| 柘荣县| 定边县| 固安县| 邢台市| 雅安市| 泸定县| 昌吉市| 抚宁县| 东港市| 张家界市| 九龙坡区| 同仁县| 曲周县| 凤山市| 闵行区| 东阿县| 东海县| 安国市| 巴南区| 霍山县| 库尔勒市| 东乡族自治县| 碌曲县| 富阳市| 亚东县| 宁陕县| 襄城县| 蓝田县| 天津市| 安徽省| 丹巴县|