[ORACLE]Oracle db_name ORACLE_SID INSTANCE_NAME SERVICE_NAMES
db_name:
实例启动最小参数需求,在参数文件中,通常需要最少的参数是 db_name ,设置了这个参数之后,数据库实例就可以启动.
SID -->System IDentifier 的缩写
ORACLE_SID --> 就是 Oracle System IDentifier
Oracle 的实例 (instance)是由一块共享内存区域 (SGA) 和一组后台进程 (background processes)共同组成,而后台进程正是数据库和操作系统进行交互的通道,这些进程的名称就是通过 ORACLE_SID 决定的。
在同一个$ORACLE_HOME 下,通过参数文件,Oracle 能够根据 ORACLE_SID 将实例区分开来;
但是注意如果在不同的$ORACLE_HOME 下,即使在同一台主机上,Oracle 也是能够创建相同 ORACLE_SID 的实例的。
Oracle ᨀ供的一个小工具 sysresv,我们可以找到对应于不同的 ORACLE_SID,操作系统上创建的共享内存段 ID(Shared Memory)和信号量 ID(Semaphores)等信息:
[oracle@d4cdb ~]$ sysresv -l D4C IPC Resources for ORACLE_SID "D4C" : Maximum shared memory segment size (shmmax): 4398046511104 bytes Total system shared memory (shmall): 4398046511104 bytes Total system shared memory count (shmmni): 4096 *********************** Dumping ipcs output ******************** ------ Message Queues -------- key msqid owner perms used-bytes messages ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0xe9edf334 0 oracle 600 28672 71 0x00000000 98305 oracle 600 8896512 58 0x00000000 131074 oracle 600 289406976 29 0x00000000 163843 oracle 600 7880704 29 0x61d1a2d4 196612 oracle 600 12288 29 ------ Semaphore Arrays -------- key semid owner perms nsems 0x5dc6f648 163840 oracle 600 250 0x5dc6f649 196609 oracle 600 250 0x5dc6f64a 229378 oracle 600 250 0x9a6a5b94 360451 oracle 600 250 0x9a6a5b95 393220 oracle 600 250 *********************** End of ipcs command dump **************
INSTANCE_NAME
Oracle 数据库内部存在一个初始化参数 INSTANCE_NAME,用于标示数据库实例的名称, 其缺省值通常就是 ORACLE_SID ;但是初始化参数 INSTANCE_NAME 和ORACLE_SID 可以不同,不同实例可以拥有相同的 INSTANCE_NAME。
通过以下一段 SQL 可以获得数据库的 UPTIME 信息:
COLUMN STARTED_AT format a25 COLUMN UPTIME format a50 SELECT TO_CHAR (startup_time, 'DD-MON-YYYY HH24:MI:SS') started_at, TRUNC (SYSDATE - (startup_time)) || ' day(s), ' || TRUNC ( 24 * ((SYSDATE - startup_time) - TRUNC (SYSDATE - startup_time))) || ' hour(s), '|| MOD (TRUNC ( 1440 * ( (SYSDATE - startup_time) - TRUNC (SYSDATE - startup_time))),60) || ' minute(s), '|| MOD (TRUNC ( 86400 * ( (SYSDATE - startup_time) - TRUNC (SYSDATE - startup_time))),60) || ' seconds' uptime FROM v$instance;
相较 INSTANCE_NAME 参数来说,对于 Oracle 数据库更为重要的一个参数是 DB_NAME。DB_NAME 代表了实例即将挂接的数据库名称,关系到具体的物理文件。通常缺省的数据库 instance_name 和 db_name 可以设置相同(在 RAC 环境下,由于多个实例对应一个数据库,所以 instance_name 和 db_name 不同)。
DB_NAME 用来定义数据库名称,必须是一个不超过 8 个字符的文本串,在数据库创建过程中,db_name 被记录在数据文件,日志文件和控制文件中。如果数据库实例启动过程中参数文件中的db_name和控制文件中的数据库名称不一致,则数据库不能启动.
1. 一个实例可以 mount 并打开任何数据库,但是同一时间一个实例只能打开一个数据库
2. 一个数据库可以被一个或多个实例所 mount 并打开(在 OPS/RAC 环境下,一个数据库可以被多个实例所打开)。
DB_NAME 的另外一个作用是在监听器动态注册时作为缺省服务名注册.
SERVICE_NAMES