關于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