xtrabackup备份还原mysql & 主从

主: 192.168.0.60
从:192.168.0.57

一、安装

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache
yum install  percona-xtrabackup -y

也可以 二进制 部署
wget -c https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.28/binary/tarball/percona-xtrabackup-2.4.28-Linux-x86_64.glibc2.17.tar.gz
tar -xf percona-xtrabackup-2.4.28-Linux-x86_64.glibc2.17.tar.gz -C /usr/local/
#加入$PATH   /etc/profile
echo "export PATH=\$PATH:/usr/local/percona-xtrabackup-2.4.28-Linux-x86_64.glibc2.17/bin" >>/etc/profile
source /etc/profile

二、备份还原

1、主,全量备份

xtrabackup --backup --target-dir=/tmp/xbackup/  \
--user=root  \
--password=123456  \
--socket=/tmp/mysql.sock

–target-dir=/tmp/xbackup/ 为备份的目录

2、从,全量恢复

xtrabackup --copy-back  \
--target-dir=/tmp/xbackup/  \
--defautls-file=/usr/local/mysql/my.cnf  \
--socket=/tmp/mysql.sock \
--user=root --password=123456 \
--datadir=/data/mysql

注:
1、恢复前停止数据库
2、清空数据目录rm -rf /data/mysql/*
3、恢复后改数据目录权限 chown -R mysql:mysql /data/mysql
4、别忘了查看pos点

# cat /tmp/xbackup/xtrabackup_info |grep pos
binlog_pos = filename 'mysql-bin.000095', position '120'

5、也可以通过innobackupex 以下来备份及恢复

备份:
innobackupex --user=root --password=otoyix --defaults-file=/usr/local/mysql/my.cnf  /tmp/xbackup/
cd /tmp/xbackup/
tar -czf 2021-12-31_17-03-28.tar.gz 2021-12-31_17-03-28
scp 2021-12-31_17-03-28.tar.gz root@192.168.0.57:/tmp/


恢复:
docker cp /tmp/2021-12-31_17-03-28.tar.gz mysql:/tmp/
/etc/init.d/mysqld stop
mv /data/mysql{,.bak}
mkdir -p  /data/mysql && chown -R mysql:mysql /data/mysql
innobackupex --apply-log /tmp/xbackup/2021-12-31_17-03-28
innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=root --copy-back /tmp/xbackup/2021-12-31_17-03-28
[root@e072470c9dd0 /]# cat /data/mysql/xtrabackup_info |grep pos
binlog_pos = filename 'mysql-bin.000095', position '120'
chown -R mysql:mysql /data/mysql
/etc/init.d/mysqld start

三、xtrabackup备份至 其他主机

xtrabackup也可以直接把备份到其他主机,本地不存文件

#备份
xtrabackup --backup --slave-info  \
-uroot -H 127.0.0.1 -P3306 -p'password'  \
--stream=xbstream \
--target-dir=/usr/src/bakup_`date +"%F_%H_%M_%S"`  | ssh root@192.168.3.202 "cat - > /usr/src/backup.xbstream"


mkdir -p /tmp/xbackup
#解压
xbstream -x --parallel=10 -C /tmp/xbackup < ./backup.xbstream   #解压至/tmp/xbackup
/etc/init.d/mysqld stop ; rm -rf /data/mysql/*    #还原前要先停库 及 删除数据目录,还原后,也要执行chown -R mysql:mysql /data/mysql

#还原
xtrabackup --copy-back  \
--target-dir=/tmp/xbackup/  \
--defautls-file=/usr/local/mysql/my.cnf  \
--socket=/tmp/mysql.sock \
--user=root --password=123456 \
--datadir=/data/mysql

chown -R mysql:mysql /data/mysql #恢复目录权限
/etc/init.d/mysqld start

#恢复主从
cat /tmp/xbackup/xtrabackup_info |grep pos 查看pos点
binlog_pos = filename 'mysql-bin.000194', position '67162256'


> change master to master_host="192.168.1.222",  \
 master_user="tongbu", \
 master_password="123456", \
 master_log_file="mysql-bin.000194", \
 master_log_pos=67162256;

四、主从

1、主:

>grant replication slave on *.* to "tongbu"@"192.168.1.%" identified by "123456";
>FLUSH PRIVILEGES;

2、从

mysql> change master to master_host="192.168.0.60",  \
    -> master_user="tongbu", \
    -> master_password="123456", \
    -> master_log_file="mysql-bin.000095", \
    -> master_log_pos=120;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.0.60
                  Master_User: tongbu
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000095
          Read_Master_Log_Pos: 401
               Relay_Log_File: e072470c9dd0-relay-bin.000002
                Relay_Log_Pos: 560
        Relay_Master_Log_File: mysql-bin.000095
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 401
              Relay_Log_Space: 736
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 50
                  Master_UUID: cb04ea2f-ea66-11e9-9b59-4ccc6ad72153
             Master_Info_File: /data/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
1 row in set (0.00 sec)

-----------------------------end

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在xbackup备份过程中,我们可以使用innobackupex命令进行备份和恢复。以下是一些使用innobackupex命令的示例: 1. 进行全备份: 使用以下命令进行全备份: [root@db01 backup]# innobackupex --user=root --password=123 /data/backup 这将生成一个包含完整备份的目录。 2. 应用日志: 在备份恢复之前,通常需要应用日志。使用以下命令应用日志: [root@db01 ~]# innobackupex --apply-log /backup/full 这将应用事务日志到备份中,以确保数据的一致性。 3. 自定义备份路径名: 如果您想自定义备份路径名,可以使用以下命令: [root@db01 backup]# innobackupex --user=root --password=123 --no-timestamp /data/backup/full 这将创建一个没有时间戳的自定义备份路径。 请注意,这只是xbackup备份使用的一些示例命令,具体的备份和恢复过程可能会因环境和需求而有所不同。&lt;span class=&quot;em&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;em&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;em&quot;&gt;3&lt;/span&gt; #### 引用[.reference_title] - *1* *2* *3* [MySQL-第七章-xtrabackup(XBK)工具使用](https://blog.csdn.net/zfw_666666/article/details/124859165)[target=&quot;_blank&quot; data-report-click={&quot;spm&quot;:&quot;1018.2226.3001.9630&quot;,&quot;extra&quot;:{&quot;utm_source&quot;:&quot;vip_chatgpt_common_search_pc_result&quot;,&quot;utm_medium&quot;:&quot;distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1&quot;}}] [.reference_item style=&quot;max-width: 100%&quot;] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值