当前位置:文档之家› 我的MYSQL学习心得备份和恢复

我的MYSQL学习心得备份和恢复

我的MYSQL学习心得备份和恢复
我的MYSQL学习心得备份和恢复

备份

逻辑备份方法

使用MYSQLDUMP命令备份

MYSQLDUMP是MYSQL提供的一个非常有用的数据库备份工具。mysqldump命令执行时将数据库备份成一个文本文件,

该文件中实际上包含了多个CREATE 和INSERT语句,使用这些语句可以重新创建表和插入数据

MYSQLDUMP的语法和选项

mysqldump -u user-p pwd -h host dbname[tbname,[tbname...]]>filename.sql

选项/Option作用/Action Performed--add-drop-table

这个选项将会在每一个表的前面加上DROP TABLE IF EXISTS语句,这样可以保证导回MySQL数据

库的时候不会出错,因为每次导回的时候,都会首先检查表是否存在,存在就删除--add-locks这个

选项会在INSERT语句中捆上一个LOCK TABLE和UNLOCK TABLE语句。这就防止在这些记录被再次

导入数据库时其他用户对表进行的操作-c or- complete_insert

这个选项使得mysqldump命令给每一个产生INSERT语句加上列(field)的名字。当把数据导出导

另外一个数据库时这个选项很有用。--delayed-insert 在INSERT命令中加入DELAY选项-F or

-flush-logs 使用这个选项,在执行导出之前将会刷新MySQL服务器的log.-f or-force 使用

这个选项,即使有错误发生,仍然继续导出--full 这个选项把附加信息也加到CREATE TABLE的语

句中-l or-lock-tables 使用这个选项,导出表的时候服务器将会给表加锁。-t or-no-create-info

这个选项使的mysqldump命令不创建CREATE TABLE语句,这个选项在您只需要数据而不需要DDL (数据库定义语句)时很方便。-d or-no-data 这个选项使的mysqldump命令不创建INSERT语句。

在您只需要DDL语句时,可以使用这个选项。--opt 此选项将打开所有会提高文件导出速度和创造一

个可以更快导入的文件的选项。-q or-quick 这个选项使得MySQL不会把整个导出的内容读入内存

再执行导出,而是在读到的时候就写入导文件中。-T path or-tab = path 这个选项将会创建两

个文件,一个文件包含DDL语句或者表创建语句,另一个文件包含数据。DDL文件被命名为

table_name.sql,数据文件被命名为table_name.txt.路径名是存放这两个文件的目录。目录必须

已经存在,并且命令的使用者有对文件的特权。-w "WHERE Clause" or-where="Where clause "

如前面所讲的,您可以使用这一选项来过筛选将要放到导出文件的数据。

假定您需要为一个表单中要用到的帐号建立一个文件,经理要看今年(2004年)所有的订单(Orders),

它们并不对DDL感兴趣,并且需要文件有逗号分隔,因为这样就很容易导入到Excel中。为了完成这个任务,您可以使用下面的句子:

bin/mysqldump –p –where "Order_Date >='2000-01-01'"

–tab =/home/mark –no-create-info –fields-terminated-by=, Meet_A_Geek Orders

这将会得到您想要的结果。schema:模式

The set of statements, expressed in data definition language, that completely describe the structure of a data base.

一组以数据定义语言来表达的语句集,该语句集完整地描述了数据库的结构。SELECT INTO OUTFILE :mysqldump提供了很多选项,包括调试和压缩的,在这里只是列举最有用的。

运行帮助命令mysqldump --help可以获得特定版本的完整选项列表

user表示用户名称;

host表示登录用户的主机名称;

pwd为登录密码;

dbname为需要备份的数据库名称;

tbname为dbname数据库中需要备份的数据表,可以指定多个需要备份的表;

右箭头“>”告诉mysqldump将备份数据库表定义和数据写入备份文件;

filename为备份文件的名称

1、使用mysqldump备份单个数据库中的所有表

数据库的记录是这样的

打开cmd,然后执行下面的命令

可以看到C盘下面已经生成了school_2014-7-10.sql文件

使用editplus来打开这个sql文件

-- MySQL dump 10.13 Distrib 5.5.20, for Win32 (x86)

--

-- Host: 127.0.0.1 Database: school

-- ------------------------------------------------------

-- Server version 5.5.20-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET

@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8

*/;/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;/*!40103 SET TIME_ZONE='+00:00' */;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0

*/;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,

FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE,

SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--

-- Table structure for table `book`

--DROP TABLE IF EXISTS `book`;/*!40101 SET @saved_cs_client =

@@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `book` (

`bookid` int(11) NOT NULL,

`bookname` varchar(255) NOT NULL,

`authors` varchar(255) NOT NULL,

`info` varchar(255) DEFAULT NULL,

`comment` varchar(255) DEFAULT NULL,

`year_publication` year(4) NOT NULL,

KEY `BkNameIdx` (`bookname`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;/*!40101 SET character_set_client =

@saved_cs_client */;

--

-- Dumping data for table `book`

--

LOCK TABLES `book` WRITE;/*!40000 ALTER TABLE `book` DISABLE KEYS */;INSERT INTO `book` VALUES (1,'鍓戝湥','灏忔槑','13','hao',2013);/*!40000 ALTER TABLE `book` ENABLE KEYS */;

UNLOCK TABLES;

--

-- Table structure for table `student`

--DROP TABLE IF EXISTS `student`;/*!40101 SET @saved_cs_client =

@@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `student` (

`stuno` int(11) DEFAULT NULL,

`stuname` varchar(60) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*!40101 SET character_set_client =

@saved_cs_client */;

--

-- Dumping data for table `student`

--

LOCK TABLES `student` WRITE;/*!40000 ALTER TABLE `student` DISABLE KEYS

*/;INSERT INTO `student` VALUES

(2,'xiaofang'),(3,'zhanghai'),(6,'haojie');/*!40000 ALTER TABLE `student` ENABLE KEYS */;

UNLOCK TABLES;

--

-- Table structure for table `stuinfo`

--DROP TABLE IF EXISTS `stuinfo`;/*!40101 SET @saved_cs_client =

@@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `stuinfo` (

`stuno` int(11) DEFAULT NULL,

`class` varchar(60) DEFAULT NULL,

`city` varchar(60) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*!40101 SET character_set_client =

@saved_cs_client */;

--

-- Dumping data for table `stuinfo`

--

LOCK TABLES `stuinfo` WRITE;/*!40000 ALTER TABLE `stuinfo` DISABLE KEYS

*/;INSERT INTO `stuinfo` VALUES

(1,'wuban','henan'),(2,'liuban','hebei'),(3,'qiban','shandong');/*!40000 ALTER TABLE `stuinfo` ENABLE KEYS */;

