MySQL主从切换方法

MYSQL主备服务器切割方案
由于公司业务发展需求,目前主数据库服务器的配置及带宽满足不了需求。但从服务器配置比主的要高,
且带宽已经升级到20M 独享。故准备切换主从,具体操作步骤如下:
在这里插入图片描述
1、在master上面停止业务

a、在主从上面通过命令show processlist 查看主从同步是否已经结束;
b、如果结束,停止mysql /etc/init.d/mysql stop;
c、备份主从mysql数据库目录,tar zxvf mysql.tar.gz mysql此过程约1.5小时;
d、启动 mysql /etc/init.d/mysql start。

2、登陆新master拷贝data里面mysql数据库

scp appadmin@222.73.44.102:/raid/mysql/data/mysql.tar.gz ./	 

3、在新master的服务器上执行:

stop slave;
reset master; reset master清空了master的binlog以后创建了新的binlog,重置成主数据库。

备注:删除新的master服务器数据库目录中的master.info和relay-log.info文件,否则下次重启时还会按照从服务器来启动。

4、拷贝权限,在新master 上面解压mysql.tar.gz到mysql目录,大概2 分钟

5、拷贝原master server上面的mysql配置文件my.cnf到新master上面

a、修改mysql的配置文件,只需要改内存配置20G改成26G

vim /etc/mysql/my.cnf
mysqld
server-id=2
log-bin=mysql-bin
replicate-do-db=db
replicate-do-db=db2
。。。。。。。。。。
innodb_buffer_pool_size = 26G
log-error=/var/log/mysql/mysql_error.log|

b、启动mysql

/etc/init.d/mysql restart	 

c、登陆新master server 中的mysql库赋予从库权限帐号,允许用户在主库上读取日志

GRANT REPLICATION SLAVE ON *.* TO user@222.73.44.102 IDENTIFIED BY '****';|

d、检查创建是否成功

select user,host from mysql.user;	 

显示结果略去。
e、显示master库信息,记录File和Position,新slave库设置将会用到

show master status; +------------------+----------+--------------+------------------+

File	Position	Binlog_Do_DB	Binlog_Ignore_DB	 
+------------------+----------+--------------+------------------+

mysql-bin.000006	106	 	 	 
+------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)|

6、修改新的slave 库(copy原slave 的my.cnf配置文件)

a、修改mysql的配置文件,只需要修改内存配置即可

vim /etc/mysql/my.cnf
mysqld
server-id=3
master-host=master ip
master-user=user
master-port=3306
master-connect-retry=60
replicate-do-db=db

innodb_buffer_pool_size = 20G
log-error=/var/log/mysql/mysql_error.log

b、启动mysql

/etc/init.d/mysql restart	 

c、验证连接新master库

mysql -h master ip -u user –ppasswd	 

d、在新的slave库上面设置同步,设置连接新master master_log_file为主库的file,master_log_pos为主库的Position
关闭从库服务

slave stop;
mysql> change master to
> master_host='master ip',
> master_user='user',
> master_password='passwd',
> master_port=3306,
> master_log_file='mysql-bin.000006',
> master_log_pos=106;\

启动从库服务

slave start;	 

7、在新slave上面进行输入show slave status\G;查看状态

Slave_IO_Running: Yes(网络正常);
Slave_SQL_Running: Yes(表结构正常);

8、在新slave 上,如果show slave status\G;查看状态不正常如下:

Slave_IO_Running: Yes(NO)(网络正());
Slave_SQL_Running NO( Yes)(表结构不(正)常)

进一步验证,在主的上面插入数据后,再从上面看看是否过来,如果过来说明此次切割成功。

9、在新master MySQL上可输入MySQL> show full processlist;
观察其状态,正确结果也应该如截图所示

mysql> show full processlist;
+----+-------------+---------------------+------+-------------+-------+--------- --------------------------------------------------------------+----------------- ------+

Id	User	Host	db	Command	Time	State	Info	 
+----+-------------+---------------------+------+-------------+-------+--------- --------------------------------------------------------------+----------------- ------+

1	system user	 	NULL	Connect	22332	Has read all relay log; waiting for the slave I/O thread to update it	NULL	 
2	system user	 	NULL	Connect	22332	Connecti ng to master	NULL	 
40	root	localhost	NULL	Query	0	NULL	show full proces slist	 
44	laoyw	192.168.1.112:58422	NULL	Binlog Dump	86	Has sent all binlog to slave; waiting for binlog to be updated	NULL	 
+----+-------------+---------------------+------+-------------+-------+--------- --------------------------------------------------------------+----------------- ------+ 4 rows in set (0.00 sec)

至此整个主从切换过程完成。此过程大约需要2到3小时,主要是备份数据库;

11、问题排查方法 如果出现问题。首先查看mysql日志,依据经验或者在google搜索解决。如不能在1小时内解决问题,将直接还原mysql备份的配置文件及数据文件,
大概需要2小时包括解压和测试。

12、如以上切换顺利完成,修改改java程序配置文件;

a、 修改所有爬虫的数据库配置文件fspider.cfg和sespider.cfg对应的数据库配置;
b、 修改新master 和爬虫server上面/etc/hosts文件里面的master对应的解析配置。

猜你喜欢

转载自blog.csdn.net/qq_40907977/article/details/112302946
今日推荐