开博了。其实之前有的,只是不在pub上,最近实在忍受不了msn共享空间了。

oracle同机数据库复制读书笔记。

上一篇 / 下一篇  2008-01-17 13:18:37 / 个人分类:读书笔记

c:\>oradim.exe -new  -sid ZERODUP -startmode m

c:\>set ORACLE_SID=zerodup

c:\>sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 12月 13 02:42:41 2007

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


连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

已连接到空闲例程。

SQL>

修改listener.ora
修改前:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\ora92)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = zero)
      (ORACLE_HOME = D:\oracle\ora92)
      (SID_NAME = zero)
    )
  )
修改后
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\ora92)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = zero)
      (ORACLE_HOME = D:\oracle\ora92)
      (SID_NAME = zero)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = zerodup)
      (ORACLE_HOME = D:\oracle\ora92)
      (SID_NAME = zerodup)
    )
  )
修改之后需要重启监听


修改tnsnames.ora
添加
ZERODUP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = wlp)(PORT = 1521))
    )
    (CONNECT_DATA =
     (SID=ZERODUP)
      (SERVER = DEDICATED)
    )
  )

重启两个实例

建目录:

mkdir D:\oracle\admin\zerodup\bdump
mkdir D:\oracle\admin\zerodup\cdump
mkdir D:\oracle\admin\zerodup\create
mkdir D:\oracle\admin\zerodup\pfile
mkdir D:\oracle\admin\zerodup\udump
mkdir D:\oracle\ora92\database
mkdir D:\oracle\oradata\zerodup

建pfile,可以从其他的实例拷贝,最重要的是设置
db_file_name_convert=('d:\oracle\oradata\zero','d:\oracle\oradata\zerodup')
log_file_name_convert=('d:\oracle\oradata\zero','d:\oracle\oradata\zerodup')
一定要添加,否则报文件冲突的错,
下面是我复制时候的init.ora

dispatchers="(PROTOCOL=TCP) (SERVICE=zerodupXDB)"
hash_join_enabled=TRUE
query_rewrite_enabled=FALSE
star_transformation_enabled=FALSE
job_queue_processes=10
instance_name=zerodup
aq_tm_processes=1
compatible=9.2.0.0.0
remote_login_passwordfile=EXCLUSIVE
pga_aggregate_target=25165824
sort_area_size=524288
db_domain=""
db_name=zerodup
control_files=("D:\oracle\oradata\zerodup\control01.ctl", "D:\oracle\oradata\zerodup\control02.ctl", "D:\oracle\oradata\zerodup\control03.ctl")
java_pool_size=33554432
large_pool_size=8388608
shared_pool_size=50331648
open_cursors=300
undo_management=AUTO
undo_retention=10800
undo_tablespace=UNDOTBS1
background_dump_dest=D:\oracle\admin\zerodup\bdump
core_dump_dest=D:\oracle\admin\zerodup\cdump
timed_statistics=TRUE
user_dump_dest=D:\oracle\admin\zerodup\udump
processes=150
fast_start_mttr_target=300
db_block_size=8192
db_cache_size=25165824
db_file_multiblock_read_count=16
db_file_name_convert=('d:\oracle\oradata\zero','d:\oracle\oradata\zerodup')
log_file_name_convert=('d:\oracle\oradata\zero','d:\oracle\oradata\zerodup')


通过pfile启动,并创建spfile,重启后利用spfile启动至nomount状态
SQL> startup pfile='D:\oracle\admin\zerodup\pfile\init.ora' nomount;
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
SQL> create spfile from pfile='D:\oracle\admin\zerodup\pfile\init.ora'
  2  ;

文件已创建。

SQL> shutdown immediate;
ORA-01507: ??????


ORACLE 例程已经关闭。
SQL> startup;
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
ORA-00205: ?????????????????????


SQL> shutdown immediate;
ORA-01507: ??????


ORACLE 例程已经关闭。
SQL> startup nomount;
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes

