oracle 版本10g
操作系统 Windows xp
学了这么久的oracle,有个问题一直困扰着我,希望大家看了后发表下自己的意见:
大家都知道,oracle的启动过程如下:
C:\>sqlplus /nologCopyright (c) 1982, 2004, Oracle.  All rights reserved.SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup nomount
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.Total System Global Area  289406976 bytes
Fixed Size                   788552 bytes
Variable Size              99350456 bytes
Database Buffers          188743680 bytes
Redo Buffers                 524288 bytes
SQL> alter database mount;Database altered.SQL> alter database open;Database altered.
在上面的操作中,我自始自终都没有指定我启动的是哪个数据库.
那么他是不是就是把所有电脑上所有的数据库都启动还是怎么回事呢?
通过上面的操作过后,我可以连接到电脑上的任何一个数据库.
希望大家能够给我解释一下,谢谢了:
为什么没有指定启动哪个数据库,也能够连接到那个数据库呢?

解决方案 »

  1.   

    默认启动的是你配置了oracle_sid环境变量的那个
      

  2.   

    oracle启动的步骤是这样的
    1,在nomount阶段,寻找spfile或者pfile,这个文件中标识有数据库名称,实例名称,控制文件位置以及各缓冲区内存尺寸等。
    2,在mount阶段,分配内存空间,加载控制文件;
    3,在open阶段,根据控制文件中记载的数据文件的位置加载数据文件并打开数据库(这里打开的就是步骤1中spfile或者pfile中记载的数据库了)
      

  3.   

    默认情况下进入的是你最近一次安装的数据库你可以通过命令SQL>select * from global_name;查看当前连接进入的是哪个数据库谢谢
      

  4.   

    去查查你的注册表。看看有没有ORACLE_SID键值
      

  5.   

    select name from v$database;select instance_name from v$database;
      

  6.   

    DOS下set ORACLE_SID=在不同实例间切换。
      

  7.   

    你是window系统,首先看你的服务看有没有类似OracleServiceXXXX这样的服务。这里就是你目前安装的数据库实例了你在你的命令后面继续执行show parameter instance_name这里就是你目前连线的数据库的SID要切换数据库,在执行sqlplus前先Set ORACLE_SID为你指定的数据库SID即可。