理解Database和Instance
學習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體系結構的簡單概要圖,後續文章將繼續分享學習筆記。謝謝關注此部落格!!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/493318/viewspace-1073290/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- database和instance的區別Database
- Oracle database instanceOracleDatabase
- The Instance and the Database (285)Database
- 3.2.1 Mounting a Database to an InstanceDatabase
- Overview of Instance and Database Startup (289)ViewDatabase
- ORA-38760: This database instance failed to turn on flashback databaseDatabaseAI
- oracle中instance name 和database name的一點體會OracleDatabase
- [Shell] monitor oracle database listener & instance statusOracleDatabase
- Overview of Database and Instance Shutdown (302)ViewDatabase
- Top 5 Database and/or Instance Performance Issues in RAC EnvironmentDatabaseORM
- 7.monitor oracle database listener & instance statusOracleDatabase
- ORA-38760: This database instance failed to turn on flashback database 第三篇DatabaseAI
- ORA-38760: This database instance failed to turn on flashback database 錯誤解決DatabaseAI
- 3.1.5.2 Starting an Instance, and Mounting and Opening a DatabaseDatabase
- Migrate database from single instance to Oracle RACDatabaseOracle
- Connected to an idle instance – while database is runningWhileDatabase
- Close the Database by Terminating the Instance (304)Database
- Database and/or Instance Performance Issues in RAC Environment_1373500.1DatabaseORM
- instance和clientclient
- Oracle 19c Concepts(13):Oracle Database InstanceOracleDatabase
- oracle rconfig convert single instance to rac databaseOracleDatabase
- oracle 9i single instance convert to rac databaseOracleDatabase
- 關於INSTANCE RECOVERY過程的理解
- 資料庫各個階段的INSTANCE DATABASE狀態資料庫Database
- Instance database dbid sid tnsname等概念混個眼熟Database
- 對於Database recovery的理解Database
- HowTo Restore RMAN Disk backups of RAC Database to Single Instance On Another NoRESTDatabase
- Manual Database Creation in Oracle9i (Single Instance and RAC)-137288.1DatabaseOracle
- 理解RMAN backup database plus archivelog命令DatabaseHive
- 檢視資料庫系統instance與database、service以及resource的字典資訊資料庫Database
- recover database using backup controlfile理解Database
- recover database until cancel和 recover database區別Database
- 關於db_name,instance_name等近似概念的理解????
- 關於service_name,instance_name的結論性理解
- HowTo Restore RMAN Disk backups of RAC Database to Single Instance On Another Node [ID 415579.1]RESTDatabase
- How to Rename Database/Change DB_NAME or ORACLE_SID/Instance Name-15390.1DatabaseOracle
- yield self和instance_eval用法區別
- ORA-20200: Database/Instance 2605024463/1 does not exist in DBA_HIST_...Database