逻辑备份 备份的是建表,建库的语句,因此备份时间过长,
1.备份所需的权限:
select
lock_tables
tigger
show_view
reload 刷新内存,以便将权限应用到用户
event 事件
process
备份步骤:
1.创建备份用户
grant 所需权限 on . to rourou@'192.168.1.2' identified by 'QWEqwe123!'
2.配置用户名及密码 /root/mysqluser.db
[mysqldump]
user=root
password=QWEqwe123!
3.备份数据库或表
mysqldump --defaules-file=~/mysqluser.db -h172.16.153.10 --all-databases >a.sql 全部
mysqldump --defaules-file=~/mysqluser.db -h172.16.153.10 servers sys >a.sql 全部的库
mysqldump --defaules-file=~/mysqluser.db -h172.16.153.10 servers phy_server test >a.sql 某库的某表
这样备份是没有建库的语句的,
--database 则会包含建库语句,因此,在没写该语句时,就必须先-e 'create servers'创建库再导入
导回步骤:
mysql -uroot -p'QWEqwe123!' servers < a.sql 将整个库导入
或者在mysql中
source a.sql
当然,当你想将库导入到新的库中,则需
mysql -uroot -p'QWEqwe123!' -e 'create ku' servers < a.sql
物理备份
安装步骤;
1.yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 安装 EPEL 源
2.yum install -y libev 安装 libev
3.yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm 安装Percona存储库
4.shell> yum install percona-xtrabackup-24 安装软件
导出步骤:
xtrabackup --backup --user=root --password='123' --target-dir=/backups/full
导入步骤:
1.准备数据
xtrabackup --prepare --target-dir=/backups/full 保持数据的一致性
2.停止服务
systemctl stop mysqld
3.清空文件夹
rm -rf /var/lib/mysql/*
4.导入备份文件
xtrabackup --copy-back --datadir=/var/lib/mysql --target-dir=/backups/full
5.修改权限
chown mysql.mysql -R /var/lib/mysql/
6.启动服务
systemctl start mysqld
增量备份
描述:先全备,再进行增量备份,使用xtarbackup 会产生一个 .logfile 的文件,这个文件记录着备份的同时数据库对数据的操作。
备份步骤;
1.使用上边的全备
2.xtrabackup --backup --user=root --password=123 --target-dir=/backups/inc1 --incremental-basedir=/backups/full
3.上述的过程重复操作
恢复步骤:
--apply-log-only 禁止使用logfile来补充数据
1.xtrabackup --prepare --apply-log-only --target-dir=/backups/base
2.xtrabackup --prepare --apply-log-only --user=root --password=123 --target-dir=/backups/full --incremental-dir=/backups/inc1
3.重复上述操作,注意:最后一次准备数据要执行logfile
4.systemctl stop mysqld
5.rm -rf /var/lib/mysql/*
6.xtrabackup --copy-back --datadir=/var/lib/mysql --target-dir=/backups/full/
7.chmod mysql.mysql -R /var/lib/mysql
8.systemctl start mysqld
主从复制
主从复制.jpg目的是为了读写分离,减轻服务器压力。
主服务器必须开启二进制日志
主服务器:
1.[mysqld]
log-bin=/var/log/mysql/mysql-bin
server-id=1 配置服务器ID,并且指定二进制目录
2.chown mysql.mysql /var/log/mysql
- systemctl restart mysqld
4.grant replication slave on . to 'repl'@'%' identified by 'QWEqwe!1';
5.mysqldump --defalutes-files=/root/mysqluser.db --all-databases >dbdump.db
6.scp dbdump.db mrking@192.168.1.2:/root
7.setenforce 0
8.systemctl stop firewalld
从服务器:
1.[mysqld]
server-id=2 并且重启mysqld
2.mysql -uroot -p'QWERasdf!' < dbdump.db
3.CHANGE MASTER TO
MASTER_HOST='192.168.1.2',
MASTER_USER='repl',
MASTER_PASSWORD='QWEqwe123!',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=437;
4.start slave; 启动复制线程
5.show slave status 查看I/O和SQL的状态都为yes即为成功
binlog日志有几种方式:
- 基于sql语句的
- 基于行的
- 混合模式的
网友评论