UNLOCK TABLES;/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET

FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET

UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40101 SET

CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET

CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET

COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;/*!40111 SET

SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2014-07-23 22:04:16

可以看到,备份文件包含了一些信息,文件开头首先写明了mysqldump工具的版本号;然后是主机信息,以及备份的数据库名称,最后是mysql服务器的版本号5.5.20

备份文件接下来的部分是一些SET语句,这些语句将一些系统变量赋值给用户定义变量,以确保被恢复的数据库的系统变量和原来

备份时的变量相同

例如:

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

该set语句将当前系统变量character_set_client的值赋值给用户变量

@OLD_CHARACTER_SET_CLIENT

备份文件的最后几行mysql使用set语句恢复服务器系统变量原来的值,例如:

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

该语句将用户定义变量@OLD_CHARACTER_SET_CLIENT 中保存的值赋值给实际的系统变量OLD_CHARACTER_SET_CLIENT

备份文件中的“--”字符开头的行为注释语句;以“/*!”开头、以“*/”结尾的语句为可执行的mysql注释,这些语句可以被mysql执行

但在其他数据库管理系统将被作为注释忽略,这可以提高数据库的可移植性

另外注意到,备份文件开始的一些语句以数字开头,这些数字代表了mysql版本号,该数字告诉我们这些语句只有在指定的mysql版本

或者比该版本高的情况下才能执行。

例如:40101,表明这些语句只有在mysql版本为4.01.01或者更高版本的条件下才可以执行

2、使用mysqldump备份数据库中的某个表

备份school数据库里面的book表

-- MySQL dump 10.13 Distrib 5.5.20, for Win32 (x86)

--

-- Host: 127.0.0.1 Database: school

-- ------------------------------------------------------

-- Server version 5.5.20-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET

@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8 */;/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;/*!40103 SET TIME_ZONE='+00:00' */;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0

*/;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,

FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE,

SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--

-- Table structure for table `book`

--DROP TABLE IF EXISTS `book`;/*!40101 SET @saved_cs_client =

@@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `book` (

`bookid` int(11) NOT NULL,

`bookname` varchar(255) NOT NULL,

`authors` varchar(255) NOT NULL,

`info` varchar(255) DEFAULT NULL,

`comment` varchar(255) DEFAULT NULL,

`year_publication` year(4) NOT NULL,

KEY `BkNameIdx` (`bookname`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;/*!40101 SET character_set_client =

@saved_cs_client */;

--

-- Dumping data for table `book`

--

LOCK TABLES `book` WRITE;/*!40000 ALTER TABLE `book` DISABLE KEYS */;INSERT INTO `book` VALUES (1,'剑圣','小明','13','hao',2013);/*!40000 ALTER TABLE

`book` ENABLE KEYS */;

UNLOCK TABLES;/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET

FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET

UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40101 SET

CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET

CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET

COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;/*!40111 SET

SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2014-07-23 22:24:29

备份文件中的内容跟前面的介绍是一样的,唯一不同的是只包含了book表的CREATE语句和INSERT语句

3、使用mysqldump备份多个数据库

如果要使用mysqldump备份多个数据库,需要使用--databases参数。

使用--databases参数之后,必须指定至少一个数据库的名称,多个数据库名称之间用空格隔开

使用mysqldump备份school库和test库

备份文件里的内容,基本上跟第一个例子一样,但是指明了里面的内容那一部分属于test 库,哪一部分属于school库

View Code

4、使用--all-databases参数备份系统中所有的数据库

使用--all-databases不需要指定数据库名称

执行完毕之后会产生all_2014-7-10.sql的备份文件,里面会包含了所有数据库的备份信息

提示:如果在服务器上进行备份,并且表均为myisam,应考虑使用mysqlhotcopy

因为可以更快地进行备份和恢复

使用mysqlhotcopy,如果是Windows操作系统,需要先安装perl脚本组件才能使用,因为mysqlhotcopy是使用perl来编写的

提示

(1)如果你未使用--quick或者--opt选项,那么mysqldump将在转储结果之前把全部内容载入到内存中。这在你转储大数据量的数据库时将会有些问题。该选项默认是打开的,但可以使用--skip-opt来关闭它。

(2)使用--skip-comments可以去掉导出文件中的注释语句

(3)使用--compact选项可以只输出最重要的语句,而不输出注释及删除表语句等等

(4)使用--database或-B选项,可以转储多个数据库,在这个选项名后的参数都被认定为数据库名

SQLSERVER逻辑备份

我发现SQLSERVER的备份概念并没有ORACLE和MYSQL那么多

我们通常都会使用下面的两个SQL语句来备份SQLSERVER数据库,例如备份test库

BACKUP DATABASE test TO DISK='c:\test.bak'BACKUP LOG test TO

DISK='c:\test_log.bak'

第一个SQL是完整备份test库,如果加上WITH DIFFERENTIAL就是差异备份

第二个SQL是备份test库的日志

实际上从我眼中的理解,SQLSERVER就是将数据文件和必要的日志信息放入一个压缩包里面,类似于MYSQL的物理备份,直接复制文件,只是MYSQL并没有进行打包压缩

SQLSERVER的逻辑备份

逻辑备份就是生成表定义脚本和数据插入脚本,SQLSERVER2008开始支持生成数据脚本,在SQLSERVER2008之前只支持生成表定义脚本

我所用的数据库是SQLSERVER2012 SP1

选中需要生成脚本的数据库

比如我要导出test表的数据和表定义

要选择架构和数据,并且要选择索引,这样就会生成表的数据、定义、索引

生成的脚本如下

USE[sss]GO/****** Object: Table [dbo].[test] Script Date: 2014/7/24 11:27:44 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[test](

[a][int]NULL

) ON[PRIMARY]

GOINSERT[dbo].[test] ([a]) VALUES (10)GO

由于test表是没有任何索引的,所以脚本里看不到CREATE INDEX语句

实际上各种数据库的备份恢复方法都是大同小异的

ORACLE冷备份与恢复

逻辑备份和物理备份

1、导出create table 、create index、insert into 表等语句(逻辑备份)

mysql:mysqldump、load data infile、select into outfile

sqlserver:生成脚本、导入导出向导

oracle:(exp/imp)

2、直接复制文件(物理备份)

sqlserver:backup database语句、backup log语句、停SQLSERVER服务直接拷贝数据文件

mysql:mysqlhotcopy、innobackupex

oracle:rman、直接将关键性文件拷贝到另外的位置、(exp/imp)、(expdp/impdp)相似点:上面的各种数据库的各种备份还原方法,每一种基本上都会有一个单独的工具来做例如sqlserver导入导出向导就是一个单独的exe来做

oracle的rman也是一个单独的工具

冷备份和热备份:无论oracle、sqlserver、mysql都有冷备份和热备份的概念

冷备份其实可以简单理解为:停止服务进行备份

热备份其实可以简单理解为:不停止服务进行备份(在线)

上面的停止服务,正确的来讲应该是停止数据库的写入

为什么mysql的myisam引擎只支持冷备份呢?

大家可以先想一下innodb引擎,innodb引擎是事务性存储引擎,每一条语句都会写日志,并且每一条语句在日志里面都有时间点

那么在备份的时候,mysql可以根据这个日志来进行redo和undo,将备份的时候没有提交的事务进行回滚,已经提交了的进行重做

但是myisam不行,myisam是没有日志的,为了保证一致性,只能停机或者锁表进行备份

在书《MYSQL性能调优和架构设计》里面说到了事务的作用

大家可以想一想,为什么sqlserver支持从某一个lsn或者时刻进行恢复数据库,他也是从日志里面读取日志的lsn号来进行恢复到某一个lsn时刻的数据或者某一个时刻的数据

假如没有事务日志,那么sqlserver是做不到时点还原的

热备份、冷备份

为什么SQLSERVER需要停止SQLSERVER服务才可以拷贝物理数据文件,为的都是保证数据一致性

物理备份方法

1、直接复制整个数据库目录

因为MYSQL表保存为文件方式,所以可以直接复制MYSQL数据库的存储目录以及文件进行备份。

MYSQL的数据库目录位置不一定相同,在Windows平台下,MYSQL5.6存放数据库的目录通常默认为

C:\Documents and Settings\All User\Application Data\MySQL\MYSQL Server

5.6\data

或者其他用户自定义的目录;

在Linux平台下,数据库目录位置通常为/var/lib/mysql/,不同Linux版本下目录会有不同

这是一种简单、快速、有效的备份方式。要想保持备份一致,备份前需要对相关表执行LOCK TABLES操作,然后对表执行

FLUSH TABLES。这样当复制数据库目录中的文件时,允许其他客户继续查询表。需要FLUSH TABLES语句来确保开始

备份前将所有激活的索引页写入磁盘。

当然,也可以停止MYSQL服务再进行备份操作

这种方法虽然简单,但并不是最好的方法。因为这种方法对INNODB存储引擎的表不适用。使用这种方法备份的数据最好还原

到相同版本的服务器中,不同的版本可能不兼容。

注意:在mysql版本中,第一个数字表示主版本号,主版本号相同的MYSQL数据库文件格式相同

2、使用mysqlhotcopy工具快速备份

mysqlhotcopy是一个perl脚本,最初由Tim Bunce编写并提供。他使用LOCK TABLES 、FLUSH TABLES和cp或scp

来快速备份数据库。他是备份数据库或单个表的最快途径,但他只能运行在数据库目录所在机器上,并且只能备份myisam类型的表。

语法

mysqlhotcopy db_name_1,...db_name_n /path/to/new_directory

db_name_1...n代表要备份的数据库的名称;

path/to/new_directory指定备份文件目录

示例

在Linux下面使用mysqlhotcopy备份test库到/usr/backup

mysqlhotcopy -u root -p test /usr/backup

要想执行mysqlhotcopy,必须可以访问备份的表文件,具有那些表的SELECT权限、RELOAD权限(以便能够执行FLUSH TABLES)

和LOCK TABLES权限

提示:mysqlhotcopy只是将表所在目录复制到另一个位置,只能用于备份myisam和archive表。备份innodb表会出现错误信息

由于他复制本地格式的文件,故也不能移植到其他硬件或操作系统下

还原

逻辑还原

1、使用mysql命令进行还原

对于已经备份的包含CREATE、INSERT语句的文本文件,可以使用myslq命令导入数据库中

备份的sql文件中包含CREATE、INSERT语句(有时也会有DROP语句)。mysql命令可以直接执行文件中的这些语句

其语法如下:

mysql -u user-p [dbname]

user是执行backup.sql中语句的用户名;-p表示输入用户密码;dbname是数据库名如果filename.sql文件为mysqldump工具创建的包含创建数据库语句的文件,执行的时候不需要指定数据库名

用mysql命令将school_2014-7-10.sql文件中的备份导入到数据库中

mysql -u root -h 127.0.0.1-p school

执行语句之前我们必须建好school数据库,如果不存在恢复过程将会出错。

可以看到表数据都已经导入到数据库了

如果已经登录mysql,那么可以使用source命令导入备份文件

使用source命令导入备份文件school_2014-7-10.sql

执行source命令前必须使用use 语句选择好数据库,不然会出现ERROR

1046(3D000):NO DATABASE SELECTED 的错误

还有一点要注意的是只能在cmd界面下执行,不能在mysql工具里面执行source命令,否则会报错

因为cmd是直接调用mysql.exe来执行命令的

而这些mysql 编辑工具只是利用mysql connector连接mysql,来管理mysql并不是直接调用mysql.exe,所以执行source会报错

物理还原

2、直接复制到数据库目录

如果数据库通过复制数据库文件备份,可以直接复制备份文件到MYSQL数据目录下实现还原。通过这种方式还原时,

必须保证备份数据的数据库和待还原的数据库服务器的主版本号相同。

而且这种方式只对MYISAM引擎有效,对于innodb引擎的表不可用

MySQL数据库备份与恢复

MySQL数据库备份与恢复方法 常有新手问我该怎么备份数据库,下面介绍3种备份数据库的方法: MySQL中的每一个数据库和数据表分别对应文件系统中的目录和其下的文件。 在Linux下数据库文件的存放目录一般为/var/lib/mysql。在Windows下这个目录视MySQL 的安装路径而定,DiaHosting的技术员一般为客户安装在D:serversoftmysql下。 如,有一个名为bbs的数据库,那么bbs的数据库文件会存放在/var/lib/mysql/bbs(linux)或者D:serversoftmysqlbbs(Windows)下。 备份文件前,需要将MySQL服务停止,然后将数据库目录拷贝即可。 恢复数据数据库时,需要先创建好一个数据库(不一定同名),然后将备份出来的文件(注意,不是目录)复制到对应的MySQL数据库目录中。 使用这一方法备份和恢复数据库时,需要新旧的MySQL版本一致,否则可能会出现错误。备份数据库: mysqldump –user=root –password=root密码–lock-all-tables 数据库名> 备份文件.sql 恢复数据库: mysql -u root –password=root密码数据库名< 备份文件.sql (3)使用Web程序 在这里我们推荐使用“帝国备份王”对MySQL进行备份。 主要优点: 1,跨平台。Windows与Linux下各种WEB环境均可以运行。 2,智能识别编码,解决备份时的乱码问题。 3,不同的MySQL版本间都可以进行备份和恢复操作。 4,采用分组备份,即使是超过1G的数据库也可以正常备份。 登录“帝国备份王”

MySQL完全备份、增量备份与恢复

MySQL完全备份、增量备份与恢复 适用版本] MySQL 4.x - 6.x [ 配置] 执行增量备份的前提条件是MySQL打开log-bin日志开关,例如在my.ini或https://www.doczj.com/doc/9d12410576.html,f中 加入 log-bin=C:/Program Files/MySQL/MySQL Server 6.0/Data/mysql-bin “log-bin=”后的字符串为日志记载目录,一般建议放在不同于mysql数据目录的磁盘上。 [ 完全备份] 假定星期日下午1点执行完全备份,适用于MyISAM存储引擎。 mysqldump --lock-all-tables --flush-logs --master-data=2 -u root -p test > backup_sunday_1_PM.sql 对于InnoDB 将--lock-all-tables替换为--single-transaction --flush-logs 为结束当前日志,生成新日志文件 --master-data=2 选项将会在输出SQL中记录下完全备份后新日志文件的名称, 用于日后恢复时参考,例如输出的备份SQL文件中含有: -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=106; 其他说明: 如果mysqldump加上--delete-master-logs 则清除以前的日志,以释放空间。但是如果服务器配置为镜像的复制主服务器,用mysqldump --delete-master-logs删掉MySQL二进制日志很危险,因为从服务器可能还没有完全处理该二进制日志的内容。在这种情况下,使用PURGE MASTER LOGS更为安全。 [ 增量备份] 每日定时使用mysqladmin flush-logs来创建新日志,并结束前一日志写入过程。并 把前一日志备份,例如上例中开始保存数据目录下的日志文件mysql-bin.000002 , ... [ 从备份中恢复] * 恢复完全备份 mysql -u root -p < backup_sunday_1_PM.sql * 恢复增量备份 mysqlbinlog mysql-bin.000002 ... | mysql -u root -p 注意此次恢复过程亦会写入日志文件,如果数据量很大,建议先关闭日志功能。

实验九:数据库备份及恢复

实验九:数据库备份及恢复 一、实验目的 1.熟悉数据库备份及恢复机制; 2.了解SQL Server的数据备份和恢复机制; 3.掌握SQL-Server中数据库备份和恢复的方法。 二、实验环境 已安装SQL Server 2005 企业版的计算机; 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1.了解创建备份设备和进行数据库完全备份操作的方法; 2.了解进行数据库恢复的步骤; 3.完成实验报告。 五、实验内容及步骤 以管理员帐号登录SQL Server Management Studio,以原有数据库stu为基础,请使用Management Stuio界面方式或T-SQL 语句实现以下操作: 1.针对数据库stu创建完全数据库备份集stu.bak,目标磁盘为D:\ user \ stu.bak; BACKUP DATABASE student TO DISK='C:\user\stu.bak' 2.在数据库stu中新建数据表ceshi,内容自定,然后针对数据库stu创建 差异备份; CREATE TABLE ceshi ( Sno char(9)NOT NULL primary key, Sname char(6)NOT NULL, Ssex char(2)NULL, Sage int NULL, Sdept varchar(8)NULL ) GO BACKUP DATABASE student TO DISK='C:\user\stu_differential.bak' WITH DIFFERENTIAL 3.向数据库stu的数据表ceshi插入部分记录,然后针对数据库stu创建 事务日志备份;

数据库备份与恢复

Oracle数据库备份与恢复的三种方法 2009-11-04 16:00 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1)、表方式(T方式),将指定表的数据导出。 (2)、用户方式(U方式),将指定用户的所有对象及数据导出。 (3)、全库方式(Full方式),瘵数据库中的所有对象导出。 数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。 2、增量导出/导入 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。 增量导出包括三种类型: (1)、“完全”增量导出(Complete) 即备份三个数据库,比如: (2)、“增量型”增量导出 备份上一次备份后改变的数据,比如:

(3)、“累积型”增量导出 累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如: 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。 比如数据库的被封任务可以做如下安排: 星期一:完全备份(A) 星期二:增量导出(B) 星期三:增量导出(C) 星期四:增量导出(D) 星期五:累计导出(E) 星期六:增量导出(F) 星期日:增量导出(G) 如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库: 第一步:用命令CREATE DATABASE重新生成数据库结构; 第二步:创建一个足够大的附加回滚。 第三步:完全增量导入A: 第四步:累计增量导入E: 第五步:最近增量导入F:

mysql备份与恢复方案

服务器备份方案 一、MYSQL数据库备份与恢复: 数据库本地备份:当数据量少的时候可以在每天凌晨1点-3点进行完全备份,随着数据库的增大,可以2两小时(按照需求设置时间)做增量备份与完全备份相结合的备份方式以确保数据的安全。 数据库完全备份脚本: 1.确定我们备份文件存放的目录这里我把所有备份文件放到/home/mysqlback 2.确定需要备份的数据库,这里我们用备份d_test这个数据库来说明。 dbuser="root" #定义数据库用户名 dbpasswd="123456" #定义数据库密码 dbname="d_test" #定义需要备份的数据库 date1=`date +%Y%m%d` #读取当前日期 date2 = `date +%Y%m%d%H%M%S` #读取当前的日期时间Y年m月d日H小时M分钟S秒 date3 = `date -d -5day +"%Y%m%d"` #读取当天日期之5天前的日期 back = /home/mysqlback/$date1 #备份文件存放目录 #判断是不是有文件存放目录如果没有则新建。 if [ ! -d $back ] then mkdir -p $back fi #使用mysqldump命令来备份指定的数据库并且压缩成gz包。 mysqldump -u$dbuser -p$dbpasswd $dbname | gzip > $back/$dbname$date2.sql.gz #删除指定5天前备份的过期文件以便节省磁盘空间 cd /home/mysqlback rm -rf $date3 异地备份 首先准备一台异地的服务器,并且搭建好vsftp(vsftp具体搭建详细步骤请参考VSFTP搭建文档) 异地备份到vsftp服务器上脚本如下:

MySQL备份与恢复(PDF版)

下面文章摘录的主题:mysql日志文件,使用mysqld加相应选项来启用某种日志。Mysql 完全备份及恢复:mysqldump对MyISAM或InnoDB完全备份,mysqlhotcopy对MyISAM完全备份。增量备份:使用二进制日志增量备份,使用mysqlbinlog命令恢复二进制日志。 SQL语法备份及恢复。拷贝数据文件备份(对Innodb还需拷贝日志文件)。MyISAM表的检查与修复(另见《MySql存储引擎》)。Innodb表的碎片整理和模糊检查点。 MySQL备份和恢复 作/译者:叶金荣 本文讨论MySQL的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM和Innodb,文中设计的MySQL版本为 5.0.22。 目前MySQL支持的免费备份工具有:mysqldump、mysqlhotcopy,还可以用SQL语法进行备份:BACKUP TABLE或者SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件。MyISAM表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用。Innodb所有的表都保存在同一个数据文件ibdata1中(也可能是多个文件,或者是独立的表空间文件),相对来说比较不好备份,免费的方案可以是拷贝数据文件、备份binlog,或者用mysqldump。 1、mysqldump 1.1备份 mysqldump是采用SQL级别的备份机制,它将数据表导成SQL脚本文件,在不同的MySQL版本之间升级时相对比较合适,这也是最常用的备份方法。 现在来讲一下mysqldump的一些主要参数: 1.--compatible=name 它告诉mysqldump,导出的数据将和哪种数据库或哪个旧版本的MySQL服务器相兼容。值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。 2.--complete-insert,-c 导出的数据采用包含字段名的完整INSERT方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。 3.--default-character-set=charset 指定导出数据时采用何种字符集,如果数据表不是采用默认的latin1字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。 4.--disable-keys 告诉mysqldump在INSERT语句的开头和结尾增加/*!40000ALTER TABLE table DISABLE KEYS*/;和/*!40000ALTER TABLE table ENABLE KEYS*/;语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合MyISAM表。 5.--extended-insert=true|false 默认情况下,mysqldump开启--complete-insert模式,因此不想用它的的话,就使用本选项,设定它的值为false即可。 6.--hex-blob

