目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

标签: TRDB (27)

MHA-Atlas实现读写分离

安装 [root@db3 software]# rpm -ivh Atlas-2.2.1.el6.x86_64.rpm [root@db3 software]# cp /usr/local/mysql-proxy/conf/test.cnf /usr/local/mysql-proxy/conf/test.cnf.bak [root@db3 software]# vim /usr/local/mysql-proxy/conf/test.cnf [mysql-proxy] admin-username = user admin-password = pwd proxy-backend-addresses = 192.168.31.190:3306 proxy-read-only-backend-addresses = 192.168.31.180:3306,192.168.31.181:3306 pwds = user1:+jKsgB3YAG8=, user2:GS+tr4TPgqc= daemon = true keepalive = true event-threads = 8 lo....

MHA

主从从GTID复制 rm -rf /data/* rm -rf /data/* mkdir -p /data/mysql/data mkdir -p /data/binlog chown -R mysql.mysql /data # 主库db1配置文件 cat >/etc/my.cnf <<EOF [mysqld] user=mysql basedir=/application/mysql datadir=/data/mysql/data socket=/tmp/mysql.sock server_id=51 port=3306 secure-file-priv=/tmp autocommit=0 log_bin=/data/binlog/mysql-bin binlog_format=row gtid-mode=on enforce-gtid-consistency=true log-slave-updates=1 [mysql] prompt=db1 [\\d]> EOF # 主库db2配置文件 cat >/etc/my.cnf <<EOF....

主从复制

架构 依赖于二进制日志,“实时”备份的一个多节点架构。 主从复制的前提(搭建主从复制),至少2个实例 1.不同的server_id(区别主从) 2.主库要开启二进制日志功能,从库不开(有些特殊情况下也可以开) 3.主库需要开启二进制日志 4.主库需要授权一个专用复制用户 5.主库数据备份 6.开启专用复制线程 准备架构 端口作用 3307主 3308从 3309从 5.5 MySQL 多实例 5.5.1 创建目录 mkdir -p /data/330{7,8,9}/data 5.5.2 准备配置文件 cat > /data/3307/my.cnf <<EOF [mysqld] basedir=/application/mysql datadir=/data/3307/data socket=/data/3307/mysql.sock log_error=/data/3307/mysql.log port=3307 server_id=7 log_bin=/data/3307/mysql-bin EOF cat > /data/3308/my.cnf....

备份恢复与数据迁移

DBA在数据库备份恢复方面的职责 全备 增量 定期恢复演练 故障恢复 迁移(停机时间、回退方案) 备份类型 热备:在数据库正常业务时,备份数据,并且能够一致性恢复(只能是innodb) 稳备:锁表备份,只能查询修改,不能修改(myisam) 冷备:关闭数据库业务,数据库没有任何变更的情况下,进行备份数据。 备份方式及工具 逻辑备份:基于SQL语句进行备份 mysqldump mysqlbinlog 物理备份:基于磁盘数据文件备份 xtrabackup(XBK):percona 第三方(推荐使用) Mysql Enterprise Backup (MEB) 逻辑备份VS物理备份 mysqldump(MDP) # 优点 1.不需要下载安装 2.备份出来的是SQL,文本格式,可读性高,便于备份处理 3.压缩比较高,介绍备份的磁盘空间 # 缺点 1.依赖于数据库引擎,需要从磁盘把数据读出,然后转换成SQL进行存储,比较耗费资源,数据量大的话效率较低 2.100G以内的数据量级,可以使用mysqldump,也可以使用xtrabackup 3.超过TB以上,也可以选择mysq....

日志管理

错误日志 # 查看错误日志路径 mysql> select @@log_error; +----------------------------+ | @@log_error | +----------------------------+ | /data/mysql/data/mysql.log | +----------------------------+ 二进制日志 作用:用于即时点的数据恢复、主从复制 配置二进制日志(默认没有开启) # 日志要和数据分开存放 log_bin # 开关、设定存放位置 server_id # 5.6单机不需要此参数,5.7必须要加 [root@localhost ~]# mkdir /data/binlog -p [root@localhost ~]# chown -R mysql. /data/ [root@localhost ~]# vim /etc/my.cnf [mysqld] user=mysql basedir=/application/mysql datadir=/data/mysql/data socket=/tmp/my....

锁 锁定的意思,提供的是ACID中,I方面的功能。需要配合UnDO+隔离级别一起来实现 InnoDB锁级别:行级锁 Next LOCK GAP LOCK 悲观锁: 乐观锁: 需要排查锁的争用、锁等待、死锁 事务的隔离级别 影响到数据的读取,默认的级别是 RR模式. transaction_isolation 隔离级别(参数) 负责的是,MVCC,读一致性问题 RU : 读未提交,可脏读,一般部议叙出现 RC : 读已提交,可能出现幻读,可以防止脏读. RR : 可重复读,功能是防止"幻读"现象 ,利用的是undo的快照技术+GAP(间隙锁)+NextLock(下键锁) SR : 可串行化,可以防止死锁,但是并发事务性能较差 RR级别:解决了 不可重复读问题+幻读的现象 不可重复读问题是由 undo的快照技术来解决。 幻读现象是由:MVCC+GAP+next-lock来解决。 # 查看事务隔离级别 mysql> select @@tx_isolation; +-----------------+ | @@tx_isolation | +-----------------+ | RE....

InnoDB存储引擎

存储引擎的功能 数据读写 数据安全和一致性 提高性能 热备份 自动故障恢复 高可用方面支持 # 查看数据库支持的存储引擎 show engines; # 查看数据库下所有innodb的表 mysql> select table_schema,table_name ,engine from information_schema.tables 其他MySQL的引擎 PerconaDB:默认是XtraDB MariaDB:默认是InnoDB 其他的存储引擎支持: TokuDB RocksDB MyRocks 以上三种存储引擎的共同点:压缩比较高,数据插入性能极高 现在很多的NewSQL,使用比较多的功能特性. 核心特性 1、事务(Transaction) 2、MVCC(Multi-Version Concurrency Control多版本并发控制) 3、行级锁(Row-level Lock) 4、ACSR(Auto Crash Safey Recovery)自动的故障安全恢复 5、支持热备份(Hot Backup) 6、复制Replication: Group Commit , ....