欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql 开发进阶篇系列 45 xtrabackup 安装,用户权限,配置

程序员文章站 2024-02-14 23:55:10
一. 安装说明 安装XtraBackup 2.4 版本有三种方式: (1) 存储库安装Percona XtraBackup(推荐) (2 )下载的rpm或apt包安装Percona XtraBackup。 (3) 源代码编译和安装。 Percona为yum (Red Hat、CentOS和Amazo ......

一. 安装说明

  安装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 存储库,代码如下:

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

  完装完成后,如下图所示:
    mysql 开发进阶篇系列 45  xtrabackup 安装,用户权限,配置
  步骤2: 验证yum是否安装成功。下面使用yum list输出所有yum安装的工具,并用grep来过滤,注意grep后面不要写错过滤条件。查询命令如下:

    [root@hsr /]# yum list | grep percona-xtrabackup

    mysql 开发进阶篇系列 45  xtrabackup 安装,用户权限,配置
  步骤3:安装 percona-xtrabackup-24

   [root@hsr /]# yum install percona-xtrabackup-24

    mysql 开发进阶篇系列 45  xtrabackup 安装,用户权限,配置

  最后简单查看xtrabackup安装路径和文档

-- 安装路径
[root@hsr /]# type xtrabackup
xtrabackup 已被哈希 (/usr/bin/xtrabackup)
-- 文档
[root@hsr /]#  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 开发进阶篇系列 45  xtrabackup 安装,用户权限,配置
    备份目录权限xtrabackup 备份选项target_dir,可以在备份时使用命令行指定选项,也可以在my.cnf中配置好target_dir,后面备份操作时再配置。

 3.3  数据库用户权限
    连接工具可以是用innobackupex或xtrabackup。innobackupex只是一个软链接指向了xtrabackup。用法一样,后面就只讲xtrabackup。innobackupex的软连接如下图所示:
    mysql 开发进阶篇系列 45  xtrabackup 安装,用户权限,配置
    用于连接到服务器的数据库用户及其密码由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;

 

四.配置 xtrabackup
  所有的xtrabackup配置都是通过选项完成的,其行为与标准的mysql程序选项完全相同:它们可以通过命令行指定,也可以通过/etc/my.cnf这样的文件指定。
  xtrabackup二进制文件按照顺序从任何配置文件中读取[mysqld]和[xtrabackup]部分。这样它就可以从您现有的mysql安装中读取它的选项,例如datadir或一些innodb选项。如果您想要重写这些内容,只需在[xtrabackup]部分中指定它们,因为它稍后会被读取,所以它会优先。
  如果不需要,您不需要在my.cnf中添加任何配置。您可以简单地在命令行上指定选项。通常,在my.cnf文件的[xtrabackup]部分,您可能会发现唯一方便的地方是target_dir选项,它可以默认放置备份的目录。例如:

[xtrabackup]
target_dir = /data/backups/mysql/