mysql資料庫的備份與恢復

2022-06-14 19:00:10 字數 3386 閱讀 7269

一、環境

備份工具:innobackupex 

[root@master ~]# innobackupex -v

innobackupex version 2.4.18 linux (x86_64) (revision id: 29b4ca5)

作業系統:centos 7.5

資料庫:mysql-5.7.25

二、innobackupex 常用引數介紹

備份工具innobackupex要用到的一些主要引數介紹

--user:該選項表示備份賬號。

--password:該選項表示備份的密碼。

--port:該選項表示備份資料庫的埠。(如果是預設3306埠可忽略)

--databases:備份指定的資料庫,如果要指定多個資料庫,彼此間需要以空格隔開;

--socket:該選項表示mysql.sock所在位置;

一般如果是yum安裝的資料庫,mysql.sock檔案預設在/var/lib/mysql/mysql.sock目錄下,如果是該情況可以不用指定,如果是二進位制安裝,則有可能在其他目錄下,就需要該引數做指定;否則innobackupex無法連線資料庫報錯;

failed to connect to mysql server: dbi connect(';mysql_read_default_group=xtrabackup','root',...) failed: can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2) at - line 1314.

201103 10:37:44 connecting to mysql server host: localhost, user: root, password: set, port: not set, socket: not set

failed to connect to mysql server: can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2).

--incremental:表示建立乙個增量備份,根--incremental-basedir引數一塊使用;

--incremental-basedir:指定是基於哪個全量備份目錄做的增量備份;

--incremental-dir:指定增量備份的目錄;

--defaults-file:指定my.cnf的路徑,如果是預設的/etc/my.cnf路徑,則該引數可以忽略;

--copy-back:做恢復操作,將備份目錄中的檔案copy到資料庫data目錄中; 

--redo-only:

三、全量備份 or 全量恢復

1、全量備份

innobackupex --host=localhost --user=root --password=123.com  --socket=/tmp/mysql.sock /root/mysql/mysql-backup

備份成功的特徵:最後會出現201104 16:43:09 completed ok!的字樣

在備份目錄中

xtrabackup_checkpoints檔案可以檢視備份檔案型別;

full-backuped:表示全量備份

2、恢復

(1)資料庫需要先停掉;

(2)資料庫的data目錄需要清空,否則報錯;

innobackupex version 2.4.18 based on mysql server 5.7.26 linux (x86_64) (revision id: 29b4ca5)

original data directory /usr/local/mysql-5.7.25/data is not empty!

(3) innobackupex --copy-back /root/mysql/mysql-backup/

2020-11-04_16-43-05

(4)恢復命令執行成功後,會在data目錄下生成相應的目錄檔案,這時候目錄檔案屬主屬組是root,需要修改data目錄下的檔案屬主屬組為mysql使用者,否則無法啟動;

chown -r mysql:mysql data

否則報錯:starting mysql. error! the server quit without updating pid file (/usr/local/mysql-5.7.25/data/master.pid).   #許可權問題導致的;

四、增量備份

(1)備份:

incremental:表示增量備份;

(2)還原

1)prepare全備

注意:執行過程中會有一些類似錯誤的東西,可以忽略,不必糾結;

2)prepare增量備份

2020-11-04_17-15-05

注意:我這邊只增量備份了1次,可以多次增量備份,需要注意的是基於全備做的增備或者是基於某次增備做的增量備份,要理清楚;多次增備,需要多次prepare;

3)此時,增量備份都已經合併到了全備上,需要再prepare一次全備份

4)資料恢復準備,mysql停用,清空資料庫data目錄;

innobackupex --copy-back /root/mysql/mysql-backup/2020-11-04_16-43-05

5)修改資料庫data目錄屬主屬組為mysql;登陸驗證

(3)增量備份的方式

1)基於第一次全量備份做增量備份,後續的增量備份都基於第一次全量備份做增量備份;

2)後續的增量備份基於前一次的增量備份做增量備份,但是如果增量備份目錄多的話,恢復也是個大工程;

五、備份需要考慮因素

1、鎖定資源多長時間?

2、備份過程的時長?

3、備份時的伺服器負載?

4、恢復過程的時長?

Mysql資料庫備份與恢復

匯出要用到mysql的mysqldump工具,基本用法是 mysqldump options database tables 幫助 mysqldump help mysqldump支援下列選項 add locks 在每個表匯出之前增加lock tables並且之後unlock table。為了使得更...

mysql 資料庫備份與恢復

首先要用命令列進入mysql的安裝目錄下的bin c program files mysql mysql server 5.1 bin win32下mysql的備份與還原 1.1 備份 開始選單 執行 cmd 利用 cd program files mysql mysql server 5.0 bi...

MySQL資料庫備份與恢復

mysql資料庫備份與恢復 mysql資料庫備份與恢復 方法一 1.匯出整個資料庫 命令列進入到mysql安裝目錄的bin目錄下 假設裝在d mysql bin 即 開始 執行 輸入cmd d cd mysql bin 然後執行下面語句 mysqldump u 使用者名稱 p 資料庫名 匯出的檔名 ...