当前位置:文档之家› sql server2005-2008数据库的备份与还原

sql server2005-2008数据库的备份与还原

sql server2005-2008数据库的备份与还原
sql server2005-2008数据库的备份与还原

一、数据库存储概述

1、数据文件类型

· Primary data files:每个数据库都有一个单独的主要数据文件,默认以.mdf 扩展名。主要数据文件不仅包含数据信息,还包含与该数据库结构相关的信息。创建数据库时,数据库结构相关信息不仅存在于master数据库中,同时还包含在primary data file上.

· Secondary data files一个数据库可以有一个或者多个二级数据文件,默认以.ndf为扩展名。一般来说二级数据文件并不是必须的,因为二级数据文件不包含文件位置等信息。

· Transaction logs: 数据库必须至少有一个事务日志文件,默认以.ldf为扩展名。日志是整个数据库的命脉,事务日志不可读的话,将无法对数据库进行任何操作。

当你在数据库上进行数据操作时,数据并不是直接写入数据文件,而是先将相关操作信息写入事务日志文件。当一个事务结束时,该事务被标记为已提交,但这也并不意味着数据从日志文件写入了数据文件中。一个标记为已提交的事务仅仅意味着所有与该事务相关的元素已经成功完成。The buffer cache may be updated, but not necessarily the data file.

检查点(checkpoint)会周期性的发生。检查点发生时,是确认所有已提交的事务,不管是在buffer cache或者事务日志中,都被写入相关的数据文件中。检查点(checkpoint)可以通过以下方式来触发:

1、显示调用checkpoint命令;

2、 Recover Interval 实例设置的周期达到(用来标识多久发生一次checkpoint)

3、做了数据库备份(在简单模式下);

4、数据库文件结构被改变(在简单模式下);

5、数据库引擎被结束。

一般来说,写数据的过程是由系统自动完成的,如下图所示,但数据并不是直接写入.mdf或者.ndf文件中,而是先将有关变化写入事务日志中,这也是数据库中的write-ahead机制。

1. 用户执行insert, update, delete等语句;

2. 数据立即被写入内部日志缓存中(internal log cache)

3. 日志缓存会更新物理事务日志文件,同时将在buffer cache上执行相关变化

4.数据缓存(data buffer)清除所有在缓存上的脏数据,数据文件被更新。

1、恢复模式类型

所有的数据库都可以设置为三个不同的恢复模式:简单(simple),完全(full),大容量日志(Bulk-Logged).

A完全恢复模式

完全恢复模式是默认的恢复模式。在完全恢复模式下,需要手工的对事务日志进行管理。使用完全恢复模式的优点是可以恢复到数据库失败或者指定的时间点上。缺点则是,如果没有进行管理的话,事务日志将会快速增长,消耗磁盘空间。要清除事务日志,只能通过备份事务日志,或者切换至简单模式。

如上图所示,在完全恢复模式下,事务日志会持续增长,而不管checkpoint的发生。

B简单恢复模式

与完全恢复模式不同的是,在简单恢复模式下,在检查点发生时(checkpoint),当前已被提交的事务日志将会被清除。

如上图所示,在检查点发生时,所有已提交的事务日志信息将会从事务日志里面删除。

因此,在简单恢复模式下,容易造成数据丢失,因为无法将数据库恢复到失败的那一刻。

需要注意的是,虽然在简单恢复模式下,系统会自动定期清除日志,但这并不意味着事务日志文件不会增长。例如,如果执行一个批量插入操作时,SQL SERVER 会将该相关操作当成一个事务,期间产生的日志量在极端情况下,还是非常可观的。

C大容量日志恢复模式

大容量日志恢复模式与完全恢复模式非常相似,但与完全恢复模式不同的是,批量操作将会尽量被最少记录。

批量操作有以下几种类型:

1. 批量导入数据,例如使用BCP(Bulk Copy Import) , BULK INSERT命令,

或者是在BULK使用OPENROWSET命令;

2. 大对象操作(LOB),例如在TEXT, NTEXT, IMAGE 列上使用WRITETEXT 或者UPDATETEXT;

3. SELECT INTO 字句;

4. CREATE INDEX, ALTER INDEX, ALTER INDEX REBUILD, DBCC REINDEX

在完全恢复模式下,上述操作产生的日志将会是非常大的。而使用大容量日志恢复模式将会阻止不需要或者非预期的日志增长。

在批量操作发生时,SQL SERVER仅仅记录了相关数据页(data page)的ID,在SQL SERVER中,SQL SERVER pages 都有内部 ID,如5:547。用这种方式,能够将大量的page ID记录在小的日志文件里。

使用大容量日志恢复模式,将会使数据仓库或者有大批量操作的数据库减少很大的空间。但使用大容量恢复模式时,会使得恢复变得比较困难,一般来说,只能恢复到最后的事务日志备份点上,但如果所有的事务日志都被备份后,还是可以恢复成功的。

只要在必要时才使用大容量恢复模式,而且使用完成后,还需切换至完全恢复模式,同时进行备份。

2、改变恢复模式

改变数据库的恢复模式,可以通过以下语句来实现:

ALTER DATABASE database_name SET RECOVEY BULK_LOGGED

也可以通过GUI界面来修改。

改变恢复模式并不需要重启数据库实例。

二、数据库备份介绍

1、备份位置

在SQL Server上,有多种备份位置可以选择,如本地磁盘,网络磁盘,远程地址,磁带等。

各种备份位置均有自己的优点和缺点。

