xtrabackup執行備份要擁有的權限

xtrabackup備份的原理:

  xtrabackup直接複製datadir目錄中的文件到備份目錄下。這樣問題就來了,在備份的時候mysql可以還在執行寫入操作;所以xtrabackup會不停的去掃描MySQL的

  redo_log,也就是說備份集中一來會保存數據文件,二來還會保存日誌文件;注意這個時候備份並不是一致的,原因是有的事務提交了,但是也只是寫把變更寫到了redo_log

  中,並還沒有把變更寫到數據文件當中去。由於這個原因我們要前滾redo_log以應用那些已經提交了的事務。

 

xtrabackup備份需要的權限:

  1、MySQL層面:由於要備份MYISAM引擎的表(xtrabackup不能備份MYISAM表,但是它的包裝器innobackup可以備份這種表)所以要用到RELOAD,LOCK TABLE。

          這個權限用於執行FLUSH TABLES WITH READ LOCK、FLUSH ENGINE LOGS。

  2、MYSQL層面:REPLICATION CLIENT 這個權限爲的是查看二進制日誌當前寫到了那個位置。

  3、MySQL層面:PROCESS 查看MySQL相關連接的進程。

  4、MySQL層面:SUPPER 用於在複製環境中執行stop slave | start slave。

  5、MySQL層面:create、insert、select;這是因爲xtrabackup會創建一個它自己用的表對象。

  6、綜上所述創建用於xtrabackup備份用戶的SQL語句爲

          grant RELOAD,LOCK TABLES,REPLICATION CLIENT,PROCESS,SUPER,CREATE,INSERT,SELECT on *.*

          to xtraback@'localhost' identified by 'xtraback';

  7、Linux文件系統層面:由於要寫入,讀取;所以用戶要有對應備份目錄的wrx權限。對datadir目錄要rx權限。

  8、在linux系統中創建一個用於執行備份的用戶

          root> useradd xtrabackupuser

          root>echo 'xtrabackupuser' | passwd --stdin xtrabackupuser

          root>mkdir /mysql_backup && chown xtrabackupuser.xtrabackupuser /mysql_backup

 

xtrabackup備份例子:用xtrabckupuser創建一個全備

          root> su - xtrabackupuser

          xtrabackupuser> innobackup --user=xtraback --password=xtraback /mysql_backup

          #看清楚了沒有,明白了吧,只要給了它MySQL、Linux這兩個層面的權限就可以執行備份了。

          

由於xtrabackup還要記錄一些操作日誌到mysql數據中,總的來說它要用到的所有權限如下:

create user xtrabackup@'localhost' identified by 'xtrabackup';grant reload,lock tables,replication client,create tablespace,process,super on *.* to xtrabackup@'localhost' ;grant create,insert,select on percona_schema.* to xtrabackup@'localhost' ;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章