检查主库连接状态,并备份主库:

C:\Documents and Settings\zero>set ORACLE_SID=zero

C:\Documents and Settings\zero>sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 12月 13 02:56:52 2007

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

已连接到空闲例程。

SQL> startup;
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> exit
从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中断开

C:\Documents and Settings\zero>set ORACLE_SID=zero

C:\Documents and Settings\zero>rman target /

恢复管理器: 版本9.2.0.1.0 - Production

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

连接到目标数据库: ZERO (DBID=83893350)

RMAN> backup database;

启动 backup 于 13-12月-07
正在使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=9 devtype=DISK
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00008 name=D:\ORACLE\ORADATA\ZERO\MOF.ORA
输入数据文件 fno=00001 name=D:\ORACLE\ORADATA\ZERO\SYSTEM01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\ORADATA\ZERO\UNDOTBS01.DBF
输入数据文件 fno=00007 name=D:\ORACLE\ORADATA\ZERO\XDB01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\ORADATA\ZERO\INDX01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\ORADATA\ZERO\USERS01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\ORADATA\ZERO\DRSYS01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\ORADATA\ZERO\TOOLS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 13-12月-07
通道 ORA_DISK_1: 已完成段 1 于 13-12月-07
段 handle=C:\ARC_ZERO\BACKUP\1KJ3FD9M_1_1 comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:55
完成 backup 于 13-12月-07

启动 Control File and SPFILE Autobackup 于 13-12月-07
段 handle=C:\ARC_ZERO\BACKUP\CTL_C-83893350-20071213-02 comment=NONE
完成 Control File and SPFILE Autobackup 于 13-12月-07

RMAN>


分配通道,恢复

C:\>set ORACLE_SID=zero

C:\>RMAN target / auxiliary sys/zero@zerodup

恢复管理器: 版本9.2.0.1.0 - Production

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

连接到目标数据库: ZERO (DBID=83893350)
已连接到备用数据库: ZERODUP (未装载)


执行复制脚本

刚开始没有设置文件转换目录,就是init.ora加入的那两句,总是提示报错:
RMAN> RUN
2> {
3> ALLOCATE AUXILIARY CHANNEL aux1 DEVICE TYPE DISK;
4> ALLOCATE AUXILIARY CHANNEL aux2 DEVICE TYPE DISK;
5> ALLOCATE AUXILIARY CHANNEL aux3 DEVICE TYPE DISK;
6> ALLOCATE AUXILIARY CHANNEL aux4 DEVICE TYPE DISK;
7> ALLOCATE AUXILIARY CHANNEL aux5 DEVICE TYPE DISK;
8> ALLOCATE AUXILIARY CHANNEL aux6 DEVICE TYPE DISK;
9> DUPLICATE TARGET DATABASE TO zerodup;
10> }

释放的通道: ORA_AUX_DISK_1
分配的通道: aux1
通道 aux1: sid=12 devtype=DISK

分配的通道: aux2
通道 aux2: sid=13 devtype=DISK

分配的通道: aux3
通道 aux3: sid=10 devtype=DISK

分配的通道: aux4
通道 aux4: sid=16 devtype=DISK

分配的通道: aux5
通道 aux5: sid=15 devtype=DISK

分配的通道: aux6
通道 aux6: sid=17 devtype=DISK

