首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

1.2.5 INSTANCE_NAME的含义及作用

作为Oracle数据库的重要组成部分INSTANCE也存在一个参数标识:INSTANCE_NAME。

INSTANCE_NAME是Oracle数据库的一个参数,在参数文件中定义,用于标识数据库实例的名称,其缺省值通常就是ORACLE_SID,但是不同的实例可以有相同的实例名。通过简单的参数文件复制,我们就可以在同一台服务器上创建多个具有相同INSTANCE_NAME的实例。

首先确认当前的参数文件:

bash-2.03$ cd $ORACLE_HOME/dbs

bash-2.03$ ls initeygle.ora

initeygle.ora

复制参数文件,更改名称:

bash-2.03$ cp initeygle.ora initjulia.ora

接下来通过导入新的ORACLE_SID就可以启动新的实例:

bash-2.03$ export ORACLE_SID=julia

bash-2.03$ sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on Fri Feb 16 10:34:00 2007

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

Connected to an idle instance.

SQL> startup nomount;

ORACLE instance started.

Total System Global Area  303532408 bytes

Fixed Size                   731512 bytes

Variable Size             184549376 bytes

Database Buffers          117440512 bytes

Redo Buffers                 811008 bytes

现在ORACLE_SID为julia的实例已经启动,操作系统上的进程以julia名称标记:

bash-2.03$ ps -ef|grep pmon

oracle   12396     1  0 16:30 ?        00:00:00 ora_pmon_julia

oracle   16201     1  0 18:13 ?        00:00:00 ora_pmon_eygle

oracle   16256 16219  0 18:14 pts/1    00:00:00 grep pmon

但是新实例的instance_name仍然是eygle:

SQL> show parameter instance_name

NAME                                 TYPE                   VALUE

------------------------------------ ---------------------- -----------------------

instance_name                        string                 eygle

总结一下,ORACLE_SID在这里用于标示进程,而instance_name则用来标示实例,两者可以具有不同的名称。

此外Oracle的监听器(listener)配置文件中的SID_NAME就是来自instance_name参数,监听器通过instance_name才能确定需要将连接请求注册到哪一个实例上。通常listener.ora文件中SID_NAME相关设置类似如下示例:

SID_LIST_LISTENER =

    (SID_DESC =

      (GLOBAL_DBNAME = eygle)

      (ORACLE_HOME = /opt/oracle/product/9.2.0)

      (SID_NAME = eygle)

)

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论