zoukankan      html  css  js  c++  java
  • mysql不停库不锁表在线主从配置

    mysql不停库不锁表在线主从配置:

    说明:

    10G以下的数据库:使用mysqldump导出数据和备份恢复比较合适,便捷。

    100-500G数据库:使用Percona-Xtrabackup备份工具,在线热备,全量、增量、单表备份和还原。

    更大数据量:采用分库分表,或使用 LVM 快照来加快备份速度。

    XtraBackup优势 :

    1. 无需停止数据库进行InnoDB热备
    2. 增量备份MySQL
    3. 流压缩到传输到其它服务器
    4. 能比较容易地创建主从同步
    5. 备份MySQL时不会增大服务器负载

    主从复制作用:

    1.实现读写分离,减轻主库负载

    2.数据安全,做备份恢复

    3.主从切换做高可用

    复制模式类型:

    基于语句的复制:在主服务器上执行的SQL语句,在从服务器上执行同样的语句,有可能会由于SQL执行上下文环境不同而是数据不一致。

    基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执行一遍。从mysql5.0开始支持,能够严格保证数据完全一致,但此时用mysqlbinlog去分析日志就没啥意义。因为任何一条update语句,都会把涉及到的行数据全部set值,所以binlog文件会比较大。

    混合类型的复制:默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。

    配置步骤:

    主从版本一致—>主库授权复制帐号—>确保开启binlog及主从server_id唯一—>xtrabackup恢复到从库—>记录xtrabackup_binlog_info中binlog名称及偏移量—>从库change master to —>slave start—>检查两个yes

    1.主库:

    创建负责复制的账号:

    1.  
      mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_ali'@'192.168.5.%' IDENTIFIED BY 'slave_ali_pass';
    2.  
      mysql> FLUSH PRIVILEGES;

    赋予备份用户权限:

    mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 'bkppass';
    mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT,PROCESS,SUPER ON *.* TO 'bkpuser'@'localhost';
    mysql> FLUSH PRIVILEGES;

    假设 MySQL 安装目录在/opt/mysql,my.cnf配置文件/opt/mysql/my.cnf,端口3306,数据目录/opt/mysql_data,sock位于/opt/mysql_data/mysql.sock。备份数据放在/data/backup/mysql/

    全量备份:

    $ export BKP_PASS="bkppass"
    $ innobackupex --defaults-file=/opt/mysql/my.cnf --host=localhost --port=3306 --user=bkpuser --password=${BKP_PASS} /data/backup/mysql

    默认会以当天 日期+时间 戳命名备份目录。如2018-09-04_20-00-00

    2.从库:

    全量恢复:

    innobackupex --use-memory=16G --apply-log 2018-09-04_20-00-00
     
    1.  
      确认数据库是关闭的,并且datadir,目录下为空
    2.  
      $ innobackupex --defaults-file=/opt/mysql/my.cnf --use-memory=16G --copy-back 2018-09-04_20-00-00

    3.做从库

    chown -R mysql.mysql /opt/mysql_data
    /opt/mysql/bin/mysqld_safe --defaults-file=/opt/mysql/my.cnf &
    1.  
      $ mysql -uslave_ali -p'slave_ali_pass' -S /opt/mysql_data/mysql.sock
    2.  
      mysql> change master to master_host=MASTER_HOST, master_port=3306,
    3.  
      master_user='slave_ali',master_password='slave_ali_pass',
    4.  
      master_log_file='mysql-bin.000135', master_log_pos=262484673;
    1.  
      mysql> show slave statusG
    2.  
      mysql> start slave;
    3.  
      mysql> show slave statusG


     

    转载于:https://my.oschina.net/u/3866910/blog/1942531

  • 相关阅读:
    模块在insmod之后无法rmmod问题
    FL2440驱动添加(2): RTC(Real time clock)
    虚拟机安装CentOS6.3两个问题
    内核移植和文件系统制作(3)Ramdisk简介和常见问题
    FL2440驱动添加(1):hello world 驱动模块添加
    内核移植和文件系统制作(2):linux内核最小系统和initramfs文件系统
    内核移植和文件系统制作(1):根文件系统制作总结
    mysql 5.7.16多源复制
    mysql 5.7安装脚本
    二进制方式快速安装MySQL数据库命令集合
  • 原文地址:https://www.cnblogs.com/lidabo/p/14269187.html
Copyright © 2011-2022 走看看