oracle数据库表如何恢复到特定时间点?
1个回答
展开全部
如果开启闪回可以使用闪回表。
select log_mode,flashback_on from v$database;
如果是下面结果则开了闪回
LOG_MODE FLASHBACK_ON
------------ ------------------
ARCHIVELOG YES
可以执行以下命令
alter table 表名 enable row movement; --开启表行移动
flashback table 表名 to timestamp to_timestamp('20130813 14:00:00','yyyymmdd hh24:mi:ss');
--闪回到2013年8月13日14点
你要是没开启,有逻辑备份可以使用imp命令导入数据。
如果没用逻辑备份,开启归档模式,有物理备份,能够停机、数据丢失的话,可以采用不完全恢复
用rman登陆
rman target /
执行以下命令
run{shutdown immediate;
startup mount;
set until time = "to_date('20130813 14:00:00','yyyymmdd hh24:mi:ss')";
restore database;
recover database;
alter database open resetlogs;}
切记!做以上任何操作前做好备份,否则出了问题后悔莫及。
而且建议你联系你们数据库管理员处理这个问题。
select log_mode,flashback_on from v$database;
如果是下面结果则开了闪回
LOG_MODE FLASHBACK_ON
------------ ------------------
ARCHIVELOG YES
可以执行以下命令
alter table 表名 enable row movement; --开启表行移动
flashback table 表名 to timestamp to_timestamp('20130813 14:00:00','yyyymmdd hh24:mi:ss');
--闪回到2013年8月13日14点
你要是没开启,有逻辑备份可以使用imp命令导入数据。
如果没用逻辑备份,开启归档模式,有物理备份,能够停机、数据丢失的话,可以采用不完全恢复
用rman登陆
rman target /
执行以下命令
run{shutdown immediate;
startup mount;
set until time = "to_date('20130813 14:00:00','yyyymmdd hh24:mi:ss')";
restore database;
recover database;
alter database open resetlogs;}
切记!做以上任何操作前做好备份,否则出了问题后悔莫及。
而且建议你联系你们数据库管理员处理这个问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询