2、逻辑备份设备

在SQL Server上,可以通过创建逻辑备份设备来完成备份。使用逻辑备份设备的好处是,当变更备份地址时,不需要更改备份脚本,只需要更改逻辑备份设备的定义即可。

创建逻辑备份设备的脚本如下:

SQL code

EXEC sp_adddumpdevice

@devtype=’disk’,@logicalname=’MYBackup’,@physicalname=’D:\ backup\myd b.bak’

删除备份设备的脚本:

SQL code

Sp_dropdevice @logicalname=’MYBackup’

上述脚本只是删除逻辑备份设备的定义,下述脚本将同时删除备份文件:

SQL code

Sp_dropdevice @logicalname=’MYBackup’,@devfile=’DELFILE’使用逻辑备份设备的方法如下:

SQL code

Backup database mydb to MYBackup

当然,还可在逻辑备份设备上指定过期时间等备份属性,如:

SQL code

Backup database mydb to MYBackup WITH EXPIREDATE=’13/01/2010’或:

SQL code

BACKUP DATABASE mydb to MYBackup WITH RETAINDAYS=7

3、备份集与存储集

每一份备份包含于一个备份集,而一个备份集包含于一个存储集。通过系统GUI 进行备份时,SQL Server会自动指定备份集和存储集,目的则是为了简化管理。用T-SQL显示指定则用如下语法:

SQL code

BACKUP DATABASE mydb to MYBackup WITH RETAINDAYS=7, NAME=’FULL’,

MEDIANAME=’ALLBackups’

NAMEs是指备份集名称,MEDIANAME是指存储集名称。

4、全备份

不管恢复模式是哪一个,所有的备份都必须要有一个全备份,特别是日志备份和差异备份,如果没有全备份的话,将无法进行恢复。

简单的全备份脚本如下所示,也可以通过维护计划来指定全备份:

SQL code

BACKUP DATABASE mydb to DISK=’D:\Backup\mydb.bak’

但需要注意的是,上述命令是将数据库备份附加到当前的存在的文件上,如果不存在则创建它,并不会覆盖原有文件。要覆盖同名的备份文件,需要指定INIT 参数。

SQL code

BACKUP DATABASE mydb to DISK=’D:\Backup\mydb.bak’ WITH INIT

5、日志备份

在完全恢复模式或者大容量日志恢复模式下,日志备份不仅仅是恢复的需要,同时也是手工管理事务日志文件的一种方式。如果从不进行备份的话,在完全恢复模式或者大容量恢复模式下,事务日志将会持续增长,直至消耗完所在磁盘。

日志备份的脚本如下:

SQL code

BACKUP LOG mydb_log TO DISK=’D:\backup\mydb.trn’

需要养成使用.trn为日志备份的扩展名的习惯。

每个在数据库上的动作都会被安排一个Log Sequence Number (LSN)。如果需要还原到指定的时间点,需要有持续的LSN记录。也就是说,在完全恢复模式或者大容量日志模式下,一个不被打断的事务日志备份链是恢复数据库的基本要求。

6、差异备份

使用日志备份来恢复时,无疑是一个很慢的过程,特别是上一个全备份的历史比较悠久时。使用差异备份,便能缩短恢复时间。事实上,差异备份只是BACKUP DATABASE的一个选项,如下:

SQL code

BACKUP DATABASE mydb TO DISK=’D:\backup\mydb.dif’ WITH DIFFERENTIAL,INIT

进行数据库恢复时,先恢复数据库全备份,再恢复数据库差异备份,最后才恢复日志备份。

差异备份是与上一次全备份紧密相连的,不管期间有多少次日志备份和差异备份,差异备份还是会从上一次全备开始备份。因此,经常会遇到这样的一种情况,在生产库上需要临时使用数据库时,便用BACKUP DATABASE … TO DISK=’..’进行了一个备份,下一次的差异备份便会以这回的全备为准,如果过后把这个临时全备删除掉后,后面的差异备份就没用了。

差异备份并不意味着磁盘空间肯定会少,这取决于实际情况。当期间大量操作发生时,差异备份还是会变得很大。

7、错误检测

在备份过程中,备份进程会同时验证数据,或者校验不完整页(torn page),或者验证校验和(checksum)。要使用该功能,需要激活该选项。

不完整页检测(Torn-page dection)仅仅检查每一个页看是否已经写完成。如果发现一个页只有部分被写入,那么就将其标记为torn。

校验和验证(checksum validation)是一种新的页验证机制。它会为每个页添加一个值来表明该页实际的大小。虽然看起来是个代价很高影响性能的操作,但事实上,它的效率非常高,与torn-page差不多。

备份进程在备份数据库时,会通过比较在数据库里的和随着备份页写入硬盘时这两个之间的值来进行验证。但是,这个验证并不是自动完成的,需要显示指定,在GUI页面上是个选项。如果通过T-SQL来备份的话,语句如下:

SQL code

BACKUP DATABASE mydb TO DISK=’D:\data\mydb.bak’ WITH CHECKSUM

如果备份过程中,发现了错误,SQL Server会错误信息写入MSDB上的SUSPECT_PAGE表里面。同时,在默认情况下,备份行为会停止的

(STOP_ON_ERROR),以便管理员排查错误。

但备份过程中的校验和验证还有另外一个选项(CONTINUE_ON_ERROR),也就是说,如果发现错误,备份过程并不会中断,而是将错误页信息记录在

