CentOS7配置Mysql热备份

本文介绍如何通过一台主服务器和一台备份服务器实现MySQL热备份。详细步骤包括安装MySQL、配置主服务器、创建备份用户、配置备份服务器及解决常见问题。

Mysql 的安装:

本人习惯讲安装包放在 /usr/local/src/

①.[root@localhost ~]#cd /usr/local/src/

②.[root@localhostsrc]#wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

③.[root@localhostsrc]#rpm-ivh mysql57-community-release-el7-8.noarch.rpm

④.[root@localhost src]#  yum -y install mysql-server

默认配置文件路径: 
配置文件:/etc/my.cnf 
日志文件:/var/log/var/log/mysqld.log 
服务启动脚本:/usr/lib/systemd/system/mysqld.service 
socket文件:/var/run/mysqld/mysqld.pid

注意:安装完mysql服务器登录密码是随机的,需要重置密码。

查看临时密码随机:

  [root@localhost ~]# grep "password" /var/log/mysqld.log



现在就可以用这个密码进行登录了:mysql -uroot -p

Mysql安装结束!


开始今天的主菜:一台主服务器-一台备份服务器实现热备份:

1. 首先保证两台服务器mysql版本一致,同时防火墙都对3306开放

当前环境:

A服务器 ip:192.168.200.11   准备作为主服务器master

B服务器 ip: 192.168.200.20   用于备份的服务器slave


一.在A服务器上操作
1.创建专门用于备份的 用户登录mysql之后执行
mysql>grant replication slave on *.* to 'cp_user'@'192.168.200.20' identified by 'master2018!';

注意:这里的cp_user 和 master2018! 是一会儿备份服务器配置是需要用到的master服务器的用户名和密码,需要记下来

2.修改 MySQL配置文件: /etc/my.cnf

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

 

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

 

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

 

log-bin=mysql-bin

binlog_format=mixed

server-id=1 //服务器唯一性标识符,每台服务器配置必须保存不一样

 

read-only=0  

binlog-do-db=hello  //需要备份的那个数据库名叫 “hello”

auto-increment-increment=2  //这里设置用来台服务器来做备份,按个人情况定

auto-increment-offset=1 //表示这台服务器序号,从1开始,不超auto-increment-increment

//配置完该数据库中插入第一个数据id=1,第二条数据id=3而不是2,避免的数据库集群中id冲突

重新启动mysql服务

3.执行 mysql>show master status\G(看到下面信息)

mysql-bin.000002和154这两个值需要记得后面有用(刚安装完的数据库可能是mysql-bin.000001

查看master配置:


注意:到这master已经配置完成了!加油,已经成功一半了

下面配置备份服务:

二.B服务器操作:(安装过程都一样这里不重复)

1.修改MySQL /etc/my.cnf 文件:


看最后六行配置。

配置完保存修改,重新启动mysql服务!

2.登录B服务器的mysql服务器:执行下面命令(配置同步的主服务器)

CHANGE MASTER TO

       MASTER_HOST=192.168.200.11

       MASTER_USER='cp_user', 

       MASTER_PASSWORD='master2018!', 

       MASTER_LOG_FILE='mysql-bin.000002', 

       MASTER_LOG_POS=154



到这里就算是完成99%了,重启B服务器的MySQL服务:service mysql restart

查看slave上备份线程的工作情况:


Slave_IO_Running:Yes

Slave_SQL_Running:Yes

两个当中如果有一个不是yes都是有问题的,本人第一次运行时遇到了第一个是no,第二个是yes,经过检测是上一步骤中MASTER_LOG_POS=154 这个值没有和master上面获的的Position的值一致,重新执行B服务器的操作2,参数输入正确就行。

IP不正确或者防火墙未对3306开发都可能导致错误。 


My.cnf文件中的常见参数讲解

server-id 必须保证每个服务器不一样。 这可能和循环同步有关。 防止进入死循环。

replicate-do-db 可以指定需要复制的数据库

replicate-ignore-db 复制时需要排除的数据库, 我使用了,这个。 除开系统的几个数据库之外,所有的数据库都复制。

relay_log 中继日志的名字。 前面说到了, 复制线程需要先把远程的变化拷贝到这个中继日志中, 在执行。

log-slave-updates 意思是,中继日志执行之后,这些变化是否需要计入自己的binarylog 当你的B服务器需要作为另外一个服务器的主服务器的时候需要打开。  就是双主互相备份,或者多主循环备份。如果只是一个master和一个备份服务器这个参数可以不要。





CentOS Stream 9 上备份 MySQL 数据库可以通过多种方式实现,其中常用的方法包括使用 `mysqldump` 工具备份、使用 `cp` 或 `rsync` 进行物理文件备份,以及使用专业的备份工具如 `XtraBackup` 进行在线备份。以下是几种常见备份方法的说明: ### 使用 `mysqldump` 进行逻辑备份 `mysqldump` 是 MySQL 自带的逻辑备份工具,适用于小型数据库或需要导出为 SQL 文件的场景。以下是一个基本的备份命令示例: ```bash mysqldump -u root -p --all-databases > /backup/mysql_backup.sql ``` 此命令将备份所有数据库,并提示输入 MySQL root 用户的密码。如果需要备份特定数据库或表,可以修改命令中的数据库名或添加表名参数。 ### 使用 `XtraBackup` 进行物理备份 对于生产环境中的大型数据库,推荐使用 Percona XtraBackup 工具进行物理备份,该工具支持在线备份,不会锁定数据库表。以下是一个完整的全量备份命令示例: ```bash innobackupex --defaults-file=/etc/my.cnf --user=root --password=your_password --socket=/var/lib/mysql/mysql.sock --no-lock /backup/ ``` 此命令将执行一个不锁定数据库的全量备份,并将备份文件存储在 `/backup/` 目录中。如果需要执行增量备份,可以使用以下命令: ```bash innobackupex --defaults-file=/etc/my.cnf --user=root --password=your_password --socket=/var/lib/mysql/mysql.sock --incremental --incremental-basedir=/backup/full_backup_dir /backup/incremental_backup_dir ``` 在此命令中,`--incremental-basedir` 指定上一次全量备份的目录,`/backup/incremental_backup_dir` 是增量备份的目标目录。 ### 使用 `rsync` 进行文件级备份 如果数据库处于只读模式或可以短暂停止服务,可以使用 `rsync` 进行文件级备份。此方法适用于冷备份,确保数据一致性。以下是一个基本的备份命令示例: ```bash rsync -av /var/lib/mysql/ /backup/mysql_data/ ``` 此命令将 MySQL 的数据目录 `/var/lib/mysql/` 复制到 `/backup/mysql_data/` 目录中。 ### 备份注意事项 - **权限管理**:确保备份用户具有足够的权限访问 MySQL 数据库和文件系统。 - **数据一致性**:在执行物理备份时,建议使用 `--no-lock` 参数避免锁定数据库表。 - **备份验证**:定期验证备份文件的完整性和可恢复性,确保在需要时能够成功恢复数据。 - **加密与压缩**:可以在备份命令中添加加密和压缩选项以提高安全性并减少存储空间占用。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值