被复制的oraclesid是ora901,原来数据文件的目录是d:\oracle\oradata\ora901\ 数据文件的新位置是c:\oracle\oradata\ora901
第一步:确定实例名,确定数据文件的目录位置,准备初始化文件 init(sid).ora 并复制到 $oracle_home\database 目录中
copy init.ora c:\oracle\ora90\database\initora901.ora
注意:init.ora 中的 control file的定位要与实际拷贝的control file的文件位置相同
第二步:注册oracle服务
set ORACLE_SID=ora901
C:\oracle\ora90\bin\oradim -new -sid ora901 -startmode m -pfile c:\oracle\ora90\database\initora901.ora
C:\oracle\ora90\bin\oradim -edit -sid ora901 -startmode a
在注册表中建立ORACLE 注册ORACLE实例名
HK_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0 增加一个可扩充的字符串值的键 ORACLE_SID 键值是 SID
第三步:建立实例的相关目录(根据INIT.ORA文件设立)
c:\oracle\admin\ora901\udump
c:\oracle\admin\ora901\bdump
c:\oracle\admin\ora901\cdump
第四步:拷贝data file到$oracle_base\oradata\sid\目录中
copy * c:\oracle\oradata\ora901\
第五步:启动oracle实例,更新全部的数据文件位置,实际上是更改control file中的记录的数据文件的位置
c:\> sqlplus /nolog
sql>connect / as sysdba
sql>startup mount
sql>执行以下的更改数据文件位置的命令
alter database rename file 'd:\oracle\oradata\ora901\INDX01.DBF' to 'c:\oracle\oradata\ora901\INDX01.DBF';
alter database rename file 'd:\oracle\oradata\ora901\SYSTEM01.DBF' to 'c:\oracle\oradata\ora901\SYSTEM01.DBF';
alter database rename file 'd:\oracle\oradata\ora901\TEMP01.DBF' to 'c:\oracle\oradata\ora901\TEMP01.DBF';
alter database rename file 'd:\oracle\oradata\ora901\TOOLS01.DBF' to 'c:\oracle\oradata\ora901\TOOLS01.DBF';
alter database rename file 'd:\oracle\oradata\ora901\UNDOTBS01.DBF' to 'c:\oracle\oradata\ora901\UNDOTBS01.DBF';
alter database rename file 'd:\oracle\oradata\ora901\USERS001.DBF' to 'c:\oracle\oradata\ora901\USERS001.DBF';
alter database rename file 'd:\oracle\oradata\ora901\LOG1A.ORA' to 'c:\oracle\oradata\ora901\LOG1A.ORA';
alter database rename file 'd:\oracle\oradata\ora901\LOG1B.ORA' to 'c:\oracle\oradata\ora901\LOG1B.ORA';
alter database rename file 'd:\oracle\oradata\ora901\LOG2A.ORA' to 'c:\oracle\oradata\ora901\LOG2A.ORA';
alter database rename file 'd:\oracle\oradata\ora901\LOG2B.ORA' to 'c:\oracle\oradata\ora901\LOG2B.ORA';
alter database rename file 'd:\oracle\oradata\ora901\LOG3A.ORA' to 'c:\oracle\oradata\ora901\LOG3A.ORA';
alter database rename file 'd:\oracle\oradata\ora901\LOG3B.ORA' to 'c:\oracle\oradata\ora901\LOG3B.ORA';
第六步:打开数据库
sql>alter database open;
第七步:配置listener.ora文件,加入该实例sid
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.20)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\ora90)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ora901)
(ORACLE_HOME = C:\oracle\ora90)
(SID_NAME = ora901)
)
)
第八步:配置tnsnames.ora文件,增加该本地命名
ora901 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.20)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ora901)
(SERVER = DEDICATED)
)
)