700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > mysql 命令备份恢复 binlog日志 percona工具备份恢复

mysql 命令备份恢复 binlog日志 percona工具备份恢复

时间:2024-06-03 22:07:14

相关推荐

mysql 命令备份恢复 binlog日志  percona工具备份恢复

物理备份:备份库和表对应系统文件

cp -r /var/lib/mysql /dbdir.bak

cp -r /var/lib/mysql/mysql /dbdir.bak

cp -r /var/lib/mysql/mysql/db.* /root/

逻辑备份:执行备份命令时,根据备份的库表生产对应的sql命令,把命令保存在指定的文件里。恢复时,执行保存sql命令,把命令保存到指定的文件里。恢复时,执行保存sql命令的备份文件把数据写回数据库里。

完全备份 备份所有数据 (通常包括3类对象:一张表里的所有数据 一个库的所有表里的所有数据 一个库的所有表 一台数据库服务器的所有数据

只备份新产生的数据

差异备份:备份自完全备份,后所有新产生的数据

增量备份:备份上此备份,所有新产生的数据

完全备份 mysqldum -u用户名 -p密码 库名 > 目录名/文件名.sql 单个库

mysqldump -uroot -p123456 –all-databases所有库 或 -A 备份所有库

mysqldump -uroot -p123456 -B 库 库2 备份多改库库

mysqldump -uroot -p123456 库名.表名 恢复单张表

mysql -uroot -p密码 库名< 路径/文件名.sql

mysql

完全备份 source profile

完全恢复 mysql

binlog

1.启用Mysql服务自带的binlog日志文件

2.安装第三三方软件

binlog日志

服务日志文件中的一种(默认没有开启) 记录除查询之外的sql命令

启用binlog日志

/etc/f 增加

log-bin

server_id =1~255

binlog-format=”mixed”

mysql 下生成两个文件 当日志文件大于500M 生成第二个文件

索引文件show slave status;

查看日志

mysqlbinlog host**-bin.000001

只记录插入更新删除记录

binlog可以自定义日志文件路径

修改/etc/f

偏移量

时间点

–start-position 数字

–stop-position 数字

–start-datetime时间点

–stop-datetime时间点

mysqlbinlog –start-position=1373 –stop-position=1788 /logdir/db50.000001 | mysql -uroot -p123456从日志位移偏量恢复数据

mysqlbinlog –start-datetime=”-07-17 15:09:07” –stop-datetime=”-07-17 15:11:04” /logdir/db50.000001 | mysql -uroot -p123456 从日志时间点恢复数据

手动生成新的日志文件

1)mysqldump -uroot -p123456 –flush-logs > db.sql 选项 完全备份后手动生成新的日志文件

2)登陆状态下执行flush log 直接生成新的日志文件

3)重启mysqld服务直接生成新的

show master status 显示当前记录sql命令的日志信息

mysql> purge master logs to “db50.000001”;

mysql>reset master

rm -rf /logdir/*

安装 percona 依赖包 libev perl-DBD-mysql perl-Digest-MD5

完全备份

innobackupex –user root –password 123456 –databases=”mysql performance_schema sys gamedb” /allbak –no-timestamp 备份具体库

完全恢复

要求数据库目录必须是空的

准备恢复数据(回滚备份目录下日志信息)

innobackupex –user root –password 123456 –databases=”mysql performance_schema sys gamedb” –apply-log /allbak 把这三个库也备份上

systemctl stop mysqld

rm -rf /var/lib/mysql/*

innobackupex –user root –password 123456 –databases=”mysql performance_schema sys gamedb” –copy-back /allbak

chown -R mysql:mysql /var/lib/mysql/

systemctl restart mysqldyum

对数据做增量备份

innobackupex –user root –password 123456 –incremental /newdir –incremental-basedir=/fullbak –no-timestamp 增量部分 在上次备份基础上

ncremental-dir=/newdir 合并增量1的日志序列号和数据

[root@host50 ~]# innobackupex –user root –password 123456 –apply-log –redo-only /fullbak –incremental-dir=/new2dir合并增量2的日志序列号和数据

[root@host50 ~]# rm -rf /newdir/ /new2dir

停止服务 删掉数据库全部文件

[root@host50 ~]# innobackupex –user root –password 123456 –copy-back /fullbak/ 恢复数据

把备份目录的数据拷贝到数据库目录并修改所有者和组为mysql

启动数据库服务 登陆查看数据

使用innobackupex完全备份文件恢复单个表

[root@host52 ~]# innobackupex –user root –password 123456 –databases=”db1” –no-timestamp 先备份表所在的库

恢复前要创建表 表结构必须跟备份的表一样

恢复单个表

建立表结构

alter table gamedb.a discard tablespace 删除表空间 a.ibd

导出备份好的表信息

innobackupex –user root –password 123456 –apply-log –export /gamedbbak

cp /gamedbbak/gamedb/a.{ibd,cfg,exp} /var/lib/mysql/gamedb/

拷贝表信息到 数据库文件

chown mysql:mysql /var/lib/mysql/gamedb/a.* 修改文件所有者,组

alter table gamedb.a import tablespace;导入表空间 (表名与之前备份的要相同)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。