集群部署及数据库高可用实现
1 Linux集群部署
1.1 连接数据库
1.1.1 修改JDBC ip地址
1.1.2 修改db.property
1.1.3 Tomcat部署示意图
1.2 部署单台Tomcat
1.2.1 上传tomcat安装包
1.解压安装文件
tar -xvf apache-tomcat-7.0.55.tar.gz
2.修改tomcat文件名称
mv apache-tomcat-7.0.55 tomcat-8091
3.移除安装包
rm apache-tomcat-7.0.55.tar.gz
最终tomcats目录结构如下:
1.2.2 修改配置文件
1.报错解决方案
2.修改端口
1.2.3 启动tomcat
使用命令
sh startup.sh
或者命令
./startup.sh
启动tomcat
1.2.4 关闭防火墙
[root@localhost bin]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
1.2.5 部署war包
将webapps中的ROOT文件夹先删除,之后部署war包
启动tomcat
./startup.sh
切换到conf目录,然后检查日志文件
cat catalina.out
1.2.6 开放mysql权限
要求:mysql权限命令的执行,需要在mysql客户端中运行。
语法:
grant [权限] on [数据库名].[表名] to ['用户名']@['web服务器的ip地址'] identified by ['密码'];
这里我们使用
grant all on *.* to 'root'@'%' identified by 'root';
或者指定IP地址
grant all on *.* to 'root'@'192.168.1.103' identified by 'root';
1.2.7 单台tomcat测试
1.2.8 复制多台tomcat
cp -r tomcat-8091 tomcat-8092
cp -r tomcat-8091 tomcat-8093
说明:分别修改8005/8080/8009端口启动多台tomcat,之后启动测试。
1.2.9 Nginx实现Linux集群访问
#Linux中集群部署
upstream jtLinux {
server 192.168.126.161:8091;
server 192.168.126.161:8092;
server 192.168.126.161:8093;
}
#后台管理系统
server {
listen 80;
server_name manage.jt.com;
location / {
proxy_pass http://jtLinux;
#proxy_connect_timeout 3;
#proxy_read_timeout 3;
#proxy_send_timeout 3;
}
}
2 数据库高可用
2.1 数据库备份
2.1.1 冷备份
定期进行数据库导出。工具sqlYog
缺点:
-不能保证数据的完整性。
-如果数据库中文件较大,则导出的.sql文件体积很大
补充: 数据库冷备份是恢复数据的最后有效手段。
2.1.2 热备份
主库:主要负责写入二进制日志文件
从库:主要负责监听主库中数据的修改,并同步到从库中。
调用过程:
- 当主库中数据发生变化时,会将更新的操作写入到二进制日志文件中。
- 从库通过IO线程实时监听主库中的二进制日志文件,当文件发生变化时,读取变化的日志内容写入中继日志中。
- 从库通过sql线程读取中继日志中的消息,最终将数据同步到从库中。
2.1.3 克隆2台虚拟机
克隆2台全新的数据库 mysql-master/mysql-slave,之后将IP设置为固定IP。
2.1.4 安装mysql数据库
1.上传mysql安装文件
在/usr/local/src/中新建mysql文件夹,之后上传数据库安装文件。
2.解压文件
执行解压命令
tar -xvf Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar
解压后如下
[root@localhost mysql]# tar -xvf Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar
Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-devel-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-test-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-tokudb-56-5.6.24-rel72.2.el6.x86_64.rpm
3.安装mysql数据库
安装顺序:1. 56-debug-info 2. shared 3. client 4. server
安装命令
rpm -ivh 安装文件的名称
安装Debug-info
rpm -ivh Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm
安装shared
rpm -ivh Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm
安装client客户端
rpm -ivh Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm
安装服务端
rpm -ivh Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm
2.1.5 启动mysql服务项
启动命令: service mysql start
重启命令: service mysql restart
关闭命令: service mysql stop
2.1.6 导入数据库
1.关闭防火墙
2.将数据库文件上传到mysql文件夹中
3.设定用户名和密码
4.使用新密码登录
5.导入京淘数据库
命令:
source 绝对路径 /usr/local/src/mysql/jtdb.sql;
或
Source 相对路径 jtdb.sql;
6.测试检查数据库是否正确
show tables;
7.开启mysql对外权限
grant all on *.* to 'root'@'%' identified by 'root';
8.连接数据库
2.1.7 关于数据库报错解决方案
1.查询进程号PID,然后kill
2.2 实现数据库主从搭建
2.2.1 开启主库二进制日志文件
1.编辑mysql系统配置文件
vim /etc/my.cnf
2.重启mysql数据库服务器
注意检查二进制文件是否存在
2.2.2 配置从库
1.修改从库二进制文件
vim /etc/my.cnf
2.重启mysql从库
2.2.3 实现数据库主从挂载
1.检查主库状态
Show master status;
2.实现主从挂载
/*实现主从挂载 主库IP/端口/用户名/密码/二进制日志文件/位置*/
CHANGE MASTER TO MASTER_HOST="192.168.126.162",
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=120
/*启动主从服务*/
START SLAVE
/*检查主从状态*/
SHOW SLAVE STATUS;
/*如果挂载有误,先关闭主从服务 之后重新挂载主从*/
STOP SLAVE
2.2.4 状态检测
执行命令
SHOW SLAVE STATUS;
如果出现两个yes则表示挂在成功
之后状态测试
修改主库数据,检查数据是否同步。
2.3 实现数据库读写分离
用户的写库操作执行主库,用户的读操作指向从库。
2.3.2 Ameba(变形虫)
Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。
它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求。
与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便(基于XML的配置文件,用SQLJEP语法书写规则,比基于lua脚本的MySQL Proxy简单)。
2.4 Amoeba搭建步骤
2.4.1 配置JDK环境
1.上传JDK
2.解压JDK
3.配置环境变量 /etc/profile
4.刷新环境配置
Source /etc/profile
然后查询jdk版本信息
java -version
2.4.2 安装Amoeba
1.FZ工具使用
2.下载文件
3.解压文件
2.4.3 修改dbServer.xml
1.配置amoeba连接数据库
2.配置数据库链接
3.配置连接池,定义负载均衡
2.4.4 修改Amoeba.xml
1.配置IP
2.定义用户名和密码
3.配置读写分离
2.4.5 修改JVM内存
-Xms256m 初始化内存大小256m
-Xmx1024m 最大内存1g
-Xss196k 每次线程大小
2.4.6 启动Amoeba
关闭防火墙
命令:
-启动命令 ./launcher
-关闭命令 ./shutdown