溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mysql數(shù)據(jù)庫xtrabackup完全備份恢復(fù)后重啟失敗處理方法

發(fā)布時(shí)間:2020-05-09 13:50:46 來源:億速云 閱讀:748 作者:三月 欄目:MySQL數(shù)據(jù)庫

下文主要給大家?guī)?a title="mysql" target="_blank" href="http://www.kemok4.com/mysql/">mysql數(shù)據(jù)庫xtrabackup完全備份恢復(fù)后重啟失敗處理方法,希望mysql數(shù)據(jù)庫xtrabackup完全備份恢復(fù)后重啟失敗處理方法能夠帶給大家實(shí)際用處,這也是我編輯這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

一. 完全備份恢復(fù)說明

  xtrabackup二進(jìn)制文件有一個(gè)xtrabackup --copy-back選項(xiàng),它將備份復(fù)制到云服務(wù)器的datadir目錄下。下面是通過 --target-dir 指定完全備份文件的目錄,還原到datadir目錄下。

1
xtrabackup --copy-back --target-dir=/data/backups/

  可以使用xtrabackup --move-back選項(xiàng)恢復(fù)備份。這個(gè)選項(xiàng)類似于xtrabackup --copy-back,唯一的區(qū)別是它將文件移動(dòng)到目標(biāo)位置,而不是復(fù)制文件。由于此選項(xiàng)刪除了備份文件,因此必須謹(jǐn)慎使用。

  如果您不想使用上述任何一種選項(xiàng),您可以另外使用rsync或cp來恢復(fù)文件??梢杂脕砘謴?fù)備份的rsync命令的示例如下:

?

1
$ rsync -avrp /data/backup/  /var/lib/mysql/

  在大多數(shù)情況下,您需要在啟動(dòng)數(shù)據(jù)庫云服務(wù)器之前將文件的所有權(quán)更改為mysql。最后現(xiàn)有數(shù)據(jù)已恢復(fù),可以啟動(dòng)云服務(wù)器, 權(quán)限設(shè)置如下所示:

?

1
$ chown -r mysql:mysql /var/lib/mysql

   注意:在恢復(fù)備份之前,datadir目錄必須為空。另外mysql云服務(wù)器在執(zhí)行恢復(fù)之前需要關(guān)閉,不能還原到正在運(yùn)行的mysqld實(shí)例的datadir目錄下。

  恢復(fù)還原工作原理請(qǐng)查看:mysql 開發(fā)進(jìn)階篇系列 44 物理備份與恢復(fù)( 熱備份xtrabackup 工具介紹) 

二. 完全備份恢復(fù)案例

?

1
2
3
4
5
-- 在恢復(fù)之前先刪除下面二個(gè)表
-- 刪除一個(gè)a 表(myisam)
delete from test.a
-- 刪除一個(gè)testbackup表(innodb)
delete from test.`testbackup`

?

1
2
3
4
-- 先停掉服務(wù)
[root@hsr data]# service mysql stop
-- 刪除data目錄下所有數(shù)據(jù)文件,安全起見可以先保存原有副本
[root@hsr data]# rm  -rf  /usr/local/mysql/data/*
?
1
2
-- 使用xtrabackup 完全恢復(fù)
 [root@hsr data]# xtrabackup  --defaults-file=/etc/my.cnf  --host=127.0.0.1  --user bkpuser --password=123456 --copy-back <br>                  --target-dir=/data/backups/

  如下圖所示恢復(fù)成功:
    mysql數(shù)據(jù)庫xtrabackup完全備份恢復(fù)后重啟失敗處理方法

?

1
2
-- 清空mysql錯(cuò)誤日志內(nèi)容,方便等下查看
[root@hsr data]# : > /var/log/mariadb/mariadb.log

    --重啟服務(wù)失敗,查看錯(cuò)誤日志顯示:2018-10-09t05:26:19.082347z 0 [error] innodb: the innodb_system data file 'ibdata1' must be writable。2018-10-09t06:03:17.407537z 0 [error] innodb: operating system error number 13 in a file operation。

?

1
2
3
-- 使用perror查看狀態(tài)13 ,提示沒有權(quán)限
[root@hsr data]# perror 13
os error code  13:  permission denied

?

1
2
3
4
-- 改變屬主關(guān)系,將data目錄下所有的文件改成mysql用戶和mysql用戶組。
[root@hsr data]# chown -r mysql:mysql  ../data
[root@hsr data]# service mysql start
starting mysql. success!

  最后啟動(dòng)成功了,刪除的二個(gè)表數(shù)據(jù)都回來了。 

三. 錯(cuò)誤日志中的警告信息

  3.1  信息:insecure configuration for --secure-file-priv: location is accessible to all os users。解決方法:secure-file-priv我系統(tǒng)指定的目錄是/tmp。 把該目錄下的用戶和用戶組設(shè)置成mysql。

?

1
[root@hsr tmp]# chown -r mysql.mysql ../tmp

  3.2 信息:insecure configuration for --pid-file: location '/usr/local/mysql/data' in the path is accessible to all os users。意思是目錄不安全,所有用戶都可見。解決方法:將data目錄設(shè)置mysql用戶和用戶組權(quán)限,以及770權(quán)限。

?

1
2
[root@hsr tmp]# chown -r mysql.mysql /usr/local/mysql/data
[root@hsr tmp]# chmod 770 /usr/local/mysql/data

  3.3 信息:failed to set up ssl because of the following ssl library error: ssl context is not usable without certificate and private key。解決:重新安裝ssl。 在mysql的bin目錄下找到mysql_ssl_rsa_setup安裝,如下所示:

?

1
2
3
4
5
6
7
8
9
[root@hsr bin]# pwd
/usr/local/mysql/bin<br>-- 安裝
[root@hsr bin]# mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
--生成后還需將data目錄下的pem文件改用戶組和用戶為mysql
[root@hsr data]# chown -r mysql:mysql private_key.pem
[root@hsr data]# chown -r mysql:mysql public_key.pem
[root@hsr data]# chown -r mysql:mysql server-cert.pem
[root@hsr data]# chown -r mysql:mysql server-key.pem
...

  3.4 信息:timestamp with implicit default value is deprecated. please use --explicit_defaults_for_timestamp server option (see documentation for more details)。 默認(rèn)是off,如下所示:

    mysql數(shù)據(jù)庫xtrabackup完全備份恢復(fù)后重啟失敗處理方法

?

1
2
3
--解決在my.cnf中加入 explicit_defaults_for_timestamp=1,重啟服務(wù)
[mysqld]
explicit_defaults_for_timestamp=1

    mysql數(shù)據(jù)庫xtrabackup完全備份恢復(fù)后重啟失敗處理方法
   總結(jié):關(guān)于mysql恢復(fù)后,服務(wù)啟動(dòng)報(bào)文件權(quán)限問題的,所有mysql有關(guān)的文件或目錄全部設(shè)置成mysql用戶和mysql用戶組。

對(duì)于以上關(guān)于mysql數(shù)據(jù)庫xtrabackup完全備份恢復(fù)后重啟失敗處理方法,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請(qǐng)繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會(huì)喜歡上這些內(nèi)容的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI