MySQL 多实例

本文阐述了在服务器上部署多个MySQL实例的原因及步骤,包括配置目录、参数文件、初始化数据库等,同时提供了性能优化建议,如内存分配、连接限制等。

为什么要使用多实例

  1. 物理机配置NB,但单个实例无法充分使用cpu核(mysql性能问题)
  2. 资源隔离,减少相互影响
  3. 分担连接数:mysql随着连接数增多,性能会出现严重的下降。此时os cpu消耗在sys上。系统频繁的在切换资源
  4. 更充分的利用资源
  5. 不同的业务错峰允许。

总结:一个实例中有多个库,容易造成连接数超多。
可分拆为一个服务器上运行多实例

配置多实例

配置MySQL 目录

找一个空间充足的分区,作为MySQL数据库存放数据的位置

[root@dd01 ~]# mkdir -p /data/mysql3307
[root@dd01 ~]# cd /data/mysql3307
[root@dd01 ~]# mkdir run tmp logs binlogs data
[root@dd01 ~]# chown -R mysql:mysql /data

参数文件

既然是多实例,说明我们服务器上已经有一个mysql实例在运行了。
那么,我们直接拷贝参数文件即可

cp /etc/my.cnf /data/mysql3307/my3307.cnf

并将参数文件中,所有3306 的字样改为3307。

初始化数据库

去读指定的参数文件,非默认位置的参数文件

/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql3307/my3307.cnf --initialize

登陆数据库

mysql -S /tmp/mysql3307.sock -p

修改提示符

我们现在一个服务器上有两个mysql 实例了。那么登陆到数据库之后,很难区分现在连接的是哪个,所以我们可以修改提示符:

vi /etc/my.cnf
prompt="\\u@\\h:\\p [\\d]> "

性能优化

内存分配

一个服务器上的所有mysql 实例参数中的innodb_buffer_pool_size总和,不超过操作系统的80%。

sum(innodb_buffer_pool_size) <= os_memory * 80%

连接限制

既然我们采用多实例的架构,主要还是需要可以承受更多conn,那么处理DB上的调整,我们也要关注操作系统上的相关限制:

  1. open_files 需要调整为 6535
  2. max_user_processes 调整为 10000以上

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值