MSDB..SUSPECT_PAGE上而已。需要注意的是,SUSPECT_PAGE表是有行限制的,

最多只能达到1000行,如果达到了的话,备份同样会失败。

激活校验和验证的话,很明显会影响备份的性能。但还是很有必要的。

8、安全备份

完全备份和日志备份语句还支持使用密码属性,如:

SQL code

BACKUP DATABASE mydb TO DISK=’D:\mydb.bak’ WITH

PASSWORD=’mydb’

所指定的密码是很容易破解的。因此,如果确实需要对某些备份数据进行加密的话,可以将备份存放于加密的文件系统或者其它安全的存储设备上。

同时,SQL Server还提供了对真实列进行加密的功能。该加密功能是工业标准。

9、条带备份

有些情况下,单独一个硬盘无法存储一个完整的数据库备份时,可以将数据库备份分成多个部分存储在不同的磁盘上,这种备份方式成为条带备份。使用条带备份的优点很明确,就是能很好的利用空间,但如果某部分备份丢失或者损坏,那整个备份将无效。

其语句如下:

SQL code

BACKUP DATABASE mydb TO DISK=’D:\mydb.bak’,

DISK=’E:\mydb.bak’ WITH INIT,CHECKSUM,

CONTINUE_ON_ERROR

上述D盘和E盘上的备份是不可分割的。

10、镜像备份

与条带备份在多个磁盘上保留同一份备份不同的是,镜像备份是在不同磁盘上保留多份备份。其语句如下:

SQL code

BACKUP DATABASE mydb TO DISK=’D:\mydb.bak’

MIRROR TO DISK=’E:\mydb.bak’

WITH INIT,CHECKSUM,CONTINUE_ON_ERROR

在实际情况下,对日志备份采取镜像备份方式会比较合适。

11、COPY-ONLY 备份

在差异备份里曾提到过,差异备份是建立在上一个全备份的基础上的。因此如果在一个事先安排好的备份计划里,如果在全备份和差异备份之间再进行了一次全备份后,其差异备份会被打断,如果把临时全备份删除掉后,就产生了数据丢失。

在SQL SERVER 2005以后,SQL SERVER提供了一个选项copy-only.使用copy-only 选项进行的全备份便不会打算原先的备份计划,语句如下:

SQL code

BACKUP DATABASE mydb TO DISK=’D:\mydb.bak’

WITH INIT,CHECKSUM,COPY_ONLY

三、文件和文件组备份

在SQL SERVER 7.0以后,SQL Server提供了filegroup的概念。文件组不仅仅提供了一个逻辑的存储地址,还允许将不同的表和索引放在不同的文件组上来提高性能和减少备份时间。

在数据存储概述上,提到了数据库有三类数据文件,一般来说,数据库至少需要两个(.mdf和.ldf)或者更多的文件。SQL Server不仅允许有多个文件存在(.ldf),还允许多个文件组存在。

一个文件组可以有多个文件,每个文件需要仔细规划好初始大小及增量。

1、默认文件组

在创建对象时,如果未明确指定文件组,那么该对象将会存放在默认的文件组上。在默认情况下,默认的文件组是primary,但由于primary文件组不仅可以包含用户数据,同时还存储着数据库结构等技术信息,因此一般建议添加额外的一个文件组,并将其指定为默认文件组。

SQL Server只能有一个默认的文件组。

修改默认文件组的语句如下:

SQL code

ALTER DATABASE mydb MODIFY FILEGROUP mydb DEFAULT;

2、为对象指定文件组

当创建表或者索引时,不管是用户还是系统都需要将表或索引放在某个文件组上。如果在创建表或索引时指定文件组,那么表或索引将会存储在指定的文件组上,而不是默认的文件组。

其指定语句如下:

SQL code

CREATE TABLE test( [id]int,[notes]text) on mydbdata

也可以通过GUI创建表的页面来指定文件组。

3、将对象迁移至指定文件组

如果需要变更对象的存储位置,最简单的方式则是通过GUI属性页面来进行修改通过该方法,可以直观的看到对象的迁移过程。

同时也可以通过T-SQL来修改,例如:

SQL code

ALTER TABLE test drop constraint PK_test WITH (MOVE TO DATA)

4、备份数据文件

备份数据文件同样可以通过BACKUP DATABASE语句来实现。如下:

SQL code

BACKUP DATABASE mydb FILE=’D:\Data\mydb.ndf’ TO

DISK=’E:\Backup\mydbdata.bak’

上述语句相当于数据文件级别的全备份,与数据库级别的备份类似,文件级别上的备份也有差异备份,当然前提是要有相对应的文件全备份。

差异备份的语句如下:

SQL code

BACKUP DATABASE mydb FILE=’D:\Data\mydb.ndf’

WITH DIFFERENTIAL

TO DISK=’E:\Backup\mydbdata_dif.bak’

5、备份文件组

与单独备份文件类似,也可以对文件组进行类似的备份操作。备份文件组的方式也有两种,一种是通过GUI界面指定,一种则是通过T-SQL。

T-SQL的语句如下:

SQL code

BACKUP DATABASE mydb FILEGROUP=’PRIMARY’ TO

DISK=’E:\Backup\mydbpri.bak’

6、不完全备份(partial backup)

在文件组备份上,不完全备份其实相当于完全备份,可以通过指定关键字READ_WRITE_FILEGROUPS来实现不完全备份。

语句如下:

SQL code

BACKUP DATABASE mydb READ_WRITE_FILEGROUPS TO