数据库备份和还原操作方法

数据库备份和还原 在收费系统运行一段时间后,如发生系统不正常要重装WINDOWS操作系统或更换电脑时,须按照下面“数据库备份”方法将原系统的数据文件备份,并将备份文件妥善保存(避免随系统重装而丢失数据),在重装系统或更换电脑后,按照软件的安装方法顺序安装SQL2000数据库和消费/水控管理软件,然后按照下面“数据还原”方法进行数据库还原,完成后系统中的数据即与原数据完全[相同。 数据库备份: 以ICSF为例,打开ICSF软件,选择菜单栏下的系统维护,然后选择数据备份。(系统维护——数据备份)如图(1-1): 1-1 数据备份完成后,可以在基本资料——系统参数里(1-2),在弹出的对话框上的备份路径二(手动备份)里可以找到数据备份的路径(1-3)。如图:

1-2 1-3 提示: 1、上述方法为手动备份,本系统在使用后正常腿出系统时也会自动进行 数据备份,如已经无法正常开启原电脑(无法进行手动备份)则可将 原电脑硬盘连接到其他电脑中,找到“备份路径一”所指向的路径, 找到备份文件夹,将其中修改日期最近的备份文件拷贝出来用于数据 还原。 2、在安装收费/水控系统时建议不要将安装目录选在C盘,避免因格式 化的操作是备份数据丢失,如果已经将软件安装在C盘,则建议将备 份文件路径指定为其他盘。 数据还原 数据还原,首先要找到备份的数据文件。如上所述,备份文件存放在E:\软件\ICSF5.74\Mdbbak上,根据路径找到Mdbbak文件夹并打开。 打开Mdbbak文件夹后,里面有类似这样的(1-4)BAK文件。 找寻最新的BAK文件,并把它与软件安装包(光盘)中IC挂接数据库.exe软件拷贝到电脑任意一个目录(文件夹)中,然后将备份文件重命名(光标放在备份文件 上点鼠标右键,选择重命名),改为ICSF.db。如图:(1-5)

AnyBackup MySQL定时备份与恢复最佳实践手册

.

目录 第 1 章 . 概述 (1) 1.1.目标读者 (1) 1.2.本文档适用范围 (1) 1.3.MySQL 定时备份功能模块简介 (1) 第 2 章. MySQL 基础知识简介 (1) 2.1.MySQL 简介 (1) 2.2.MySQL 引擎介绍 (1) 2.3.关键技术原理 (1) 2.3.1.MySQL 数据库定时备份原理分析 (1) 2.3.2.MySQL 数据库恢复原理分析 (2) 第 3 章. MySQL 定时备份最佳实践 (3) 3.1.MySQL 定时备份最佳实践 (3) 3.1.1.部署注意事项 (3) 3.1.2.定时备份最佳操作 (3) 3.2.MySQL 恢复最佳实践 (13) 3.2.1.部署注意事项 (13) 3.2.2.定时备份的恢复最佳操作 (14) 3.3.FAQ (16)

第1章. 概述 本文档是爱数备仹容灾家族MySQL 一体化容灾最佳实践文档,主要描述了如何正确地使用爱数备仹容灾家族产品成员迚行 MySQL 定时备仹恢复的方法,包括部署前后的注意事项和典型部署方案。 1.1.目标读者 本技术文档面向爱数备仹容灾家族产品成员的用户和相关技术人员,主要介绍 MySQL 数据库定时备仹不恢复的基础知识,以及如何正确使用爱数备仹容灾家族产品成员部署MySQL 数据库定时备仹方案。 旨在通过此文档帮劣用户和技术人员快速掊插MySQL 数据库定时备仹模块的使用方法。 1.3.MySQL 定时备份功能模块简介

恢复位置原位置 恢复粒度整个实例、单个数据库异机恢复支持

第2章. MySQL 基础知识简介 2.1.MySQL 简介 MySQL 是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB 公司。目前MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL 作为网站数据库。 2.2.MySQL 引擎介绍 MyISAM:MySQL 的默讣数据库,最为常用。拥有较高的揑入,查询速度,但不支持事务。 InnoDB:事务型数据库的首选引擎,支持 ACID 事务,支持行级锁定。 BDB:源自 Berkeley D B,事务型数据库的另一种选择,支持 COMMIT 和 ROLLBACK 等其他事务特性 Memory :所有数据置于内存的存储引擎,拥有极高的揑入,更新和查询敁率。但是会占用和数据量成正比的内存空间。幵丏其内容会在 Mysql 重新启劢时丢失。 Merge:将一定数量的 MyISAM 表联合而成一个整体,在超大规模数据存储时徆有用。 Archive:非常适合存储大量的独立的、作为历叱记弽的数据。它们不经常被读取。Archive 拥有高敁的揑入速度,但其对查询的支持相对较差。 Federated:将不同的 MySQL 服务器联合起来,逡辑上组成一个完整的数据库。非常适合分布式应用 Cluster/NDB :高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用。 CSV:逡辑上由逗号分割数据的存储引擎。 BlackHole:黑洞引擎,写入的仸何数据都会消失,一般用于记弽 binlog 做复制的中继。 2.3.关键技术原理 2.3.1.MySQL 数据库定时备份原理分析 本版本,MySQL 数据库定时备仹采用的是脚本+文件备仹方式。爱数备仹软件系统首先根据用户的选择获取数据源,然后根据数据库类型生成相应的备仹脚本。接着,备仹系统调用备仹脚本,该脚本可以让数据库自带的备仹工具迚行备仹,幵将备仹集放到临时路径。随后备仹系统将生产的备仹集备仹到介质服务器,最后删除备仹脚本和临时路径的备仹内容。 ?支持的备仹类型:完全备仹 ?备仹命令调用: 1.备份整个实例 mysqldump -u root -p https://www.doczj.com/doc/9d12410576.html, --all-database > “E:\homebakpath\allDatab ases\localhost_allDatabases_2012121210352.full”

mysql数据库备份与恢复

my sql数据库备份与恢复 windows下实现mysql数据库定时备份功能一、进入mysql的bin目录 二、导出: [mysql bin path]>mysqldump--opt-d-u root-p dbn> backup-file.sql Enter password:****** 三、导入: [mysql bin path]>mysql-u root-p dbn<backup-file.sql Enter password:****** 四、收尾工作:清理sql文件,导出时会在bin目录下生成backup-file.sql 文件,在导入工作完成后就没用了,可以删了,当然留着也可以。

我自己的用的备份语句: d: cd\mysql\mysql5.1.30\bin mysqldump--opt-uroot-p123456 bbs_sikaozhoubao_com>E:\backup\bbs_sikaozhoubao_com\%date:~ 0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.sq l 更多的说明: 导出要用到MySQL的mysqldump工具,基本用法是: shell>mysqldump[OPTIONS]database[tables] 如果你不给定任何表,整个数据库将被导出。 通过执行mysqldump--help,你能得到你mysqldump的版本支持

的选项表。 注意,mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。 mysqldump支持下列选项: --add-locks 在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。 --add-drop-table 在每个create语句之前增加一个drop table。

实验10 数据库备份与还原

实验10 数据库备份与还原 创建备份 (1)选择【stu】数据库右击,单击【属性】。 (2)单击【选项】页,将【恢复模式】设置为【完整】。 (3)选择【stu】数据库右击,依次选择【任务】、【备份】,将打开【备份数据库】对话框 备份数据库 (4)在【备份类型】列表框中,选择【完整】。注意:创建完整数据库备份之后,才可以创建差异数据库备份。 注:选择【差异】即进行差异备份;选择【事务日志】即进行日志备份;若要备份日志尾部(即活动的日志),则需在【选择页】窗格中单击【选项】,再选中【备份日志尾部,并使数据库处于还原状态】。 (5)对于【备份组件】,选择【数据库】。 (6)单击【添加】按钮,打开【选择备份目标】对话框:

选择备份目标 (8)选择备份路径和输入备份文件名。 若想将数据库备份到备份设备上,则应在选择备份设备作为备份目标(如果不存在备份设备,应该先创建),再选择相应的备份设备即可。 创建备份设备 (1)右击【备份设备】,然后单击【新建备份设备】,打开【备份设备】对话框:

(2)在【设备名称】文本框中输入新建设备名,如【dev1】。 (3)在【文件】框中指定备份设备对应的备份文件及路径。 还原备份 在【还原数据库】对话框的【要还原的源】部分中选择【从数据库】,以从SQL Server 识别的备份集中还原。也可选择【从设备】并指定备份文件和包含要存储的备份的设备来从备用备份中还原。 (1)选择【数据库】右击,依次选择【任务】、【还原】,将出现【还原数据库】对话框: 还原数据库 (2)在【常规】页上,还原数据库的名称将显示在【目标数据库】列表框中。若要创建新数据库,请在列表框中输入数据库名。此处输入【stu】。 (3)选择【源设备】,在【备份媒体】列表框中选择【文件】,单击【添加】按钮选择【stu.bak】返回【指定备份】对话框:

oracle数据库备份与恢复实施方案

oracle数据库备份与恢复方案

————————————————————————————————作者:————————————————————————————————日期:

oracle数据库 备份与恢复方案 文件控制?受控?不受控 文档编号日期项目名称版本号 分册名称第册/共册总页数正文附录 编制审批生效日期

目录 一、编写目的 (1) 二、备份工具及备份方式 (1) 三、软件备份 (1) 四、软件恢复 (1) 五、数据备份 (2) 六、备份的存储 (2) 七、备份数据的保存规定 (2) 八、备份介质的格式 (3) 九、数据恢复 (4)

一、编写目的 本文档主要说明公司项目在实施现场的软件及数据的备份和恢复方案。 二、备份工具及备份方式 1.备份工具 Oracle RMAN(Recovery Manager):是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN也允许您进行增量数据块级别的备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。 2.备份方式 (1)自动备份:由Windows 计划任务调度完成; (2)手工备份:完成特殊情况下的备份,分热备份和冷备份,热备份是指在不关闭数据库情况下进行备份,冷备份则需要停止Oracle实例服务。 三、软件备份 1.以七天为一个周期每天23:00将所有软件拷贝到其他存储介质上 2.超出七天的备份依次删除 3.每月一号将上月最后7天的备份文件刻录到光盘上 四、软件恢复 1.找出最近的备份程序覆盖到正式运行环境的相应目录中

SQL数据库备份与恢复操作流程

1.数据库备份 1)打开“开始”——“程序”——Microsoft SQL Server——企业管理器,进入之后,将页面左边的“控制台根目录”下的“+”一个一个都点开,一直到点开“数据库”前的“+”。可以看到第一个数据库应该是CORPSCAN,在这个数据库上面点右键,选择“所有任务”中的“备份数据库”,如下图所示: 2)在弹出的选择框中点“添加”按钮:

