lvm snapshot mysql_基于mysqldump及lvm snapshot备份mysql数据库

不同的存储引擎对备份的支持也是不一样的,MyISAM存储引擎可以使用LVM快照功能配合实现热备份,如果没有LVM,则只能实现温备份。而InnoDB则可以完全支持热备,可使用的热备工具有:xtrabackup, mysqldump等

根据需要备份的数据集,备份方式有以下三种:

完全备份:备份全部需要备份的数据

增量备份:仅备份上次完全备份或增量备份以后变化的数据

差异备份:仅备份上次完全备份依赖变化的数据

根据备份的方法,分为物理备份和逻辑备份

物理备份:直接cp数据文件,速度比较快;

逻辑备份:将数据导出至文本文件中,方便使用文本处理工具直接对其处理、可移植能力强;数据量过大时备份速度很慢;

下面介绍mysqldump和snapshot用法

备份数据库中的所有库:--all-databases

[root@localhost ~]# mysqldump -uroot -hlocalhost -p --all-databases > /tmp/all.sql

备份指定单个或多个库:--databases

[root@localhost ~]# mysqldump -uroot -hlocalhost -p --databases testdb test > /tmp/mult.sql

为了防止备份数据库时,某个用户正在往某个表里插入数据,需要在备份数据库对所有表加锁:--lock-all-tables,其他用户的读写会被阻塞

[root@localhost ~]# mysql -uroot -hlocalhost -p --databases --lock-all-tables hellodb > /tmp/hdb.sql

其他常用选项:

--single-transaction: 如果某个表使用的存储引擎是Innodb存储引擎,能够对存储引擎实现热备,不能与--lock-all-tables同时使用

--events:备份事件调度器代码

--routines:备份存储过程或存储函数代码

--triggers:备份触发器

--flush-logs:备份前,请求到锁之后滚动日志

--master-data:备份时指定二进制日志文件及位置

mysqldump的完整用法:

1、先使用--lock-all-tables请求锁或--single-transaction进行Innodb热备

2、滚动日志:--flush-logs

3、指定备份的数据库:--databases

[root@localhost ~]# mysqldump -uroot -hlocalhost -p --lock-all-tables --flush-logs --databases hellodb > /tmp/hdb.sql (温备)

[root@localhost ~]# mysqldump -uroot -hlocalhost -p --single-transaction --flush-logs --databases hellodb > /tmp/hdb.sql (对Innodb存储引擎做热备)

使用mysqldump+二进制文件进行时间点恢复

先备份testdb库

[root@localhost ~]# mysqldump -uroot -hlocalhost -p --lock-all-tables --flush-logs --databases testdb --master-data=2 > /tmp/hdb.sql

使用vim打开/tmp/hdb.sql查看当前二进制日志位置

0818b9ca8b590ca3270a3433284dd417.png

之后在testdb数据库中再创建一个新表,加入两行数据

mysql> create table t1(Name char(30));

mysql> insert into t1 values ('lucy'),('tom');

然后再删除testdb数据库

mysql> drop database testdb;

查看删除testdb数据库之前的操作在二进制文件的位置

mysqlbinlog --start-position=106 mysql-bin.000002

0818b9ca8b590ca3270a3433284dd417.png

[root@localhost mysql]# mysqlbinlog --start-position=106 --stop-position=470 mysql-bin.000002 > /tmp/hdb.1.inc.sql

mysql> set session sql_log_bin=0;(进入mysql,关闭二进制文件记录)

mysql> source /tmp/hdb.sql(导入testdb数据库完整备份)

mysql> source /tmp/hdb.1.inc.sql(恢复至删除testdb数据之前的数据)

验证数据库完整备份及完整备份后的数据是否恢复

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WP-DBManager插件介绍: WP-DBManager是wordpress的数据备份插件,目前最新版本为2.40,其主要用途是对WordPress 的数据库进行管理,从而省去了用户必须使用类似PhpMyadmin登录数据库进行备份、修复、导入等操作,并且可以前台执行 SQL 语句。 该备份插件功能强大,能自动备份数据库文件,只要你设置了自动备份时间,到时间后该系统会自动备份你的wordpress数据;备份数据库的下载、删除、恢复,包括把数据库发送到指定的邮箱;优化、修复、清空、删除数据库表;执行SQL查询等,总之该有的功能应该都有了。 WP-DBManager插件安装: 下载WP-DBManager插件,将文件解压缩,上传到/wp-content/plugins/目录。 登录wordpress后台控制面板激活该插件,这是后台左侧栏或多出个DataBase标签,点击标签会出现下拉列表,可以对其进行相应的设置,页面中主要有: Database 用户 WP 数据库以及数据表的基本信息 Backup DB 备份数据库操作 Manage Backup DB 可以选择对已备份数据库文件进行下载、恢复、删除等操作 Optimize DB 优化数据库 Repair DB 修复数据表 Empty/Drop Tables 清空/删除某个数据表 Run SQL Query 执行 SQL 命令语句 DB Options 设置数据库的路径(可向空间商询问)以及自动备份的时间 Uninstall WP-DBManager 卸载该插件 该插件界面虽然是英文界面,但是都很简单 首先备份旧站数据库,然后在新空间安装 WordPress 以及该插件并激活 将备份旧站所得数据库文件上传到新站的 /wp-content/backup-db 目录 登录新站后台去 Database –> Manage Backup DB -> Restore 中恢复刚才的数据库文件 使用 PhpMyadmin或其他登录到数据库中,将 wp_options 表中的 siteurl 修改为新站地址 登录新站后台,将 Options 中的 Blog address (URL) 修改为新站地址

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值