如何用Oracle归档日志恢复到之前的某个时间点
2017-07-10
展开全部
两种方式
1. 通过scn回复删除并且提交的数据
1.1. 获取当前数据库的scn号
select current_scn from v$database; (切换到sys用户或system用户查询)
查询到的scn号为:1499220
1.2. 查询当前scn之前的scn
select * from 表名 as ofscn 1499220; (确定删除的数据是否存在,如果存在,则恢复数据;如果不是,则继续缩小scn号)
1.3. 恢复数据
flashback table 表名 to scn 1499220;
ORA-08189: cannot flashback the table because rowmovement is not enabled.(ORA-08189: 因为未启用行移动功能, 不能闪回表。)
解决办法:alter tabletable_name enable row movement;
2. 通过时间恢复删除并且提交的数据
2.1. 查询当前系统时间
selectto_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
2.2. 查询删除时间点的数据信息
select * from t_b_Student as of timestampto_timestamp('2017-07-10 14:31:46','yyyy-mm-dd hh24:mi:ss');
2.3. 恢复数据
flashback table t_b_Student to timestampto_timestamp('2017-07-10 14:31:46','yyyy-mm-dd hh24:mi:ss');
1. 通过scn回复删除并且提交的数据
1.1. 获取当前数据库的scn号
select current_scn from v$database; (切换到sys用户或system用户查询)
查询到的scn号为:1499220
1.2. 查询当前scn之前的scn
select * from 表名 as ofscn 1499220; (确定删除的数据是否存在,如果存在,则恢复数据;如果不是,则继续缩小scn号)
1.3. 恢复数据
flashback table 表名 to scn 1499220;
ORA-08189: cannot flashback the table because rowmovement is not enabled.(ORA-08189: 因为未启用行移动功能, 不能闪回表。)
解决办法:alter tabletable_name enable row movement;
2. 通过时间恢复删除并且提交的数据
2.1. 查询当前系统时间
selectto_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
2.2. 查询删除时间点的数据信息
select * from t_b_Student as of timestampto_timestamp('2017-07-10 14:31:46','yyyy-mm-dd hh24:mi:ss');
2.3. 恢复数据
flashback table t_b_Student to timestampto_timestamp('2017-07-10 14:31:46','yyyy-mm-dd hh24:mi:ss');
今至电子科技有限公司
2024-08-23 广告
2024-08-23 广告
上海今至电子科技有限公司,是一家从事运维服务、系统集成和网络工程的专业公司。业务涵盖IT解决方案、网络工程、应用软件开发、系统集成、服务器虚拟化、桌面虚拟化、高性能运算、负载均衡、数据容灾备份、服务外包、IT运维等。我们的理念:诚信为本,服...
点击进入详情页
本回答由今至电子科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询