3)弹出如下的窗口: 且必须给这个备份文件起一个文件名(一般我们都以日期做为备份文件名),如

下图所示: 上述备份文件就是放在D:\ 这个目录下,文件名为20051120。然后点“确定”。4)可以看到“备份到”那里有个路径和文件名了,其它什么都不用动,然后点“确定”就可以了,如下图所示: 备份文件成功后会有提示信息,可以到备份的目录下找到备份的文件。

2.数据库还原 和数据库的备份操作类似。具体流程如下: 1)打开“开始”——“程序”——Microsoft SQL Server——企业管理器,进入之后,将页面左边的“控制台根目录”下的“+”一个一个都点开,一直到点开“数据库”前的“+”。可以看到第一个数据库应该是CORPSCAN,在这个数据库上面点右键,选择“所有任务”中的“还原数据库”,如下图所示: 2)在弹出的页面上,在“还原”那里选择“从设备”,然后点一下“选择设备”,如图所示:

3)在弹出的页面上点一下“添加”按钮,就出现“选择还原目的”的对话框,在“文件名”后面有个浏览按钮,在那里选择要还原的文件(就是之前备份的数据库文件),然后点“确定”,再确定,再确定,就可以了,还原成功之后会有提示的:

ORACLE数据库备份与恢复详解