启动 Duplicate Db 于 13-12月-07
释放的通道: aux1
释放的通道: aux2
释放的通道: aux3
释放的通道: aux4
释放的通道: aux5
释放的通道: aux6
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 12/13/2007 02:13:06
RMAN-05501: aborting duplication of target database
RMAN-05001: auxiliary filename D:\ORACLE\ORADATA\ZERO\MOF.ORA conflicts with a file used by the target database
RMAN-05001: auxiliary filename D:\ORACLE\ORADATA\ZERO\XDB01.DBF conflicts with a file used by the target database
RMAN-05001: auxiliary filename D:\ORACLE\ORADATA\ZERO\USERS01.DBF conflicts with a file used by the target database
RMAN-05001: auxiliary filename D:\ORACLE\ORADATA\ZERO\TOOLS01.DBF conflicts with a file used by the target database
RMAN-05001: auxiliary filename D:\ORACLE\ORADATA\ZERO\INDX01.DBF conflicts with a file used by the target database
RMAN-05001: auxiliary filename D:\ORACLE\ORADATA\ZERO\DRSYS01.DBF conflicts with a file used by the target database
RMAN-05001: auxiliary filename D:\ORACLE\ORADATA\ZERO\UNDOTBS01.DBF conflicts with a file used by the target database
RMAN-05001: auxiliary filename D:\ORACLE\ORADATA\ZERO\SYSTEM01.DBF conflicts with a file used by the target database
RMAN-05001: auxiliary filename D:\ORACLE\ORADATA\ZERO\REDO03.LOG conflicts with a file used by the target database
RMAN-05001: auxiliary filename D:\ORACLE\ORADATA\ZERO\REDO02.LOG conflicts with a file used by the target database
RMAN-05001: auxiliary filename D:\ORACLE\ORADATA\ZERO\REDO01.LOG conflicts with a file used by the target database

重新设置之后:

RMAN> RUN
2> {
3> ALLOCATE AUXILIARY CHANNEL aux1 DEVICE TYPE DISK;
4> ALLOCATE AUXILIARY CHANNEL aux2 DEVICE TYPE DISK;
5> ALLOCATE AUXILIARY CHANNEL aux3 DEVICE TYPE DISK;
6> ALLOCATE AUXILIARY CHANNEL aux4 DEVICE TYPE DISK;
7> ALLOCATE AUXILIARY CHANNEL aux5 DEVICE TYPE DISK;
8> ALLOCATE AUXILIARY CHANNEL aux6 DEVICE TYPE DISK;
9> DUPLICATE TARGET DATABASE TO zerodup;
10> }

正在使用目标数据库控制文件替代恢复目录
分配的通道: aux1
通道 aux1: sid=12 devtype=DISK

分配的通道: aux2
通道 aux2: sid=13 devtype=DISK

分配的通道: aux3
通道 aux3: sid=14 devtype=DISK

分配的通道: aux4
通道 aux4: sid=15 devtype=DISK

分配的通道: aux5
通道 aux5: sid=16 devtype=DISK

分配的通道: aux6
通道 aux6: sid=17 devtype=DISK

启动 Duplicate Db 于 13-12月-07

正在打印存储的脚本: Memory Script
{
   set until scn  281474976710655;
   set newname for datafile  1 to
 "D:\ORACLE\ORADATA\ZERODUP\SYSTEM01.DBF";
   set newname for datafile  2 to
 "D:\ORACLE\ORADATA\ZERODUP\UNDOTBS01.DBF";
   set newname for datafile  3 to
 "D:\ORACLE\ORADATA\ZERODUP\DRSYS01.DBF";
   set newname for datafile  4 to
 "D:\ORACLE\ORADATA\ZERODUP\INDX01.DBF";
   set newname for datafile  5 to
 "D:\ORACLE\ORADATA\ZERODUP\TOOLS01.DBF";
   set newname for datafile  6 to
 "D:\ORACLE\ORADATA\ZERODUP\USERS01.DBF";
   set newname for datafile  7 to
 "D:\ORACLE\ORADATA\ZERODUP\XDB01.DBF";
   set newname for datafile  8 to
 "D:\ORACLE\ORADATA\ZERODUP\MOF.ORA";
   restore
   check readonly
   clone database
   ;
}
正在执行脚本: Memory Script

正在执行命令: SET until clause

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

启动 restore 于 13-12月-07