DISK=’D:\mydb.bak’

那不完全备份到底是什么意思呢?什么时候需要不完全备份?如果对一个文件组设置了只读,而这只读的文件组又需要进行一次备份,这时,可以不用BACKUP DATABASE语句进行备份,只需要挑个时间停止实例,然后执行不完全备份。

四、数据恢复

1、Restore vs. Recovery

Restore和Recovery是两个不同的概念,但在数据恢复过程中又是紧密联系的。

Restore相当于从备份集中重建整个或者部分数据库,Restore是无法改变数据库状态的,如脱机和联机等。

Recovery则是将数据库从脱机状态恢复到联机状态中供用户使用。Recovery在SQL Server启动时也会发生,在数据库启动过程中,SQL Server会检查事务日志,看是否存在已提交或未提交的事务,如果发现在最后一次检查点发生后,还有已提交的事务,则SQL Server会对这些事务进行REDO(ROLL FORWARD);而如果发现未提交的事务,则进行UNDO(ROLL BACK)。

一旦对数据库进行了Recovery,则将无法再进行Restore操作。

Recovery事实上是Restore的一个选项,默认情况下,进行Restore操作时,SQL Server还会进行Recovery操作。在单独对全备份进行恢复时,可以不用考虑Recovery,但如果后续仍有日志备份或差异备份需要恢复,则必须注意Recovery选项的选择。

数据库恢复的语句如下:

SQL code

RESTORE DATABASE mydb FROM mydbdevice WITH RECOVERY

显示指定RECOVERY 或者NORECOVERY是个良好的习惯。

2、在RECOVERY过程中的可用性

一般情况下,如果SQL Server处于Recovery过程中时,用户是无法使用数据库的。但可以通过设置fast recovery使得用户在Recovery中使用数据库。

在所有已提交的事务都被ROLL FORWARD后,数据库就是联机状态。

一般情况下,SQL Server强制已提交的事务写入数据库中,这个过程叫做检查点(CHECKPOINT)。可以通过强制使用CHECKPOINT命令来触发,默认则是以RECOVERY INTERVAL为周期,可以通过SP_CONFIGURE命令来设置RECOVERY INTERVAL。

SQL code

sp_configure 'Show Advanced Options',1

sp_configure 'recovery interval',5

RECONFIGURE WITH OVERRIDE

sp_configure 'Show Advanced Options',0

默认情况下,RECOVERY INTERVAL 设置为0,表示SQL Server根据需要动态管理CHECKPOINT的发生。

3、备份文件里面的信息

在primary文件里,存储着与数据库结构有关的一些信息,如文件位置等。因此备份后,这些信息同样保留在备份文件里面。如果要恢复到不同的磁盘上或服务器后,需要进行额外的更改。

在SQL Server里,提供了 RESTORE HEADERONLY, RESTORE FILELISTONLY, RESTORE LABELONLY, RESTORE VERIFYONLY 等命令来读取备份文件的信息。也可以通过MSDB里的表来获取备份集的相关信息。

A.RESTORE HEADERONLY

SQL code

RESTORE HEADERONLY

FROM DISK='D:\family_20100108.bak'

各字段的含义可以查看联机丛书。

B.RESOTRE FILELISTONLY

SQL code

RESTORE FILELISTONLY

FROM DISK='D:\family_20100108.bak'

C.RESOTRE LABELONLY

SQL code

RESTORE LABELONLY

FROM DISK='D:\family_20100108.bak'

D.RESOTORE VERIFYONLY

SQL code

RESTORE VERIFYONLY

FROM DISK='D:\family_20100108.bak'

4、从全备份中恢复

不管是在简单恢复模式或者完全恢复模式下和大容量日志模式下,对全备份恢复都是差不多的。最大的差别在于完全恢复模式与大容量日志恢复模式,除了需要恢复全备份外,还需要指定WITH NORECOVERY,以便后续的差异备份和日志备份的恢复。

当然,在简单恢复模式下,也是有差异备份的,这种情况下,同样需要指定WITH NORECOVERY。

需要注意的是,在做恢复之前,应该养成对当前日志进行备份的习惯,否则容易造成数据丢失。SQL Server虽然提供REPLACE选项以便强制恢复,但这样子末尾日志就丢掉了。

通常,如果未对当前日志进行备份,那么会收到如下错误

上述错误,提到了使用WITH REPLACE 或者WITH STOPAT命令来完成恢复,但应尽量避免使用这两个命令。

如果要将数据库恢复到不同的磁盘上,可以通过GUI页面指定,也可以通过T-SQL 语句来实现。

T-SQL实现的方式如下:

SQL code

RESTORE DATABASE Family

FROM DISK='D:\family_20100108.bak'

WITH MOVE 'Family'TO'D:\Family.mdf',

MOVE 'Family_Log'TO'D:\Family.ldf'

WITH RECOVERY

5、恢复到指定的时间点

要恢复到指定的时间点有三种选择,一种是通过明确指定时间,一种通过指定LSN号,另外一种则是通过创建和指定log marks。

A. TIME

通常情况下,恢复都会有要求恢复到指定时间点的要求,可通过GUI界面来实现,也可以通过T-SQL 来实现

SQL code

RESTORE DATABASE Family

FROM DISK='D:\family_20100108.bak'

WITH NORECOVERY

RESTORE LOG Family

FROM DISK='D:\family_20100108.trn'

WITH RECOVERY,STOPAT 'jan 8,2009 3:10pm'

