一、使用完全备份文件恢复单个表----innobackupex
--apply-log --export 导出表信息 .exp .cfg
discard tablespace 删除表空间 .ibd
import tablespace 导入表空间
/gamedb
drop table t1;
1 按照源表结构创建表t1 create table t1(id int);
2 从备份文件里导出表信息
#innobackup --user root --password abc123 --databases="库名列表"
--apply-log --export /gamedbbak
3 删除表空间
mysql> alter table t1 discard tablespace;
4 把导出的表信息 拷贝的对应的数据库目录下
#cd /gamedbbak/gamedb
#cp t1.{exp,ibd,cfg} /var/lib/mysql/gamedb/
#ls /var/lib/mysql/gamedb/t1.
#chown mysql:myql /var/lib/mysql/gamedb/t1.
5 导入表空间 alter table t1 import tablespace;
6 select from t1;
+++++++++++++++++++++++++++++++++++++++
二、主从同步
2.1 什么是主从同步: 让其他的数据库服务器自动同步正在提供服务的数据库服务器上 的数据。
2.2 配置mysql主从同步结构
主数据库服务器的配置:
1 添加授权用户 grant replication slave on .* to slaveuser@"192.168.4.12" identified by "123456";
2 启用binlog日志
3 重启数据库服务
4 查看日志信息 mysql> show master status;
从数据库服务器的配置:
1 验证主库提供的授权用户
2 修改配置文件指定server_id 并重启数据库服务
3 使用本机的数据库管理员登录,指定主库信息。
mysql> show slave status;
mysql> change master to master_host="192.168.4.11",
master_user="slaveuser",
master_password="123456",
master_log_file="master11.000001",
master_log_pos=154;
mysql>start slave;
mysql>show slave status\G;
slave_IO_Running: Yes
slave_SQL_Running: Yes
测试主从同步配置:
1 在主库服务器上添加访问数据的用户
2 在客户端使用授权用户连接主库,产生的数据在从库本机也能够查看的到。
+++++++++++++++++++++++++++++++++
从数据库目录下多出文件
master.info
主机名-relay-bin.000000 中继日志文件
主机名-relay-bin.index
relay-log.info
++++++++++++++++++++++++++
主从同步工作原理
mysql> stop slave ;
mysql> change master to 选项=“值”;
mysql> start slave;
++++++++++++++++++++++++++++++++++++
主从同步结构模式
一主一从
一主多从
主从从
主主结构(互为主从)
+++++++++++++++++++++++++++++++++++
主从同步常用配置参数:
#vim /etc/my.cnf
[mysqld]
选项=值
:wq
#systemctl restart
主库配置文件里(对应所有的从都有效)
只允许同步的库 binlog_do_db=库名1,库名2,库名n
不允许同步的库 binlog_ignore_db=库名1,库名2,库名n
从库配置文件里(只对本机有效)
只同步的库 replicate_do_db=库名1,库名2,库名n
只不同步的库 replicate_ignore_db=库名1,库名2,库名n
级联复制 log_slave_updates
+++++++++++++++++++++++++++++++++++
三、数据读写分离 maxscale软件 + 一主一从
3.1 什么读写分离:把客户端访问数据时的查询请求select 和写insert 给不同的数据库服务器处理。
client 254 mysql -h192.168.4.15 -uyaya99 -p123456
|
15
代理主机---> systemctl stop mysqld
|
| |
192.168.4.11 192.168.4.12
写 读
主 从
1 配置一主一从结构
2 配置代理主机
2.1
a 装包
b 、修改配置文件:
指定数据库服务器 、指定监控的数据库服务器 ,指定读写在那些主机之间执行、
定义管理服务 、读写分离服务使用的端口、管理服务使用的端口
4006 4009
c、根据配置文件设置,在数据库服务器上添加对应的授权用户
grant replication slave ,replication client on . to scalemon@"%" identified by "123456" 监控数据库服务器状态的用户(数据库服务器状态和主从同步状态)
grant select on mysql.* to maxscale@"%" identified by "123456"; 监控客户端连接时,使用的用户名和密码在监监视的数据库服务器上是否存在。
d、在代理主机上测试授权用户
#which mysql
#yum -y install mariadb
#mysql -h192.168.4.11 -uscalemon -p123456
#mysql -h192.168.4.11 -umaxscale -p123456
#mysql -h192.168.4.12 -uscalemon -p123456
#mysql -h192.168.4.12 -umaxscale -p123456
e、启动服务
#maxscale -f /etc/maxscale.cnf ( 停止服务 pkill -9 maxscale)
#netstat -utnalp | grep maxscale
2.2 测试配置
A\ 在代理服务器本机访问管理服务
15#maxadmin -uadmin -pmariadb -P4009
maxscale> list servers
B 在客户端254主机 访问代理服务器存储数据或查询数据
#which mysql
#yum -y install mariadb
#mysql -h192.168.4.15 -P4006 -uyaya99 -p123456
++++++++++++++++++++++++++++++++++++
四、mysql服务的优化
五mysql高可以集群 (mysql-mmm + 主从同步) 11-14 15
#yum -y install perl-*