数据库备份与恢复指南

zcb7288 贡献于2012-01-06

作者 luohc  创建于2011-02-17 06:18:00   修改者luohc  修改于2011-02-24 07:29:00字数15412

文档摘要:本文档对公司目前使用的三种主流数据库的备份与恢复进行说明。旨在帮助实施人员在系统运维期,定期进行数据库备份,以防止客户数据丢失。
关键词:

 广东同望科技股份有限公司 数据库备份与恢复指南 2011-2-23 1. 概述 本文档对公司目前使用的三种主流数据库的备份与恢复进行说明。旨在帮助实施人员在系统运维期,定期进行数据库备份,以防止客户数据丢失。 2. Oracle数据库 2.1 逻辑备份 逻辑备份包括读一个数据库记录集和将记录集写入一个文件中。 Export程序来完成数据库备份。 Import程序使用由Export生成的导出文件来恢复数据库。 用Export进行数据库备份时,数据库仍处理连接状态,即不用关闭数据库。 备份: exp userid=username/password@ora9i_inst file=filename.dmp log=logfilename.log 利用inctype选项,可以进行“完全备份”、“增量备份”、“累计增量备份”。Oracle 10g以后inctype选项被废弃,用RMAN的增量备份代替。 增量备份:备份从上一次备份后发生改变的数据。 累计增量备份:备份从上一次“完全备份”后,发生改变的数据。也就是说,累计增量备份包括之前多次增量备份的数据。 实际应用环境根据实际情况选择备份策略。一般可以一周进行一次全备份,每天进行一次增量备份。连续多次增量备份后,进行一次累计增量备份。 exp命令选项: 关键字 描述 userid 执行导出的帐户的用户名/口令,如果这是e x p命令后的第一个参数,则关键字userid就不必指定 buffer 用于获取数据行的缓冲区尺寸,缺省值随系统而定,通常设为一个高值( > 64000) file 导出转储文件的名字 filesize 一个导出转储文件的最大尺寸。如果file条目中列出了多个文件,将根据filesize设置值导出这些文件 第 页 共 22 页 广东同望科技股份有限公司 compress 一个Y / N标志,用于指定导出是否应把碎片段压缩成单个盘区。这个标志影响将存储到导出文件中的storage子句 grants 一个Y / N标志,用于指定数据库对象的权限是否导出 indxes 一个Y / N标志,用于指示表上的索引是否导出 rows 一个Y / N标志,用于指示行是否导出。如果设置为N,在导出文件中将只创建数据库对象的DDL constraints 一个Y / N标志,用于指示表上的约束条件是否导出。 full 若设为Y,执行Full数据库导出 owner 导出数据库帐户的清单;可以执行这些账户的User导出 tables 导出表的清单,可以执行这些表的Table导出 recordlength 导出转储文件记录的长度,以字节为单位。除非是在不同的操作系统间转换导出文件,否则就使用缺省值 inctype 要执行的导出类型(允许值为COMPLETE (缺省) 、CUMULATIVE和 INCREMENTAL ) direct 一个Y / N标志,用于指示是否执行Direct导出。Direct导出在导出期间绕过缓冲区,从而大大提高导出处理的效率 record 用于Incremental导出,这个Y / N标志指示一个记录是否存储在记录导出的数据字典表中 parfile 传递给Export的一个参数文件名。这个文件可以包含这里列出的全部参数条目 Statistics 这个参数指示导出对象的analyze命令是否应写到导出转储文件上。其有效值是COMPUTE、ESTIMATE ( 缺省)和N consistent 一个Y / N标志,用于指示是否应保留全部导出对象的读一致版本在Export处理期间,当相关的表被用户修改时需要这个标志 log 一个要写导出日志的文件名 Feedback 表导出时显示进度的行数。缺省值是0,所以在一个表全部导出前没有反馈显示 point_in_time_recover 一个Y / N标志,用于向Oracle指示,是否正在导出用于表空间时间点恢复的元数据。这是个高级恢复技术 recover_tablespaces 在表空间时间点恢复期间,其元数据应被导出的表空间 query 导出时用于每个表的where子句 transport_tablespace 如果正在使用Oracle 8i的可移动表空间选项,就设置成Y。和关键字tablespace一起使用 tablespaces 移动一个表空间时应导出其元数据的表空间 恢复: imp userid=username/password@ora9i_inst file=filename.dmp 恢复时,要指定与备份文件导出时相同的inctype类型。先恢复全备份,再按备份时的顺序依次恢复增量备份。如果有累计增量备份,先恢复最后一次的累计增量备份,再恢复在它之后的增量备份。 2.2 物理备份 物理备份是拷贝构成数据库的文件而不管其逻辑内容如何。由于使用操作系统的文件备份命令,所以这些备份也被称作文件系统备份(file system backup)。 Oracle支持两种不同类型的物理文件备份:脱机( offline) 备份和联机(online) 备份(也叫作“hot”(热)或“ARCHIVELOG”备份)。 2.2.1 脱机备份 也叫冷备份,当数据库已经正常关闭(不包括由失败引起的关闭)时使用脱机备份。当数据库处于 “offline”时,要备份下列文件: Ø 所有数据文件 Ø 所有控制文件 Ø 所有联机重做日志 第 页 共 25 页 广东同望科技股份有限公司 Ø init.ora文件(可选择) 当数据库关闭时,复制(利用操作系统拷贝功能)上面所列文件进行备份。恢复时将这些备份文件拷贝回去,重启数据库即可。 利用脚本进行对test进行冷备份示例: --连接数据库 connect internal/oracle; --关闭数据库 shutdown immediate; --备份(数据文件, 控制文件和日志文件) $xcopy e:\Oracle\oradata\test\*.dbf e:\database\H\R; --数据文件 $xcopy e:\Oracle\oradata\test\*.ctl e:\database\H\R; --控制文件 $xcopy e:\Oracle\oradata\test\*.log e:\database\H\R; --日志文件 --打开数据库 startup; 2.2.2 联机备份 可以为正在ARCHIVELOG方式下运行的数据库使用联机备份。在这种方式下,联机重做日志被归档,在数据库内创建一个所有事务的完整记录。 Oracle默认以循环方式写入联机重做日志文件:在填满第一个日志文件后,开始写第二个文件,直到填满;然后开始写第三个文件…当最后一个联机重做日志文件填满后, LGWR (Log Writer)后台进程开始重写第一个重做日志文件。 当以ARCHIVELOG方式运行Oracle时,ARCH(Archiver)后台进程在写入前将每个重做日志文件做一个拷贝。 假若是运行在ARCHIVELOG方式下,数据库打开时就可以执行一个文件系统备份。联机备份包括将每一个表空间设为备份状态,接着备份其数据文件,然后再将表空间恢复为正常状态。 数据库可从一个联机备份中完全恢复,并且可以通过归档的重做日志,前滚到任一时刻。 要备份以下文件: Ø 所有数据文件。 Ø 所有归档的重做日志文件。 Ø 一个控制文件,通过alter database命令进行。 联机备份有以下优点: 第一,提供了完全的时间点(point-in-time)恢复。 第二,在文件系统备份时允许数据库保持打开状态。 因此,即使在用户要求数据库不能关闭时也能备份文件系统。保持数据库打开状态也就可以避免数据库的System Global Area(SGA)被重新设置。 用脚本进行热备份示例: --连接数据库 connect internal/oracle; --将循环日志改为归档日志 alter system archive log current; --开始 alter tablespace system begin backup; 第 页 共 25 页 广东同望科技股份有限公司 $xcopy e:\Oracle\oradata\test\system01.dbf e:\databak\H\R; alter tablespace system end backup; alter tablespace rbs begin backup; $xcopy e:\Oracle\oradata\test\rbs01.dbf e:\databak\H\R; alter tablespace rbs end backup; alter tablespace users begin backup; $xcopy e:\Oracle\oradata\test\users01.dbf e:\databak\H\R; alter tablespace users end backup; alter tablespace tools begin backup; $xcopy e:\Oracle\oradata\test\tools01.dbf e:\databak/H/R; alter tablespace tools end backup; alter tablespace indx begin backup; $xcopy e:\Oracle\oradata\test\indx01.dbf e:\databak\H\R; alter tablespace indx end backup; --结束 --备份控制文件 --binary alter database backup controlfile to 'e:\databak\controlbinbak.000'; --ascii alter database backup controlfile to trace; alter system archive log current; 联机备份的恢复: 1、 关闭数据库,将备份的数据文件拷贝回原来位置; 2、 所有归档日志放到参数LOG_ARCHIVE_DEST_1所指定的位置; 3、 利用sqlplus登陆到空实例。(connect / as sysdba) 4、 然后   startup mount set autorecovery on recover database; --若恢复到某一时间点recover database until time '2005-02-28:14:43:01'; --若恢复到某一scn号 recover database until scn 31014; alter database open; 2.3 不同备份方案的比较 备份方案 综述 优点 缺点 冷备份 冷备份是Oracle最简单的一种备份;执行冷备份前必须关闭数据库;然后使用操作系统实用工具或者第三方工具备份所有相关的数据库文件。 能简单快速地备份。能简单快速地恢复。执行简单。 必须关闭数据库。 不能进行点恢复 第 页 共 25 页 广东同望科技股份有限公司 热备份 热备份是当数据库正在运行时进行数据备份的过程。执行热备份的前提是:数据库运行在可归档日志模式。适用于24X7不间断运行的关键应用系统。 备份时数据库可以是打开的。热备份可以用来进行点恢复。初始化参数文件、归档日志在数据库正常运行时是关闭的,可用操作系统命令拷贝。 执行过程复杂。由于数据库不间断运行,测试比较困难。不能用操作系统实用工具拷贝打开的文件。必须使用Oracle提供的ocopy工具来拷贝打开的文件。热备份可能造成CPU、I/O过载,应在数据库不太忙时进行 Export导出数据库对象 export备份的是数据库对象,是种逻辑备份 能执行对象或者行恢复。备份和恢复速度更快。能够跨操作系统平台迁移数据库。数据库可一直运行 export并不是冷备份和热备份的替代工具。冷、热备份可保护介质失效。export备份可保护用户或应用错误。 2.4 RMAN备份与恢复 2.4.1 一般备份与恢复 一、备份 1:连接目标数据库: rman rman>connect target  username/password@orcl_inst    ---当地机器连接形式   进入归档模式切换: sqlplus /nolog sql>conn username/password as sysdba; sql>archive log list;---查看是否归档模式 启动start mount 状态下 进行归档模式的切换 sql>alter database archivelog; 再启动即可; 2:查询目标数据库的配置情况; RMAN> SHOW ALL; 修改成如下配置: configure retention policy to redundancy 1; # default configure backup optimization on; configure default device type to disk; # default configure controlfile autobackup on; configure controlfile autobackup format for device type disk to 'f:rman_back%f'; # default configure device type disk parallelism 1; # default configure datafile backup copies for device type disk to 1; # default configure archivelog backup copies for device type disk to 1; # default configure channel 1 device type disk format "f:rman_back%u"; configure maxsetsize to unlimited; # default configure snapshot controlfile name to 'f:rman_backsncfraydb.ora'; 如果configure controlfile autobackup off; 第 页 共 25 页 广东同望科技股份有限公司 执行下面语句: RMAN>configure controlfile autobackup on; 3:备份控制和数据文件 RMAN>backup database; 4:备份日志文件; rman>backup archivelog all delete input; 二、 恢复 1:先将数据库工作在'已装载'模式下; sql>shutdown immediate; sql>startup mount; sql>select status from v$instance;--open 2:rman>restore database; 3:rman>recover database; 数据库恢复成功; sql>alter database open; 2.4.2 表空间的备份与恢复 数据库要工作在归档日志模式下; 1:表空间的备份; rman>backup (tablespace users include current controlfile); 2:备份归档日志; rman>backup (archivelog all delete input); 3:表空间恢复; 3.1:表空间的脱机; rman> sql'alter tablespace users offline immediate'; 3.2:表空间所属数据文件还原; rman>restore(tablespace users); 3.3:表空间恢复过程; rman>recover tablespace users; 3.4:表空间联机的过程; rman>sql'alter tablespace users online'; 2.4.3 数据文件的备份恢复 数据库要工作在归档日志模式下; 1:备份数据文件; rman>backup (datafile 'd:oracleoradatadbnameusers01.dbf'); 2:备份所有归档日志文件; rman>backup (archivelog all delete input); 3:数据文件的恢复; 3.1:将数据文件所属的表空间users脱机; 第 页 共 25 页 广东同望科技股份有限公司 rman>sql'alter tablespace users offline immediate'; 3.2:将数据文件还原的过程; rman>restore (datafile 'd:oracleoradatadbnameusers01.dbf') ; 3.3:数据文件的恢复过程; rman>recover datafile 'd:oracleoradatadbnameusers01.dbf'; 3.4数据文件所属的表空间的联机; rman>sql'alter tablespace users online'; OK; 2.4.4 整库备份与恢复 一、 备份 1、只备份数据文件 (如果configure controlfile autobackup on; 将自动包括控件文件,SPFILE) RMAN> backup database; 2、同时备份归档日志,然后将备份后的归档日志删除 RMAN> backup database plus archivelog delete input; 3、明确指定同时备份控件文件: RMAN> run{   allocate channel ch1 type disk;   sql 'alter system archive log current';   backup full database include current controlfile tag 'db_full_controlfile_%T'   format '/user/oracle/rmanback/full_%u_%s_%p';---'d:\oracle\rman\full_%u_%s_%p';   sql 'alter system archive log current';   release channel ch1;   } 二、恢复(完全恢复)   目标数据库必须是mount状态   rman target username/password@orcl_inst   RMAN> startup mount   RMAN> restore database;   RMAN> recover database;   RMAN> alter database open; 2.4.5 增量备份 增量备份都需要一个0级备份来作为基础,0级备份实际上就是一个完全备份,0级备份与全备份的区别在于0级可以用来增量恢复,而全备份则不可以。 从级别1开始: 差异增量:是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式。通过级别的控制,可以使差异增量达到累积增量的效果。     累积增量:是备份上级备份以来所有变化的块。 第 页 共 25 页 广东同望科技股份有限公司 以下是零级备份的例子: backup incremental level 0 database; 一级差异增量例子 backup incremental level 1 database; 一级累计增量例子 backup incremental level 1 cumulative database; 典型差异备份策略: 星期 差异增量 说明 星期天 0级 0级全备份 星期一 2级 备份从星期天之后到当前的变化 星期二 2级 备份从星期一之后到当前的变化 星期三 1级 备份从星期天之后到当前的变化,相当于一次累计增量 星期四 2级 备份从星期三之后到当前的变化 星期五 2级 备份从星期四之后到当前的变化 星期六 2级 备份从星期五之后到当前的变化 假设周五备份之后周六备份前要进行数据库恢复,那么只需要使用星期天的0级,星期三的一级,星期四、五的二级就可以恢复。 假设上面的备份策略中将差异增量改为累积增量,别级不变,周五之后周六前要进行数据库恢复,则需要使用星期天的0级,星期三的一级,星期五的二级即可进行恢复。 2.4.6 删除备份文件 通过retention policy来设置自动备份文件的过期策略。(show all命令查看过期策略) RMAN> configure retention policy to recovery window of 2 days; --保留能恢复到2天前的备份. RMAN> list backup; --列出所有备份。 RMAN> crosscheck backup; --检查备份,有三种结果:AVAILABLE, UNAVAILABLE, and EXPIRED. RMAN> report obsolete; --查看废弃的备份 RMAN> delete obsolete; --删除废弃的备份. RMAN> delete obsolete recovery window of 7 days; --通过指定的过期策略删除过期的备份. 3. SQLServer数据库 以下内容是基于SQLServer 2008版本。其它版本可能略有不同,但大体都差不多。 参考:http://msdn.microsoft.com/zh-cn/library/ms187048.aspx 3.1 完整数据库备份 数据库备份易于使用。完整数据库备份包含数据库中的所有数据。对于可以快速备份的小数据库而言,最佳方法就是使用完整数据库备份。但是,随着数据库的不断增大,完整备份需花费更多时间才能完成,并且需要更多的存储空间。因此,对于大型数据库而言,您可以用差异备份来补充完整数据库备份。有关详细信息,请参阅 第 页 共 25 页 广东同望科技股份有限公司 差异数据库备份。 使用Management Studio来进行完整备份: 1. 连接到相应的 MicrosoftSQL Server 数据库引擎实例之后,在对象资源管理器中,单击服务器名称以展开服务器树。 2. 展开“数据库”,然后根据数据库的不同,选择用户数据库,或展开“系统数据库”,再选择系统数据库。 3. 右键单击数据库,指向“任务”,再单击“备份”。将出现“备份数据库”对话框。 4. 在“数据库”列表框中,验证数据库名称。您也可以从列表中选择其他数据库。 5. 可以对任意恢复模式(FULL、BULK_LOGGED 或 SIMPLE)执行数据库备份。 6. 在“备份类型”列表框中,选择“完整”。(请注意,创建了完整数据库备份后,可以创建差异数据库备份; ) 7. 还可以根据需要选择“仅复制备份”创建仅复制备份。“仅复制备份”是独立于常规 SQL Server 备份序列的 SQL Server 备份。有关详细信息,请参阅仅复制备份。 8. 对于“备份组件”,请单击“数据库”。 9. 可以接受“名称”文本框中建议的默认备份集名称,也可以为备份集输入其他名称。 10. 或者,在“说明”文本框中,输入备份集的说明。 11. 指定备份集何时过期以及何时可以覆盖备份集而不用显式跳过过期数据验证: 12. 通过单击“磁盘”或“磁带”,选择备份目标的类型。若要选择包含单个媒体集的多个磁盘或磁带机(最多为 64 个)的路径,请单击“添加”。选择的路径将显示在“备份到”列表框中。 13. 若要查看或选择高级选项,请在“选择页”窗格中单击“选项”。 14. 可以通过单击以下选项之一来选择“覆盖媒体”选项。 15. 在“可靠性”部分中,根据需要选中以下任意选项: · 完成后验证备份。 · “写入媒体前检查校验和”和“出现校验和错误时继续”(可选)。 16. 如果备份到磁带机(如同“常规”页的“目标”部分指定的一样),则“备份后卸载磁带”选项处于活动状态。单击此选项可以激活“卸载前倒带”选项。 17. SQL Server 2008 Enterprise 及更高版本支持备份压缩。默认情况下,是否压缩备份取决于“备份压缩默认值”服务器配置选项的值。但是,不管当前服务器级默认设置如何,您都可以通过选中“压缩备份”来压缩备份,并且可以通过选中“不压缩备份”来防止压缩备份。 使用T-SQL进行备份: ----简单恢复模式下的备份示例 -- Back up the AdventureWorks2008R2 database to new media set. BACKUP DATABASE AdventureWorks2008R2     TO DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2SimpleRM.bak'     WITH FORMAT; GO 只能恢复到备份时的版本。 ----完整恢复模式下的备份示例 USE master; 第 页 共 25 页 广东同望科技股份有限公司 ALTER DATABASE AdventureWorks2008R2 SET RECOVERY FULL; GO -- Back up the AdventureWorks2008R2 database to new media set (backup set 1). BACKUP DATABASE AdventureWorks2008R2 TO DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2FullRM.bak' WITH FORMAT; GO --Create a routine log backup (backup set 2). BACKUP LOG AdventureWorks2008R2 TO DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2FullRM.bak'; GO 根据备份的日志,可以完整恢复。 3.2 差异数据库备份 “差异数据库备份”只记录自上次完整数据库备份后更改的数据。此完整备份称为“差异基准”。 对于大型数据库,完整数据库备份需要大量磁盘空间。为了节省时间和磁盘空间,可以在一次完整数据库备份后安排多次差异备份。连续的差异数据库备份中,后一次包括前一次差异备份的内容,这就需要更长的备份时间、还原时间和更大的空间。因此,建议定期执行新的完整备份以提供新的差异基准。 1、使用Management Studio:同前,略。 2、使用T-SQL: 语法:BACKUP DATABASE database_name TO WITH DIFFERENTIAL 先进行一次完整备份,再定期进行多次差异备份。 3.3 数据库恢复 通常的恢复步骤 1. RESTORE DATABASE database FROM full database backup WITH NORECOVERY; 2. RESTORE DATABASE database FROM full_differential_backup WITH NORECOVERY; (恢复最后一次差异备份) 3. RESTORE LOG database FROM log_backup WITH NORECOVERY; (重复此步骤还原每个日志备份。) 4. RESTORE DATABASE database WITH RECOVERY; 示例: USE master; --Create tail-log backup.在故障点时创建结尾日志(可选)。 BACKUP LOG AdventureWorks2008R2 TO DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2FullRM.bak' WITH NORECOVERY; GO 第 页 共 25 页 广东同望科技股份有限公司 --Restore the full database backup (from backup set 1).恢复完整备份。 RESTORE DATABASE AdventureWorks2008R2   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2FullRM.bak'   WITH FILE=1,  NORECOVERY; --Restore the regular log backup (from backup set 2).恢复常规日志备份(多次)。 RESTORE LOG AdventureWorks2008R2   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2FullRM.bak'   WITH FILE=2,  NORECOVERY; --Restore the tail-log backup (from backup set 3). 恢复常规结尾日志备份 RESTORE LOG AdventureWorks2008R2   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2FullRM.bak'   WITH FILE=3,  NORECOVERY; GO --recover the database.还原数据库。 RESTORE DATABASE AdventureWorks2008R2 WITH RECOVERY; GO 4. DB2数据库 DB2的数据库备份与Oracle很相似。 按照备份方式,可分为: 1. 联机备份(也称热备份或在线备份) 2. 脱机备份(也称冷备份或离线备份) 按照备份范围,可分为 1. 完全备份 2. 增量备份(也称累计备份,与Oracle的累计增量备份相同) 3. delta备份(与Oracle的增量备份相同) DB2 备份文件的结构介绍   在不同的操作系统下,DB2 的备份文件的结构是不同的,这里概要地介绍一下。   1、 Windows 操作系统下的数据库备份文件结构: 第 页 共 25 页 广东同望科技股份有限公司   说明:Windows 操作系统下的数据库备份文件是嵌套在一系列文件夹之下的特殊结构。上例中,D:\DB2_Train 是指备份目录,TESTDB.0 是指数据库名称为 TESTDB,DB2 是指实例名称,NODE0000 是指节点名称,CATN0000 是指编目名称,20070801 是指备份发生的年月日,形如YYYYMMDD,181241是指备份发生的时间,精确到秒,也就是指 18 点 12 分 41 秒,形如HHMMSS,最后的 001 则是备份文件的一个序列号。   2、 Unix 操作系统下的数据库备份文件结构:   说明:Unix 操作系统下的数据库备份文件就是一个文件。上例中,HTDC 是指数据库名称,db2inst1 是指实例名称,NODE0000 是指节点名称,CATN0000 是指编目名称,20070310002357 是指备份发生的具体时间,形如YYYYMMDDHHMMSS,同样地,它的时间精确到秒,也就是指 2007年3月10日0点23分57秒发生备份,最后的 001 则是备份文件的一个序列号。 4.1 脱机备份 --首先要断开当前服务器链接 connect reset; 第 页 共 25 页 广东同望科技股份有限公司 --离线完全备份,指定备份存放的地址,备份之后会返回一个时间戳 backup db maxdb7 to d:\DB2\backup\ --恢复备份 restore db maxdb7 from d:\DB2\backup taken at 20100720120756; --其中201007201207561是备份的时间戳,可以在备份文件名中找到 4.2 联机备份 要让数据库支持联机备份,必须更改数据库的日志归档方式。在脱机备份模式下,数据库 采用循环日志方式记录数据库日志,在联机备份模式下,数据库则采用归档日志的方式备份数据库日志。 --连接 connect to maxdb7; --修改数据库参数,使之支持在现联机备份 update db cfg for maxdb7 using logretain on trackmod on; --此时会提示:对于这些配置参数,必须在所有应用程序都与此数据库断开连接之后,更改才会生效。 --此时 ,也需要做一次数据库的脱机全备份。 connect reset; backup db maxdb7 to d:\DB2\backup1\; --做一次离线完全备份 --然后连接数据库,准备做在线备份 connect to maxdb7; --指定归档日志的存放路径 update db cfg using logarchmeth1 disk:d:\DB2; --联机完全备份 backup db maxdb7 online to d:\DB2\backup1\ --增量备份:备份与上次完全备份以来更改过的数据 backup db maxdb7 online incremental to d:\DB2\backup1\ --delta备份:备份自最近以来最近一次备份更改过的数据 backup db maxdb7 online incremental delta to d:\DB2\backup1\ --这里可以指定并行数,缓冲区数目还有每个缓冲区的大小,例如指定并行数为2,缓冲区数目为4,缓冲区大小为1024,则进行delta备份的话为: backup db maxdb7 online incremental delta to d:\DB2\backup1\ with 2 buffers buffer 1024 parallelism 4 without prompting; 第 页 共 25 页 广东同望科技股份有限公司 --数据库恢复 restore db maxdb7 from d:\DB2\backup1 taken at 20100720140108; --前滚数据库,并指定归档日志位置,这个很重要,因为此时如果去连接数据库根本连不上 rollforward database maxdb7 to end of logs and complete overflow log path("d:\DB2"); 4.3 GUI操作备份 打开控制中心,进到数据库管理界面。 选择备份数据库,按照提示一步步来。 注意的是在这里要选择备份的各种类型,依据用户的需求做出选择: 第 页 共 25 页 广东同望科技股份有限公司 还原备份 参考图: 需要还原的时候在工具里选择日志,如图: 点击鼠标右键,选择复原,按照提示走就可以进行数据库恢复。 5. 自动备份 除了某些数据库直接可以设置定期自动备份外,一般处理方式都是先写一个备份脚本,然后由操作系统的定时任务去执行这个脚本。 以下简单示例不同操作系统下的自动备份步骤,实际情况要比示例复杂,比如备份文件自动命名、删除过期备份文件以节约空间等等,这需要对操作系统及其命令脚本要有一定了解。 5.1 Windows系统 利用windows操作系统的批处理文件和任务计划,完成数据库的自动备份。 5.1.1 Oracle自动备份 下面示例完成Oracle的自动备份。 一、用EXP进行自动备份 1、创建批处理文件 backup_database.bat .bat中详细内容如下: @echo on echo 正在备份数据库,请稍等...... echo不同数据库,需要换成对应数据库的备份命令 exp userid=username/password@ora9i_inst file=filename.dmp log=logfilename.log echo 数据库任务完成! 2、添加任务计划,定时执行backup_database.bat文件 从“开始”-“所有程序”-“附件”-“系统工具”-“任务计划”运行任务计划,然后选择添加任务计划, 第 页 共 25 页 广东同望科技股份有限公司 按照任务计划向导,一步步完成设置即可。 二、用RMAN自动备份 1、建立批处理文件(路径自定) c:\backup.bat 内容如下: rman cmdfile=c:\rmanback.txt log=c:\rman_%date:~0,10%.log 2、建立rman命令文件 c:\rmanback.txt 内容如下: connect target username/password@orcl_inst run { allocate channel c1 type disk; backup full database format='c:\rman\%d_%T_%s.bak'; backup current controlfile format ='c:\rman\%T_control.ctl'; sql 'alter system switch logfile'; release channel c1 ; } 3、在windows的计划任务中加入c:\backup.bat即可。 5.1.2 DB2自动备份 下面示例完成DB2自动备份: 1、先创新一个db2_backup.bat文件,里面写入db2备份的命令. @echo 连接待备份数据库db_test db2 connect to db_test @echo 开始备份数据库db_test到d:\dbbak db2 backup db db_test online to d:\dbbak compress include logs @echo 数据库db_test已经成功备份到d:\dbbak exit 2、再创建一个bat文件db2_backup_main.bat,通过db2cmd命令打开db2窗口命令环境,在db2的命令环境下执行前一个bat文件,内容如下: db2cmd -i -w db2_backup.bat exit 3、将db2_backup_main.bat加到windows任务计划中。 5.1.3 SQLServer自动备份 企业管理器中的Tools,Database Maintenance Planner,可以设置数据库的定期自动备份计划。并通过启动Sql server Agent来自动运行备份计划。具体步骤如下: 1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器 2、然后点上面菜单中的工具-->选择数据库维护计划器 3、下一步选择要进行自动备份的数据-->下一步更新数据优化信息,这里一般不用做选择-->下一步检查数据完整性,也一般不选择 4、下一步指定数据库维护计划,默认的是1周备份一次,点击更改选择每天备份后点确定 5、下一步指定备份的磁盘目录,选择指定目录,如您可以在D盘新建一个目录如:d:\databak,然后在这里选择使用此目录,如果您的数据库比较多最好选择为每个数据库建立子目录,然后选择删除早于多少天前的备份,一般设定4-7天,这看您的具体备份要求,备份文件扩展名默认的是BAK 6、下一步指定事务日志备份计划,看您的需要做选择-->下一步要生成的报表,一般不做选择-->下一步维护计划历史记录,最好用默认的选项-->下一步完成 7、完成后系统很 第 页 共 25 页 广东同望科技股份有限公司 可能会提示Sql Server Agent服务未启动,先点确定完成计划设定,然后找到桌面最右边状态栏中的SQL绿色图标,双击点开,在服务中选择Sql Server Agent,然后点击运行箭头,选上下方的当启动OS时自动启动服务 8、可以设置启动启动sql server Agent:运行Services.msc,设置sqlserverAgent为自动启动。 修改计划: 打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->管理-->数据库维护计划 第 页 共 25 页 广东同望科技股份有限公司 第 页 共 25 页 广东同望科技股份有限公司 第 页 共 25 页 广东同望科技股份有限公司 第 页 共 25 页 广东同望科技股份有限公司 第 页 共 25 页 广东同望科技股份有限公司 5.2 Linux或Unix 1、 先创建backup_database.sh的脚本文件,在里面写入数据库备份命令。 2、 在/var/spool/cron/crontabs目录下新建一个crontab文件(自动执行任务,类似windows下的任务计划),假定文件名为auto_backup。编辑auto_backup文件内容为 0 23 * * 0 backup_database.sh (#表示星期天23点对数据库备份)。 crontab文件的每一行由六个域(minutes,hours,day of month,month,day of week,command)组成,域之间用空格或Tab分隔开来。0 12,18 * * * backup_database.sh (#表示每天12点和18点备份 )。 第 页 共 25 页

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 18 金币 [ 分享文档获得金币 ] 2 人已下载

下载文档