MySQL灾备切换

1.1 配置mysql主从

主库IP:192.168.8.62

从库IP:192.168.8.65

主库IP:192.168.8.62 操作

    mysql -uroot -p
    mysql> grant replication slave on *.* to tongbu@'192.168.8.65' identified by '123456';

    mysql> show master status \G
    *************************** 1. row ***************************
                 File: mysql-bin.000005
             Position: 331
    #拿到File 和Position
    #锁表
    flush tables with read lock;   锁表

1.2 从库IP:192.168.8.65 操作

    mysql> change master to master_host='192.168.8.62',master_user='tongbu',master_password='123456',master_log_file='mysql-bin.000005',master_log_pos=331;
    mysql> start  slave;
    mysql> show slave status \G
        #内容有这两给 YES 
        Slave_IO_Running:Yes
        Slave_SQL_Running:yes
        
    # 在主库上运行 表锁释放命令 192.168.8.62
    mysql> unlock tables
    # 完成了 主从配置

1.3,配置my.cof

   ##############  主mysql 的my.cof  ##############
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    character-set-server=utf8
    max_connections=1000
    interactive_timeout=31536000
    wait_timeout=31536000
    lower_case_table_names=1
    symbolic-links=0
    log-bin=mysql-bin
    server-id = 1               # 配置主数据库的ID
    replicate-ignore-db=mysql   # 配置不同步的库
    replicate-ignore-db=test
    replicate-ignore-db=performance_schema
    replicate-ignore-db=information_schema
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    # Recommended in standard MySQL setup
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

    ##################  从mysql 的my.cof  ########################

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    character-set-server=utf8
    max_connections=1000
    interactive_timeout=31536000
    wait_timeout=31536000
    lower_case_table_names=1
    symbolic-links=0
    log-bin=mysql-bin
    server-id = 3               # 配置从数据库的ID
    replicate-ignore-db=mysql   # 配置不同步的库
    replicate-ignore-db=test
    replicate-ignore-db=performance_schema
    replicate-ignore-db=information_schema
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    # Recommended in standard MySQL setup
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

    #######################################################

2. mysql切换灾备服务器

2.1 登陆mysql 在salve执行:

    mysql> stop slave;
    mysql> reset master;

2.2删除mysql目录下

relay-log.info 
master.info
rm -f /var/lib/mysql/*.info

2.3 如果my.cof配置上存在log-slave-updates read_only 等一定注释掉它

2.4重启mysql

service  mysql  restart

redis 切换

2.5 登陆redis

redis-cli 
AUTH  uhfugqpowzffhDWQc20z-pUadl&2d1@Dkzqlo/adfwQQlo+AdjcdUyakLjFM$YUaxOasGDBeyTail5Is9Ush+0aXPiU
#密码命令
slaveof NO ONE
#停止redis 主从

修改redis.conf 注释掉它
#slaveof 192.168.1.55 #master IP

2.6 启动tomcat 和zk

3.1mysql binlog恢复数据

编辑再还原数据

#导出 2019-01-14  15:12分到2019-01-14 15:16:00 的数据
mysqlbinlog -uroot -p'123456' --start-datetime="2019-01-14 15:12:00" --stop-datetime="2019-01-14 15:16:00" /var/lib/mysql/mysql-bin.000003 > mysql_restore.sql
mysql -uroot -p < /tmp/mysql_restore.sql
#直接还原数据
mysqlbinlog -uroot -p --start-datetime="2019-01-14 15:12:00" --stop-datetime="2019-01-14 15:16:00" /var/lib/mysql/mysql-bin.000003 | mysql -u root -p'123456'

mysql 备份方式恢复数据

全量备份数据脚本

MYUSER=script_user
MYSQL_PWD=123123
mysql -e "show databases;" -uroot -p'123456' | egrep -vi "Data|_schema|mysql|test|job|order"| \
xargs mysqldump -u$MYUSER -p$MYSQL_PWD --databases |gzip> /www/backup/mysql_$(date +%F)_dump.all.sql.gz
2)还原数据
gzip -d mysql_dump.all.sql.gz
mysql  -u$MYUSER -p$MYSQL_PWD  < mysql_dump.all.sql

redis 切换

1) 登陆redis
redis-cli
AUTH uhfugqpowzffhDWQc20z-pUadl&2d1@Dkzqlo/adfwQQlo+AdjcdUyakLjFM$YUaxOasGDBeyTail5Is9Ush+0aXPiU
2) 在salve执行
slaveof 192.168.8.62 6379

3) 修改redis.conf 注释掉它
#slaveof 192.168.8.62 #master IP

附 mysql 操作

锁表

flush tables with read lock;

表锁释放

unlock tables;

刷新 logs

flush logs

刷新权限

flush privileges;

运行查看状态

show master status \G

猜你喜欢

转载自www.cnblogs.com/tony1314/p/10803441.html