ORACLE_SID,INSTANCE_NAME,DB_NAME

下面我们来看oracle的几个变量。

ORACLE_SID是以环境变量的形式出现的,当操作系统创建oracle进程时,进程的名称会根据这个ORACLE_SID来创建。

参数文件的名称也是根据ORACLE_SID来确定的,如spfile<ORACLE_SID>.ora, init<ORACLE_SID>.ora

 

bash-3.00$ export ORACLE_SID=uep4x
bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jul 6 08:17:24 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup nomount;
ORACLE instance started.

 

bash-3.00$ ps -ef | grep ora_smon_uep4x
  oracle  8535     1   0 08:17:38 ?           0:00 ora_smon_uep4x
  oracle  8554  8462   0 08:19:08 pts/6       0:00 grep ora_smon_uep4x

 

另外,在一个ORACLE_HOME目录下,不能启动ORACLE_SID相同的实例,而在不同的ORACLE_HOME则可以。

 

Oracle内部的初始化参数INSTANCE_NAME,用来表示数据库的实例,该值缺省就是ORACLE_SID。用过下面两种方法可以获得这个参数:

SQL> select instance_name from v$instance;             

INSTANCE_NAME
--------------------------------
uep4x

 

SQL> show parameter instance_name

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
instance_name                        string
uep4x

 

DB_NAME是实例挂接的数据库的名称,关系具体的物理文件。数据库在创建过程中,DB_NAME被记录在数据文件,日志文件和控制文件中。如果数据库启动时,参数文件中的DB_NAME和控制文件中的不一致,则数据库不能启动。

 

通常,一个实例可以打开任何数据库,但是同时,一个实例只能打开一个数据库;一个数据库可以被多个实例同时使用。

 

下面先做两个实例启动同一个数据库的实验:

bash-3.00$ grep db_name initdavid.ora

db_name=uep4x

 

bash-3.00$ sqlplus "/ as sysdba"

 

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jul 6 12:35:54 2009

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area 2550136832 bytes

Fixed Size                  1980808 bytes

Variable Size             536872568 bytes

Database Buffers         1996488704 bytes

Redo Buffers               14794752 bytes

ORA-01102: cannot mount database in EXCLUSIVE mode

 

说明一个在非并行的模式下,一个数据库只能被一个实例加载。

bash-3.00$ ps -ef | grep ora_dbw

  oracle  8529     1   0 08:17:38 ?           0:06 ora_dbw0_uep4x

  oracle 15327     1   0 12:37:38 ?           0:00 ora_dbw0_david

  oracle 15496  8462   0 12:59:20 pts/6       0:00 grep ora_dbw

可以看到实例已经启动了。

 

下面再看一个参数文件和控制文件中db_name不同的例子:

bash-3.00$ sqlplus "/ as sysdba"

 

SQL*Plus: Release 10.2.0.2.0 - Production on Mon Jul 6 13:06:35 2009

 

Copyright (c) 1982, 2005, Oracle.  All Rights Reserved.

 

Connected to an idle instance.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area  289406976 bytes

Fixed Size                  1279820 bytes

Variable Size              92276916 bytes

Database Buffers          192937984 bytes

Redo Buffers                2912256 bytes

ORA-01103: database name 'UEP' in control file is not 'UEPX'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值