oracle备份与恢复--闪回技术
admin
2023-04-16 08:41:43
0

一•启用闪回数据库
1.启用归档模式
sql>shutdown immediate;
sql>startup mount;
sql>alter database archivelog;
2.建立闪回区
sql>alter system set db_recovey_file_dest='/opt/oracle/flash_recovery_area' scope=both;
sql>alter system set db_recovery_file_dest_size=3g scope=both;
3.设置闪回数据库的数据保留周期为一天,以min为单位
sql>alter system set db_flashback_retention_target=1440;
4.启用闪回日志
sql>alter database flashback on;
sql>alter database open;

二•使用scn闪回数据库
1.查询数据库系统当前的scn(记下此scn)
sql>select current_scn from v$database;
2.改变数据库的当前状态,模拟创建表test1,并插入1条数据
create table test1(id number,name char(20));
insert into test1 values(1,'data');
commit;
3.进行闪回数据库恢复,将数据库恢复到创建表之前的状态
SQL> select OLDEST_FLASHBACK_SCN from v$FLASHBACK_DATABASE_LOG;(查看scn)
shutdown immediate
startup mount;
flashback database to scn 之前查到的scn
4.最后使用resetlogs选项打开数据库
alter database open resetlogs;
5.验证数据库的状态(test1表应该不存在)
SQL> select from test1;
select
from test1
*
ERROR at line 1:
ORA-00942: table or view does not exist

6.按照指定时间闪回数据库
1)设置显示日期格式
alter session set nls_date_format='yyyy-mm-dd hh34:mi:ss';
select sysdate from dual;(查看系统时间)
2)改变数据库的当前状态,模拟创建表test2,并插入1条记录
sql>set time on;
sql>create table test2(id number,name char(20));
sql>insert into test2 values(1,'data');
sql>commit;
sql>shutdown immediate;
sql>startup mount;
sql>flashback database to timestamp(to_timestamp('......'));(....即为前面查看到系统时间)
sal>alter database open resetlogs;
sql>select * from test2;
ERROR at line 1:
ORA-00942: table or view does not exist(显示test2表不存在)
说明:闪回数据库操作的限制
1)数据文件损坏或丢失等介质故障不能使用闪回数据库进行恢复。闪回数据库只能基于当前正常运行的数据文件。
2)闪回数据库功能启动后,如果发生数据库控制文件重建或利用备份恢复控制文件,则不能使用闪回数据库
3)不能使用闪回数据库进行数据文件收缩操作
4)不能使用闪回数据库将数据库恢复到闪回日志中可获得最早的SCN之前的SCNM,因为闪回日志文件在一定条件下被删除,而不是始终保存在闪回恢复区中

三、闪回表
闪回表可将表恢复到特定的时间点或者指定的SCN
闪回表实际上是对表进行DML操作的过程
数据库保持联机
为了使用数据库闪回表功能,必须满足下列条件:
用户具有FLASHBACK ANY TABLE系统权限,或者具有所操作表的FLASHBACK对象权限
用户具有所操作表的SELECT,INSERT,DELETE,ALTER对象权限
启动被操作表的ROW MOVEMENT特性,可以采用下列方式进行
ALTER TABLE table ENABLE ROW MOVEMENT;
注意
SYS用户或以AS SYSDBA身份登录的用户不能执行闪回表操作

1.使用scott用户登录
sql>alter user scott account unlock;
sql>alter user scott identified by 123456;
sql>grant connect,resource to scott;
sql>conn scott/123456;
set time on;
sql>create table test3(id number,name char(20));
sql>insert into test3 values(1,'zhang');
commit;
sql>insert into test3 values(2,'zhao');
commit;
sql>insert into test3 values(3,'wang');
commit;
以sys身份连接数据库,并授予scott用户select any dictionary的权限,并最后以scott身份查看当前的scn
conn / as sysdba
grant select any dictionary to scott;
SQL>set time on
sql>conn scott/123456;
sql>select current_scn from v$database;记下此scn
sql>update test3 set name='liu' where id=1;
sql>commit;
sql>select from test3;
sql>delete from test3 where id=3;
sql>commit;
sql>select
from test3
2.启动test3表的row movement特性
sql>alter table test3 enable row movement;
sql>flashback table test3 to timestamp to_timestamp(。。。。);