ORACLE数据库备份与恢复详解 Oracle的备份与恢复有三种标准的模式,大致分为两大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style)和归档模式(Archivelog-style),通常,我们把非归档模式称为冷备份,而相应的把归档模式称为热备份,他们的关系如下所示 三种方式各有优点,我们做个比较(这个是用Fireworks画的,有点糙):

$A: 现在先来介绍一下逻辑备份方式的方法,利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。理论基础:Oracle 提供的Export和Import具有三种不同的操作方式(就是备份的数据输出(入)类型): 1,表方式(T) 可以将指定的表导出备份; 2,全库方式(Full) 将数据库中的所有对象导出; 3,用户方式(U) 可以将指定的用户相应的所有数据对象导出; *在导入导出备份方式中,提供了很强大的一种方法,就是增量导出/导入,但是它必须作为System来完成增量的导入导出,而且只能是对整个数据库进行实施。增量导出又可以分为三种类别: 1,完全增量导出(完全备份)(Complete Export) 这种方式将把整个数据库文件导出备份;exp system/manager inctype=complete file=20041125.dmp(为了方便检索和事后的查询,通常我们将备份文件以日期或者其他有明确含义的字符命名) 2,增量型增量导出(增量备份)(Incremental Export) 这种方式将只会备份上一次备份后改变的结果;exp system/manager inctype=incremental file=20041125.dmp 3,累积型增量导出(差异备份)(Cumulate Export) 这种方式的话,是导出自上次完全增量导出后数据库变化的信息。exp system/manager inctype=cumulative file=20041125.dmp 通常情况下,DBA们所要做的,就是按照企业指定或者是自己习惯的标准(如果是自己指定的标准,建议写好计划说明),一般,我们采用普遍认可的下面的方式进行每天的增量备份: Mon:完全备份(A) Tue:增量导出(B) Wed:增量导出(C) Thu:增量导出(D)

