日期:2014-05-17  浏览次数:20918 次

ORACLE数据库的概念有点混乱了
我在服务器主机上装了ORACLE,现在已经创建了一个数据库叫做DBONE,里面当然就有了相应的表空间了,
现在我想再创建一个数据库叫DBTWO,请问可以吗?
如果可以的话,那么我每次启动数据库时候,用STARTUP OPEN 是把哪个数据库启动呢?
我就是总也理不明白这个。希望能有人给解释下啊。
我是个刚接触ORACLE的新手。

------解决方案--------------------
如果你再创建一个数据库DBTWO,那么就有两个实例(Instance)。
用sqlplus / as sysdba进入sqlplus
然后启动startup,这样会启动环境变量中SID指定的实例。
例如SID=DTONE,那么就会启动DBONE。

如果你创建的连接DBTWO的tns服务名为DBTWO
那么用sqlplus sys@DBTWO as sysdba进入sqlplus
然后启动startup,就会启动DBTWO。
------解决方案--------------------
用环境变量ORACLE_SID区分两个数据库,在UNIX下,如果要操作DBONE,可以用
$export ORACLE_SID=dbone
然后打开或关闭数据库都可以。

在windows下,则用
CMD:\>SET ORACLE_SID=DBONE


------解决方案--------------------
探讨
引用:
我说的就是linux的环境变量。
你安装数据库是应该知道ORACLE_BASE,ORACLE_HOME,ORACLE_SID,PATH这些环境变量吧

恩,知道这些,我也设置了,这些是写在文件里的吧。
ORACLE_SID是我安装的时候创建的数据库的SID,那么我每次启动STARTUP OPEN都是默认把这个打开了,
如果我想在连接的时候就打开其他的数据库,怎么办?


------解决方案--------------------
其实你完全没必要创建多个数据库,你可以在一个数据库里面创建多个方案(Schema)

各个Schema直接可以互相没有任何影响,如果想让两者能互相访问也好办。

我相信完全能满足你的需要。

------解决方案--------------------
探讨
引用:

用环境变量ORACLE_SID区分两个数据库,在UNIX下,如果要操作DBONE,可以用
$export ORACLE_SID=dbone
然后打开或关闭数据库都可以。

在windows下,则用
CMD:\>SET ORACLE_SID=DBONE



你看我这样理解对吗?
我在SQLPLUS里面CONN SYS/PSWD AS SYSDBA,这个命令是连接到一个空闲例程,它还没有去跟哪个数据库实例发生联系吧?
然后,当我STARTUP OPEN的时候,系统就默认为我打开了DBONE数据库,…

------解决方案--------------------
我的服务器是LINUX系统,没有环境变量这个概念啊。 
==================================================
有啊,别忘了,先有 unix,后有的 dos、windows,环境变量这个概念没准是 windows 从 unix 偷来的。呵呵。