recover database in time point

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

SQL> startup

Oracle 例程已经启动。

Total System Global Area 101784276 bytes

Fixed Size 453332 bytes

Variable Size 75497472 bytes

Database Buffers 25165824 bytes

Redo Buffers 667648 bytes

ORA-01991: ???????'C:\oracle\ora92\DATABASE\PWDtestdb.ORA'

SQL> alter database open;

数据库已更改。

SQL> create table arch1 (status varchar(2)) tablespace users;

表已创建。

SQL> alter system switch logfile;

系统已更改。

SQL> insert into arch1 select 'ok' from dba_objects;

已创建6166行。

SQL> commit;

提交完成。

SQL> insert into arch1 select * from arch1;

已创建6166行。

SQL> /

已创建12332行。

SQL> /

已创建24664行。

SQL> /

已创建49328行。

SQL> commit;

提交完成。

SQL> alter system switch logfile;

系统已更改。

SQL> commit;

提交完成。

SQL> select GROUP#,SEQUENCE#,archived, STATUS from v$log;

GROUP# SEQUENCE# ARC STATUS

---------- ---------- --- ----------------

1 5 NO CURRENT

2 3 YES INACTIVE

3 4 YES ACTIVE

SQL> alter database backup controlfile to 'c:\backup.ctl';

数据库已更改。

SQL> select count(*) from arch1;

COUNT(*)

----------

98656

SQL> select to_char(sysdate,'YYYY-MM-DD:HH24:MI:SS') from dual;