MySQL备份与恢复

MySQL的备份与恢复 一、MySQL的备份: MySQL通过在全量备份基础上保证完整的二进制日志文件来达到增量备份的目的。因此MySQL实现增量备份主要有以下几个步骤: 1.开启二进制日志(bin-log): mysql默认没有启二进制日志。首先我们需要在my.ini中修改参数: 在[mysqld]下添加: log-bin=log-bin 这是设置开启二进制日志的参数,日志名为log-bin.index和log-bin.000001等。默认路径为:MySQL安装目录\data。 expire_logs_day=7 这是设置二进制日志过期时间的参数。目前二进制日志在flush log时自动删除7天之前的日志。 然后重启MySQL服务。可以在E:\MySQL Server5.5\data目录下看到“log-bin.数字编号”的文件,如log-bin.000001。以后每次flush log时都会从当前时间开始生成新的log-bin,文件名中的数字编号依次递增。 2.MySQL的自动全量备份: 这里使用mysqldump备份数据库。mysqldump是MySQL用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令,在不同的MySQL版本之间升级时相对比较合适,这也是最常用的备份方法。 这里编写了一个批处理程序,通过任务计划定时运行来完成自动备份功能。代码如下: MySQLBackup.bat: @echo off title "数据库备份程序" set MYSQLPATH=E:\"MySQL Server5.5" set DT=%date:~0,4%-%date:~5,2%-%date:~8,2% //获得当前日期 if %time:~0,2% leq 9 (set hour=0%time:~1,1%) else (set hour=%time:~0,2%) //小时数前自动添0 set TM=%hour%-%time:~3,2%-%time:~6,2% //获得当前时间 set USERNAME=root set PASSWORD=google //数据库用户名和密码 @echo on

oracle数据库备份与恢复的三种方法(1)

Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1)、表方式(T方式),将指定表的数据导出。 (2)、用户方式(U方式),将指定用户的所有对象及数据导出。 (3)、全库方式(Full方式),瘵数据库中的所有对象导出。 数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。 2、增量导出/导入 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。 增量导出包括三种类型: (1)、“完全”增量导出(Complete) 即备份三个数据库,比如: (2)、“增量型”增量导出 备份上一次备份后改变的数据,比如: (3)、“累积型”增量导出 累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如: 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。 比如数据库的被封任务可以做如下安排: 星期一:完全备份(A)

星期二:增量导出(B) 星期三:增量导出(C) 星期四:增量导出(D) 星期五:累计导出(E) 星期六:增量导出(F) 星期日:增量导出(G) 如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库: 第一步:用命令CREATE DATABASE重新生成数据库结构; 第二步:创建一个足够大的附加回滚。 第三步:完全增量导入A: 第四步:累计增量导入E: 第五步:最近增量导入F: 二、冷备份 冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是: 1、是非常快速的备份方法(只需拷文件) 2、容易归档(简单拷贝即可) 3、容易恢复到某个时间点上(只需将文件再拷贝回去) 4、能与归档方法相结合,做数据库“最佳状态”的恢复。 5、低度维护,高度安全。 但冷备份也有如下不足: 1、单独使用时,只能提供到“某一时间点上”的恢复。 2、再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

数据库《数据备份与还原》实验报告

x x大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称数据库系统概论实验日期成绩指导教师批改日期实验名称数据备份与还原 实验内容[目的和意义] ?理解数据库的备份策略 ?掌握如何创建和执行备份 ?理解数据库的还原策略 ?掌握还原数据库的方法 [实验内容] 使用SQLServer2005对象资源管理器完成以下操作:. ?创建备份设备 ?备份数据库 ?还原数据库 [实现步骤] 1.使用SQL Server 管理平台创建备份设备 (1)在SQL Server 管理平台中,选择需要创建备份设备的服务器,打开“服务器对象”的文件夹,在“备份设备”图标上单击鼠标右键,从弹出的快捷菜单中选择“新建备份设备”命令。如图6-1。 (2)打开“备份设备”对话框,在“设备名称”文本框中输入设备名称,该名 称是设备的逻辑名称,另外还要选择备份设备的类型。如图6-2。