四、闪回删除
闪回删除可恢复使用DROP TABLE语句删除的表,是一种对意外删除的表的恢复机制
闪回删除功能的实现主要是通过数据库中的“回收站”(Recycle Bin)技术实现的
为了使用闪回删除技术,必须开启数据库的“回收站”
启动“回收站”
查看“回收站”
闪回删除的基本语法为
FLASHBACK TABLE [schema.]table TO BEFORE DROP [RENAME TO table]
注意
不支持SYS用户,SYSTEM表空间下的对象也不能从回收站里拿到。故使用SYS或者SYSTEM用户登录时,查询为空

1.启动回收站,将参数recyclebin设置为on,在默认情况下回收站已经启动
SQL> conn / as sysdba;
sql>show parameter recyclebin;
sql>alter system set recyclebin=on deferred;
2.查看回收站,不支持从sys用户,system表空间的对象也不能从回收站里拿到,所以要切换到scott用户测试
sql>conn scott/123456;
create table test4(id number,name char(20));
sql>insert into test4 values(3,'wang')
sql>commit;
sql>drop table test4;
sql>select object_name,original_name,type from user_recyclebin;
闪回表并重命名为new_test4
sql>flashback table test4 to before drop rename to new_test4;

五•闪回查询
sql>conn scott/123456;
sql>alter session set nls_date_format='yyyy-mm-dd hh34:mi:ss';
sql>set time on;
sql>select empno,sal from scott.emp where empno=7844;
sql>update scott.emp set sal=2000 where empno=7844;
sql>commit;
sql>update scott.emp set sal=2500 where empno=7844;
sql>update scott.emp set sal=3000 where empno=7844;
sql>commit;
查询7844员工前一个小时的工资值
sql>select empno,sal from scott.emp as of timestamp sysdate-1/24 where empno=7844

相关内容

热门资讯

凤凰连线:中美新一轮经贸磋商,... 中美双方将在韩国举行第七轮经贸磋商。美方的阵容和日程安排如何?在这轮磋商中有哪些关切?凤凰卫视驻韩国...
知情人士:阿联酋秘密打击伊朗,... 据参考消息援引美国《华尔街日报》网站5月11日报道,多名知情人士透露,阿联酋已对伊朗发动军事打击,令...
美防长称美伊停火协议依然有效 △赫格塞思(资料图)当地时间5月12日,美国国防部长赫格塞思表示,他们针对伊朗问题的所有情况都制定了...
特朗普二度来华,五大博弈看点,... 就在5月11日,外交部官宣了一则重磅消息:应中国邀请,美国总统特朗普将于5月13日至15日开启访华行...
科学家预测:“哥斯拉级”厄尔尼... 科学家近日发出警告,太平洋上空正在形成一种被称为“哥斯拉”级的罕见厄尔尼诺气候模式。有科学家预测,这...
200亿美金估值的可灵,值母公... 文 | 影子备忘录 要说今年科技圈最火的赛道,AI短剧绝对排得上号。一部AI仿真人短剧,3人团队、...
多名中国公民在越南乘机遗失财物... 近日,多名中国公民反映在越乘机过程中财物遗失,中国驻胡志明市总领馆提醒中国公民注意:一、强化防范意识...
电视机尺寸一览表70寸长宽 电视机尺寸一览表70寸长宽:一般液晶电视显示屏都是16比9,70寸就是说客它对角线长70寸是106....
东莞一社区推出生育奖励方案,二... 极目新闻记者 柳之萌近日,广东东莞万江街道谷涌社区出台生育奖励方案,对符合条件的二孩家庭一次性奖励1...
80寸液晶电视尺寸长宽多少厘米 80寸液晶电视尺寸长宽多少厘米:80寸的液晶电视大概为181x111厘米,即长度大概在181厘米,宽...