关系型数据库RDBMS -MySQL基础入门(五)数据备份与恢复

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44985068/article/details/97035639

一 物理备份 innodbackupex
二 逻辑备份 mysqldump

Binlog
二进制
日志文件
备份恢复
主从同步
除查询sql所有命令都记录
索引文件: -bin.index
-bin.000001
Purge master logs to “” -删除

恢复数据
Mkdir /mylog
Chown mysql /mylog
Ls -ld
Vim /etc/my.cnf
Binlog_format=”mixed”
Log-bin=/mylog/db50
Server_id=50

(1)清理 binlog 日志
• 删除早于指定版本的 binlog 日志
– purge master logs to "binlog 文件名 ";
Purge master logs to “mysql-bin .000001”
• 删除所有 binlog 日志,重建新日志
– reset master;

(2)记录格式
三种记录格式 :

  1. statement :每一条修改数据的 sql 命
    令都会记录在 binlog 日志中。
  2. row: 不记录 sql 语句上下文相关信息,
    修改日志记录格式
    仅保存哪条记录被修改。
  3. mixed: 是以上两种格式的混合使用

(3)Binlog 恢复数据 区分多条记录数据
时间
偏移量范围

(4)Binlog 回复数据
Mysqlbinlog 选项 /mysql/db50.000001 | mysql -uroot -p12345678
使用 mysqlbinlog 工具
– 格式: mysqlbinlog [ 选项 ] binlog 日志文件名
• 常用选项
– --start-datetime=“yyyy-mm-dd hh:mm:ss”
– --stop-datetime=“yyyy-mm-dd hh:mm:ss”
– --start-position= 数字
– --stop-position= 数字

Show master status 查看Mysql数据库当前正在写入的binlog文件
Delete name from db3.user where name regexp “^aa.
50
insert into db3.user(name,id) values(“aaaaa”,“301”)
delete from db3.user where name regexp "^aa.
"
show master status;
scp /mylog/db50.00001 root@4.51:/root/
51
Mysqlbinlog–start-position=2232 --stop-position=3656 /mylog/db50.000001| mysql -uroot -p123456
select name from db3.user where name regexp "^aa.*” -查询

备份工具 percona 物理备份
物理 cp\tar \innobackupex
     windows :ntfs
  时间长 占存储空间 不跨平台 冗余备份
逻辑  mysqldump
备份还原效率低 
锁表
备份时不能插入更新

Percona:
开源
支持引擎innodb / xtradb  -增量备份
在线热备不锁表.适合生产环境

三种引擎
Innobackupex -perl 脚本封装xtrabackup 支持MYLSAM
Xtrabackup -c语言 支持innoDB\xTrabackup
MYLSAM
1 装包:
rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm
yum -y install percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

(1)命令格式
(2)常用选项
(3)完全备份与回复
  恢复完全备份单张表
(4)增量备份与恢复

Rpm -ql percona-extrabackup-24
/usr/bin/innobackupex -备份innodb xtradb myism 引擎的表

1 完全备份
Innodbackupex --user名 --password”密码”  --no-timesamp

show create table user\G;
ENGINE=InnoDB
Innobackup --user root --password 12345678 /allbak --no-timestamp
Ls /allbak
Scp -r /allbak root@ 192.168.4.51 :/root/

完全恢复51
System ctl stop mysqld
Rm -rf /var/lib/mysql/*
Ls /var/lib/mysql/
Cat /root/allbak
Innobackupex --apply-log /root/allbak
Innobackupex --copy-back /root/allbak
Chown -R
Systemctl start mysqld

2恢复单张表

(1)Alter table db5.b discard tablespace;   -删除表空间
Select
(2)Innobackupex --apply-log --export /allbak     -导出表信息
Ls
(3)Cp /allbak/db5/b.{cfg,exp,ibd} /var/lib/mysql/db5/  -拷贝表信息
(4)Chown mysql:mysql /var/lib/mysql/db5/b.*    -修改所有者\组

(5)Alter table db5.b import tablespace -导入表空间
(6)System rm -rf /var/lib/mysql/db5/b.exp \cfg -删除表信息
(7)Select * from db5.b -查看表记录

Frm 表结构文件
Ibd表空间文佳

3
增量备份与恢复
首次全备份

Innobackupex --user root --password --no-timestamp
Innodackupex --user root --password 12345678 /datafull --no-timestamp 完备
Ls /datafull

(1)曾量备份
Insert into db5.a values(“aa”);
Select count(*) from db5.a

Innobackupex --user root --password 12345678 --incremental /new1dir --incremental-basedir=/datafull --no-timestamp
ls /new1dir/
cat /datafull/xtrabackup_checkpoints  -备份类型和备份信息

cat /new1dir/xtrabackup_checkpoints

(2)增量恢复
Ls /datafull /new1dir /new2dir
Scp 给 51

51操作
Stop mysqld
Rm -rf /var/lib/mysql/*
合并数据+拷贝数据
合并:innobackupex --apply-log --redo-only /datafull
Innobackupex --apply-log --redo-only /datafull --incremental-dir=/new1dir
验证查看数据库dab5.a
恢复数据: Innobackupex --copy-back /datafull
Chown -R mysql:mysql /var/lib/mysql/
Systemctl start mysqld

******************************

总结:
数据库服务
搭建数据库服务器 \navicate
数据库服务基本使用  登录\链接\建表\建库\记录连接 Mysql 类型\
表结构 mysql 健值(index primary key )
数据导入导出 记录(增删改查) 匹配条件
用户授权 root密码 图形管理phpmyadmin
数据备份与恢复 :物理(cp tar innobackupex)\ 逻辑(mysqldump binlog)

展开阅读全文

没有更多推荐了,返回首页