B. LSN

如果知道确切的LSN号,也可以通过LSN号来恢复指定的LSN。获取LSN相关信息,可以通过RESOTRE HEADERONLY。这种方式只能通过T-SQL来实现。

SQL code

RESTORE DATABASE Family

FROM DISK='D:\family_20100108.bak'

WITH NORECOVRY

RESTORE LOG Family

FROM DISK='D:\family_20100108.trn'

WITH RECOVRY,STOPATMARK LSN:2433:5422

C. Log Marks

也可以通过创建Log Mark,可以恢复至指定的Log Marks。例如,创建了一个logmarkexample,则在恢复时,恢复到logmarkexample。

SQL code

RESTORE DATABASE Family

FROM DISK='D:\family_20100108.bak'

WITH NORECOVRY

RESTORE LOG Family

FROM DISK='D:\family_20100108.trn'

WITH RECOVRY,STOPATMARK 'logmarkexample'

6、对镜像备份或条带备份的恢复

对镜像备份而言,每一份备份都是一样的,因此恢复任何一份备份都可以完成恢复。

对条带备份而言,则需要同时指定所有的条带备份,这种备份可以比单独一个备份来得快。

条带备份例子如下:

SQL code

RESTORE DATABASE Family

FROM DISK='D:\family_20100108.bak',

DISK='D:\family_20100108.bak'

WITH NORECOVRY

7、恢复数据页

在SQL Server2005以后,SQL Server提供了对数据页恢复的功能。对数据页恢复可以在联机或者脱机状态下进行

但只能对实际用户数据页进行恢复,而其他的页则无法通过备份来恢复。如Global Allocation Map(GAM), Secondary Global Allocation Map(SGAM), Page Free Space(PFS)等。

恢复数据页相当于进行完全恢复,不同的是需要指定具体的页面。

SQL code

RESTORE DATABASE Family PAGE '20:1570,20:1571,20:1572'

FROM DISK='D:\family_20100108.bak'

WITH NORECOVRY

数据页可以通过MSDB..SUSPECT_PAGE或者DBCC CHECKDB来查找。

8、对系统数据库的恢复

系统数据库存储着一个SQL Server实例上相关数据库的信息,如果丢失,将会带来更大的损失。

A. MASTER

Master数据库的恢复与其他数据库的恢复是不同的。要恢复MASTER数据库,需要从将SQL Server切换至单用户模式,如果无法切换,则停止SQL Server服务,然后用sqlserver –m命令行启动。

当然,也可以用net start “服务器名” 来启动SQL Server服务。启动后,再用SQLCMD命令进行还原

B. MSDB

在MSDB里面存储得比较多的是SQL Agent里的内容,如作业,调度,操作员,警告等信息;同时还存放SQL Server Integration Service(SSIS)等信息。

其恢复过程与普通数据库恢复过程是一样的。并且由于是在简单模式下,因而其恢复过程更加简单。

C. MODEL

Model数据库用来存放创建数据库时需要的信息,如果有使用MODEL数据库的话,也需要对其进行备份和恢复。

备份与恢复的过程与普通数据库一致。

D. Tempdb

Tempdb是不需要备份和恢复的,在每次的启动过程中,SQL Server会自动清除tempdb,并重新启动tempdb。在tempdb上需要注意的是其空间规划,因为某些情况下tempdb会变得非常大,耗尽空间,最终导致SQL Server关掉。

若要修改tempdb的存储路径,请使用如下语句:

SQL code

use master

go

Alter database tempdb modify file (name = tempdev, filename =

'E:\Sqldata\tempdb.mdf')

go

Alter database tempdb modify file (name = templog, filename =

'E:\Sqldata\templog.ldf')

Go

E. Resource

Resource是SQL Server2005以后新引进的一个数据库,将以前存放于master 等其他系统数据库的部分信息存放于Resource数据库里。

对Resource不能通过T-SQL或者GUI备份,因为看不到它,要对其进行备份,只能通过手工直接拷贝其物理文件。

6、数据文件备份的恢复

在第三部份里面提到了文件的备份,这种单个或多个文件的备份,其恢复方式与数据库恢复类似。

但要养成一个良好的习惯,在恢复前,备份当前的日志文件。

SQL code

BACKUP LOG Family

TO DISK='E:\Familylog.bak'

WITH NORECOVERY

接着对需要还原的文件进行还原,如

SQL code

RESTORE DATABASE Family

FILE='D:\DATA\Family.mdf'

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

数据库备份和还原 在收费系统运行一段时间后,如发生系统不正常要重装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)

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

实验九:数据库备份及恢复 一、实验目的 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:

SQL Server备份与还原--恢复master数据库

SQL Server备份与还原--恢复master数据库 简介: Master数据库在整体上控制SQL sever的所有方面。这个数据库中包括所有的配置信息、用户登陆信息、当前正在服务器中运行的信息等。是整个系统中最重要的数据库。Master 数据库被损坏,可能导致SQL Server实例无法启动,所以在创建了任何用户定义的对象后都要备份它。下面几种情况都应该备份Master数据库: 更改服务器范围的配置选项 创建或删除用户数据库 创建或删除逻辑备份设备 Master数据库只能做完整备份 实验名称:备份master数据库 实验模拟环境: Master数据库数据丢失或出现设置错误,但能启动实例,通过还原Master的完整备份修复已损坏的数据库 注:恢复的前提必须是此前对数据库进行过完整备份,否则就失败。 实验步骤: 1. 破坏master文件(假设其文件破坏) 停止SQL Server服务,更改数据库文件master.mdf(随便重命名这里改为yue.mdf)

