Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2617577
  • 博文数量: 323
  • 博客积分: 10211
  • 博客等级: 上将
  • 技术积分: 4934
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-27 14:56
文章分类

全部博文(323)

文章存档

2012年(5)

2011年(3)

2010年(6)

2009年(140)

2008年(169)

分类: Oracle

2009-01-06 20:36:58

  今天趁没事,在本机用RMAN对数据库进行了一次复制。以下是我记录的详细步骤。
OS:WIN2000 SERVER  DB:9.2.0.1.0
 
1.创建相应的目录结构
E:\oracle\admin\sfxtest\bdump
E:\oracle\admin\sfxtest\cdump
E:\oracle\admin\sfxtest\create
E:\oracle\admin\sfxtest\pfile
E:\oracle\admin\sfxtest\scripts
E:\oracle\admin\sfxtest\udump
2.创建参数文件initsfxtest.ora(可以修改原库的参数文件:initsjhtest.ora)
把sjhtest的地方都改成sfxtest。最后记住启动测试库到nomount状态的时侯要用到你修改的这个initsfxtest.ora
3.用oradim创建新的instance
oradim -new -sid sfxtest
4.创建口令文件
orapwd file=E:\oracle\ora92\database\PWDsfxtest.ora password=sys entries=8
5.修改监听器配置和tnsnames文件,添加这个instance的信息
6.测试连接
C:\Documents and Settings\is_sjh>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 1月 6 16:10:53 2009
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
SQL> conn as sysdba
已连接到空闲例程。
SQL>
7.启动测试库到NOMOUNT状态
SQL> conn as sysdba
已连接到空闲例程。
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area  147921840 bytes
Fixed Size                   453552 bytes
Variable Size             121634816 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
SQL>
8.用RMAN全备原来的数据库库
备份脚本如下:
# start backup database
run {
allocate channel c1 type disk;
backup format 'E:\oracle\rman_bakcup\full%u_%s_%p' database
plus archivelog format 'E:\oracle\rman_bakcup\archive_%d_%T_%s' delete all input;
release channel c1;
}
# end
9.连接到备用数据库
E:\oracle\rman_scripts>rman catalog target AUXILIARY
恢复管理器: 版本9.2.0.1.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.
连接到目标数据库: SJHTEST (DBID=1488455913)
连接到恢复目录数据库
已连接到备用数据库 (未启动)
RMAN>
10.开始复制
RMAN> duplicate target database to 'sfxtest';  --这里要注意在初始化参数中增加db_file_name_convert和log_file_name_convert这两个参数
启动 Duplicate Db 于 06-1月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=12 devtype=DISK
正在打印存储的脚本: Memory Script
{
   set until scn  4125842;
   set newname for datafile  1 to
 "E:\ORACLE\ORADATA\SFXTEST\SYSTEM01.DBF";
   set newname for datafile  2 to
 "E:\ORACLE\ORADATA\SFXTEST\UNDOTBS01.DBF";
   set newname for datafile  3 to
 "E:\ORACLE\ORADATA\SFXTEST\INDX01.DBF";
   set newname for datafile  4 to
 "E:\ORACLE\ORADATA\SFXTEST\TOOLS01.DBF";
   set newname for datafile  5 to
 "E:\ORACLE\ORADATA\SFXTEST\USERS01.DBF";
   restore
   check readonly
   clone database
   ;
}
正在执行脚本: Memory Script
正在执行命令: SET until clause
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 restore 于 06-1月 -09
使用通道 ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:\ORACLE\ORADATA\SFXTEST\SYSTEM01.DBF
正将数据文件00002恢复到E:\ORACLE\ORADATA\SFXTEST\UNDOTBS01.DBF
正将数据文件00003恢复到E:\ORACLE\ORADATA\SFXTEST\INDX01.DBF
正将数据文件00004恢复到E:\ORACLE\ORADATA\SFXTEST\TOOLS01.DBF
正将数据文件00005恢复到E:\ORACLE\ORADATA\SFXTEST\USERS01.DBF
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段 handle=E:\ORACLE\RMAN_BAKCUP\FULL02K450J7_2_1 tag=TAG20090106T161638 params=NULL
通道 ORA_AUX_DISK_1: 恢复完成
完成 restore 于 06-1月 -09
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "sfxtest" RESETLOGS ARCHIVELOG
  MAXLOGFILES      5
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     1
  MAXLOGHISTORY      226
 LOGFILE
  GROUP  1 ( 'E:\ORACLE\ORADATA\SFXTEST\REDO01.LOG' ) SIZE   10485760  REUSE,
  GROUP  2 ( 'E:\ORACLE\ORADATA\SFXTEST\REDO02.LOG' ) SIZE   10485760  REUSE,
  GROUP  3 ( 'E:\ORACLE\ORADATA\SFXTEST\REDO03.LOG' ) SIZE   10485760  REUSE
 DATAFILE
  'E:\ORACLE\ORADATA\SFXTEST\SYSTEM01.DBF'
 CHARACTER SET ZHS16GBK

