一、MySQL 主从备份
前提条件:安转了 mysql,开启了二进制日志
在主服务器上授权,从服务器保存授权的信息
之后在从服务器会产生授权信息文件
开启从服务器 start slave,并查看
测试
二、MySQL 主主备份
- 以 1 为主,2 为从配置一遍主从
在主配置文件中配置一下(开启二进制日志和其他内容)
2. 在 2 上做相同的配置
- 启动服务器
1为主2为从:
在主服务器(1)上授权
在从服务器(2)上保存授权信息
2 为主 1 为从:
在主服务器(2)上授权
在从服务器(1)上保存授权信息
1 和 2 都执行 start slave (互为主从)
测试
三、MySQL 一主多从
主服务器配置
开启二进制日志,并启动 mysql
保存授权信息
#在另一台从服务器上做相同的配置(注意 id 不能相同)
测试
四、MySQL 多主一从
主服务器配置
开启二进制日志,启动服务
授权
在主服务器 2 上做相同的操作
授权
从服务器操作
对主配置文件操作
初始化数据库,生成目录 mysqla,mysqlb
设置 mysqla,mysqlb 目录及一下文件的属主为 mysql (防止出现权限问题)
启动从服务器线程
登录并保存授权信息
测试
五、MySQL 中间件——Amoeba
中间件:一种提供在不同技术、不同的软件之间共享资源的程序,更大化利用了数据库的性能,可以无限扩展(注:真实环境中并非如此)
数据库的中间件:
mysql proxy(官方版本)性能低,需要 lua 脚本
atlas 性能低,响应时间长
amoeba 陈思儒研发的
一、先搭建一个主从关系的服务器
在主、从服务器上安装 mysql mysql-server
- 开启二进制日志
-
在主服务器上授权,从服务器上保存授权信息,并开启从服务线程
-
关闭从服务器线程,为了做读写分离时,测试有明显的实验效果(实际生产环境中不能停掉。。)
二、配置读写分离
- 安装 gcc 环境(amoeba 需要源码安装)
- 拷贝第三方软件,创建单独的目录
- 先安装 jdk (amoeba 是由 java 语言编写的,所以先安装 jdk),配置 java 环境
4. 声明用 java 写出来的程序如何调用(/etc/profile)
- 安装 amoeba
配置 amoeba 这个软件
<server>…</server>区域
<dbServerList>…</dbServerList>区域
由于只提供了一个服务器模板,需要自己复制另一个填写关于读的
启动 ameba,修改一下启动脚本:/usr/local/amoeba/bin/amoeba
注意:将 -Xss128k 修改为 -Xss256
#在主和从服务器上进行指定用户授权,授权目的为了让 amoeba 能连接到主从服务器进行查询
nohup bash -x /usr/local/amoeba/bin/amoeba &
把这个放到后台,退出终端也可以继续运行
ps aux | grep amoeba
查看一下运行的程序 查看到的话就说明程序已经运行了起来
测试(安装一个 MySQL 软件包才可以连接)
在主、从服务器上创建表 a1,在主服务器的表中插入数据
之后在客户端登录测试
读取池的效果:
写入池效果
以上测试纯粹为了实验效果,在实际生产中,主从开启,主服务器上写入的数据也会同步到从服务器中