再次启动SQL Server服务,系统会提示错误信息,启动失败,如下图所示; 将数据库安装光盘1放进光驱

2. 运行安装setup.exe,重建master数据库。 在命令行下,运行cd c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn路径,进入数据库安装目录。 运行start /wait E:\setup.exe /qn INSTANCENAME=mssqlserver REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=https://www.doczj.com/doc/d18881821.html, 查看系统目录如图,新建成功。 3. 重建成功好,重新启动服务。

SQL Server数据库备份与还原处理

SQL Server数据库备份与还原处理 转贴路径:https://www.doczj.com/doc/d18881821.html,/zjcxc/archive/2003/12/29/20074.aspx 利用T-SQL语句,实现数据库的备份与还原的功能 体现了SQL Server中的四个知识点: 1.获取SQL Server服务器上的默认目录 2.备份SQL语句的使用 3.恢复SQL语句的使用,同时考虑了强制恢复时关闭其他用户 进程的处理 4.作业创建SQL语句的使用 /*1.--得到数据库的文件目录 @dbname 指定要取得目录的数据库名 如果指定的数据不存在,返回安装SQL时设置的默认数据目录 如果指定NULL,则返回默认的SQL备份目录名 --邹建2003.10(引用请保留此信息)--*/ /*--调用示例 select 数据库文件目录=dbo.f_getdbpath('tempdb') ,[默认SQL SERVER数据目录]=dbo.f_getdbpath('') ,[默认SQL SERVER备份目录]=dbo.f_getdbpath(null) --*/ if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_getdbpath]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_getdbpath] GO create function f_getdbpath(@dbname sysname) returns nvarchar(260) as begin declare @re nvarchar(260) if @dbname is null or db_id(@dbname) is null select @re=rtrim(reverse(filename)) from master..sysdatabases where name='master' else select @re=rtrim(reverse(filename)) from master..sysdatabases where name=@dbname if @dbname is null set @re=reverse(substring(@re,charindex('\',@re)+5,260))+'BACKUP' else set @re=reverse(substring(@re,charindex('\',@re),260)) return(@re) end go

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

SQL数据库备份与还原

SQL数据库的备份与还原 温馨提示:当学籍系统、综合素质评价系统有数据更新时,管理员一定要及时的做好数据库的备份工作,以防止意外情况的发生。正确、及时的进行数据库备份能减少数据丢失后恢复数据库的工作量。所以为了避免数据在灾难后无法恢复,必须对数据库进行备份。 一、SQL数据库的备份: 1、依次打开开始菜单→程序→Microsoft SQL Server 2008 →SQL Server Management Studio →数据库:Dsideal_school_db既是我们需要备份的学籍数据库 图(1) 2、选择要备份的数据库“Dsideal_school_db”,点击鼠标右键→任务→备份,如图(2):

图(2) 3、在打开的“备份数据库—Dsideal_school_db”对话框中,先点击删除,然后点击“添加”,如图(3):

首先点击“删除” 然后点击“添加” 图(3) 4、在弹出的“选择备份目标”对话框中,点击“”,如图(4) 图(4) 5、选择好备份的路径(如D盘的江西-学籍-数据库备份文件夹中),文件类型选择“所有文件”,“文件名”那个位置填写上您要备份的数据库的名字(最好在您备份的数据库的名字后

面加上日期,以方便以后查找),之后连续点击“确定”按钮即可完成数据库的备份操作,如图(5): 图(5 二、SQL数据库的还原:

1、选择您要还原的数据库“Dsideal_school_db”,点击鼠标右键→任务→还原→数据库,如图(6): 图(6) 2、在出现的“还原数据库— school_web_db”对话框中选择“源设备”,然后点击后面的“”按钮,如图(7):

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)

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、再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

DB2大数据库备份与恢复详解

DB2数据库备份与恢复 1.备份 1.1离线备份(必须在数据库所在PC机进行操作) STEP 1 连接到要备份的数据库 (数据库名:ncc) C:\Documents and Settings\Administrator>db2 connect to ncc user nccwykpi using nccwykpi STEP 2 显示数据库应用状态 C:\Documents and Settings\Administrator>db2 list applications

STEP 3 停掉数据库应用 C:\Documents and Settings\Administrator>db2 force applications all 注意:由于该命令是异步的,所以在进行备份的时候会出现以下错误信息。此时可以再次执行db2 force applications all 命令。 STEP 4 对数据库进行离线状态下的备份 C:\Documents and Settings\Administrator>db2 backup database ncc to d:\db2\backup

注意:指定的备份文件的输出目录必须是已创建的,否则会报错。 STEP 5 查看备份历史记录 C:\Documents and Settings\Administrator>db2 list history backup all for ncc

1.2在线备份 注意:如果要做在线的备份,要对两个参数作修改:USEREXIT和LOGRETAIN,将其修改为on,默认是off的,默认使用日志模式,修改完参数后,可以变为归档日志模式,启用了userexit做数据库日志的归档。 STEP 1 查看数据库当前的属性 C:\Documents and Settings\Administrator>db2 get db cfg STEP 2 设置userexit、logretain参数的状态为on C:\Documents and Settings\Administrator>db2 update db cfg for ncc using userexit on C:\Documents and Settings\Administrator>db2 update db cfg for ncc using logretain

Informix数据库备份和恢复图文详解

