MySQL备份与恢复之冷备

原创 2013年11月02日 11:50:57

一 什么是冷备

 

       用一句话概括冷备,就是把数据库服务,比如MySQL,Oracle停下来,然后使用拷贝、打包或者压缩命令对数据目录进行备份。如果数据出现异常,则可以通过备份数据恢复。冷备一般需要定制计划,比如什么时候做备份,每次对哪些数据进行备份等等。但是由于这样的备份占用过多的空间,对大数据量的环境下不一定适合,故生产环境很少使用。


二 冷备示意图

 

三 冷备实验


第一步,创建测试数据库,插入测试数据

mysql> use larrydb;
Database changed
mysql> show tables;
+-------------------+
| Tables_in_larrydb |
+-------------------+
| access            |
+-------------------+
1 row in set (0.00 sec)

mysql> drop table access;
Query OK, 0 rows affected (0.00 sec)

mysql> clear
mysql> show tables;
Empty set (0.00 sec)

mysql> 
mysql> create table class(
    -> cid int,
    -> cname varchar(30));
Query OK, 0 rows affected (0.01 sec)

mysql> show create table class \G;
*************************** 1. row ***************************
       Table: class
Create Table: CREATE TABLE `class` (
  `cid` int(11) DEFAULT NULL,
  `cname` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

ERROR: 
No query specified

mysql> create table stu(
    -> sid int,
    -> sname varchar(30),
    -> cid int) engine=myisam;
Query OK, 0 rows affected (0.00 sec)

mysql> show create table stu \G;
*************************** 1. row ***************************
       Table: stu
Create Table: CREATE TABLE `stu` (
  `sid` int(11) DEFAULT NULL,
  `sname` varchar(30) DEFAULT NULL,
  `cid` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

ERROR: 
No query specified

mysql> insert into class values(1,'linux'),(2,'oracle');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> desc class;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| cid   | int(11)     | YES  |     | NULL    |       |
| cname | varchar(30) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> desc stu;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| sid   | int(11)     | YES  |     | NULL    |       |
| sname | varchar(30) | YES  |     | NULL    |       |
| cid   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> insert into stu values(1,'larry01',1),(2,'larry02',2);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from stu;
+------+---------+------+
| sid  | sname   | cid  |
+------+---------+------+
|    1 | larry01 |    1 |
|    2 | larry02 |    2 |
+------+---------+------+

 

第二步,停掉MySQL

[root@serv01 ~]# /etc/init.d/mysqld stop
Shutting down MySQL... SUCCESS! 

 

第三步,创建备份目录,并修改拥有者和所属组

[root@serv01 ~]# mkdir /databackup
[root@serv01 ~]# chown mysql.mysql /databackup/ -R
[root@serv01 ~]# ll /databackup/ -d
drwxr-xr-x. 2 mysql mysql 4096 Sep 10 17:46 /databackup/
[root@serv01 ~]# cd /databackup/

 

第四步,冷备(使用tar命令)

[root@serv01 databackup]# tar -cvPzf mysql01.tar.gz 

 

第五步,测试冷备的数据是否正常,我们删除掉data下的所有数据

[root@serv01 databackup]# rm -rf /usr/local/mysql/data/*

 

第六步,删除所有数据后数据库不能启动

[root@serv01 databackup]# /etc/init.d/mysqld start
Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/serv01.host.com.pid).

 

第七步,恢复数据(使用tar命令)

[root@serv01 databackup]# tar -xvPf mysql01.tar.gz 

 

第八步,启动MySQL,然后登录MySQL,查看数据是否丢失,如果数据正常代表冷备成功

[root@serv01 databackup]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS! 

[root@serv01 ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.29-log Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use larrydb;
Database changed
mysql> select * from class;
+------+--------+
| cid  | cname  |
+------+--------+
|    1 | linux  |
|    2 | oracle |
+------+--------+
2 rows in set (0.00 sec)

mysql> select * from stu;
+------+---------+------+
| sid  | sname   | cid  |
+------+---------+------+
|    1 | larry01 |    1 |
|    2 | larry02 |    2 |
+------+---------+------+
2 rows in set (0.00 sec)


  我的邮箱wgbno27@163.com
  新浪微博@justdb         
  微信公众平台:JustOracle(微信号:justoracle)
  数据库技术交流群:336882565(加群时验证 From CSDN XXX)
  All is well
  2013年11月2日
  By Larry Wen


katoon Sina CSDN
@Wentasy 博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。原创博文如需转载请注明出处,谢谢 :) [CSDN博客]
版权声明:本文为博主原创文章,未经博主允许不得转载。

mysql 冷备注意事项

先说下冷备方案: 大概两个步骤:1、
  • z1988316
  • z1988316
  • 2014年07月10日 21:37
  • 1337

MySQL数据库的热备份和冷备份的优缺点

文章转自:http://www.linuxidc.com/Linux/2014-03/98710.htm 冷备份(OFF, 慢, 时间点上恢复) 冷备份发生在数据库已经正常关闭的情况下,当正常关闭...
  • xhzhang_pbi
  • xhzhang_pbi
  • 2015年03月13日 17:09
  • 2422

Oracle 11g 采用冷备异机恢复数据库

今日做一个实验,验证一下主库采用冷备的方式进行异机恢复数据库都需要哪些文件 ####主库进行停机操场##### [oracle@ora11] /home/oracle> sqlplus / as ...
  • xuzhenxiang
  • xuzhenxiang
  • 2015年07月25日 09:02
  • 644

MongoDB的冷备份与热备份

不管是什么数据库都会考虑数据的备份复制,故障切换等。当一些数据库服务器读写比高时,我们还要考虑实现这些数据库服务器的负载均衡等功能。我们就来看看MongoDB是怎么实现这些功能。  Backup/R...
  • Hui_Na
  • Hui_Na
  • 2016年01月21日 10:40
  • 5673

Oracle数据库的冷备份及冷备份异地恢复方法

Oracle数据库的冷备份及冷备份异地恢复方法 分类: Oracle2013-07-11 09:06 51人阅读 评论(0) 收藏 举报 如何对Oracle数据库进行冷备份呢?如果是冷备份异地...
  • haiross
  • haiross
  • 2013年10月17日 17:12
  • 2053

从 MySQL 冷备说起

MySQL 冷备、也叫离线备份          是最简单:     ● 备份简单:只要拷贝相关文件即可     ● 恢复简单:只需把拷贝的文件放在同一个目录即可     也是最安全:     ● 获...
  • linwaterbin
  • linwaterbin
  • 2013年06月09日 15:20
  • 1972

热备份、温备份、冷备份(Hot/Warm/Cold Backup)

1  系统备份   按备份系统的准备程度,可将其分为冷备份、温备份和热备份三大类。   1.1  冷备份  备份系统未安装或未配置成与当前使用的系统相同或相似的运行环境, 应用系统数据没有...
  • u014558484
  • u014558484
  • 2016年07月24日 23:04
  • 4029

MySQL备份与恢复之MySQL 延时备份

在上一篇文章中,我们讲到MySQL备份与恢复之percona-xtrabackup实现增量备份及恢复,percona-xtrabackup是一个优秀的用于增量备份的工具。今天我们讲到的延时备份也是使用...
  • Wentasy
  • Wentasy
  • 2013年12月08日 16:05
  • 3142

恢复OA系统数据库--ORACLE11G通过冷备份迁移数据-(很简单,很实用,特别是数据量不大时很好用)

http://blog.csdn.net/xuejiayue1105/article/details/28423015 恢复OA系统数据库       -------ORACL...
  • e_wsq
  • e_wsq
  • 2014年12月06日 13:50
  • 1198

热备份和冷备份区别

一、 冷备份      冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将要害性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最...
  • singit
  • singit
  • 2015年08月17日 14:46
  • 4932
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL备份与恢复之冷备
举报原因:
原因补充:

(最多只允许输入30个字)