使用lvm 备份和恢复mysql数据库

案列中查询用到的命令:

show engines;   ---现在已提供什么存储引擎

show variables like ‘%storage_engine%‘;  -----当前默认的存储引擎

设置InnoDB为默认引擎:在配置文件my.cnf中的 [mysqld] 下面加入default-storage-engine=INNODB 一句,也可以再加上  innodb_file_per_table=1  #让innodb的每个表文件单独存储

show master status ;  --查看节点状态

show binlog  events  in ‘mysql-bin.000001‘;   ---查询执行mysql二进制事件查询

set  sql_log_bin=0;     --关闭mysql的二进制同步 0表示关闭 1表示开启

select @@sql_log_bin;  ---查询二进制查询开启状态

mysql> \. /root/zzxtbl.sql   --- 当前mysql会话中导入zzxtbl.sql脚本

select * into outfile‘/opt/zzxtbl.txt‘  form zzxtbl;   ----查询zzxtbl表并导出到/opt/zzxtbl.txt中

create table zzxtbl  like zztbls;

desc zzxtbl ,zzxtbl;    -------desc 显示表结构

drop table  zzxtbl;  ------ 删除表

truncate table zzxtbl;  ------清空表数据

mysqlbinlog /data/mysql-bin.000001  ----查看mysql的二进制文件内容

mysqlbinlog --start-positsion=100/mysql-bin.000001 > /root/zzxtbl.sql  ---查看节点数是100的,并导出sql脚本

mysql -e ‘show master status\G‘ > /opt/master-`data+%F`.info  ----查看保存备份的二进制文件

show variables like ‘%dir%‘;   ----查mysql的目录存放

一、 mysql 使用select  into outfile 将数据库中的表文件到如到文本(.txt)中,然后进行数据库内容恢复

语法: select * into outfile ‘/tmp/zzx.txt‘ form zzx;

显示的导出数据的结构

操作步骤如下:

(1)  将a表的表结构复制成b表后,查看两表中的数据结构dsca\b;

(2)  将a表删除后,用loaddata infile ‘/tmp/zzx.txt‘ into table b ,中恢复 a表中的数据。

二、mysql使用二进制文件恢复数据库

这里提示可以根据你的mysql 服务器上的binlog日志查方式,首先查看show master status;主节点的信息。然后在查看该节点中show  binlog  events in  ‘mysql-bin.000001‘;

binlog日志根据开始的节点数运行成sql脚本

mysqlbinlog--start-position="319" /var/lib/mysql/mysql-bin.000005>/root/zzx.sql

1.清空表数据 (truncate   table  zzxs;)

2.关闭二进制文件同步(setsql_log_bin=0;),恢复成功后开启 mysql的二进制开关(set_log_bin).

3.mysql 服务器上线

恢复成功了

三、使用lvm在线备份mysql数据库

注:提前将mysql数据目录放到我创建好的逻辑卷上。在此该卷组上要足够的空间用来备份使用,在此mysql数据库和binlog二进制文件都要在该卷组上。

步骤:

1.在MySQL的当前的会话中,要锁定当前的所有的表;

mysql> flush    tables with   read  lock;

mysql> flush  logs;

这时事务提交

2.通过另一个终端,保存二进制日志文件的相应的位置信息。

3.创建快照卷

4.释放锁

mysq>unlock tables;

释放当前的表锁。该事物就自动提交了提交了

5.挂载快照卷,备份

lvcreate -L 50M -s -p r -n mydata-snap/dev/zzxtbl/mydata

mount /dev/zzxtbl/mydata-snap /mnt -o ro

拷贝当前的lvm卷备份的数据到/opt

6.删除快照卷

卸载当前的逻辑卷

umount  /mnt

删除卷组lvremove --force /dev/zzxtbl/mydata-snap

四、模拟mysql误删和增量恢复

1.删除当前卷组上的mysql数据库

停止mysqld的服务

2.拷贝之前备份的mysql的数据库

3.还原增量的数据

mysqlbinlog --start-datetime=‘2015-08-26 23:45:57‘ mysql-bin.000008 > /opt/zengliang-`date +%F-%H-%M-%S`.sql