Informix数据库备份和恢复Informix-Online数据库因其具有高性能、高可靠性、支持数据完整性定义/检查等特性而得到广泛应用。对于使用中的数据库,数据备份的安全可靠性便成为人们关注的焦点。以下详细介绍Informix-Online 数据库常用的三种数据备份和恢复方式。 一.ontape方式 1.ontape工具的功能 ontape工具具有如下功能:备份和恢复数据、备份和恢复逻辑日志、改变数据库日志状态等(本文着重介绍数据备份和恢复功能)。 2.执行备份前的准备 a)在执行ontape备份前需要对Onconfig文件中的TAPEDEV、TAPEBLK、TAPESIZE 参数进行正确的设置,Onconfig文件一般在安装目录的etc文件夹下(如我的在 “C:\Program Files\IBM\IBM Informix Dynamic Server\11.50\etc”),每一个实 例对应着一个Onconfig文件(如我的是“ONCONFIG.ol_ids_1150_1”),找到对 应的Onconfig文件,用记事本打开,搜索到如下位置: TAPEDEV D:\ifmxdata_bak\test_db_20150824 --注:备份文件存放的位置 TAPEBLK 16 TAPESIZE 102400 --注:单个文件的大小,当到达这个尺寸时会提示生成第二个文件。 b)按自己的要求修改完成后,保存退出。 3.执行备份数据的语法 备份语法为:ontape -s -L n(n=0-2)--注意此处的L是大写,n为备份级别 在online处于联机或静止方式时,Informix用户或具有DBA权限的用户可以通过执行上面的命令进行备份。根据备份方案安排进行0级、1级、2级备份。0级备份是对整个

DM7数据库备份与还原

DM7数据库备份与还原 1数据库备份 1.1新建备份 使用”DM管理工具”登陆到DM管理界面,打开”备份” ”库备份”,右击鼠标选择”新建备份”

1.2实行备份

1.3备份中 1.4备份完成

