Oracle10gDBA学习手册(八)第9章:执行备份和恢复目的本章向您介绍通过EnterpriseManager执行的OracleDatabase备份和恢复操作。配置闪回恢复区和ARCHIVELOG模式闪回恢复区是为Oracle数据库中的所有与恢复相关的文件和活动提供的一个统一的存储位置。将数据库从介质故障中完全恢复过来所需的全部文件都属于闪回恢复区。可以在闪回恢复区中创建的与恢复相关的文件包括:存档重做日志文件、控制文件、由恢复管理器(RMAN)创建的备份、闪回日志和修改跟踪文件。Oracle推荐在与数据库文件所在相同的磁盘上创建修改跟踪文件。实际上,如果您安装了OMF,并执行了启用修改跟踪的命令,那么将自动在为数据库文件指定的目录中创建跟踪文件。通过分配一个存储位置并将相关的恢复文件统一在一个特定的区域内,Oracle数据库服务器使数据库管理员不必再管理由这些组件创建的磁盘文件。当创建闪回恢复区时,您可以选择一个目录、文件系统或自动存储管理磁盘组来存放文件,并为闪回恢复区中用于存储所有文件的最大空间设置一个磁盘限额。您必须选择一个足够大的区域,以容纳所需的磁盘限额。当接近磁盘空间界限时,Oracle服务器可以根据RMAN保留策略的界限来删除非必要的文件,为新文件腾出空间。闪回恢复区应该在一个与工作区分离的磁盘上,其中存储着在增量备份中使用的活动数据库文件(如数据文件、控制文件、在线重做日志和修改跟踪文件)。将闪回恢复区和工作区置于相同的磁盘上,当出现磁盘故障时,很容易使您同时丢失活动的数据库文件以及备份。当您创建数据库时,可以配置闪回恢复区和ARCHIVELOG模式。如果您在您创建数据库时没有执行这些任务,那么请按照以下步骤来配置闪回恢复区和ARCHIVELOG模式:1.在操作系统提示符下为闪回恢复区创建一个目录。执行下列命令:cd$ORACLE_BASEmkdirflash_rec_area2.打开浏览器,并指定用户名为SYS,口令为SYSDBA,以登录EnterpriseManagerDatabaseConsole。单击Login。3.单击OracleDatabaseHome页面上的Maintenance。4.在Backup/Recovery部分中选择ConfigureRecoverySettings。您可以使用ConfigureRecoverySettings页面来配置恢复实用工具的设置,包括闪回恢复区。5.出现ConfigureRecoverySettings页面。滚动至FlashRecoveryArea部分。在相应字段中输入下列值来配置闪回恢复区:FlashRecoveryAreaLocation:FlashRecoveryAreaSize:向上滚动至窗口顶部。6.选中ArchiveLogMode,为数据库配置ARCHIVELOG模式。单击Apply。7.显示一条确认修改的消息。要完成ARCHIVELOG模式的配置,必须关闭数据库例程。单击Yes,关闭例程并重新启动它。8.显示RestartDatabase:SpecifyHostandTargetDatabaseCredentials页面。输入主机证书和数据库证书。单击OK。9.显示RestartDatabase:Confirmation页面。单击Yes,关闭例程并重新启动它。10.显示RestartDatabase:ActivityInformation页面。单击Refresh,登录EnterpriseManagerDatabaseControl。配置备份设置和策略您可以配置许多设置和策略来确定如何存储备份、备份哪些数据、如何执行备份,以及备份在从恢复区中清除之前保留多久。您还可以配置特性来提高备份性能。1.单击OracleDatabase主页上的Maintenance页面。2.在Backup/Recovery区域中选择ConfigureBackupSettings。3.滚动至ConfigureBackupSettings页面的HostCredentials区域。输入操作系统用户名和口令。向上滚动至DiskSettings部分。4.接受Device页面上的DiskSettings部分中的Parallelism字段中的值1。设置DiskBackupLocation字段为null,以使用闪回恢复区进行备份。对DiskBackupType选择BackupSet。单击TestDiskBackup。5.显示一条消息,指示磁盘设置备份测试成功完成。现在您将配置备份策略设置。单击Policy,访问Policy页面。6.选择Automaticallybackupthecontrolfileandserverparameterfile(SPFILE)witheverybackupanddatabasestructuralchange。选择Optimizethewholedatabasebackupbyskippingunchangedfilessuchasread-onlyandofflinedatafilesthathavebeenbackedup。选择Enableblockchangetrackingforfasterincrementalbackups。为BlockChangeTrackingFile输入一个文件名。然后向下滚动到RetentionPolicy部分。7.选择Retainbackupsthatarenecessaryforarecoverytoanytimewithinthespecifiednumberofdays(point-in-timerecovery),并接受默认值(31天)。单击OK。返回到Maintenance页面。确定DBID和DB_UNIQUE_NAME的值返回主题列表如果您丢失了数据库控制文件或SPFILE,EnterpriseManager可以从备份中恢复它们—只要您能够为数据库提供DB_UNIQUE_NAME和DBID。执行以下步骤,确定DB_UNIQUE_NAME的值:1.单击Administration页面上的Instance区域中的AllInitializationParameters。2.出现Current属性页面。在Filter字段中输入db_unique_name,然后单击Go。3.出现的页面显示了一行,该行的Name列为db_unique_name,Value列中给出了数据库的db_unique_name的值。记录这个值,以便将来您需要它来进行恢复操作时,可以获得它。执行以下步骤来确定DBID:1.单击Administration页面的Storage区域中的Controlfiles。2.出现Controlfiles属性页面。选择Advanced属性页面。3.DatabaseID字段包含DBID值。记录这个值,以便将来您需要它来进行恢复操作时,可以获得它。执行完整的数据库备份您可以通过执行一次完整的数据库备份来备份数据库的全部内容。所有数据文件的完整备份都将被创建。结果可能作为镜像拷贝或作为备份集存储,但在任意情况下,数据库的所有数据文件以及控制文件、存档重做日志和服务器参数文件的全部内容都将在备份中反映出来。利用这个文件集,可以完整的恢复数据库。1.在Backup/Recovery区域中选择ScheduleBackup。2.出现ScheduleBackup:Strategy页面。从BackupStrategy下拉菜单中选择Customized。选择WholeDatabase,如果需要,在HostCredentials部分中输入用户名和口令。单击Next。3.出现ScheduleBackup:Options页面。在BackupType部分中选择FullBackup。在BackupMode部分中选择OnlineBackup。在Advanced部分中选中Backupallarchivedlogsondisk。单击Next。4.出现ScheduleBackup:Settings页面。适当地选择Disk或Tape。单击Next。5.出现ScheduleBackup:Schedule页面。接受默认的作业名称。选择Immediately,立即执行作业,或输入在稍后执行的时间。单击Next。6.出现ScheduleBackup:Review页面。单击SubmitJob。7.显示BackupSubmitSuccessful消息。单击OK。利用Oracle建议的备份策略对数据库进行备份Oracle建议的备份策略的基础是创建数据库的一个镜像拷贝,然后利用RMAN增量备份继续生成备份。OracleEnterpriseManager调度RMAN备份作业。按照以下步骤来设置备份计划:1.在Backup/Recovery区域中选择ScheduleBackup。2.出现ScheduleBackup:Strategy页面。从BackupStratgy下拉菜单中选择Oracle-suggested。在Selectyourbackupdestination下选择Disk。在HostCredentials部分中输入操作系统用户名和口令。单击Next。3.出现ScheduleBackup:Setup页面。请仔细查看信息,然后单击Next。4.出现ScheduleBackup:Schedule页面。仔细查看信息,并相应地调整开始日期和时间。单击Next。5.出现ScheduleBackup:Review页面。请仔细查看信息,然后单击SubmitJob。6.出现Status页面和一条指示作业成功提交的消息。您可以单击ViewJob来访问作业状态页面或单击OK来完成操作。还原和恢复整个数据库在这一部分中,您将通过EnterpriseManager来恢复数据文件。1.在Backup/Recovery区域中选择PerformRecovery。2.出现PerformRecovery:Type页面。从Type部分中的ObjectType下拉菜单中选择WholeDatabase。选择Recovertothecurrenttimeorapreviouspoint-in-time作为OperationType。在HostCredentials部分中输入操作系统用户名和口令。单击Next。4.显示RecoveryWizard页面,指示例程将关闭并重启。单击Refresh,继续使用RecoveryWizard。5.单击PerformRecovery,恢复数据库。6.在HostCredentials区域中输入操作系统用户名和口令。在DatabaseCredentials区域中输入SYS和SYS的口令。单击Continue。7.再次出现PerformRecovery:Type页面。数据库现在处于加载状态。单击Next。8.出现PerformRecovery:Point-in-time页面。选择Recovertothecurrenttime。单击Next。9.出现PerformRecovery:Rename页面。选择No.Restorethefilestothedefaultlocation(如果您希望这样)或者选择Yes.Restorethefilestoanew,commonlocation,并输入位置。单击Next。10.出现PerformRecovery:Review页面。仔细查看信息,然后单击Submit。11.收到Operationsucceeded消息。单击OK。执行闪回表启用行转移您必须在表上启用行转移,以在表上执行闪回表操作。在这一部分中,您将在HR.EMPLOYEES表上启用行转移。1.在OracleDatabaseHome页面上单击Administration。2.出现Administration属性页面。在Schema部分中选择Tables。3.出现Tables页面。从ObjectType下拉菜单中选择Table。在Schema字段中输入HR,在O