mysql 多备份_mysql 多实例备份

近几天接到一个任务,要把线上的几台数据库做个主从备份~

个人是个数据库 小白,平时也就是最多条件搜索一下这样,接到这个任务有点错愕,但是任务之所以是任务,因为,任务是必须要完成的!正好,也打算趁机学习一把数据库~

首先说一下面临的几个问题,再慢慢对应找解决方法:

1、一个主机上怎么管理多个mysql实例?

资源有限,只能用一台主机备份多个机器上的mysql,所以怎么才能在一台机器上运行多个mysql呢,肯定是要包括不同的端口,搜索一下mysql multi 可以配置管理多实例,

具体配置,还要等实验后再过来记录~

实验记录: a、修改/etc/my.cnf  分别配置[mysql_multi]  [mysqldN] ###[mysqldN]的配置和普通的mysql配置一样,但是只需要server-id 与主机的server-id不同

b、初始化数据库   /usr/bin/mysql_install_db --datadir=/data/mysql/3319/data # datadir 在my.cnf里配置~每初始化一次,密码会保存

在/root/.mysql_secret文件里.

c、启动mysql_multi  /usr/bin/mysqld_multi start 1-n;#GNR 是指mysqlN 中的N,N要为正整数~

d、登陆mysql 实例,mysql -uroot -p -S /var/lib/mysql/mysql3319.sock    ###sock文件路径在配置文件里配置

注意:最好配置multi.log   方面观察日志

2、如何配置主从框架

这个是工作的核心,怎么配置才是实现主从~有待实验  首先贴出我的版本  5.7.4-m14

实验记录:

a、主机上必需配置三个配置,server-id =1

log-bin=PATH/log

binlog_format=mixed

b、主机上创建备份权限用户 grant replication slave,replication client on *.* to repl@'从库IP' identified by 'PASWORD'####安全起见,最好只准许从库登陆

flush privileges;

c、从库上的配置: server_id =2###只要不和主server-id的值一致即可

socket=/var/lib/mysql/mysql3319.sock  ###为了方便区分,加上端口名

datadir=/data/mysql/3319/data  ##路径自定,为了区分

注: 因为数据量较大,dump数据比较浪费时间,但是锁表影响业务,所以我是通过物理拷贝的数据,直接到datadir下面,除了server-id 和datadir不和主机一样,其他全部一样,也必须一样,否则,就会出现从库的IO线程启动失败~

3、如何进行首次同步

首先要明确的是,线上的业务是不能停的,这就意味着主数据库是不能停止的,那如何进行首次备份呢?这个是不可忽略的问题~待寻答案

实验记录:  我的主机在之前必须的配置都已经加上,所以没必要重启数据库了,这点让我觉得非常幸运,不用等到半夜重启服务啦!!

a、 上只读锁 ,:flush tables with read lock ;

b、记下偏移量: show master status;

c、 拷贝数据: 这里有两种选择,

(1) mysqldump  优缺点,配置文件不用完全一致,但是操作时间较长,需要初始化数据库

mysqldump -uroot -p  --opt -R --all-databases|gzip -9 >/tmp/XX.sql.gz ##压缩一下,等会传输的时候节省时间,当然到从库那边还要先gunzip.

mysql -uroot -p

(2) 物理备份,操作时间短,除个别配置,其他配置要保持完全一致, 可以不用初始化数据库

主库datadir路径下的文件——》 从库datadir路径下即可

d 、解锁 unlock tables;

e、启动从库  mysql -u root -p -S /var/lib/mysql/mysql3319.sock  查看数据库是否全部导入

f、 配置主库:  change master to master_host='主库ip',####配置主库的方式跟mysql 版本相关,较老版本可直接在配置文件中

->master_user='repl',  ####配置主库

->master_password='PASSWORD',

->master_log_file='mysql-bin.XXXX'

->master_log_pos=XXXXXX;

g、启动从库服务 start slave  启动方式也和数据库版本相关,较老版本可能用slave start 启动

h、查看主从状态   show slave status\G;    这两个进行启动,说明主从配置成功了

2c544aaf1e05ce13a0ef93ac9908c699.png

4、高可用方案

备机运行多实例,那么就不能传统的在机器层面做高可用,要从实例层面做高可用~具体怎么操作,待寻答案

5、如何保证多实例的性能

据了解多实例的性能并不会随cpu的个数增加而增加,存在瓶颈,那我需要做的就是需要把实例绑定在不同的cpu上来提高性能。

初接触mysql主从,若有错误之处,欢迎多多指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值