MariaDB用法——主从复制高可用

主从

在主节点实现

vim /etc/my.cnf

server_id=1

log_bin

innodb_file_per_table

 

重启服务后生成新的二进制日志,旧的可以删掉

systemctl restart mariadb

 

添加从服务器同步用户

mysql>grant replication slave on *.* to 用户名@'IP或网段' identified by '密码';

 

从节点

vim /etc/my.cnf

server_id=2

 

systemctl restart mariadb

添加主服务器

可以查看一下帮助

help change master to

change master to master_host='主服务器IP',master_user='在主服务器创建的用户名',master_p

assword='密码',master_port=端口,master_log_file='从哪个二进制文件同步',master_log_pos=具体位置

 

看下状态

 

开启复制

start slave

 

创建数据库,查看是否能同步

主服务器创建数据库

 

从服务器查看

主从复制

已有旧主,创建新从

创建从服务器该配置文件(参考上一实验,只改配置文件)

备份主服务器

mysqldump -A -F --single-transaction --master-data=1 > /backup/all.sql

scp /backup/all.sql 从节点:/

 

更改备份文件

导入备份文件

现在数据库还是不同步的,需要开始同步一下

start slave;

从服务器最好启用read_only=ON禁止写操作,防止误操作。

级联复制

准备四台数据库服务器

主服务器改配置创建账号

级联服务器改配置文件,必须添加三项

添加主服务器并同步数据

查看状态

reset slave;

reset slave all;从服务器清除所有二进制日志记录,重新复制

创建主从用户

从服务器

连接级联服务器

查看连接状态

操作失误时会导致如下报错

表数据已存在

解决方法删除库重新同步

日志异常

重新导入日志文件change master to master_log_file='mariadb-bin.000001',master_log_pos=245;

账号故障

排查账号详细故障并解决(密码错误、权限错误、用户名错误等)

详细故障可查询报错编号perror

半同步复制

主服务器

启用插件

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

开启半同步功能

从服务器

相同操作

INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

重新同步从服务器开启半同步

 

数据库加密

CA服务器

生成私钥key

openssl genrsa 2048 > cakey.pem

自签名文件

openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3650

生成主从服务器的私钥文件和请求文件两个文件(全部在CA服务器上做)

主服务器

openssl req -newkey rsa:2048 -days 365 -nodes -keyout master.key > master.csr

颁发证书

openssl x509 -req -in master.csr -CA cacert.pem -CAkey cakey.pem -set_serial 01 >master.crt

从服务器

复制到主从服务器并删除不需要的文件

主服务器

从服务器

授权mysql

主服务器

加密成功

创建从登陆的加密账号

grant replication slave on *.* to tom@'192.168.30.%' identified by '111111' require ssl;

从服务器(可以使用同上操作)

测试连接

从服务器做加密

已启用

授权加密

CHANGE MASTER TO

MASTER_HOST='192.168.30.112',

MASTER_USER='tom',

MASTER_PASSWORD='111111',

MASTER_LOG_FILE='mariadb-bin.000002',

MASTER_LOG_POS=407,

MASTER_SSL=1,

MASTER_SSL_CA = '/etc/my.cnf.d/ssl/cacert.pem',

MASTER_SSL_CERT = '/etc/my.cnf.d/ssl/slave.crt',

MASTER_SSL_KEY = '/etc/my.cnf.d/ssl/slave.key';

开始同步

高可用

实战:实现主从高可用MHA

 

环境:四台主机

manager,master,slave1,slave2

1 准备

selinux ,iptables ,time

用manager主机做时间服务器

yum -y install ntp

systemctl start ntpd

systemctl enable ntpd

其他服务器用ntpdate IP(manager主机的IP)命令同步

搭建主从服务器,步骤同上

主配置文件

两个从配置文件server_id编号不同

添加账号

start slave

四个主机实现ssh key验证同上

创建一个授权账号

安装MHA

manager主机两个包都安装,其他只安装node

在manager节点

下载软件包

https://code.google.com/archive/p/mysql-master-ha/

yum install mha4mysql-manager-0.56-0.el6.noarch.rpm mha4mysql-node-0.56-0.el6.noarch.rpm

创建MHA的配置文件

[server default]

user=mhauser

password=111111

manager_workdir=/data/mastermha/app1/

manager_log=/data/mastermha/app1/manager.log

remote_workdir=/data/mastermha/app1/

ssh_user=root

repl_user=repluser

repl_password=111111

ping_interval=1

[server1]

hostname=192.168.30.112

candidate_master=1

[server2]

hostname=192.168.30.113

candidate_master=1

[server3]

hostname=192.168.30.114

 

6 在manager节点上

masterha_check_ssh --conf=/etc/mastermha/app1.cnf 检测ssh

masterha_check_repl --conf=/etc/mastermha/app1.cnf 检测复制情况

masterha_manager --conf=/etc/mastermha/app1.cnf 启动mha(在服务器的tty上执行,不要远程执行)

验证

复制功能

主:

从:

MHA测试

主服务器宕机

切换完成

切换完成

实验:实现Gelera cluster

 

三台主机(太简单了,不想截图)

1 yum安装

[mariadb]

name = MariaDB

baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-5.5.60/yum/centos7-amd64/

gpgcheck=0

安装

yum -y install MariaDB-Galera-server

更改配置文件,三台相同

启动第一个节点

启动其他节点

查看状态

验证

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值