2020-04-19 BoobooWei
实践概述
在这些实践中,您将启用闪回日志记录并执行闪回数据库。
练习15-1:启用闪回记录
总览
在这种情况下,您将启用闪回日志记录。
假设条件
您打开了两个终端窗口,并以oracle OS用户身份登录。$LABS是当前目录。环境变量指向orcl实例。
任务
# 1.登录到SQL * Plus,然后确定是否启用了闪回日志记录。 sqlplus / as sysdba SELECT flashback_on FROM v$database; # 2.创建一个有保证的还原点,并检查您当前的FLASHBACK_ON状态。 CREATE RESTORE POINT rp1 GUARANTEE FLASHBACK DATABASE; SELECT FLASHBACK_ON FROM V$DATABASE; # 3.使用您选择的工具启用闪回日志记录。 ALTER DATABASE FLASHBACK ON; # 4.确认已启用闪回日志记录。 SELECT FLASHBACK_ON FROM V$DATABASE;
# 问题:您可以使用其他哪个工具来启用数据库的闪回日志记录? # 可能的答案:企业管理器云控制 # 问题:企业管理器云控制的导航步骤是什么? # 可能的答案:可用性>备份和恢复>恢复设置。
|
练习15-2:执行闪回数据库
总览
在这种情况下,对数据库进行一些不正确的更新后,您将闪回数据库。这种做法是出于学习目的。如果在生产环境中具有与此类似的场景,则可能会选择其他解决方案以将闪回限制为受影响的对象,而不是选择整个数据库的闪回。
假设条件
您已完成练习15-1。
您打开了两个终端窗口,并以oracle OS用户身份登录。$LABS是当前目录。为orcl实例设置了环境变量。
任务
# 1.您可以通过多种方式执行闪回数据库操作。您可以使用保证的还原点,SCN,时间值,线程等。本示例使用SCN,但您也可以使用在先前的实践中创建的RP1还原点。 SELECT current_scn FROM v$database; 确定您当前的SCN。是的 。您将需要在以后的练习步骤中使用它。 # 2.查看人力资源数据。在此练习期间,您将使用此信息进行比较 # a.确定HR.EMPLOYEES表中SALARY列的总和。 SELECT sum(salary) FROM hr.employees; SELECT count(*) FROM hr.employees where department_id=90; # b.确定部门90中的员工总数。 # 3.执行lab_15_02_03.sql脚本以更新HR模式中的表。在这种情况下,它会通过闪回数据库来创建问题,从中“恢复”。 @lab_15_02_03.sql # 4.提交数据并确定当前的SCN。 COMMIT; SELECT current_scn FROM v$database; # 5. 再次查询HR模式中的数据,并将结果与您在步骤2中的查询中收到的值进行比较。 # a.确定HR.EMPLOYEES表中SALARY列的总和。 SELECT sum(salary) FROM hr.employees; # b.确定部门90中的员工总数。 SELECT count(*) FROM hr.employees where department_id=90; # 6.您需要还原数据库,以便数据与开始此练习时的数据相同。出于培训目的,请使用闪回数据库进行此操作。 # 问题:对于闪回数据库操作,数据库必须处于哪种状态? # 可能的答案:必须安装数据库。 # a.关闭数据库实例,然后以MOUNT模式启动它。 shutdown immediate startup mount exit # b.登录到RMAN并使用FLASHBACK DATABASE命令将数据库闪回到步骤1中记下的SCN。退出RMAN。 rman target "'/ as sysbackup'" nocatalog flashback database to scn=4368114; (Enter your SCN number) exit # c.通过查询HR.EMPLOYEES验证数据库已正确地闪回。 sqlplus / as sysdba alter database open read only; SELECT sum(salary) FROM hr.employees; SELECT count(*) FROM hr.employees where department_id=90; # d.验证闪回所需状态后,打开数据库进行读/写操作。 shutdown immediate startup mount alter database open resetlogs; # 7.禁用闪回日志记录。 ALTER DATABASE FLASHBACK OFF; # 8.删除RP1保证的还原点。然后退出SQL * Plus。 DROP RESTORE POINT rp1;
|