2.使用SQL Server管理平台进行备份 (1)在SQL Server管理平台中,打开数据库文件,在要进行备份的数据库图标上单击鼠标右键,在弹出的快捷菜单中选择“任务”-“备份”命令。如图6-3。 (2)打开“备份数据库”对话框,在该对话框中又两个选项页,即“常规”与“选项” 在常规选项页的上部分,可以选择备份的数据库的名称,恢复模式,备份类型,中间可以设置备份集的名称,说明以及备份集的过期时间,下部分可以设置备份的目标。默认值是磁盘,单击“添加”按钮,在打开的“选择备份目标”对话框中,可选中“文件名”单选按钮来指定文件名和路径,也可以选中“备份设备”单选按钮,从组合框中选择备份设备。同样可以设置“选项”选项页的内容。如图6-4、6-5。

mysql的自动备份与恢复(mysqlhotcopy)

当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受MySQL提携的程序,而是当数据库遭到破坏后,怎样安然恢复到最后一次正常的状态,使得数据的损失达到最小。 或者说,仅仅是数据库服务器的建立,只能说明它能做些什么,并不代表它能稳定的做些什么。灾难恢复的效率及全面性,也是系统的稳定性的一个准因素,尤其对于一个服务器系统。 这一节,介绍数据库自动备份以及数据库被破坏后的恢复的方法。在这里,我们使用mysqlhotcopy,并且定义一段Shell脚本来实现数据库的自动备份,并且,让整个数据自动备份与数据恢复过程都基于Shell。 [1] 建立自动备份脚本 在这里,为了使数据库备份和恢复的符合我们的实际要求,用一段符合要求的Shell脚本来实现整个备份过程的自动化。

个提示是DBD包没有安装。 根据README中的提示进行安装,如果在TAR包的MYSQL系统上安装DBD::MYSQL,那么在设置环境时应使用如上命令: perl Makefile.PL \ --libs="-L/usr/local/mysql-4.0.9/lib/mysql -lmysqlclient -lz" \ --cflags=-I/usr/local/mysql-4.0.9/include/mysql \ --testhost=127.0.0.1 接下来的命令没有必要执行,还有可能报错。 make make test # Some minor error messages can be ignored here make install 若还是不行的话,请跟着做: 此时将/usr/local/mysql/include/mysql/*复制到/usr/include/,同时将 /usr/local/mysql/lib/mysql/*复制到/usr/lib/,然后使用perl Makefile.PL 设置环境,再进行后续的正常安装,就能正确连接到MYSQL数据库。 [2] 运行数据库自动备份脚本 [3] 让数据库备份脚本每天自动运行

(完整word版)数据库备份与恢复方案

数据库备份与恢复方案 随着计算机的普及和信息技术的进步,特别是计算机网络的飞速发展,信息安全的重要性日趋明显。数据备份是保证信息安全的一个重要方法。 只要发生数据传输、数据存储和数据交换,就有可能产生数据故障。这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失。有时造成的损失是无法弥补与估量的。 数据故障的形式是多种多样的。通常,数据故障可划分为系统故障、事务故障和介质故障三大类。从信息安全数据库备份与恢复方案的角度出,实际上第三方或敌方的“信息攻击”,也会产生不同种类的数据故障。例如:计算机病毒型、特洛伊木马型、“黑客”入侵型、逻辑炸弹型等。这些故障将会造成的后果有:数据丢失、数据被修改、增加无用数据及系统瘫痪等。作为系统管理员,要千方百计地维护系统和数据的完整性与准确性。通常采取的措施有:安装防火墙,防止“黑客”入侵;安装防病毒软件,采取存取控制措施;选用高可靠性的软件产品;增强计算机网络的安全性。 世界上没有万无一失的信息安全措施。信息世界“攻击和反攻击”也永无止境。对信息的攻击和防护好似矛与盾的关系,螺旋式地向前发展。 在信息的收集、处理、存储、传输和分发中经常会存在一些新的问题,

其中最值得我们关注的就是系统失效、数据丢失或遭到破坏。 威胁数据的安全,造成系统失效的主要原因有以下几个方面: 1、硬盘驱动器损坏; 2、人为错误; 3、黑客攻击; 4、病毒; 5、自然灾害; 6、电源浪涌; 7、磁干扰; 因此,数据备份与数据恢复是保护数据的最后手段,也是防止主动型信息攻击的最后一道防线。 SQL SERVER数据备份方案 SQL SERVER数据库的备份方法主要有完整备份,差异备份,事务日志备份等。根据数据安全性的要求,推荐的备份方式为每周一次完整备份,每天一次差异备份,每半个小时一次事务日志备份。 默认情况下,为sysadmin 固定服务器角色以及db_owner 和

MySQL数据库备份方案

MySQL 数据库备份方案

一、准备工作 1.1Mysql相关信息收集 https://www.doczj.com/doc/9d12410576.html,f文件位置 mysql使用端口 mysql数据库data目录(恢复用) 具有备份权限的mysql用户名和密码 存放备份数据的目录(该目录实际上是存放) 操作系统用户访问mysql目录的权限 innodb redo日志文件大小 redo日志切换频率(根据redo日志切换频率确定redo日志的备份频率) 1.2安装NBU media server或client(略) 因为虚机均认不到driver,故所有mysql虚机均安装nbu7.5 client包,该包介质位于200.68主机,路径/software/nbu/NetBackup_7.5_CLIENTS.tar,该tar包包含了所有unix、linux版本的客户端。 详细安装步骤参考文档: nbu备份虚拟机数据库操作手册@20140126.doc a)NBU安装成功后修改主机 hosts(格式如下) #more /etc/hosts 127.0.0.1 localhost 134.64.115.176 wjjydymysql2 ######NBU########### 134.64.200.68 RLZY 172.17.17.2 ahtel5230 134.64.200.71 vlscontr

b)修改主机nbu配置文件(格式如下,修改CLIENT_NAME为要备份的主机名) Vi/usr/openv/netbackup/bp.conf SERVER = RLZY SERVER = ahtel5230 SERVER = vlscontr CLIENT_NAME = kyjkdb CONNECT_OPTIONS = localhost 1 0 2 c)NBU安装成功确认 最后在134.64.200.68 、134.64.200.71 、134.64.209.10执行如下命令bpclntcmd -clear_host_cache bptestbpcd -client 主机名 用于更新缓存和查看主机与Nbu通信是否正常。 1.3MEB安装 直接下载tar包解压即可,解压后只有一个 mysqlbackup可执行文件,本文将文件拷贝至mysql安装目录下,例如: /usr/local/mysql/bin目录中 操作脚本如下: # which mysql /opt/mysql/bin/mysql (查出mysql的安装目录) cd /opt/mysql/bin/mysql #登录FTP134.64.105.155 二进制下载mysqlbackup 根据操作系统选择下载/zxl/mysql/meb/mebrhel6(5)/mysqlbackup chmod u+x mysqlbackup 赋运行权限

相关主题
文本预览
相关文档 最新文档