正在打印存储的脚本: Memory Script
{
   switch clone datafile all;
}
正在执行脚本: Memory Script
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=1 stamp=675460117 文件名=E:\ORACLE\ORADATA\SFXTEST\UNDOTBS01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=2 stamp=675460117 文件名=E:\ORACLE\ORADATA\SFXTEST\INDX01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 recid=3 stamp=675460118 文件名=E:\ORACLE\ORADATA\SFXTEST\TOOLS01.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=4 stamp=675460118 文件名=E:\ORACLE\ORADATA\SFXTEST\USERS01.DBF
正在打印存储的脚本: Memory Script
{
   set until scn  4125842;
   recover
   clone database
    delete archivelog
   ;
}
正在执行脚本: Memory Script
正在执行命令: SET until clause
启动 recover 于 06-1月 -09
使用通道 ORA_AUX_DISK_1
正在开始介质的恢复
通道 ORA_AUX_DISK_1: 正在启动到默认目标的存档日志恢复
通道 ORA_AUX_DISK_1: 正在恢复存档日志
存档日志线程 =1 序列=7
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段 handle=E:\ORACLE\RMAN_BAKCUP\ARCHIVE_SJHTEST_20090106_3 tag=TAG20090106T161727 params=NULL
通道 ORA_AUX_DISK_1: 恢复完成
存档日志文件名 =E:\ORACLE\ORADATA\SFXTEST\ARCHIVE\1_7.DBF 线程 =1 序列 =7
通道 clone_default: 正在删除存档日志
存档日志文件名 =E:\ORACLE\ORADATA\SFXTEST\ARCHIVE\1_7.DBF 记录 ID=1 时间戳 =675460122
完成介质的恢复
完成 recover 于 06-1月 -09
正在打印存储的脚本: Memory Script
{
   shutdown clone;
   startup clone nomount ;
}
正在执行脚本: Memory Script
数据库已卸载
Oracle 例程已关闭
已连接到备用数据库 (未启动)
Oracle 例程已启动
系统全局区域总计     147921840 字节
Fixed Size                      453552 字节
Variable Size                121634816 字节
Database Buffers              25165824 字节
Redo Buffers                    667648 字节
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "sfxtest" RESETLOGS ARCHIVELOG
  MAXLOGFILES      5
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     1
  MAXLOGHISTORY      226
 LOGFILE
  GROUP  1 ( 'E:\ORACLE\ORADATA\SFXTEST\REDO01.LOG' ) SIZE   10485760  REUSE,
  GROUP  2 ( 'E:\ORACLE\ORADATA\SFXTEST\REDO02.LOG' ) SIZE   10485760  REUSE,
  GROUP  3 ( 'E:\ORACLE\ORADATA\SFXTEST\REDO03.LOG' ) SIZE   10485760  REUSE
 DATAFILE
  'E:\ORACLE\ORADATA\SFXTEST\SYSTEM01.DBF'
 CHARACTER SET ZHS16GBK

正在打印存储的脚本: Memory Script
{
   catalog clone datafilecopy  "E:\ORACLE\ORADATA\SFXTEST\UNDOTBS01.DBF";
   catalog clone datafilecopy  "E:\ORACLE\ORADATA\SFXTEST\INDX01.DBF";
   catalog clone datafilecopy  "E:\ORACLE\ORADATA\SFXTEST\TOOLS01.DBF";
   catalog clone datafilecopy  "E:\ORACLE\ORADATA\SFXTEST\USERS01.DBF";
   switch clone datafile all;
}
正在执行脚本: Memory Script
已将数据文件副本列入目录
数据文件副本 filename=E:\ORACLE\ORADATA\SFXTEST\UNDOTBS01.DBF recid=1 stamp=675462251
已将数据文件副本列入目录
数据文件副本 filename=E:\ORACLE\ORADATA\SFXTEST\INDX01.DBF recid=2 stamp=675462251
已将数据文件副本列入目录
数据文件副本 filename=E:\ORACLE\ORADATA\SFXTEST\TOOLS01.DBF recid=3 stamp=675462251
已将数据文件副本列入目录
数据文件副本 filename=E:\ORACLE\ORADATA\SFXTEST\USERS01.DBF recid=4 stamp=675462251
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=1 stamp=675462251 文件名=E:\ORACLE\ORADATA\SFXTEST\UNDOTBS01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=2 stamp=675462251 文件名=E:\ORACLE\ORADATA\SFXTEST\INDX01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 recid=3 stamp=675462251 文件名=E:\ORACLE\ORADATA\SFXTEST\TOOLS01.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=4 stamp=675462251 文件名=E:\ORACLE\ORADATA\SFXTEST\USERS01.DBF
正在打印存储的脚本: Memory Script
{
   Alter clone database open resetlogs;
}
正在执行脚本: Memory Script
数据库已打开
完成 Duplicate Db 于 06-1月 -09
RMAN>
11.修改初始参数文件,去掉db_file_name_convert和log_file_name_convert这两个参数。
注意使参数文件生效。
12.生成spfile,重启数据库并验证数据库。
SQL> conn as sysdba
已连接。
SQL> select * from v$instance;
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION           STARTUP_TI STATUS       PAR    THREAD# ARCHIVE LOG_SWITCH_
----------------- ---------- ------------ --- ---------- ------- -----------
LOGINS     SHU DATABASE_STATUS   INSTANCE_ROLE      ACTIVE_ST
---------- --- ----------------- ------------------ ---------
              1 sfxtest
CHERVON-SJH
9.2.0.1.0         06-1月 -09 OPEN         NO           1 STARTED
ALLOWED    NO  ACTIVE            PRIMARY_INSTANCE   NORMAL

 
阅读(1423) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~