1、主从复制及主主复制的实现
主从复制
需要准备两台mysql环境
- 配置master节点
vim /etc/my.cnf 增加
server-id=17
log_bin
binlog_format=ROW
重启mysql
查看并记录binlog位置
mysql> show master status;
新建账号并授权
mysql> create user repluser@'10.0.0.%' identified by '123456';
mysql> grant replication slave on *.* to repluser@'10.0.0.%';
- 配置slave节点
vim /etc/my.cnf
server-id=27
log_bin
read_only=on
重启mysql生效配置
进入mysql配置主节点相关信息,主节点IP、主节点连接用户、密码、之前查询的主节点BINGLOG及位置
mysql> CHANGE MASTER TO
MASTER_HOST='10.0.0.17',
MASTER_USER='repluser',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_LOG_FILE='master-bin.000001',
MASTER_LOG_POS=154,
MASTER_CONNECT_RETRY=10;
启动slave
start slave
show slave status
主主复制
配置与主从配置基本相同,把另一个从节点也作为主节点配置,在原节点上也change master。
master1配置
vim /etc/my.cnf 增加
server-id=17
log_bin
binlog_format=ROW
重启mysql
查看并记录binlog位置
mysql> show master status;
新建账号并授权
mysql> create user repluser@'10.0.0.%' identified by '123456';
mysql> grant replication slave on *.* to repluser@'10.0.0.%';
- 配置master2节点
vim /etc/my.cnf
server-id=27
log_bin
binlog_format=ROW
重启mysql生效配置
mysql> CHANGE MASTER TO
MASTER_HOST='10.0.0.17',
MASTER_USER='repluser',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_LOG_FILE='master-bin.000001',
MASTER_LOG_POS=154,
MASTER_CONNECT_RETRY=10;
mysql> start salve;
mysql> show slave status \G; 确认状态正常
回到主节点1配置
mysql> CHANGE MASTER TO
-> MASTER_HOST='10.0.0.27',
-> MASTER_USER='repluser',
-> MASTER_PASSWORD='123456',
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE='master2-bin.000002',
-> MASTER_LOG_POS=154,
-> MASTER_CONNECT_RETRY=10;
Query OK, 0 rows affected, 2 warnings (0.02 sec)
2、xtrabackup实现全量+增量+binlog恢复库
在mysql数据库服务器操作
进行全备
#xtrabackup -uroot -p123456 --backup --target-dir=/backup/full
create database testdb1;
并继续业务
mysql> create table t2 (id int);
业务发生后第一次做增量
#xtrabackup -uroot -p123321 --backup --target-dir=/backup/inc1 --incremental-basedir=/backup/full
继续发生业务
mysql>insert into t2 values(1);
mysql>insert into t2 values(2);
第二次增量
#xtrabackup -uroot -p123321 --backup --target-dir=/backup/inc2 --incremental-basedir=/backup/inc1
复制备份到新的准备恢复的服务器
#scp /backup root@10.0.0.27:/backup
假设现在原mysql服务器损坏,安装一台新的mysql服务器并准备恢复
恢复预准备,合并一个完全及两个增量备份
#xtrabackup --prepare --apply-log-only --target-dir=/backup/full
#xtrabackup --prepare --apply-log-only --target-dir=/backup/full --incremental-dir=/backup/inc1
#xtrabackup --prepare --target-dir=/backup/full --incremental-dir=/backup/inc2
清空目标数据库目录
rm /data/mysql -rf
恢复数据
# xtrabackup --copy-back --target-dir=/backup/full
修改mysql数据目录权限
chown -R mysql:mysql /data/mysql
启动服务并检查数据恢复情况
service mysqld start
3、MyCAT实现MySQL读写分离
准备两台mysql服务器并配置好主从关系
安装myCAT
tar xvf Mycat-server-1.6.7.5-release-20210616151418-linux.tar.gz -C /apps
cd /apps
echo 'PATH=/apps/mycat/bin:$PATH' > /etc/profile.d/mycat.sh
source /etc/profile.d/mycat.sh
echo $PATH
mycat start
可以看到监听的8066端口,说明系统安装成功,接下来做配置
配置mycat配置文件
vim /apps/mycat/conf/server.xml
<property name="serverPort">3306</property> <property name="managerPort">9066</property>
<property name="idleTimeout">300000</property> <property name="bindIp">0.0.0.0</property>
<property name="dataNodeIdleCheckPeriod">300000</property>
<property name="frontWriteQueueSize">4096</property> <property name="processors">32</property>
vim /apps/mycat/conf/schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"
dataNode="dn1">
</schema>
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1"
slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="host1" url="10.0.0.17:3306" user="root"
password="123456">
<readHost host="host2" url="10.0.0.27:3306" user="root"
password="123456" />
</writeHost>
</dataHost>
</mycat:schema>
4、ansible常用模块介绍
command 执行命令用,是默认模块
shell 与command类似,支持更多的功能
script 运行脚本,在远程主机执行本地的脚本
copy 从本地复制文件到远程主机
get_url 从url地址下载文件到远程主机
Fetch 从远程主机提取文件到本地主机,不支持目录
file 文件创建、设置文件属性及软链接等
stat 检查文件状态
unarchive 解压包
archive 打包
hostname 管理主机名
cron 管理计划任务
yum yum包管理
apt apt包管理
yum_repository 管理yum仓库
service 管理服务
user 管理用户
group 管理用户组
lineinfile 修改文件内容
replace 修改文件内容
selinux 管理selinux
reboot 重启系统
mount mount和unmount文件系统
setup 收集主机信息
debug 用于输出信息,并且通过 msg 定制输出的信息内容