mysql数据备份

来源:互联网 发布:站内优化 编辑:程序博客网 时间:2024/06/10 20:04

mysql数据备份
【本地】
实验环境:mysql5.7版本,系统redhat6.5,防火墙和selinux关闭
mysqldump命令
(1)导出整个数据库(包括数据库中的数据)

mysqldump -u username -p dbname > dbname.sql    

(2)导出数据库结构(不含数据)

mysqldump -u username -p -d dbname > dbname.sql    

(3)导出数据库中的某张数据表(包含数据)

mysqldump -u username -p dbname tablename > tablename.sql    

(4)导出数据库中的某张数据表的表结构(不含数据)

mysqldump -u username -p -d dbname tablename > tablename.sql   

mysqlbinlog命令

mysql的二进制日志默认是关闭的,在/var/lib/mysql是看不到日志文件的
这里写图片描述
所以需要修改/etc/my.cnf文件。
server-id=2
log-bin=mysql-bin

这里写图描述
修改完文件之后重启Mysql服务,即可查看二进制文件,并且在mysql里可以看到master status
这里写图片描述
这里写图片描述
mysqlbinlog –no-defaults mysql-bin.000001 –start-position=”443” –stop-position=”1045” | mysql -u root -pWEStos+007 test
mysql>reset master; ##重置binlog日志

【异地】
基于GTID的MySQL主从复制
实验环境:mysql5.7版本(mysql5.6版也适用),系统redhat6.5,防火墙和selinux关闭,
实验主机:
server1 172.25.5.1 主机
server3 172.25.5.3 备份机

server1和server3:
(1)开启mysql二进制日志
/etc/my.cnf文件中,server-id参数备份机与主机的id不同。
(2)修改etc/my.cnf,开启gtid,
gtid-mode=on
enforce-gtid-consistency=on
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=16
master_info_repository=TABLE
relay_log_recovery=ON
这里写图片描述
修改完文件之后重启Mysql服务,或在mysql里start slave
show global variables like ‘%gtid%’;查看gtid状态
这里写图片描述

server1:
进入mysql,添加用户
这里写图片描述

server3:
进入mysql,添加master
这里写图片描述
这里写图片描述

当 Slave_IO_Running,和Slave_SQL_Running两个参数都为YES的时候配置成功


在AB复制中,当 slave 增加到一定数量时,slave 对 master 的负载以及网络带宽都会成为一个严重
的问题。所以可以让 slave 扮演其它 slave 的 master。此时,slave 把 SQL 线程执行的事件写进行自己的二进制日志(binary log),然后,其它的 slave 可以获取这些事件并执行它,从而有效缓解master 的压力。

实验环境:
在上一个实验的基础上添加主机
server2 172.25.5.2 slave2

server1:
因为在备份之前server1中已经有数据,所以需要将之前的数据先复制给server2
mysql> FLUSH TABLES WITH READ LOCK; #锁表
shell> mysqldump -u root -p –all-databases –lock-all-tables pass –set-gtid-purged=OFF > backup.db
mysql> UNLOCK TABLES; #表解锁
2)如果仅使用 MyISAM 表,可以使用 mysqlhotcopy 拷贝,即使服务器正在运行。
mysqlhotcopy -u root -p westos mysql bakcup

server3:
给/etc/my.cnf添加参数
binlog-ignore-db=mysql
binlog-do-db=test
log-slave-updates
这里写图片描述
进入mysql,添加用户
这里写图片描述

server2:
安装mysql5.7,开启mysql二进制日志,和gtid
这里写图片描述
进入mysql,添加master,启动slave
这里写图片描述

0 0
原创粉丝点击