理解Database和Instance

macxue發表於2014-01-20

    學習Oracle的關鍵是熟悉Oracle體系結構。今天開始了Oracle體系結構之旅,順帶記錄學習筆記,寫寫部落格,防止忘記。

    1.Oracle體系結構基礎

       1.1資料庫database和例項instance

            1.1.1資料庫database

                    這裡的資料庫指的是存放在磁碟中的資料庫檔案,比如資料檔案、控制文  

                  件、日誌檔案等。                  

[oracle@ENMOEDU ENMOEDU]$ pwd
/u01/app/oracle/oradata/ENMOEDU
[oracle@ENMOEDU ENMOEDU]$ ls -lh
total 2.3G
-rw-r----- 1 oracle oinstall 9.3M Jan 20 12:19 control01.ctl
-rw-r----- 1 oracle oinstall 101M Jan 20 12:19 example01.dbf
-rw-r----- 1 oracle oinstall 51M Jan 20 12:18 redo01.log
-rw-r----- 1 oracle oinstall 51M Jan 20 12:19 redo02.log
-rw-r----- 1 oracle oinstall 51M Jan 20 12:18 redo03.log
-rw-r----- 1 oracle oinstall 601M Jan 20 12:19 sysaux01.dbf
-rw-r----- 1 oracle oinstall 721M Jan 20 12:19 system01.dbf
-rw-r----- 1 oracle oinstall 61M Jan 20 12:18 temp01.dbf
-rw-r----- 1 oracle oinstall 611M Jan 20 12:19 undotbs01.dbf
-rw-r----- 1 oracle oinstall 74M Jan 20 12:19 users01.dbf

                     如上,控制檔案為.ctl;日誌檔案為.log;資料檔案為.dbf。 

              1.1.2例項instance

                     這裡的例項指的是程式和記憶體區域。

                     1.1.2.1檢視系統記憶體分配及訊號量:                                     

[oracle@ENMOEDU ~]$ ipcs

------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 3604481 root 644 52 2
0x00000000 3637251 root 644 16384 2
0x00000000 3670020 root 644 268 2

------ Semaphore Arrays --------
key semid owner perms nsems

------ Message Queues --------
key msqid owner perms used-bytes messages                    

                    如上,此為例項執行前,系統記憶體分配及訊號量狀況。

[oracle@ENMOEDU ~]$ ipcs

------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 3604481 root 644 52 2
0x00000000 3637251 root 644 16384 2
0x00000000 3670020 root 644 268 2
0x00000000 3899398 oracle 640 4096 0
0x00000000 3932167 oracle 640 4096 0
0x6265bc50 3964936 oracle 640 4096 0

------ Semaphore Arrays --------
key semid owner perms nsems
0x10b08078 262145 oracle 640 154

------ Message Queues --------
key msqid owner perms used-bytes messages

                    執行sqlplus並啟動instance後,對比之後可以看到,Shared Memory  

                 Segments增加了3個Oracle相關的段。Semaphore Arrays也增加了一個。

                 這些增加的即是instance在記憶體中的分配表現。

                    1.1.2.2檢視系統程式狀況                     

[oracle@ENMOEDU ~]$ ps -ef|grep ora_
oracle 5418 5319 0 21:23 pts/3 00:00:00 grep ora_

                      例項執行前,ps命令沒有查到oracle相關服務程式。

[oracle@ENMOEDU ~]$ ps -ef|grep ora_
oracle 5525 1 0 21:28 ? 00:00:00 ora_pmon_ENMOEDU
oracle 5527 1 0 21:28 ? 00:00:00 ora_psp0_ENMOEDU
oracle 5530 1 0 21:28 ? 00:00:00 ora_vktm_ENMOEDU
oracle 5534 1 0 21:28 ? 00:00:00 ora_gen0_ENMOEDU
oracle 5536 1 0 21:28 ? 00:00:00 ora_diag_ENMOEDU
oracle 5538 1 0 21:28 ? 00:00:00 ora_dbrm_ENMOEDU
oracle 5540 1 0 21:28 ? 00:00:00 ora_dia0_ENMOEDU
oracle 5542 1 0 21:28 ? 00:00:00 ora_mman_ENMOEDU
oracle 5544 1 0 21:28 ? 00:00:00 ora_dbw0_ENMOEDU
oracle 5546 1 0 21:28 ? 00:00:00 ora_lgwr_ENMOEDU
oracle 5548 1 0 21:28 ? 00:00:00 ora_ckpt_ENMOEDU
oracle 5550 1 0 21:28 ? 00:00:00 ora_smon_ENMOEDU
oracle 5552 1 0 21:28 ? 00:00:00 ora_reco_ENMOEDU
oracle 5554 1 0 21:28 ? 00:00:00 ora_mmon_ENMOEDU
oracle 5556 1 0 21:28 ? 00:00:00 ora_mmnl_ENMOEDU
oracle 5558 1 0 21:28 ? 00:00:00 ora_d000_ENMOEDU
oracle 5560 1 0 21:28 ? 00:00:00 ora_s000_ENMOEDU
oracle 5575 1 0 21:28 ? 00:00:00 ora_qmnc_ENMOEDU
oracle 5589 1 0 21:28 ? 00:00:00 ora_cjq0_ENMOEDU
oracle 5601 1 0 21:28 ? 00:00:00 ora_q000_ENMOEDU
oracle 5603 1 0 21:28 ? 00:00:00 ora_q001_ENMOEDU
oracle 5659 1 0 21:32 ? 00:00:00 ora_j000_ENMOEDU
oracle 5661 1 0 21:32 ? 00:00:00 ora_j001_ENMOEDU
oracle 5666 5319 0 21:32 pts/3 00:00:00 grep ora_

                        例項執行後,再次對比之前ps命令結果,多出了23個ora_開頭的程式,

                      這些程式即是例項的一部分。

                         關閉例項後(shutdown),再次執行ipcs和ps命令,結果又回到了例項

                      執行前的狀況。

                          從這裡可以通過驗證,體會到instance即為記憶體和程式組成。

              1.1.3總結

                      Oracle體系結構中Database和instance概念容易混淆,不過通過區別分析,加以實機命令輸出驗證,可以較為清晰理解。

                      如下是Oracle體系結構的簡單概要圖,後續文章將繼續分享學習筆記。謝謝關注此部落格!!!

                      NewImage

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/493318/viewspace-1073290/,如需轉載,請註明出處,否則將追究法律責任。

相關文章