集群部署
更新时间:2021-08-24
数据库主从方案
本文档介绍了人脸服务数据库的主从同步方案,当主库出现问题时,可以快速切换到从库提供服务,提高性能。
主数据库
- 服务器二中新建idl-face用户,查看是否有/home/idl-face/目录,如果没有则新建/home/idl-face/目录
useradd idl-face
mkdir -p /home/idl-face/
- 下载主数据库部署包到服务器中/home/idl-face/目录并解压
wget -O databus5535.tar.gz http://face-package.bj.bcebos.com/k8s/databus5535-master.tar.gz
tar –xvf databus5535.tar.gz
- 改变目录用户权限
chown –R idl-face.idl-face /home/idl-face/
- 切换idl-face用户,启动数据库
su idl-face
cd /home/idl-face/databus5535/
nohup ./bin/mysqld_safe --defaults-file=./etc/my.cnf &
- 登录数据库
./bin/mysql -h127.0.0.1 -P5535 -uroot -p
输入密码:Bs~XIsDDv4XcDGCt)S(+4*yjQ&8NJh
- 添加从库IP地址,用户 密码
grant REPLICATION SLAVE on *.* to 'face'@'从xxx.xxx.xxx.xxx' identified by 'face';
从数据库
- 服务器二中新建idl-face用户,查看是否有/home/idl-face/目录,如果没有则新建/home/idl-face/目录 新建idl-face用户
useradd idl-face
mkdir -p /home/idl-face/
- 下载从数据库部署包到服务器中/home/idl-face/目录并解压
wget -O databus5535.tar.gz http://face-package.bj.bcebos.com/k8s/databus5535-slave.tar.gz
tar –zxvf databus5535.tar.gz
- 修改目录用户权限
chown –R idl-face.idl-face /home/idl-face/
- 切换idl-face用户,启动数据库
su idl-face
cd /home/idl-face/databus5535/
nohup ./bin/mysqld_safe --defaults-file=./etc/my.cnf &
- 登录数据库
./bin/mysql -h127.0.0.1 -P5535 -uroot -p
输入密码:Bs~XIsDDv4XcDGCt)S(+4*yjQ&8NJh
- 添加主库的ip用户密码和binlog文件名和数据位置
change master to master_host="主xxx.xxx.xxx.xxx", master_port=5535, master_user='face', master_password='face', master_log_file='mysql-bin.000006', master_log_pos=0;
(mysql_log_file和master_log_pos从主库上执行 show master status中获取)
- 开启主从同步
start slave;
- 查看状态
show slave status\G;
主从切换
主数据库服务挂了,切到从库,其中人脸服务,鉴权服务还是用主库服务器,需要修改主库配置文件
- 修改主库人脸服务数据库配置文件的IP地址,改成从库的IP地址
vim /home/baidu/work/face-server/project-conf/sconf/service.conf
#databus
MYSQL_SVC_SERVICE_HOST=xxx.xxx.xxx.xxx
将xxx.xxx.xxx.xxx修改为从数据库的IP地址,其余配置项不要修改
- 删除原来容器并重新构建新的容器
cd /home/baidu/work/face-server/project-conf & bash multi_docker_start.sh
数据库主主方案
主库1
- 下载数据库部署包
wget -O databus5535.tar.gz http://face-package.bj.bcebos.com/k8s/databus5535-master.tar.gz
- 将部署包移动到/home/idl-face/目录,并解压。
- 改变目录用户权限
chown -R idl-face.idl-face /home/idl-face/databus5535
- 启动数据库服务
su idl-face
cd /home/idl-face/databus5535/
nohup ./bin/mysqld_safe --defaults-file=./etc/my.cnf &
- 登录数据库
./bin/mysql -h127.0.0.1 -P5535 -uroot -p
输入密码:Bs~XIsDDv4XcDGCt)S(+4*yjQ&8NJh
- 添加从库ip 用户 密码
grant REPLICATION SLAVE on *.* to 'face'@'10.233.42.1' identified by 'face';
10.233.42.1为从库ip
主库2
- 下载部署包
wget -O databus5535.tar.gz https://face-package.bj.bcebos.com/k8s/databus5535-slave.tar.gz
- 将部署包移动到/home/idl-face/目录
- 修改/home/idl-face/databus5535/etc/ mysqld.cnf,将server-id=1改为=2
- 改变目录用户权限
chown -R idl-face.idl-face /home/idl-face/databus5535
- 启动数据库服务
su idl-face
cd /home/idl-face/databus5535/
nohup ./bin/mysqld_safe --defaults-file=./etc/my.cnf &
- 登录数据库
./bin/mysql -h127.0.0.1 -P5535 -uroot -p
输入密码:Bs~XIsDDv4XcDGCt)S(+4*yjQ&8NJh
- 添加从库ip 用户 密码
grant REPLICATION SLAVE on *.* to 'face'@'10.233.43.2' identified by 'face';
- 添加主库的ip用户密码和binlog文件名和数据位置
change master to master_host="10.233.42.2", master_port=5535, master_user='face', master_password='face', master_log_file='mysql-bin.000006', master_log_pos=0;
- start slave;
- 查看状态
show slave status\G;
主库1
- 添加主库的ip用户密码和binlog文件名和数据位置
change master to master_host="10.233.42.1", master_port=5535, master_user='face', master_password='face', master_log_file='mysql-bin.000006', master_log_pos=0;
- start slave;
- 查看状态
show slave status\G;
部署问题
数据库启动报错
1.数据库构建过程中 启动数据库报错
./bin/mysqld_safe: /home/idl-face/databus5535/bin/my_print_defaults: /opt/compiler/gcc-4.8.2/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
查看是否存在/opt/compiler/gcc-4.8.2/lib64/ld-linux-x86-64.so.2文件 如果不存在 则 01)切换到/opt/compiler下 下载文件并解压
cd /opt/compiler
wget https://face-package.bj.bcebos.com/k8s/gcc-8.2.tar.gz
wget https://face-package.bj.bcebos.com/k8s/gcc-4.8.2.bpkg-r4.tar.gz
tar -zxvf gcc-4.8.2.bpkg-r4.tar.gz
tar -zxvf gcc-8.2.tar.gz
02)修改gcc-4.8.2.bpkg-r4.tar.gz解压后文件的名称
cd gcc-4.8.2.bpkg-r4/
mv gcc-4.8.2.bpkg-r4/ ../gcc-4.8.2
03)重新启动数据库
数据库开机无法自启
开机启动脚本不能正常执行可修改脚本为
可将原数据库启动命令更换为
/bin/bash /home/idl-face/databus5535/server start
数据库主从重启失效
重启服务器后查看主从状态
show slave status\G
Slave_IO_Running:NO
Slave_SQL_Running:NO
可修改开机自启脚本/home/idl-face/databus5535/sh/mysql_boot.sh 添加如下内容
/home/idl-face/databus5535/sh/mysql -h127.0.0.1 -P5535 -uroot -p'Bs~XIsDDv4XcDGCt)S(+4*yjQ&8NJh' -e "stop slave;start slave;"