---------------------------------------------
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的数据库和表是直接通过目录和表文件实现的,因此可以通过直接复制文件的方法来备份数据库。不过,直接复制文件不能够移植到其他机器上,除非要复制的表使用MyISAM 存储格式。 ; 如果
InnoDB引擎是事务性存储引擎,每一条语句都会写日志,并且每一条语句在日志里面都有时间点,那么在备份的时候,mysql可以根据这个日志来进行redo和undo,将备份的时候没有提交的事务进行回滚,已经提交了的进行重做...
mysql,oracle,sqlserver三大数据库备份与还原,在src\test\Test.java里有用例。 DataBase dataBase = new DataBase(); //MySQL dataBase.setMysqlBinPath("D:/dump/bin"); dataBase.setBackPath("D:/dump/...
source dump.sql --在mysql命令行中输入该命令即可恢复 备份整个数据库: mysqldump -uroot -123456 -A > all.sql 备份整个数据库结构: mysqldump -uroot -p123456 -P3306 -A -d > all_002.sql 备份单个数据库结构...
MysqlDataDumper 允许从 MySQL 数据库备份和恢复数据的简单助手类。 $ dumper = new Infotech \ MysqlDataDumper \ MysqlDataDumper ();$ dumper -> addConnection ( $ pdoInstance );$ dumper -> backup (); // ...
mysql-backup 提供一种简单方法来备份和恢复运行在容器中的MySQL数据库mysql-backup 将 mysql 数据库备份到...任何地方! 概述 mysql-backup 是一种在数据库运行在容器中时进行 MySQL 数据库备份和恢复的简单方法。 ...
在Mysqldump官方工具中,如何只恢复某个库呢? 全库备份 [root@HE1 ~]# mysqldump -uroot -p --...那么如何从全库备份中抽取某张表呢,全库恢复,再恢复某张表小库还可以,大库就很麻烦了,那我们可以利用正则表达
前言 虽说现在这世道有些爱情是有价的,但是数据是无价的,数据备份是尤为的重要,可以在你未来的某一天不小心删库了,不用着急跑路。 本片文章介绍的方案是利用Linux...列出我常用的两种数据库的备份和恢复命令 postg
11 MySQL 基准套件 12 MySQL 实用程序 12.1 各种 MySQL 程序概述 12.2 管理一个 MySQL 服务器 12.3 从 MySQL 数据库和表中倒出(dump)结构和数据 12.4 从文本文件导入数据 12.5 MySQL ...
11 MySQL 基准套件 12 MySQL 实用程序 12.1 各种 MySQL 程序概述 12.2 管理一个 MySQL 服务器 12.3 从 MySQL 数据库和表中倒出(dump)结构和数据 12.4 从文本文件导入数据 12.5 ...
还原一个数据库:mysql -h localhost -u root -p123456 www<c> d:\www2008-2-26.sql //以下是在程序中进行测试 //$command = “mysqldump –opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile”;...
* 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相关...
一款MySql数据库备份(快照保存)与恢复软件。功能上与dump类似,但是提供了相对有好的交互界面,能够有效地管理导出的sql文件。 # 使用场景 开发阶段、测试阶段,尤其适合单人开发的小项目。 例如开发完毕需要...
8.2 备份恢复时间; 7 8.3 xtrabackup实现原理 7 9 MySQLdump中备份出来的sql,如果我想sql文件中,一行只有一个insert....value()的话,怎么办?如果备份需要带上master的复制点信息怎么办? 7 10 500台db,在最快...
数据库转储一个小的命令行工具,它将以 MySQL 可以导入的格式转储 SQL Server 数据库。 ##你需要什么为了运行 dbdump,您需要以下内容: 运行 SQL Server 的计算机。 您可以下载SQL Server 2008 Express的和SQL ...
有两个简单的方法MySQL中的数据加载到MySQL数据库从先前备份的文件。 LOAD DATA导入数据: MySQL提供了LOAD DATA语句,作为一个大容量数据加载。下面是一个例子声明中,读取一个文件dump.txt,,从当前目录加载到...
代码如下:mysqldump -u user -p db tab1 tab2 > db.sql 恢复 代码如下:mysql -u user -p db < db.sql 参考: 1.拷备文件 : (保证数据库没有写操作(可以给表上锁定))直接拷贝文件不能移植到...
posgresql 备份/恢复 1.备份 DATE=`date +%Y%m%d-%H%M` BACK_DATA=xxapp-data-${DATE}.out # 这里设置备份文件的名字, 加入日期是为了防止重复 docker exec pg-db pg_dumpall -U postgres > ${BACK_DATA}...mysql 备份
每日凌晨2:00进行dump对相应数据库进行备份,同时对相应数据库进行...如果想恢复到今早10点的数据库,那么:1、完整备份整个当前数据库 代码如下:cd /var/lib/mysqlmysqldump -uroot -p123456 mydata > mydata.bak 2
平时管理员对每个数据库dump出以后,直接压缩成.gz包,再将所有重要的.gz 包合起来压缩成一个总的.tar.gz包,这些文件每日产生一次,覆盖原来的备份。数据文件及备份文件全部存储于data卷上。 一次系统维护中,...