`
wsql
  • 浏览: 11791209 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

mysql dump备份和恢复

 
阅读更多

---------------------------------------------
1.准备工作
---------------------------------------------

--查看当前mysql服务器使用的存储引擎

# mysqladmin variables | grep storage_engine
| storage_engine | MyISAM


--查看mysql数据库存放目录

# mysqladmin variables | grep datadir

| datadir | /usr/local/mysql/var/ |
---------------------------------------------
2.mysqldump备份数据库
---------------------------------------------

--mysqldump备份一个整个的数据库

# mysqldump -u root -ppassword --opt accp > /test/accpbak.sql

/*
--opt 这只是一个快捷选项,等同于同时添加 --add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset 选项

*/


--mysqldump备份多个数据库

# mysqldump -u root -ppassword --opt --database accp suzhou > /test/twobak.sql


--mysqldump备份所有数据库

# mysqldump -u root -ppassword --opt --all-databases > /test/allbak.sql


---------------------------------------------
3.--mysqldump恢复数据库
---------------------------------------------

--mysqldump恢复:恢复的前提是accp数据库存在
#mysql -u root -ppassword accp < /test/accpbak.sql


--恢复多个数据库
#mysql -u root -ppassword

mysql>source /test/twobak.sql

---------------------------------------------
---mysql增量备份
---------------------------------------------

#vi /etc/my.cnf
[mysqld]
log-bin=/mysql-log/mysql-bin

1.全备
mysqldump -u root -ppassword --opt beijing > /test/beijing.sql


2.增量备份:切断日志,即备份之前所有内容。此备份点只有的修改都存在新日志里

mysqldump --flush-logs -u root -ppassword --opt beijing > /test/beijing.sql

恢复
1.恢复全备
mysql -u root -ppassword beijing < /test/beijing.sql


2.恢复日志


#mysqlbinlog /usr/local/mysql/var/mysql-bin.000013 | mysql -u root -ppassword beijing


启用新的更新日志
这样可以记录你备份后的数据改变为恢复数据准备。

#mysqladmin flush-logs -u root -ppassword


---案例:增量备份

(1).查看二进制日志存放位置


# ls /usr/local/mysql/var/ | grep mysql-bin*
mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
mysql-bin.000004
mysql-bin.000005
mysql-bin.000006
mysql-bin.000007
mysql-bin.000008
mysql-bin.000009
mysql-bin.000010
mysql-bin.000011
mysql-bin.000012
mysql-bin.000013
mysql-bin.index


(2).准备存放备份数据的位置
# mkdir /backup


(2).准备备份的数据

# mysql -u root -ppassword beijing

mysql> show tables;
+-------------------+
| Tables_in_beijing |
+-------------------+
| t1 |
+-------------------+
1 row in set (0.00 sec)


mysql> select * from t1;
+------+
| sid |
+------+
| 101 |
| 102 |
| 103 |
| 104 |
+------+
4 rows in set (0.00 sec)


(3).做全备

#mysqldump -u root -ppassword --opt beijing > /backup/beijing.sql


(4).修改数据库中表内容

# mysql -u root -ppassword beijing

mysql> insert into t1 values (105);
Query OK, 1 row affected (0.00 sec)

mysql> select * from t1;
+------+
| sid |
+------+
| 101 |
| 102 |
| 103 |
| 104 |
| 105 |
+------+
5 rows in set (0.00 sec)

(5).备份并启用新日志


#mysqldump --flush-logs -u root -ppassword --opt beijing > /backup/beijing.sql


# ls /usr/local/mysql/var/ | grep mysql-bin*
mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
mysql-bin.000004
mysql-bin.000005
mysql-bin.000006
mysql-bin.000007
mysql-bin.000008
mysql-bin.000009
mysql-bin.000010
mysql-bin.000011
mysql-bin.000012
mysql-bin.000013
mysql-bin.000014
mysql-bin.index


--说明:即该备份完成后,数据库修改的日志都保存在新添加的mysql-bin.000014中.


(6).操作数据库


# mysql -u root -ppassword beijing


mysql> select * from t1;
+------+
| sid |
+------+
| 101 |
| 102 |
| 103 |
| 104 |
| 105 |
+------+
5 rows in set (0.01 sec)

mysql> delete from t1 where sid=103;
Query OK, 1 row affected (0.01 sec)

mysql> select * from t1;
+------+
| sid |
+------+
| 101 |
| 102 |
| 104 |
| 105 |
+------+
4 rows in set (0.00 sec)


(7).恢复刚才删除的数据

第一步:恢复全备


#mysql -u root -ppassword beijing < /backup/beijing.sql


第二步:恢复日志


#mysqlbinlog /usr/local/mysql/var/mysql-bin.000014 | mysql -u root -ppassword beijing


第三步:查看数据是否恢复

# mysql -u root -ppassword beijing

mysql> select * from t1;
+------+
| sid |
+------+
| 101 |
| 102 |
| 103 |
| 104 |
| 105 |
+------+
5 rows in set (0.00 sec)

分享到:
评论

相关推荐

    MySQL数据库:其他备份与恢复方法.pptx

    由于MySQL的数据库和表是直接通过目录和表文件实现的,因此可以通过直接复制文件的方法来备份数据库。不过,直接复制文件不能够移植到其他机器上,除非要复制的表使用MyISAM 存储格式。 ; 如果

    MySQL5.7 mysqldump备份与恢复的实现

    InnoDB引擎是事务性存储引擎,每一条语句都会写日志,并且每一条语句在日志里面都有时间点,那么在备份的时候,mysql可以根据这个日志来进行redo和undo,将备份的时候没有提交的事务进行回滚,已经提交了的进行重做...

    mysql,oracle,sqlserver三大数据库备份与还原

    mysql,oracle,sqlserver三大数据库备份与还原,在src\test\Test.java里有用例。 DataBase dataBase = new DataBase(); //MySQL dataBase.setMysqlBinPath("D:/dump/bin"); dataBase.setBackPath("D:/dump/...

    mysql常用备份命令和shell备份脚本分享

    source dump.sql --在mysql命令行中输入该命令即可恢复 备份整个数据库: mysqldump -uroot -123456 -A &gt; all.sql 备份整个数据库结构: mysqldump -uroot -p123456 -P3306 -A -d &gt; all_002.sql 备份单个数据库结构...

    mysql-data-dumper:允许从 MySQL 数据库备份和恢复数据的简单助手类

    MysqlDataDumper 允许从 MySQL 数据库备份和恢复数据的简单助手类。 $ dumper = new Infotech \ MysqlDataDumper \ MysqlDataDumper ();$ dumper -&gt; addConnection ( $ pdoInstance );$ dumper -&gt; backup (); // ...

    mysql-backup 提供一种简单方法来备份和恢复运行在容器中的MySQL数据库-python

    mysql-backup 提供一种简单方法来备份和恢复运行在容器中的MySQL数据库mysql-backup 将 mysql 数据库备份到...任何地方! 概述 mysql-backup 是一种在数据库运行在容器中时进行 MySQL 数据库备份和恢复的简单方法。 ...

    从MySQL全库备份中恢复某个库和某张表的方法

    在Mysqldump官方工具中,如何只恢复某个库呢? 全库备份 [root@HE1 ~]# mysqldump -uroot -p --...那么如何从全库备份中抽取某张表呢,全库恢复,再恢复某张表小库还可以,大库就很麻烦了,那我们可以利用正则表达

    MySQL定时备份方案(利用Linux crontab)

    前言 虽说现在这世道有些爱情是有价的,但是数据是无价的,数据备份是尤为的重要,可以在你未来的某一天不小心删库了,不用着急跑路。 本片文章介绍的方案是利用Linux...列出我常用的两种数据库的备份和恢复命令 postg

    MYSQL

    11 MySQL 基准套件 12 MySQL 实用程序 12.1 各种 MySQL 程序概述 12.2 管理一个 MySQL 服务器 12.3 从 MySQL 数据库和表中倒出(dump)结构和数据 12.4 从文本文件导入数据 12.5 MySQL ...

    MySQL中文参考手册.chm

    11 MySQL 基准套件 12 MySQL 实用程序 12.1 各种 MySQL 程序概述 12.2 管理一个 MySQL 服务器 12.3 从 MySQL 数据库和表中倒出(dump)结构和数据 12.4 从文本文件导入数据 12.5 ...

    mysql数据库备份及恢复命令 mysqldump,source的用法

    还原一个数据库:mysql -h localhost -u root -p123456 www&lt;c&gt; d:\www2008-2-26.sql //以下是在程序中进行测试 //$command = “mysqldump –opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip &gt; $backupFile”;...

    MySQL中文参考手册

    * 3 MySQL的许可证和技术支持 o 3.1 MySQL的许可证政策 o 3.2 MySQL 使用的版权 + 3.2.1 可能的未来版权改变 o 3.3 MySQL商业性分发 o 3.4 许可证实例 + 3.4.1 销售使用 MySQL的产品 + 3.4.2 销售MySQL相关...

    基于Python实现的数据库快速备份与恢复软件源码+项目说明.zip

    一款MySql数据库备份(快照保存)与恢复软件。功能上与dump类似,但是提供了相对有好的交互界面,能够有效地管理导出的sql文件。 # 使用场景 开发阶段、测试阶段,尤其适合单人开发的小项目。 例如开发完毕需要...

    【MySQL面试题干货集合】20个经典常用面试题-需要找工作的一定要看 共11页.pdf

    8.2 备份恢复时间; 7 8.3 xtrabackup实现原理 7 9 MySQLdump中备份出来的sql,如果我想sql文件中,一行只有一个insert....value()的话,怎么办?如果备份需要带上master的复制点信息怎么办? 7 10 500台db,在最快...

    dbdump:一个小的命令行工具,它将以 MySQL 可以导入的格式转储 SQL Server 数据库

    数据库转储一个小的命令行工具,它将以 MySQL 可以导入的格式转储 SQL Server 数据库。 ##你需要什么为了运行 dbdump,您需要以下内容: 运行 SQL Server 的计算机。 您可以下载SQL Server 2008 Express的和SQL ...

    MySQL中数据导入恢复的简单教程

    有两个简单的方法MySQL中的数据加载到MySQL数据库从先前备份的文件。 LOAD DATA导入数据: MySQL提供了LOAD DATA语句,作为一个大容量数据加载。下面是一个例子声明中,读取一个文件dump.txt,,从当前目录加载到...

    用mysqldump备份和恢复指定表的方法

    代码如下:mysqldump -u user -p db tab1 tab2 &gt; db.sql 恢复 代码如下:mysql -u user -p db &lt; db.sql 参考: 1.拷备文件 : (保证数据库没有写操作(可以给表上锁定))直接拷贝文件不能移植到...

    docker环境下数据库的备份(postgresql, mysql) 实例代码

    posgresql 备份/恢复 1.备份 DATE=`date +%Y%m%d-%H%M` BACK_DATA=xxapp-data-${DATE}.out # 这里设置备份文件的名字, 加入日期是为了防止重复 docker exec pg-db pg_dumpall -U postgres &gt; ${BACK_DATA}...mysql 备份

    貌似很强的mysql备份策略分享

    每日凌晨2:00进行dump对相应数据库进行备份,同时对相应数据库进行...如果想恢复到今早10点的数据库,那么:1、完整备份整个当前数据库 代码如下:cd /var/lib/mysqlmysqldump -uroot -p123456 mydata &gt; mydata.bak  2

    嵌入式系统/ARM技术中的Linux EXT3下删除MySQL数据库的数据恢复

    平时管理员对每个数据库dump出以后,直接压缩成.gz包,再将所有重要的.gz 包合起来压缩成一个总的.tar.gz包,这些文件每日产生一次,覆盖原来的备份。数据文件及备份文件全部存储于data卷上。  一次系统维护中,...

Global site tag (gtag.js) - Google Analytics