TO_CHAR(SYSDATE,'YY

-------------------

2005-03-07:15:46:17

alter system switch logfile;

系统已更改。

SQL> drop table arch1;

表已丢弃。

SQL> create table salgrade (grade number,losal number,hisal number) tablespace users;

表已创建。

SQL> select owner,name,tablespace_name,

2 to_char(creation_time,'YYYY-MM-DD:HH24:MI:SS')

3 from sys.ts_pitr_objects_to_be_dropped

4 where tablespace_name in ('USERS')

5 and creation_time > to_date('2005-03-07:15:46:17','YYYY-MM-DD:HH24:MI:SS')

6 order by tablespace_name, creation_time;

OWNER NAME

------------------------------ ----------------------------------------

TABLESPACE_NAME TO_CHAR(CREATION_TI

------------------------------ -------------------

SYS SALGRADE

USERS 2005-03-07:15:46:36

SQL> alter tablespace users offline for recover;

表空间已更改。

~~~~~~~~~~~~~~~~

克隆数据库

~~~~~~~~~~~~~~~~

oradim -new -sid clone -intpwd clone

set oracle_sid=clone

创建初始化文件initCLONE.ora

增加*.lock_name_space=CLONE

注重db_name跟主数据库一样

归档路径也可以一样,以便于恢复时使用默认的路径

SQL> create pfile='C:\oracle\ora92\database\initCLONE.ora' from spfile;

文件已创建。

shutdown

set ORACLE_SID=CLONE

C:\Documents and Settings\lifeng.fang>sqlplus "sys/clone as sysdba"

SQL*Plus: Release 9.2.0.1.0 - ProdUCtion on 星期一 3月 7 17:18:51 2005

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

已连接到空闲例程。

SQL> startup nomount pfile='C:\oracle\ora92\database\initCLONE.ora'

ORACLE 例程已经启动。

Total System Global Area 101784276 bytes

Fixed Size 453332 bytes

Variable Size 75497472 bytes

Database Buffers 25165824 bytes

Redo Buffers 667648 bytes

SQL> alter database mount clone database;

SQL> select name from v$datafile;

NAME

--------------------------------------------------------------------------------

C:\ORACLE\ORADATA\TESTDB\SYSTEM01.DBF

C:\ORACLE\ORADATA\TESTDB\UNDOTBS01.DBF

C:\ORACLE\ORADATA\TESTDB\INDX01.DBF

C:\ORACLE\ORADATA\TESTDB\TOOLS01.DBF

C:\ORACLE\ORADATA\TESTDB\USERS01.DBF

SQL> alter database rename file 'c:\ORACLE\ORADATA\TESTDB\SYSTEM01.DBF' to 'c:ORACLE\ORADATA\CLONE\SYSTEM01.DBF' ;

数据库已更改。

SQL> alter database rename file 'c:\ORACLE\ORADATA\TESTDB\UNDOTBS01.DBF' to 'c:ORACLE\ORADATA\CLONE\UNDOTBS01.DBF';

数据库已更改。

SQL> alter database rename file 'c:\ORACLE\ORADATA\TESTDB\INDX01.DBF' to 'c:ORACLE\ORADATA\CLONE\INDX01.DBF' ;

数据库已更改。

SQL> alter database rename file 'c:\ORACLE\ORADATA\TESTDB\TOOLS01.DBF' to 'c:ORACLE\ORADATA\CLONE\TOOLS01.DBF' ;

数据库已更改。

SQL> alter database rename file 'c:\ORACLE\ORADATA\TESTDB\USERS01.DBF' to 'c:ORACLE\ORADATA\CLONE\USERS01.DBF' ;

数据库已更改。

SQL>

SQL>

SQL> alter database datafile 'C:\ORACLE\ORADATA\CLONE\SYSTEM01.DBF' online;

数据库已更改。

SQL> alter database datafile 'C:\ORACLE\ORADATA\CLONE\UNDOTBS01.DBF' online;

数据库已更改。

SQL> alter database datafile 'C:\ORACLE\ORADATA\CLONE\INDX01.DBF' online;

数据库已更改。

SQL> alter database datafile 'C:\ORACLE\ORADATA\CLONE\TOOLS01.DBF' online;

数据库已更改。

SQL> alter database datafile 'C:\ORACLE\ORADATA\CLONE\USERS01.DBF' online;

数据库已更改。

SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL TIME '2005-03-07:16:57:31';

ORA-00279: 更改 69257 (在 02/28/2005 11:08:18 生成) 对于线程 1 是必需的

ORA-00289: 建议: C:\ORACLE\ORADATA\TESTDB\ARCHIVE_3.DBF

ORA-00280: 更改 69257 对于线程 1 是按序列 # 3 进行的

指定日志: {<RET>=suggested filename AUTO CANCEL}

ORA-00279: 更改 69556 (在 03/07/2005 16:45:42 生成) 对于线程 1 是必需的

ORA-00289: 建议: C:\ORACLE\ORADATA\TESTDB\ARCHIVE_4.DBF

ORA-00280: 更改 69556 对于线程 1 是按序列 # 4 进行的

ORA-00278: 此恢复不再需要日志文件 'C:\ORACLE\ORADATA\TESTDB\ARCHIVE_3.DBF'

指定日志: {<RET>=suggested filename AUTO CANCEL}

ORA-00279: 更改 69601 (在 03/07/2005 16:45:43 生成) 对于线程 1 是必需的

ORA-00289: 建议: C:\ORACLE\ORADATA\TESTDB\ARCHIVE_5.DBF

ORA-00280: 更改 69601 对于线程 1 是按序列 # 5 进行的

ORA-00278: 此恢复不再需要日志文件 'C:\ORACLE\ORADATA\TESTDB\ARCHIVE_4.DBF'

指定日志: {<RET>=suggested filename AUTO CANCEL}

已应用的日志。

完成介质恢复。

在clone库eXP该表空间

exp SYS/clone TRANSPORT_TABLESPACE=y TABLESPACES=(users) TTS_FULL_CHECK=y file=expat.dmp

在主数据库中

DROP TABLESPACE users INCLUDING CONTENTS;

在主库

imp TRANSPORT_TABLESPACE=y FILE=expat.dmp

DATAFILES=('C:\ORACLE\ORADATA\CLONE\USERS01.DBF')

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航