1. 程式人生 > >mysql 開發進階篇系列 45 xtrabackup 安裝與使用者許可權說明(系統使用者和mysql使用者)

mysql 開發進階篇系列 45 xtrabackup 安裝與使用者許可權說明(系統使用者和mysql使用者)

一. 安裝說明

  安裝XtraBackup 2.4 版本有三種方式:

           (1) 儲存庫安裝Percona XtraBackup(推薦)

           (2 )下載的rpm或apt包安裝Percona XtraBackup。

           (3) 原始碼編譯和安裝。  Percona為yum (Red Hat、CentOS和Amazon Linux AMI的RPM包)和apt (Ubuntu和Debian的.deb包)提供儲存庫,用於Percona Server、Percona XtraBackup和Percona Toolkit等軟體。儲存庫安裝將得通過作業系統的包管理器,輕鬆地安裝和更新軟體及其依賴項。這是推薦的安裝方法。

二. 安裝演示(centos 7)

  使用 yum安裝工具。 yum下載的預設檔案包路徑存放在/var/cache/yum目錄下。

  步驟1:切換到root使用者下,使用yum下載安裝Percona 儲存庫,程式碼如下:

    [[email protected] /]# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm

  完裝完成後,如下圖所示:      步驟2: 驗證yum是否安裝成功。下面使用yum list輸出所有yum安裝的工具,並用grep來過濾,注意grep後面不要寫錯過濾條件。查詢命令如下:

    [[email protected] /]# yum list | grep percona-xtrabackup

      步驟3:安裝 percona-xtrabackup-24

   [[email protected] /]# yum install percona-xtrabackup-24

    

  最後簡單檢視xtrabackup安裝路徑和文件

-- 安裝路徑
[[email protected] /]# type xtrabackup
xtrabackup 已被雜湊 (/usr/bin/xtrabackup)
-- 文件
[[email protected]
/]# xtrabackup
--help xtrabackup: recognized server arguments: --server-id=1 --log_bin=/var/lib/mysql/mysql-bin --datadir=/usr/local/mysql/data xtrabackup: recognized client arguments: --server-id=1 --log_bin=/var/lib/mysql/mysql-bin --datadir=/usr/local/mysql/data xtrabackup version 2.4.12 based on MySQL server 5.7.19 Linux (x86_64) (revision id: 170eb8c) Open source backup tool for InnoDB and XtraDB -- 使用方法如下: Usage: [xtrabackup [--defaults-file=#] --backup | xtrabackup [--defaults-file=#] --prepare] [OPTIONS] -- 預設按照以下路徑讀取mysql的my.cnf檔案 Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 最後[OPTIONS]引數太多,這篇就不在列出。

三 許可權說明

 3.1 連線服務和許可權概述    Percona XtraBackup需要能夠連線到資料庫伺服器,並建立備份、在某些場景中進行準備和恢復備份時,在伺服器的datadir上執行操作。為了做到這一點,必須滿足其執行的特權和許可權要求。

    無論使用xtrabackup還是innobackupex,都會涉及兩個角色。呼叫程式的使用者(系統使用者)和在資料庫伺服器中執行操作的使用者(資料庫使用者)。請注意,這些使用者位於不同的位置,儘管他們的使用者名稱可能相同。

  3.2 系統使用者許可權

    執行 innobackupex/xtrabackup 命令的Linux使用者需要對mysql的datadir和儲存備份的目錄(mysql的環境變數tmpdir)有讀寫執行許可權。檢視datadir目錄許可權,使用mysql,root系統使用者,檢視datadir目錄/usr/local/mysql/data。下圖顯示有讀寫執行許可權,如果沒有就需要設定。      檢視備份目錄許可權,使用mysql使用者和root使用者,我係統設定的路徑是/tmp目錄,都有寫入和讀取許可權,如果沒有就需要設定。下面是檢視備份目錄,如果沒有值,需要在my.cnf中先設定secure_file_priv=/tmp。

-- 檢視備份目錄
SHOW VARIABLES LIKE 'tmpdir'

  3.3  資料庫使用者許可權    連線工具可以是用innobackupex或xtrabackup。innobackupex只是一個軟連結指向了xtrabackup。用法一樣,後面就只講xtrabackup。innobackupex的軟連線如下圖所示:        用於連線到伺服器的資料庫使用者及其密碼由xtrabackup—user和xtrabackup—password選項指定。這裡user使用者是指mysql.user表中的使用者,需要一些基本的許可權來執行備份過程。資料庫使用者需要備份表或資料庫需要以下許可權:

(1) RELOAD重新載入和LOCK TABLES鎖定表(除非指定了-no-lock選項)二個許可權,LOCK TABLES是為了在開始複製檔案之前使用READ LOCK讀鎖, 在使用備份鎖時,用於備份的鎖表和用於備份的鎖BINLOG需要此特權。RELOAD是為了重新整理引擎日誌來FLUSH TALBES重新整理表。

(2) REPLICATION CLIENT複製許可權,是客戶端為了獲得二進位制日誌位置。

(3) TABLESPACE表空間許可權,建立表空間以匯入表(參見恢復各個表)。

(4) PROCESS程序許可權,是為了執行SHOW ENGINE INNODB STATUS(這是強制性的),並可選地看到所有執行緒執行在伺服器上(見改進的嵌入式表與讀鎖處理)。

(5) SUPER許可權,為了在複製環境中啟動/停止從執行緒,使用XtraDB更改後的頁面跟蹤來進行增量備份和改進的具有讀鎖處理的重新整理表。

(6) CREATE privilege特權 是為了建立PERCONA_SCHEMA.xtrabackup_history庫和表。

(7 )INSERT privilege特權,是為了新增歷史記錄PERCONA_SCHEMA.xtrabackup_history 表。

(8) select privilege特權,是為了使用innobackupex—incremental-history-name或innobackupex—incremental-history-uuid,以便特性在PERCONA_SCHEMA.xtrabackup_history 表中查詢innodb_to_lsn值。

-- 下面一個案例是:建立一個數據庫使用者,對於完全備份使用必需的最小特權。
mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO
       'bkpuser'@'localhost';
mysql> FLUSH PRIVILEGES;