关于DB_NAME与ORACLE_SID,详见http://blog.csdn.net/q947817003/article/details/11269807
ORACLE_SID从ORACLE 10G开始,参数文件不再记录INSTANCE_NAME,此时INSTANCE_NAME动态从系统ORACLE_SID获得。将保持一致
DB_NAME:
实例启动的最少参数要求,有此参数,数据库实例就可以启动。可以新建INIT.ORA只包括此参数测试。
它代表了实例即将连接的数据库名称,关系到具体的物理文件。单实例数据库DB_NAME与INSTANCE_NAME可设置相同,RAC环境下多实例对应一个数据库,两者不同。
DB_NAME用来定义数据库名称,必须是不超过8个字符的文本串,数据库创建过程中,DB_NAME被记录在数据文件、日志文件、控制文件,实例启动过程中参数文件中DB_NAME与控制文件中不一致,则数据库不能启动。
一个实例可以MOUNT并打开任何数据库,同一时间一个实例只能打开一个数据库。
一个数据库可以被一个或多个实例MOUNT并打开,如RAC
主机,实例,数据库关系:
比如实例是男人,数据库是女人,主机就是一张大床。
正常情况下,同一时间一男只能打开一女,而理论上一男能打开任意女滴。
一女理论上可以被任意一个男打开,也可以同时被多个男打开----RAC/3P-NP。
一张大床(主机)可以睡一个男人(实例)和一个女人(库),只要床足够大,也可以睡多个男人和多个女人。
ORACLE_SID:
ORACLE System IDentifier的缩写, ORACLE_SID以环境变量形式出现。ORACLE实例由一块共享内存区域SGA和一组后台进程background process组成,后台进程是数据库与操作系统运行交互的通道。比如JORACLE根据ORACLE_SID决定查找参数文件并启动实例。
INSTANCE_NAME 在数据库内部ORACLE_sid关联概念就是INSTANCE_NAME,ORACLE存在的初始化参数INSTANCE_NAME用于标示数据库实例名字缺省值是ORACLE_SID,在数据库内部视图V$INSTANCE中记录着INSTANCE_NAME,来自数据库实例的SID,始终与ORACLE_SID保持一致。
从动态参数文件创建静态参数文件为:
create pfile from spfile;
create sfile='C:\DBHOME_1\DATABASE\initorcl.ora'from spfile=' C:\DBHOME_1\DATABASE\SPFILEORAC.ORA';
###########################################################################################################
使用任意实例名来打开数据库只需要更改以下三个参数:
修改.bash_profile 或者只改exprot ORACLE_SID参数即可
修改spfile**.ora 为新SID名。
修改密码文件为新SID名
注意事项:实验完成后,关库并及时将SPFILE/密码文件/ORACLE_SID恢复为原来的数据。
如未关库就重新以原ORACLE_SID去OPEN数据库,会找不到SPFILE。。
如未关库但是修改了SPFILE/密码文件/ORACLE_SID,重新以原ORACLE_SID去OPEN数据库,实例可以启动,MOUNT时报错:ORA-01102: cannot mount database in EXCLUSIVE mode
1.修改.bash_profile的 ORACLE_SID参数或者exprot ORACLE_SID参数
我这里用exprot ORACLE_SID参数的方式
[[email protected] ~]$ export ORACLE_SID=bys5
[[email protected] ~]$ echo $ORACLE_SID
bys5
2.修改初始化参数文件-SPFILE名字格式--不用修改内容--做好文件备份
修改密码文件格式-密码文件的名字格式--不用修改内容
[[email protected] ~]$ cd $ORACLE_HOME/dbs
[[email protected] dbs]$ ls
hc_bys3.dat lkBYS3 spfilebys3.ora
initbys3.ora orapwbys3
[[email protected] dbs]$ mv spfilebys3.ora spfilebys3.oraa
[[email protected] dbs]$ cp spfilebys3.oraa spfilebys5.ora
[[email protected] dbs]$ cp orapwbys3 orapwbys3a
[[email protected] dbs]$ mv orapwbys3 orapwbys5
[[email protected] dbs]$ ls
hc_bys3.dat orapwbys3a spfilebys5.ora
initbys3.ora orapwbys5
lkBYS3 spfilebys3.oraa
3.启动实例并OPEN数据库,可以正常打开数据库
[[email protected] dbs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Fri Nov 15 10:49:44 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
[email protected] bys5>startup
ORACLE instance started.
Total System Global Area 150654976 bytes
Fixed Size 1363216 bytes
Variable Size 96469744 bytes
Database Buffers 50331648 bytes
Redo Buffers 2490368 bytes
Database mounted.
Database opened.
[email protected] bys5> select instance_name,host_name from v$instance;
INSTANCE_NAME HOST_NAME
---------------- ----------------------------------------------------------------
bys5 bys3.bys.com
[email protected] bys5> select name from v$database;
NAME
---------
BYS3