天天看點

使用任意執行個體名來打開資料庫測試--男人(執行個體)理論上能OPEN任意一個女人(資料庫)

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