如何为 Oracle 10g XE 创建一个新的数据库实例 ?
如果是 Windows 平台, 首先确保没甚么重要数据在当前的这个 XE 实例中. 然后调用 oradim -delete -sid xe 删除当前的系统服务(就是 Windows 服务).
然后运行 D:oracleapporacleproduct10.2.0serverconfigscripts 中的 XE.bat 批处理即可.
如果是 Linux,就更容易了, 直接运行 scripts 目录下的 XE.sh 脚本即可.
以上是网上一位高手提供的,下边可就是原创了,呵呵。
能否创建 SID 不为 "XE" 的实例 ? 答案是可以的。
具体步骤:
假设要创建sid为mysid的实例,首先cmd 运行oradim -delete -sid xe 然后修改以下文件
----------------------------------------
D:oracleapporacleproduct10.2.0serverconfigscriptscloneDBCreation.sql :中第(4,22,38,39)行中的XE改为mysid
D:oracleapporacleproduct10.2.0serverconfigscriptscloneDBCreation.sql(4): Create controlfile reuse set database "mysid"
D:oracleapporacleproduct10.2.0serverconfigscriptscloneDBCreation.sql(22): Create controlfile reuse set database "mysid"
D:oracleapporacleproduct10.2.0serverconfigscriptscloneDBCreation.sql(38): alter database "mysid" open resetlogs;
D:oracleapporacleproduct10.2.0serverconfigscriptscloneDBCreation.sql(39): alter database rename global_name to "mysid";
----------------------------------------
'D:oracleapporacleproduct10.2.0serverconfigscriptsinit.ora' :中第(13)行中的XE改为mysid
D:oracleapporacleproduct10.2.0serverconfigscriptsinit.ora(13): db_name=mysid
----------------------------------------
'D:oracleapporacleproduct10.2.0serverconfigscriptsinitXETemp.ora' : 中第(13)行中的XE改为mysid
D:oracleapporacleproduct10.2.0serverconfigscriptsinitXETemp.ora(13): db_name=mysid
----------------------------------------
'D:oracleapporacleproduct10.2.0serverconfigscriptsXE.bat' 中第(14,16,18)行中的XE改为mysid
D:oracleapporacleproduct10.2.0serverconfigscriptsXE.bat(14): set ORACLE_SID=mysid
D:oracleapporacleproduct10.2.0serverconfigscriptsXE.bat(16): D:oracleapporacleproduct10.2.0serverbinoradim.exe -new -sid mysid -startmode manual -spfile > D:oracleapporacleproduct10.2.0serverconfiglogXE.bat.log,
D:oracleapporacleproduct10.2.0serverconfigscriptsXE.bat(18): D:oracleapporacleproduct10.2.0serverbinoradim.exe -edit -sid mysid -startmode auto -srvcstart system >> D:oracleapporacleproduct10.2.0serverconfiglogXE.bat.log
若你想修改http的监听端口可修改一下文件
D:oracleapporacleproduct10.2.0serverconfigscriptspostDBCreation.sql中第(9)行中的dems_xdb.sethttpport(9098);
然后运行D:oracleapporacleproduct10.2.0serverconfigscriptsXE.bat。
运行完XE.bat后进入D:oracleapporacleproduct10.2.0serverdatabase中复制名为PWDXE.ora,initXE.ora的文件,更改文件名分别为PWDMYSID.ora,initMYSID.ora
修改D:oracleapporacleproduct10.2.0serverNETWORKADMIN中listener.ora中
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:oracleapporacleproduct10.2.0server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:oracleapporacleproduct10.2.0server)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_mysid))
(ADDRESS = (PROTOCOL = TCP)(HOST = lp)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (mysid)
修改D:oracleapporacleproduct10.2.0serverNETWORKADMIN中tnsnames.ora中
mysid=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = lp)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mysid)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_mysid))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_mysid))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
(listener.ora和tnsnames.ora中的内容我也不清楚是否应该修改,自己去试吧。)
此时sid为Mysid的oracle实例已经安装完成,但是此时还没有sid为mysid的监听。若想连接成功还需要运行cmd,
(若已启动oracle实例需要先停止,可以用如下命令:net stop oracleservicemysid)
lsnrctl start;
oradim –startup –sid mysid;
OK,现在打开“运行 SQL 命令行” connect system/你设置的密码@mysid就可连接成功了
小记:若重启机器listenser是不会自动启动的,还需要手工运行
lsnrctl start;
oradim –startup –sid mysid;