第12周提交

1、主从复制及主主复制的实现

        主从复制

        需要准备两台mysql环境

  1. 配置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.%';

  1. 配置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.%';

  1. 配置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 定制输出的信息内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值