首页 > 开发 > 综合 > 正文

recover database in time point

2024-07-21 02:39:37
字体:
来源:转载
供稿:网友
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')


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表