PXC介绍
PXC特点:
- 数据强一致性,无同步延迟
- 没有主从切换操作,无需使用虚拟ip
- 支持InnDB存储引擎
- 多线程布置
- 部署使用简单
- 支持节点自动加入,无需手动拷贝数据
相应端口
端口 | 说明 |
---|---|
3306 | 数据库服务端口 |
4444 | SST端口 |
4567 | 集群通讯端口 |
SST | State Snapshot Transfer 全量同步 |
IST | Incrementl State Transfer 增量同步 |
1.安装软件
步骤一:环境准备
配置主机名与ip地址绑定(3台机子都要配)
配置服务器192.168.4.71
]# vim /etc/hosts
192.168.4.71 pxcnode71
192.168.4.72 pxcnode72
192.168.4.73 pxcnode73
:wq
在任意一台服务器上ping 对方的主机名,ping通为配置成功。
root@host71 ~]# ping -c 2 pxcnode71 //成功
步骤二:安装软件包
1)在192.168.4.71 服务器安装软件包
软件包之间有依赖注意软件包安装顺序
# rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm //安装依赖
# yum -y install percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm
# rpm -ivh qpress-1.1-14.11.x86_64.rpm //安装依赖
# tar -xvf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar
# yum -y install Percona-XtraDB-Cluster-*.rpm
二,配置服务:
修改mysqld.cnf文件
修改mysqld_safe.cnf文件
修改wsrap.cnf文件
启动服务
步骤一:
1).修改mysqld.cnf文件
[root@pxcnode71 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
[mysqld]
server-id=71 //server-id 不允许重复
datadir=/var/lib/mysql //数据库目录
socket=/var/lib/mysql/mysql.sock //socket文件
log-error=/var/log/mysqld.log //日志文件
pid-file=/var/run/mysqld/mysqld.pid //pid文件
log-bin //启用binlog日志
log_slave_updates //启用链式复制
expire_logs_days=7 //日志文件保留天数修改mysqld_safe.cnf文件
2)分别修改3台服务器的mysqld_safe.cnf (使用默认配置即可)
[root@pxcnode71 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld_safe.cnf
[mysqld_safe]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/lib/mysql/mysql.sock
nice = 0
:wq
3)分别修改3台服务器的wsrep.cnf
[root@pxcnode71 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld_safe.cnf
wsrep_cluster_address=gcomm://192.168.4.71,192.168.4.72,192.168.4.73 ==//成员列表==
wsrep_node_address=192.168.4.71 //本机ip
wsrep_cluster_name=pxc-cluster //集群名
wsrep_node_name=pxcnode71 //本机主机名
wsrep_sst_auth="sstuser:123qqq...A" //SST数据同步授权用户及密码
:wq
4)启动集群服务
注意:在1台服务器上执行即可(192.168.4.71),首次启动服务时间比较长
#systemctl start mysql@bootstrap.service //启动集群服务
#grep pass /var/log/mysqld.log //查看数据库管理员初始登录密码
2019-06-20T12:29:42.489377Z 1 [Note] A temporary password is generated for root@localhost: W.HiOb8(ok)
#mysql –uroot –p’ W.HiOb8(ok)_’ //使用初始密码登录
Mysql> alter user root@”localhost” identified by “123456”; //修改登录密码
MySQL> exit;
#mysql –uroot –p123456 //使用修改后的密码登录
Mysql> garnt reload, lock tables,replication client,process on *.* to
sstuser@"localhost” identified by “123qqq…A”; //添加授权用户
5)启动数据库服务
启动主机pxcnode72的数据库服务,会自动同步pxcnode71主机的root初始密码和授权用户sstuser
#systemctl start mysql //启动数据库服务
#netstat -utnlp | grep :3306
#netstat -utnlp | grep :4567
6)启动主机pxcnode73的数据库服务,会自动同步pxcnode71主机的root初始密码和授权用户sstuser
#systemctl start mysql //启动数据库服务
#netstat -utnlp | grep :3306
#netstat -utnlp | grep :4567
存储引擎概述
- 作为可插拔式的组件提供
- MYSQL服务软件自带的功能程序,处理表的处理器
- 不同的存储引擎有不同的功能和数据存储方式
- MYSQL 5.0/5.1 --> MyISAM
- MYSQL 5.5/5.6 --> InnoDB
列出存储引擎类型
–show engines;
修改存储引擎
– alter table 表名 engines=存储引擎名
设置数据库服务使用的存储引擎
#vim /etc/mycnf
[mysqld]
......
default-storage-engine=存储引擎名
#systemctl restart mysqld
Myisam存储引擎
主要特点
- 支持表级锁
- 不支持事务,事务回滚,外键
表文件 - 表名.frm //表结构
- 表名.MYI //索引
- 表名.MYD ==//数据
innodb存储引擎
主要特点
- 支持行级锁定
- 支持事务,事务回滚,外键
表文件 - 表名.frm
- 表名.ibd
事务日志文件 - ibdata1
- ib_logfile0
- ib_logfile1
MYSQL锁级制
锁粒度 | |
---|---|
表级锁 | 对整张表加锁 |
行级锁 | 仅对被访问的行分别加锁 |
锁类型 | |
读锁(共享锁) | 支持并发读 |
写锁(互斥锁,排它锁) | 是独占锁,上锁期间其他线程不能读表和写表 |
- 查看当前锁状态
– show status like “table_lock”;
事务特性(ACID)
-
Atomic : 原子性
– 事务的整个操作是一个整体,不可分割,要么全部成功,要么全部失败 -
Consistency : 一致性
– 事务操作的前后,表中的记录没有变化. -
Isolation : 隔离性
-
事务操作是相关隔离不受影响的
-
Durability : 持久性
– 数据一旦提交,不可改变,永久改变表数据 -
相关命令
mysql> show variables like “autocommit”; //查看提交状态
mysql> set autocommit=off"; //关闭自动提交
mysql> rollback; //数据回滚
mysql> commit; //提交数据