数据库主从同步部署

环境规划

主机名内网ip外网ipmysql版本
db01172.16.1.6110.0.0.61mariadb-5.5.60
db02172.16.1.7110.0.0.71mariadb-5.5.60

在这里db01是主,db02是备

部署数据库主从同步

两台服务器全都操作
下载mysql服务
yum install -y mariadb-server
启动并加入开机自启
systemctl start mariadb
systemctl enable mariadb

1.在db01中/etc/my.cnf中添加

 vim /etc/my.cnf
    [mysqld]
    server-id=1                          #保证与db02不同即可
    log-bin=mysql-bin        
添加完如下
9469008-56f9df0b8c5390c0.png
image.png
修改完之后重启数据库
进入数据库
[root@db01 ~]# mysql
进入数据库创建同步用户
grant replication slave on *.* to 'tongbu'@'172.16.1.%' identified by '123456';

创建一个同步用户,授权所有数据库,授权172.16.1.0/24这个网段,用户密码为123456

查看授权用户,并删除空白用户

MariaDB [(none)]> select user,host from mysql.user;
+--------+------------+
| user   | host       |
+--------+------------+
| root   | 127.0.0.1  |
| tongbu | 172.16.1.% |
| root   | ::1        |
|        | localhost  |
| root   | localhost  |
|        | db01        |
| root   | db01        |
+--------+------------+
7 rows in set (0.00 sec)

MariaDB [(none)]> drop user ''@localhost;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> drop user ''@db01;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> 

查看mariadb当前正在使用的二进制日志.

MariaDB [(none)]> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      245 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

记录file名称和position

在lb02中/etc/my.cnf中添加

    vim /etc/my.cnf
    [mysqld]
    server-id=2                          #保证与lb01不同即可
    log-bin=mysql-bin                    #可以用show variables like '%log_bin%',查看log_bin是否开启

修改完如下


9469008-e9069639ca4d42a7.png
image.png

重启数据库

systemctl restart mariadb
进入数据库,配置同步主服务器的参数
 change master to master_host='10.0.0.51', #主数据库ip
    -> master_user='tongbu',                  #备份用户名
    -> master_password='123456',              #备份用户密码
    -> master_log_file='mysql-bin.000001',    #二进制日志文件名
    -> master_log_pos=245;                    #二进制日志位置
9469008-f2180c0dc1ed3bac.png
image.png

总结一条命令如下

MariaDB [(none)]> change master to master_host='172.16.1.71',master_user='tongbu',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=245;

启动slave同步进程

start slave;

查看同步状态

show slave status\G;

如果这两行显示yes则同步成功

 Slave_IO_Running: Yes  
 Slave_SQL_Running: Yes
9469008-e4d90c75d7b8ad5c.png
image.png

如果不是yes,可以查看最下面的常见故障解析

进行测试

数据库(主)查看创建一个新的数据库,并检查

MariaDB [(none)]> create database oldboy;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| oldboy             |
| performance_schema |
| test               |
| wordpress          |
+--------------------+
6 rows in set (0.56 sec)

数据库(备)查看检查同步结果

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| oldboy             |
| performance_schema |
| test               |
| wordpress          |
| zabbixdb           |
+--------------------+
7 rows in set (0.00 sec)

这样主从同步就部署成功了,
如果说主数据库里原来已经存在数据库了。那么在做主从复制之前,先要把数据库进行备份,然后恢复到备用的数据库中,如果不这样做的话,同步的时候会出现数据库的表找不到的情况。

常见故障

故障一,配置同步参数时提示
ERROR 1198 (HY000): This operation cannot be performed with a running slave; run STOP SLAVE first

翻译的结果:此操作不能在正在运行的从属服务器上执行;先运行后停止从动件
意思是说已经在同步了,如果想配置同步参数需要先把他已经再进行的同步停止

解决

使用stop slave;停止同步 在执行 change master命令

故障二

Slave_IO_Running: Connecting

解决

下面列举几种可能的错误原因:
1.网络不通
2.账户密码错误
3.防火墙
4.mysql配置文件问题
5.连接服务器时语法
6.主服务器mysql权限

故障三

Slave_SQL_Running: No

1.程序可能在slave上进行了写操作
2.也可能是slave机器重起后,事务回滚造成的.
一般是事务回滚造成的:

解决办法:

mysql> stop slave ;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave ;        
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
购买阿里云RDS数据库主从架构,在处理大量并发访问和高负载时可以提供更可靠的服务。主库用于处理写操作,而从库则用于读取数据。 在购买前,我们需要考虑以下几个问题: 1. 数据库规格与容量:需要根据自己的业务需求选择不同的数据库规格和容量。 2. 数据库引擎:阿里云RDS支持MySQL、SQL Server、PostgreSQL、PPAS等数据库引擎,根据自己的业务需求进行选择。 3. 可用区:在不同的可用区部署主从架构可以提高服务可用性。 购买阿里云RDS数据库主从架构的步骤如下: 1. 登录阿里云官网,进入RDS控制台。 2. 创建主实例:在控制台中选择“创建实例”,选择“主从版”,选择数据库引擎、规格和容量等。创建完毕后,可以通过主实例管理界面查看主库的相关信息。 3. 创建从实例:在控制台中选择“创建实例”,选择“只读实例”,选择与主库相同的数据库引擎、规格和容量等。创建完毕后,可以通过从实例管理界面查看从库的相关信息。 4. 配置主从关系:在主实例管理界面中,选择“主备实例列表”,在页面下方点击“添加只读实例”,选择刚刚创建的从实例即可。 购买完毕后,我们需要对主从架构进行测试和监控。我们应该确保主从同步正常,避免数据同步延迟过大,以及保障读操作可以在从库正常进行。同时,也应该对RDS进行定时备份,以免发生数据丢失的风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值