通道 aux1: 正在开始恢复数据文件备份集
通道 aux1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\ORADATA\ZERODUP\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\ORADATA\ZERODUP\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\ORADATA\ZERODUP\DRSYS01.DBF
正将数据文件00004恢复到D:\ORACLE\ORADATA\ZERODUP\INDX01.DBF
正将数据文件00005恢复到D:\ORACLE\ORADATA\ZERODUP\TOOLS01.DBF
正将数据文件00006恢复到D:\ORACLE\ORADATA\ZERODUP\USERS01.DBF
正将数据文件00007恢复到D:\ORACLE\ORADATA\ZERODUP\XDB01.DBF
正将数据文件00008恢复到D:\ORACLE\ORADATA\ZERODUP\MOF.ORA
通道 aux1: 已恢复备份段 1
段 handle=D:\ORACLE\ORA92\DATABASE\DB_1HJ3FABU_ZERO_49 tag=TAG20071213T020758 params=NULL
通道 aux1: 恢复完成
完成 restore 于 13-12月-07
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "zerodup" RESETLOGS ARCHIVELOG
  MAXLOGFILES      5
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     1
  MAXLOGHISTORY      226
 LOGFILE
  GROUP  1 ( 'D:\ORACLE\ORADATA\ZERODUP\REDO01.LOG' ) SIZE  104857600  REUSE,
  GROUP  2 ( 'D:\ORACLE\ORADATA\ZERODUP\REDO02.LOG' ) SIZE  104857600  REUSE,
  GROUP  3 ( 'D:\ORACLE\ORADATA\ZERODUP\REDO03.LOG' ) SIZE  104857600  REUSE
 DATAFILE
  'D:\ORACLE\ORADATA\ZERODUP\SYSTEM01.DBF'
 CHARACTER SET ZHS16GBK


正在打印存储的脚本: Memory Script
{
   switch clone datafile all;
}
正在执行脚本: Memory Script

数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=1 stamp=641183319 文件名=D:\ORACLE\ORADATA\ZERODUP\UNDOTBS01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=2 stamp=641183319 文件名=D:\ORACLE\ORADATA\ZERODUP\DRSYS01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 recid=3 stamp=641183319 文件名=D:\ORACLE\ORADATA\ZERODUP\INDX01.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=4 stamp=641183319 文件名=D:\ORACLE\ORADATA\ZERODUP\TOOLS01.DBF
数据文件 6 已转换成数据文件副本
输入数据文件副本 recid=5 stamp=641183319 文件名=D:\ORACLE\ORADATA\ZERODUP\USERS01.DBF
数据文件 7 已转换成数据文件副本
输入数据文件副本 recid=6 stamp=641183319 文件名=D:\ORACLE\ORADATA\ZERODUP\XDB01.DBF
数据文件 8 已转换成数据文件副本
输入数据文件副本 recid=7 stamp=641183319 文件名=D:\ORACLE\ORADATA\ZERODUP\MOF.ORA

正在打印存储的脚本: Memory Script
{
   set until scn  281474976710655;
   recover
   clone database
    delete archivelog
   ;
}
正在执行脚本: Memory Script

正在执行命令: SET until clause

启动 recover 于 13-12月-07

正在开始介质的恢复

无法找到存档日志
存档日志线程 =1 序列=22
释放的通道: aux1
释放的通道: aux2
释放的通道: aux3
释放的通道: aux4
释放的通道: aux5
释放的通道: aux6
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 12/13/2007 02:28:41
RMAN-03015: error occurred in stored script. Memory Script
RMAN-06054: media recovery requesting unknown log: thread 1 scn 1634703

RMAN>


由于归档丢失,因此导致不完全恢复,数据库以resetlogs形式启动:

SQL> shutdown immediate;
ORA-01109: ??????


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup;
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SQL> startup mount;
ORA-01081: 无法启动已在运行的 ORACLE --- 请首先关闭
SQL> shutdown immediate;
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
SQL> alter database open resetlogs;

数据库已更改。

SQL>



TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar