82870034 发表于 2018-10-1 15:26:49

mysql 主备XtraBackup恢复

主数据库 mysql> select version();  +------------+
  | version()|
  +------------+
  | 5.6.35-log |
  +------------+
  1 row in set (0.00 sec)
  ip 地址:192.168.212.11
  从数据库:MariaDB [(none)]> select version();
  +----------------+
  | version()      |
  +----------------+
  | 10.2.6-MariaDB |
  +----------------+
  1 row in set (0.00 sec)
  ip 地址:192.168.212.10
  第一步:

  mysql> grant replication slave on *.* to 'ff'@'192.168.212.10'>  Query OK, 0 rows affected (0.09 sec)
  (在主数据库上进行给从数据库授权)
  第二步:(如下是在主数据库上面的操作)
  说明这里只使用全量备份(恢复)不使用增量备份(恢复)
  # rpm -ivh http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
  获取http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

  警告:/var/tmp/rpm-tmp.tIRhy2: 头V4 DSA/SHA1 Signature, 密钥>  准备中... #################################
  正在升级/安装...
  1:percona-release-0.1-3 #################################
  (首先rpm安装yum的扩展源)
  # yum list | grep percona
  # yum install percona-xtrabackup
  (安装备份工具的包)

  mysql> GRANT>  Query OK, 0 rows affected (0.00 sec)
  (在主数据库中创建一个用户并授权)
  mysql> flush privileges;
  Query OK, 0 rows affected (0.01 sec)
  (刷新mysql)
  # mkdir /data/backup
  (创建backup目录,里面存放mysql备份的数据库)
  # ls -l /data/backup/
  总用量 4
  drwx------ 9 root root 4096 9月   2 18:08 2017-09-02_18-08-29
  (如上是备份的数据库)
  # tar -zcvf 2017-09-02_18-08-29.tar.gz 2017-09-02_18-08-29
  # du -sh 2017-09-02_18-08-29.tar.gz
  540K    2017-09-02_18-08-29.tar.gz
  # rsync -avP /data/backup/2017-09-02_18-08-29.tar.gz 192.168.212.10:/data/backup/
  root@192.168.212.10's password:
  sending incremental file list
  2017-09-02_18-08-29.tar.gz
  551406 100%   40.40MB/s    0:00:00 (xfer#1, to-check=0/1)
  sent 3090 bytesreceived 4531 bytes1172.46 bytes/sec

  total>  (用rsync进行同步)
  第三步(拷贝备份主数据库的数据+恢复数据库)
  # mkdir /data/backup
  (从数据库上也需要创建一个目录)
  # ls /data/backup/
  2017-09-02_18-08-29.tar.gz
  (可以看到已经同步成功)
  # du -sh /data/backup/2017-09-02_18-08-29.tar.gz
  540K    /data/backup/2017-09-02_18-08-29.tar.gz
  (大小一致)
  # tar -xzvf /data/backup/2017-09-02_18-08-29.tar.gz
  (解压缩)
  # innobackupex --use-memory=512M --apply-log 2017-09-02_18-08-29
  (进行初始化)
  # /etc/init.d/mariadb stop
  Stopping mariadb (via systemctl):                        [确定]
  (关闭数据库,之后进行恢复操作)
  # rm -rf /data/mariadb/
  # mkdir /data/mariadb
  # chown mysql1:mysql1 /data/mariadb
  # innobackupex --defaults-file=/etc/my.cnf --datadir=/data/mariadb/--use-memory=512M--copy-back 2017-09-02_18-08-29

  (在这里的时候我其实是报了一个错误,innobackupex version 2.3.9 based on MySQL server 5.6.24 Linux (x86_64) (revision>  Error: datadir must be specified.
  (这里的错误是必须要指定新的datadir的目录,指定后就可以恢复成功)
  # ls /data/mariadb/
  db1      ib_logfile0mysql   performance_schemaxtrabackup_binlog_pos_innodbzhucong
  ibdata1ib_logfile1mysql2test                xtrabackup_info               zrlog
  (查看已经恢复数据库)
  # /etc/init.d/mariadb start

  Starting mariadb (via systemctl):Warning: mariadb.service changed on disk. Run 'systemctl daemon-reload' to>  [确定]
  # systemctl daemon-reload
  # /etc/init.d/mariadb start
  Starting mariadb (via systemctl):                        [确定]

页: [1]
查看完整版本: mysql 主备XtraBackup恢复