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' ;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM