当前位置导航:炫浪网>>网络学院>>编程开发>>Oracle教程

recover database in time point


  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')
相关内容
赞助商链接