导入当前mysql数据库中。数据就恢复了。开启二进制同步开关 set sql_log_bin=1;

时间: 2024-10-15 05:14:18

使用lvm 备份和恢复mysql数据库的相关文章

Qt中使用QProcess备份和恢复Mysql数据库

分类: Qt2011-02-18 21:35 1395人阅读 评论(3) 收藏 举报 qtmysql数据库windowspathcmd . 使用Qt做MySQL数据库开发,遇到需要备份.还原数据库的问题. MySQL中没有提供将数据库备份成.sql文件的SQL语句,而是提供了一个mysqldump.exe工具来完成这个功能. 没有SQL语句,QSqlQuery就用不成了,决定改用QProcess实现. . 但是在Qt中使用QProcess::execute()方法怎样都导不出数据来, 更郁闷的是

xtrabackup 全备份,增量备份,恢复 mysql数据库

Xtrabackup使用指南 InnoDB数据备份工具 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写,也就是不加锁),是商业备份工具InnoDB Hotbackup的一个很好的替代品 一.Xtrabackup介绍  A.Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtrabackup有两个主要的工具

mysqldump备份和恢复Mysql数据库

简单介绍: 通过mysqldump命令可以将指定的库和表全部导出为sql脚本,可以在不同版块的Mysql上面使用.例如需要升级Mysql数据库可以使用mysqldump先备份所有数据库,然后直接在升级后的Mysql数据库导入即可. 基本操作:备份单个数据库,或者库中的特定表(库名后面加表名)mysqldump备份jiaowu库[[email protected] ~]# mysqldump -uroot -p jiaowu > /root/jiaowu.sql删除jiaowu的数据库mysql>

备份和恢复MySQL数据库

一.备份 1) 备份表mysqldump -uroot -p 库名 表1 > e:\backup.sqlmysqldump -uroot -p 库名 表1 表2 表3 > e:\backup.sql 2) 备份库下所有表mysqldump -uroot -p 库名 > e:\backup.sql 3) 备份数据库 mysqldump -uroot -p -B 库名 > e:\backup.sql 4) 备份所有库mysqldump -uroot -p -A 库名 > e:\b

批处理备份和恢复mysql数据库

备份 set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%" md "D:\databackup\%Ymd%" "C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump.exe" --opt -Q databasename -uroot -p123456 > D:\databackup\data

备份恢复MySQL数据库的命令

备份恢复MySQL数据库的命令 备份:mysqldump -hhostname -P 3306 -uusername -ppassword databasename > D:/backupfile.sql 恢复:mysqldump -hhostname -P 3306 -uusername -ppassword databasename < D:/backupfile.sql

Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁

Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁 一丶安装 pip install PyMySQL 二丶pymysql连接数据库 ### 语法: import pymysql # 导入py模块 conn= pymysql.connect("数据库ip","用户","密码","数据库" ) # 打开数据库连接 cursor.execute("SELECT VERSI

如何使用命令来备份和还原MySQL数据库

数据库在使用当中都会有数据库备份工作,当数据库发生严重错误无法启动,或者数据丢失时可以及时有效地恢复数据.那么多备份就简单介绍如何使用命令来备份和还原MySQL数据库. 备份数据库 使用mysqldump命令备份数据库 代码如下: # 如果要将game数据库进行备份: mysqldump -u root -p game > game_backup.sql # 如果希望备份所有的数据库: mysqldump -u root -p --all-databases > all_backup.sql

烂泥:通过binlog恢复mysql数据库

本文首发于烂泥行天下. 在上一篇文章,我们讲解了有关mysql的binlog日志的基础知识.这篇文章,我们来讲解如何通过mysql的binlog日志来恢复数据库. 在使用binlog日志来恢复数据库之前,我们有一些前提工作需要做.步骤如下: 1.创建新的数据库ailanni 2.创建新的表ilannitable 3.向表ilannitable插入数据 4.刷新mysqlbin日志 5.完整备份ailanni数据库 6.删除表ilannitable插入的部分数据 7.删除数据库ailanni 8.