2数据库还原 2.1删除旧数据 使用”DM管理工具”登陆到DM管理界面,打开”SYSDBA” ”表”,选中所有表(除##HISTOGRAMS_TABLE、##PLAN_TABLE以外),在选中区域右击鼠标,选择”删除”。 2.2数据库关闭 [root@localhost bin]# cd /etc/rc.d/init.d/ [root@localhost init.d]# ./DmServiceDMSERVER stop Stopping DmServiceDMSERVER: [ OK ] 2.3数据库还原 [root@localhost init.d]# cd /opt/dmdbms/bin [root@localhost bin]# ./dmrestore INI_PATH=/opt/dmdbms/data/DAMENG/dm.ini file=/root/721/sjk-2014-11-11.bak restore V7.1.3.142-Build(2014.09.10-48344trunc) file dm.key not found, use default license! Global parameter value of RS_BDTA_BUF_SIZE is illegal, use max value!

backup sig: BA backup tool version: 12595 backup db name: DAMENG backup db magic: 1414999730 backup name: DAMENG_BAK_2014_11_11_10_17_33 backup type: full backup level: online backup range: database backup description: compressed level: 0 encrypt_type: 0 encrypt_id: 2052 rac node: 0 page check: 0 rlog encrypt: 0 length in char: 0 use new hash: 1 backup time: 2014-11-11 10:18:11 page size: 32 KB extent size: 32 case sensitive: 1 log page size: 512 B unicode flag: 0 data version: 0x70009 sys version: V7.1.3.146-Build(2014.09.16-48620trunc) enable policy: 0 mpp_timestamp: 1415672290 parallel type: 0 parallel info len: 0 backup db fil num: 5 archive flag: 1 backup with log: Yes before backup LSN: 1962258 after backup LSN: 1962258 $file_seq |$file_path |$size(KB) 1 |/root/721/sjk-2014-11-11.bak |1425408 $file_seq |$file_path |$mirror_path 1 |D:\721\dmdbms\data\DAMENG\SYSTEM.DBF| 2 |D:\721\dmdbms\data\DAMENG\ROLL.DBF|

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

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。

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

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

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

数据库的备份与恢复-模板

数据库的备份与恢复 ---- 当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如果平时对数据库做了备份,那么此时恢复数据就显得很容易。由此可见,做好数据库的备份是多么的重要,下面笔者就以ORACLE7为例,来讲述一下数据库的备份和恢复。ORACLE 数据库有三种标准的备份方法,它们分别为导出/导入(EXPORT/IMPORT)、冷备份、热备份。导出备份是一种逻辑备份,冷备份和热备份是物理备份。 ---- 一、导出/导入(Export/Import) ---- 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle数据库中去。 ---- 1. 简单导出数据(Export)和导入数据(Import) ---- Oracle支持三种类型的输出: ---- (1)表方式(T方式),将指定表的数据导出。 ---- (2)用户方式(U方式),将指定用户的所有对象及数据导出。 ---- (3)全库方式(Full方式),将数据库中的所有对象导出。 ---- 数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。 ---- 2. 增量导出/导入 ---- 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为,如果不希望自己的输出文件定名为,必须在命令行中指出要用的文件名。 ---- 增量导出包括三个类型: ---- (1)“完全”增量导出(Complete)

JAVA实现数据库备份与还原

JAVA实现数据库备份与还原[MYSQL为例] 数据库数据的备份与还原最好是使用数据库自带的客户端软件来实现,JAVA可以通过调用mysqldump、mysql客户端软件分别进行mysql数据库的备份还原,当然前提是JAVA服务器必须安装mysql客户端软件,但是也可以通过java telnet登陆数据库服务器实现备份,关于telnet的相关资料请Google. MYSQL支持的备份方式: 1.使用SELECT INTO ...OUTFILE,例如 SQL代码 1SELECT * INTO OUTFILE "D:\\test.sql" fields terminatedby ',' lines terminatedby '' from category ; 生成的文件会存放在数据库服务器上面 SELECT INTO只备份了数据库表中的数据:如下为category备份后的文件内容 XML/HTML代码 21,ELECTRONICS,\N 32,TELEVISIONS,1 43,TUBE,2 54,LCD,2 65,PLASMA,2 76,PORTABLE ELECTRONICS,1 87,MP3 PLAYERS,6 98,FLASH,7 109,CD PLAYERS,6 1110,2 WAY RADIOS,6 2.使用BACKUP TABLE,例如 SQL代码 12BACKUPTABLE test_tableto 'D:\backup'; BACKUP只针对MyISAM表格,且在MYSQL 5.1的参考手册中“注释:本语句不理想”; BACKUP语句效果为拷贝数据库表中的.frm文件到数据库服务器目标目录 3.使用mysqldump程序或mysqlhotcopy脚本 MYSQL 5.1的参考手册中关于mysqldump的说明:“可用来转储数据库或搜集数据库进行备份或将数据转移到另一个SQL服务器(不一定是一个MySQL服务器)。转储包含创建表和/或装载表的SQL语句。“ JAVA可以运用Process类的exec(String str)方法调用系统命令,所以需要在服务器上安装mysqldump程序已完成备份,可以对远程的数据库服务器进行备份(配置hostname参数),备份语句具体参数参考MYSQL参考手册

实验8-Oracle数据库备份与恢复

实验8 Oracle数据库备份与恢复 1 实验目的 (1)掌握Oracle数据库各种物理备份方法。 (2)掌握Oracle数据库各种物理恢复方法。 (3)掌握利用RMAN工具进行数据库的备份与恢复。 (4)掌握数据的导入与导出操作。 2 实验要求 (1)对BOOKSALES数据库进行一次冷备份。 (2)对BOOKSALES数据库进行一次热备份。 (3)利用RMAN工具对BOOKSALES数据库的数据文件、表空间、控制文件、初始化参数文 件、归档日志文件进行备份。 (4)利用热备份恢复数据库。 (5)利用RMAN备份恢复数据库。 (6)利用备份进行数据库的不完全恢复。 3 实验步骤 (1)关闭BOOKSALES数据库,进行一次完全冷备份。 select from dba_data_files; select member from v$logfile; select value from v$parameter where name='control_files';

(2)启动数据库后,在数据库中创建一个名为cold表,并插入数据,以改变数据库的状态。 CREATE TABLE COLD( ID NUMBER PRIMARY KEY, NAME V ARCHAR2(25) ); (3)利用数据库冷备份恢复BOOKSALES数据库到备份时刻的状态并查看恢复后是否存在cold表。 (4)将BOOKSALES数据库设置为归档模式。

1.1 shutdown immediate 正常关闭数据 1.2 startup mount;将数据库启动到mount状态 3)、关闭flash闪回数据库模式,如果不关闭的话,在后面关闭归档日志的时候就会出现讨厌的ora-38774错误。 alter database flashback off 1.3 alter database archivelog;发出设置归档模式的命令 1.4 alter database open;打开数据库 1.5 再次正常关闭数据库,并备份所有的数据文件和控制文件 1.6 archive log list;在将数据库设置为归档模式后,可以执行此命令进行确认 1.6.1 Database log mode 为Archive Mode说明当前的数据库为归档模式 1.6.2 Automatic archival为Enable说明启动了自动归档。

SQL2008数据库的备份与还原

江西学籍系统SQL数据库的备份与还原 编写:东师理想技术支持-李小伟 温馨提示:当学籍系统、综合素质评价系统有数据更新时,管理员一定要及时的做好数据库的备份工作,以防止意外情况的发生。正确、及时的进行数据库备份能减少数据丢失后恢复数据库的工作量。所以为了避免数据在灾难后无法恢复,必须对数据库进行备份。 一、SQL数据库的备份: 1、依次打开开始菜单→程序→Microsoft SQL Server 2008 →SQL Server Management Studio →数据库:Dsideal_school_db既是我们需要备份的学籍数据库 图(1)

2、选择要备份的数据库“Dsideal_school_db”,点击鼠标右键→任务→备份,如图(2): 图(2)

3、在打开的“备份数据库—Dsideal_school_db”对话框中,先点击删除,然后点击“添加”,如图(3): 首先点击“删除” 然后点击“添加” 图(3) 4、在弹出的“选择备份目标”对话框中,点击“”,如图(4) 图(4)

5、选择好备份的路径(如D盘的江西-学籍-数据库备份文件夹中),文件类型选择“所有文件”,“文件名”那个位置填写上您要备份的数据库的名字(最好在您备份的数据库的名字后面加上日期,以方便以后查找),之后连续点击“确定”按钮即可完成数据库的备份操作,如图(5): 图(5

二、SQL数据库的还原: 1、选择您要还原的数据库“Dsideal_school_db”,点击鼠标右键→任务→还原→数据库,如图(6): 图(6) 2、在出现的“还原数据库—school_web_db”对话框中选择“源设备”,然后点击后面的“”按钮,如图(7):

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