- 浏览: 86824 次
- 性别:
- 来自: 北京
-
文章列表
MySQL复制特性部署级联Slave
- 博客分类:
- MySQL
Slave节点在处理日志时的逻辑是这样的,本地产生的修改事件,写入二进制日志文件,不过解析自中继日志的修改事件,因为不是它自己产生的修改,默认情况下不会写入本地二进制日志文件。启用—log-slave-updates参数,即使是应用中继日志产生的数据库修改,也将会写到本地二进制日志文件中。修改RelaySlave节点的初始化参数文件,在[mysqld]区块中增加log-slave-update参数
停止RelaySlave节点,重启使参数生效
先停止SQL_THREAD线程
RelaySlave > stop slave sql_thread;
Query OK, 0 rows ...
MySQL复制特性利用Slave节点创建备份
- 博客分类:
- MySQL
应用mysqldump创建备份
在my.cnf文件中添加
[mysqldump]
user=system
password=123456
[client]
user=system
password=123456
库级备份
1.停止Slave服务中的SQL_THREAD线程
2.记录当前接收和应用的二进制日志文件及位置
3.执行备份命令
4.再次记录当前接收和应用的二进制日志文件及位置
5.启动Slave服务中的SQL_THREAD线程
1、创建完整备份
[mysql@mysql1 ~]$ /data/mysqldata/scripts/mysql_full_backup_by_xtra.sh
2、复制和准备备份集
[mysql@mysql1 mysql_full]$ scp xtra_fullbak_2014-07-10.tar.gz 192.168.1.202:`pwd`
[mysql@mysql2 3307]$ mkdir binlog tmp data
[mysql@mysql2 mysql_full]$ tar xivfz xtra_fullbak_2014-07-10.tar.gz -C /data/ ...
MySQL复制特性复制过滤规则
- 博客分类:
- MySQL
原有A库中的对象,复制到Slaves节点后,希望保存到B库中,MySQL提供了一个专用参数:replicate-rewrite-db=from_name->to_name
库级过滤规则:
Master节点在执行修改操作时,由--binlog-do-db或--binlog-ignore-db两个参数控制在指定的数据库中对象的变更事件是否记录到二进制日志文件中
Slave节点在应用日志时,由--replicate-db-db或--replicate-ignore-db两个参数控制是否应用指定数据库的变更事件
基于语句格式记录的日志是通过当前所使用的db来作为过滤条件
只有当Mas ...
MySQL复制特性中继日志及状态文件
- 博客分类:
- MySQL
二进制日志文件用于保存节点自身产生的事件,中继日志文件中则是保存接收自其他节点的事件(也是二进制格式),中继日志文件默认保存在data目录下。Slave节点有两个线程,其中IO_THREAD线程用于接收和保存二进制日志,SQL_THREAD线程用于应用这些日志。中继日志文件的管理可以完全交由Slaves节点的SQL_THREAD线程来维护。除了中继日志文件外,复制环境中的Slave节点还会创建两个复制环境的状态文件,即master.info和relay-log.info,默认保存在data目录下,master.info保存复制环境中连接Master节点的配置信息,
MySQL复制特性实施原理和关键因素
- 博客分类:
- MySQL
复制特性实施的核心,就是基于Master节点对数据库中各项变更的处理机制。
二进制日志在记录事件时,支持多种格式,由binlog_format参数控制:
SBL对应statement,RBL对应row,MBL对应mixed
在MySQL5.6版本中,默认的日志记录格式是基 ...
MySQL复制特性管理命令
- 博客分类:
- MySQL
1.检查Slave节点的各个状态
Slave>show slave status;
重要指标
Slave_IO_State:显示Slave当前的状态
Slave_IO_Running:I/O线程是否在运行
Slave_SQL_Running:SQL线程是否在运行
Last_IO_Error/Last_SQL_Error:是否有错误信息
Seconds_Behind_Master:显示当前Slave节点与Master节点的同步延迟
SHOW PROCESSLIST辅助了解复制状态的作用
Master_Lo
MySQL复制特性基本思路
- 博客分类:
- MySQL
全新环境配置Replication:表示主从数据库服务均为全新,这种场景下的配置方案最为简单和灵活
现有环境配置Replication:表示主数据库服务已有数据,这种情景下的配置就需要考虑多种因素
为现有环境配置Replication复制,可以细分为:
创建一台Slave:当前已有Master节点,需要配置Slave节点,以创建Replication复制环境
增加一台Slave:当前已有M-S复制环境,需要再增加Slave节点,以增强系统的整体负载能力
MySQL复制特性初体验
- 博客分类:
- MySQL
MySQL复制在处理数据时,有三种不同的模式:
基于语句复制(Statement Based Replication):基于实际执行的SQL语句的模式方案,SBR
基于记录复制(Row Based Replication):基于修改的列的复制格式,RBR
基于上述两种方式混合的复制模式(Mixed Based Replication),MBR
数据复制模式跟日志文件记录格式相关
1.关闭数据库服务
[mysql@mysql1 ~]$mysql_db_shutdown.sh
[mysql@mysql1 ~]$netstat –tlnp | grep 3306
2.复制数据 ...
Innobackupex自动化备份脚本
- 博客分类:
- MySQL
Innobackupex自动化备份脚本
[mysql@mysql1 ~]$ more mysql_full_backup_by_xtra.sh
#!/bin/bash
#create by allen
source /data/mysqldata/scripts/mysql_env.ini
DATA_PATH=/data/mysqldata/backup/mysql_full
DATA_FILE=${DATA_PATH}/xtra_fullbak_`date +%F`.tar.gz
LOG_FILE=${DATA_PATH}/xtra_fullbak_`date +%F`.l ...
XtraBackup联机备份:
专注于InnoDB、XtraBackup的热备工具,是C语言开发的程序,专用于备份InnoDB及XtraDB引擎对象
备份集高效、完整、可用
备份任务执行过程中不会阻塞事务
节省磁盘空间,降低网络带宽占用
备份集自动验证机制
恢复更快
[root@mysql1 /]# rpm -ivh percona-xtrabackup-2.2.3-4982.el6.x86_64.rpm
[mysql@mysql1 ~]$ echo "export PATH=/usr/bin:\$PATH" >> /home/mysql/.b ...
冷备、增量备份和备份恢复策略
- 博客分类:
- MySQL
冷备、增量备份和备份恢复策略:
创建冷备份
关闭MySQL数据库
备份mysql数据目录,复制/data/mysqldata/3306目录到备份路径
启动MySQL数据库
创建增量备份
MySQL中的增量备份及恢复,必须借助二进制日志实现,必须在MySQL服务启动时指定--log-bin参数,二进制日志被输出到/data/mysqldata/3306/binlog目录下。所谓增量备份,只需要将冷备份之后新生成的二进制日志文件定期备份到指定目录。待需要恢复时,首先将全备恢复,而后通过mysqlbinlog命令分析二进制文件日志,可以将分析结构输出到sql
mysqldump自动化备份脚本
- 博客分类:
- MySQL
在my.cnf文件中添加
[mysqldump]
user=system
password=123456
[client]
user=system
password=123456
库级备份
[mysql@mysql1 scripts]$ more /data/mysqldata/scripts/mysql_full_backup.sh
#!/bin/bash
#create by allen
source /data/mysqldata/scripts/mysql_env.ini
DATA_PATH=/data/mysqldat ...
恢复mysqldump创建的备份集
- 博客分类:
- MySQL
恢复mysqldump创建的备份集:
SQL格式恢复
先创建表结构
方法一:
[mysql@mysql1 ~]$ mysql -usystem -p123456 -S /data/mysqldata/3306/mysql.sock hugc</data/mysqldata/backup/hugc_fullbak.sql
方法二:
(system@localhost) [(none)]> use hugc;
(system@localhost) [hugc]> source /data/mysqldata/backup/hugc_fullbak.sql;
定界 ...
使用mysqldump命令行工具创建逻辑备份
- 博客分类:
- MySQL
mysqldump命令创建的是逻辑备份,结果集有两种格式:一种是将数据转换成标准的SQL语句(一堆CREATE,DROP,INSERT等语句),另一种是将数据按照指定分隔符,输出成定界格式的平面文件。
[mysql@mysql1 ~]$ mysqldump
usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
F ...