您的位置:首页 > 数据库 > MariaDB

Mariadb数据库实现主从复制

2020-07-15 19:09 1306 查看

1.实现数据库高可用

1.1项目部署之后的弊端

1.当数据库宕机之后,可能导致数据丢失,必须通过某些策略,保证数据的有效性
2.如果后端服务器宕机,则通过某些技术手段可以实现高可用(实现自动故障迁移)

1.2数据库数据同步

1.2.1数据库数据同步流程图

1.2.2数据库热备份原理图

1)冷备份说明:定期将数据库内容进行转存储,弊端:可能丢失数据,公司中也会采用冷备份的方式以防万一.

2)数据库热备份原理:
特点: 可以保证数据的实时备份

工作原理说明:
1.数据库主库将更新的数据信息写入到二进制日志文件中
2.数据库从库通过IO线程去主库中获取二进制文件修改内容,之后写入到中继日志中
3.数据库从库中的SQL线程读取中继日志中的信息,实现数据的同步
并且为了降低组件之间的耦合性,采用异步的方式处理

1.3准备第二台Linux操作系统

1.3.1 复制虚拟机文件


运行虚拟机,并且修改名称

1.3.2 修改虚拟机ip地址

规定:主机ip地址 192.168.66.12 从机 192.168.66.13
1).进入修改ip地址目录

cd /etc/sysconfig/network-scripts/


2).修改配置文件信息

vim ifcfg-ens33


3).重启网卡

service  network restart

1.4在slave中安装数据库

1.4.1 检查Linux系统网络是否畅通


ctrl+c 结束任务

1.4.2 利用yum下载mariadb-server数据库

命令:

yum install mariadb-server

1.4.3 操作数据库命令

1.启动数据库命令 systemctl start mariadb
2.停止数据库命令 systemctl stop mariadb
3.重启数据库命令 systemctl restart mariadb

1.4.4配置数据库

配置之前记得开启数据库
命令:

mysql_secure_installation

1)提示信息说明

2).设定密码

1.4.5 数据库登录

1.4.6 查询数据库权限

1).查看数据库

2) 切换数据库

1.4.7 设置数据库权限

说明:一般数据库中的权限在user表中进行定义

修改用户权限列表

修改之后的结果

作用:以后任意的ip地址可以访问数据库,但是要求用户名和密码正确
刷新数据库权限

flush privileges;

1.5 关于Linux防火墙说明

1.5.1 防火墙的工作原理

说明: 一帮防火墙只拦截远程请求本服务器的请求

1.5.2 防火墙的配置文件

改配置控制了防火墙i后的操作状态信息
1)配置以后不开启防火墙

systemctl  disable  firewalld.service

2)配置以后开启防火墙

systemctl  enable  firewalld.service

1.5.3 防火墙开关配置

1)检查防火墙工作状态

firewall-cmd   --state

2)关闭防火墙
该操作只能控制现在,当linux系统重启时,该操作失效

systemctl   stop   firewalld.service
systemctl  start   firewalld.service

1.5.4 指定端口号开放

firewall-cmd --zone=public --add-port=3306/tcp --permanent

命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

1.6 利用sqlYo工具连接从库

1.6.1实现数据库导入导出

说明 在实现数据库主从之前,最好让主库和从库的数据一致

1.7 数据库主从配置

1.7.1 开启数据库二进制文件

说明默认条件下 数据库二进制文件是关闭的,如果需要开启,则必须手动配置,之后重启数据库,
修改配置文件:

vim /etc/my.cnf


2)修改之后,重启数据库

1.7.2 从库开启二进制文件

说明 修改从库之后,重启数据库

执行重启数据库指令

1.7.3 查询主库状态

说明 在数据库中执行如下命令
命令:

show master status;

1.7.4 中从数据库挂载

说明 如果需要实现数据库的主从同步,应该从库向主库进行挂载

/*13是从机    实现主从的挂载 host主机ip/port/user/password/二进制文件/位置*/
CHANGE MASTER TO MASTER_HOST="192.168.66.12",
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=245;
/*开启主从服务*/
START SLAVE;

/*检查主从同步状态*/
SHOW	SLAVE STATUS;


主从状态说明

1.7.5挂载报错的说明

1.先查询日志信息
2.修改数据库配置之后重启
3.停止主从服务 STOP SLAVE;
4.重新挂载数据库

/*13是从机    实现主从的挂载 host主机ip/port/user/password/二进制文件/位置*/
CHANGE MASTER TO MASTER_HOST="192.168.66.12",
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=245;
/*开启主从服务*/
START SLAVE;

/*检查主从同步状态*/
SHOW	SLAVE STATUS;

1.7.6 测试主从同步

说明 操作数据库主库,检查数据库从库是否正确

2.数据库读写分离-负载均衡机制

2.1 读写分离说明

当数据库执行操作时,应该操作主库 ;如果用户进行操作时应该读从库.
实现该机制需要准备一个代理数据库服务器

2.2Mycat介绍

2.2.1 Mycat安装

1)上传Mycat安装包

2)解压Mycat安装包

tar -xvf Mycat-server-1.7.0-DEV-20170416134921-linux.tar.gz

2.2.2server.xml配置文件说明

说明:server.xml的配置文件主要负责客户端与Mycat数据库代理之间的配置,包括用户名/密码/端口号等信息.
1注意事项: 数据库代理的端口号 8066端口
2.配置用户信息

<!--用户标签-->
<user name="root">
<property name="password">root</property>
<!--与schema.xml中的配置相同 注意数据库的大小写-->
<property name="schemas">jtdb</property>
</user>

<user name="user">
<property name="password">user</property>
<property name="schemas">jtdb</property>
<property name="readOnly">true</property>
</user>

2.2.3配置schema.xml配制文件

说明:写操作主要操作的是12数据库. 读操作 可以读取12/13. 注意用户名和密码.

<writeHost host="hostM1" url="192.168.66.12:3306" user="root" password="root">
<!--读数据库1-->
<readHost host="hostS1" url="192.168.66.13:3306" user="root" password="root" />
<!--读数据库2-->
<readHost host="hostS2" url="192.168.66.12:3306" user="root" password="root" />

</writeHost>

2.2.4 上传配置文件

说明:将mycat中的conf文件目录下的旧文件删除.之后上传新的文件信息.
1)删除原有配置文件信息

rm -f schema.xml server.xml

2)上传新的配置文件

2.2.5启动mycat服务器

启动mycat

./mycat start


启动效果

2.2.6 修改数据源配置

spring:
datasource:
#引入druid数据源
#type: com.alibaba.druid.pool.DruidDataSource
#driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.66.12:8066/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
username: root
password: root

最后启动tomcat进行测试

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: