mysql数据库实时集群和备份

前言:最近由于业务需要,需要搭建高可用和支持实时备份和恢复,本来想直接采用公司的数据库服务。无奈公司没有资源,所以就搞了几台Linux主机自己搭建啦。(里面涉及的文件、配置、脚本代码我都贴到附件了)

 

过程:

一 购买云主机

 

二 搭建Mysql数据库,首先你需要需要删除干净本机的原先数据库 

---> https://jingyan.baidu.com/article/4b52d702db8a82fc5c774b92.html,当然由于有些版本自带的有mariadb(本质是mysql,只是名字不一样而已),其次也要注意下是否有mariadb,若有则卸载mariadb(其实本质也是mysql),有的话也要删除

接下来就是下载安装,这里也不详细介绍。主要是要记住,推荐用rpm方式安装啊,方便快捷(公司linux服务器访问不了外网,其他方式安装会有很多坑),我这里是安装的5.5.62版本,去mysql官网就可以下了。

-->https://blog.csdn.net/qq_24029989/article/details/79101955 ( 记得先安装devel 源、其次安装 server源、 client源)

PS:千万别百度或者csdn随便找一个文档跟着安装,这在我司的linux环境不适用 哈哈~,记住rpm不管在哪都是傻瓜式安装(这里想到了docker也是傻瓜式容器安装任何东西)

注意:

1 需要初始化好密码

2 开启防火墙3306端口

3 设置开机自动启动mysql

 

最基本的命令:

初始化密码:

/usr/bin/mysqladmin -u root password 'xxxx' 

启动关闭数据库:

 

service mysql start;

service mysql stop;

service mysql restart;

 

开机自动启动:

chkconfig mysql on
chkconfig --list|grep mysql

开启防火墙端口(一般是打开了的)

-->  https://www.cnblogs.com/uoar/p/8056174.html

 

数据库集群

这里开始讲主从库集群:(不想看可忽略,主从库备份底层原理主要是通过同步二进制日志的操作,相当于主数据库的所有操作都写到一个log-bin二进制日志,需要开启这个二进制日志功能。然后从库开启relay-log同步二进制日志,实时**log-bin的变化,从而保证两边的日志文件一致,最终达到数据同步)

到现在我就默认大家安装好mysql了,我已经提前在两台机子上安装好了mysql,分别是

10.243.3.114 主    10.247.2.201 从

现在讲主从配置

我的配置全部放在 /etc/my.cnf文件里

先把主的核心配置贴上来

server-id = 1   #千万不能重复 这里设置1 
innodb_file_per_table=1 
log-bin=mysql-bin # 开启二进制日志
log-bin-index=mysql-bin.index # 开启二进制index
binlog_format=mixed #二进制备份方式

 

vi/vim修改完以后保存,然后启动数据库 service mysql start;

登录数据库后,查看命令 ,看看是否开启二进制日志成功

同理 我们配置从库(额外的核心配置,必须打开relay-log)

relay-log=relay-log  
relay-log-index=relay-log.index
binlog_format=mixed
server-id = 2
innodb_file_per_table=1

 

其次修改完配置文件还是启动数据库 service mysql start

 

接下来开始连接两个数据库的关系,主要分为以下四步

1 主库上需要开通一个用户,这个用户专门给从库登录上来,做权限认证

2 查看主机的二进制日志文件和pos位置

3 从库要配置主库的路径地址,用户,二进制文件,二进制文件的位置,然后连接

4 启动主从

 

1 回到主机linux 登录数据库 创建主从账号 grant replication slave on *.* to 'dbmysql'@'%' identified by '123456';

2 在主机上show master status;
可以看到目前是000004和pos107

 

3 回到从库登录数据库 连接认证

change master to master_host='10.243.3.114',master_user='dbmysql',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=107;

4 启动start slave; 

SHOW SLAVE STATUS\G
这里一定要注意两边的端口是否通的,以及参数一定要注意不能错误

 

备份与恢复

全量定时备份 (使用crontab定时器,去写一个备份数据库的脚本,数据库有备份的命令,要注意,定时备份会锁库,造成数据库暂时不可用,需要设置成异步,需要自己去优化,我这里主要使用innodb行级锁)

具体可以参考 --> https://www.cnblogs.com/eternal1025/p/8554225.html ,仅仅只是参考哈,最后配置文件最好还是用我的改,我优化了一点点。(这里需要注意的是,你的文件一定要有权限,创建文件一定要有 chmod -R 777的习惯,否则没有读写权限,怎么定时操作文件哈哈)

 

实时增量备份(网上多去参考log-bin二进制备份)

具体可以参考 --> https://blog.csdn.net/nanyanglu/article/details/52671044

 

 

最后,同时为了账号安全,数据库应该分为三个等级给不同人员使用

1 root 最高权限

2 开发者权限用户 (一般没有drop表权限)

3 navicat之类的只有读权限

 

 

到这写的只是大概的思路,具体可能有非常多的细节,和命令需要注意一下的。不懂得地方去相关google和百度找一下。很多很容易采坑的地方我也说出来了~ 无论是操作方面还是原理方面,不懂得都可以过来找我交流~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值