恢复到特定点(时间点、scn、日志序列号),rman不完全恢复
2017-04-25 14:43
423 查看
将数据库、表空间、数据文件等恢复至恢复备份集保存时间中的任何一个时间点/SCN/日志序列(一般是日志挖掘找到误操作点),但须谨慎,操作前一定需要做好备份,具备条件的情况下最好先恢复到异机,避免业务停机时间。
前提:已经有数据库备份 (作者已经提前准备了备份,这里不进行备份,为了节约空间)
--准备实验环境
SQL> select * from andy.andy;
select * from andy.andy
*
ERROR at line 1:
ORA-00942: table or view does not exist
--不完全恢复时间点
SQL> select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2015-03-25 07:55:12
SQL> create table andy.andy(id int);
Table created.
SQL> insert into andy.andy values(1);
1 row created.
SQL> insert into andy.andy values(100);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from andy.andy;
ID
----------
1
100
1 基于时间点
方法一: 在RMAN中执行
RMAN>
run{
startup mount force;
set until time "to_date('2015-03-25 07:55:12','yyyy-mm-dd hh24:mi:ss')";
restore database;
recover database;
alter database open resetlogs;
}
Finished recover at 25-MAR-15
database opened
--恢复时间点之后的表不见了,说明的确是不完全恢复。
SQL> select * from andy.andy;
select * from andy.andy
*
ERROR at line 1:
ORA-00942: table or view does not exist
——————————————————————————
方法二:在SQLplus中执行
SQL>startup mount force;
SQL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
SQL>restore database until time "to_date('2015-03-25 07:55:12','YYYY-MM-DD HH24:MI:SS')";
SQL>recover database until time "to_date('2015-03-25 07:55:12','YYYY-MM-DD HH24:MI:SS')";
SQL>alter database open resetlogs;
2 基于 SCN:
SQL>startup mount force;
SQL>restore database until scn XXXX;
SQL>recover database until scn XXXX;
SQL>alter database open resetlogs;
3 基于日志序列
SQL>startup mount force;
SQL>restore database until SEQUENCE 100 thread 1; //100是日志序列
SQL>recover database until SEQUENCE 100 thread 1;
SQL>alter database open resetlogs;
前提:已经有数据库备份 (作者已经提前准备了备份,这里不进行备份,为了节约空间)
--准备实验环境
SQL> select * from andy.andy;
select * from andy.andy
*
ERROR at line 1:
ORA-00942: table or view does not exist
--不完全恢复时间点
SQL> select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2015-03-25 07:55:12
SQL> create table andy.andy(id int);
Table created.
SQL> insert into andy.andy values(1);
1 row created.
SQL> insert into andy.andy values(100);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from andy.andy;
ID
----------
1
100
1 基于时间点
方法一: 在RMAN中执行
RMAN>
run{
startup mount force;
set until time "to_date('2015-03-25 07:55:12','yyyy-mm-dd hh24:mi:ss')";
restore database;
recover database;
alter database open resetlogs;
}
Finished recover at 25-MAR-15
database opened
--恢复时间点之后的表不见了,说明的确是不完全恢复。
SQL> select * from andy.andy;
select * from andy.andy
*
ERROR at line 1:
ORA-00942: table or view does not exist
——————————————————————————
方法二:在SQLplus中执行
SQL>startup mount force;
SQL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
SQL>restore database until time "to_date('2015-03-25 07:55:12','YYYY-MM-DD HH24:MI:SS')";
SQL>recover database until time "to_date('2015-03-25 07:55:12','YYYY-MM-DD HH24:MI:SS')";
SQL>alter database open resetlogs;
2 基于 SCN:
SQL>startup mount force;
SQL>restore database until scn XXXX;
SQL>recover database until scn XXXX;
SQL>alter database open resetlogs;
3 基于日志序列
SQL>startup mount force;
SQL>restore database until SEQUENCE 100 thread 1; //100是日志序列
SQL>recover database until SEQUENCE 100 thread 1;
SQL>alter database open resetlogs;
相关文章推荐
- 恢复到特定点(时间点、scn、日志序列号),rman不完全恢复
- 第6天-3 RMAN不完全恢复】【用scn恢复到特定的时刻】【控制文件损坏】【损坏日志文件状态非INACTIVE时,数据库打不开】【增加联机日志文件】【修改所有联机日志大小同义10M】
- 使用RMAN的不完全恢复-基于时间/SCN/日志序列
- 使用RMAN的不完全恢复-基于时间/SCN/日志序列
- RMAN基于SCN或特定时间点的不完全恢复
- RMAN备份与恢复(8)——基于日志序列号的不完全恢复!
- RMAN备份与恢复—基于日志序列号的不完全恢复
- RMAN基于时间点恢复不完全恢复
- rman基于SCN的不完全恢复
- RMAN基于时间点恢复不完全恢…
- 基于时间不完全恢复之rman篇
- 通过事务日志恢复SqlServer数据库到一个特定的时间点
- rman 基于时间的不完全恢复
- RMAN备份与恢复之基于时间点的不完全恢复
- RMAN中通过时间点不完全恢复报ORA-01841的解决办法
- RMAN基于时间点的不完全恢复
- RMAN中通过时间点不完全恢复报ORA-01841的解决办法
- rman—实验—基于日志序列号的不完整恢复
- Oracle rman不完全恢复(数据文件,归档日志,控制文件全部丢失)
- [RMAN]使用RMAN备份将数据库不完全恢复到指定时间点