Oracle 11g基礎簡介(《Oracle從入門到精通》讀書筆記1)

第一範式:

數據組的每個屬性只可以包含一個值;

關係中的每個數組必須包含相同數量的值;

關係中的每個數一定不能完全相同。

第二範式:(每行記錄要唯一可辨別)

滿足第一範式;

數據庫表中的每行記錄必須能被唯一的區分。

第三範式:(防止冗餘)

滿足第二範式;

不同表中通過同一個主鍵關聯起來的記錄行不能存在除主鍵外相同的冗餘信息。


1. 安裝:http://jingyan.baidu.com/article/22a299b57870f29e19376adf.html


2. 卸載:停服務,然後執行app\administrator\product\11.2.0\dbhome_1\deinstall\deinstall.bat,linux下則執行對應的sh腳本,按提示進行。


3. 管理工具:

(1)sqlplus username/password@IP:port/sid [as sysdba]

(2)Oracle Enterprise Manager(OEM): 運行Oracle程序組中的Database Control-sidname來啓動

(3)數據庫配置助手Database Configuration Assistance(DCA)


注:下面的命令絕大多數都是在SLQ/PLUS中執行

4. 啓動數據庫:啓動順序-啓動實例、加載數據庫、打開數據庫(連接)

startup nomount|mount|open|force|resetrict [pfile=filename]

nomount:只啓動實例、不加載數據庫

mount:啓動實例、數據庫,但保持數據庫爲關閉狀態(不可連接)

open:默認啓動選項,啓動實例、數據庫並打開數據庫連接;

force:強制關閉當前正在運行的實例再啓動,也就是重啓;

resetrict:指定以受限制的會話方式啓動數據庫;

pfile:指定實例啓動時所使用的文本參數文件。


5. 關閉數據庫:關閉順序和啓動順序恰好相反

shutdown normal | transactional | immediate | abort

normal: 阻止建立新連接、等待已連接用戶主動斷開連接後、關閉數據庫;

transactional:阻止建立新連接/新事務等待已連接用戶提交的事務執行完畢主動斷開連接後、關閉數據庫;

immediate:阻止建立新連接/新事務將未提交的事務回退後關閉數據庫;

abort:阻止建立新連接/新事務取消未提交的事務、終止正在執行的任何SQL後關閉數據庫。


6. Oracle 11g邏輯存儲結構:


(1) 數據塊(Data Block)由塊頭、表目錄、行目錄、空餘空間、行數據組成(知道就行,沒必要記,可以理解oracle是一個”獨立“的操作系統,這種結構和OS的文件系統是類似的構想)

col name format a30

col value format a20

select name,value from v$parameter where name = 'db_block_size';

(2) 若干個數據塊組成數據區,再由若干個數據區組成下面所說的”段“,畢竟數據塊的單位太小,操作起來不太方便;

(3) 段(Segment)又可分爲數據段、索引段、回滾段、臨時段(具體的描述請百度),平時執行的排序查詢操作就是在臨時段中開闢一塊空間來臨時存儲排序出來的記錄,因此,如果需要頻繁的執行排序查詢等操作,最好調整sort_area_size的大小:

===========================================================
  1. 可以使用“alter session set sort_area_size=3000000”使得新值只對當前連接生效
  2. 可以使用“alter sysetm set sort_area_size=3000000 deferred”使得新值對隨後登錄的賬號生效,而對當前連接不生效
  3. 可以使用“alter system set sort_area_size=3000000 scope=spfile”使得新值在數據庫重新啓動後生效
  4. 這裏的數值不能包含K、M、G作單位,多數錯誤基本都是在數值中包含了這些單位引起的

用戶數據庫出現04030問題,oracle.exe佔用內存越來越多,後來做statspack發現pga不斷增長,調整方案,alter system set workarea_size_policy=manual;調整sort_area_size和hash_area_size,目前還不知道調整後的情況,有待觀察.

(該段引自http://blog.sina.com.cn/s/blog_4bab74840100wad9.html)


(4) 表空間(TableSpace),數據庫的最大邏輯劃分區域,同一個表空間可以包含一個或多個數據文件(.dbf文件,後面會寫);創建一個數據庫時,oracle會自動創建幾個默認的表空間用來管理用戶數據和系統內部數據(數據字典等),默認表空間有:

·SYSTEM:存放dict、v$fixed_view_definition等系統數據;

col table_name for a30

col comments for a30

select * from dict;

·SYSAUX:SYSTEM的輔助表空間,有oracle自動維護;

·UNDO:撤銷表空間,oracle創建時會命名爲UNDOTBS1,DUIYING 的DBF文件爲UNDOTBS1.dbf

·USERS:爲用戶存儲用戶數據而創建的默認表空間;


7. oracle物理存儲結構:懶得畫圖了,直接上照片;總的來說oracle相關的數據分四大部分:


(1)數據文件(.DBF):上述的“表空間”,最終可以理解是以DBF文件的形式存放在硬盤中的,可以通過以下命令查找每個表空間對應的DBF文件所在位置:

col file_name for a50;

set linesize 100;

select file_name,tablespace_name from dba_data_files;


數據文件可以分爲系統數據文件(SYSAUX01.DBF、SYSTEM01.DBF)、回滾數據文件(UNDOTBS01.DBF)和用戶數據文件(USERS01.DBF);此外,還有一個隱藏的“臨時數據文件”,可以通過以下命令查看:

col file_name format a50;

col tablespace_name format a20;

select file_name, tablespace_name from dba_temp_files;


(2)控制文件(.CTL):之前說到的,數據庫實例在啓動的時候會從參數文件中讀取參數(就是那個pfile),它就屬於控制文件;使用如下命令查看每個數據庫對應的控制文件:

col name format a60;

select name from v$controlfile;

Oracle會爲每個數據庫配兩個控制文件,是oracle爲了保證數據庫在某個控制文件損壞時仍能讀取到備份的控制文件從而繼續正常運行;由此可見控制文件對數據庫的重要性。


(3)日誌文件:

重做(回滾)日誌文件:用戶執行commit 時,oracle會先把就數據保存到重做日誌中,然後纔會把新操作應用到系統中去,位置如下:

col member for a50;

select member from v$logfile;

歸檔日誌文件:用來將重做日誌進行歸檔保存,避免損失較早的重做日誌;如果數據庫開啓了歸檔模式,數據庫操作要等歸檔進程(ARCH)結束才能開始覆寫日誌文件,從而延遲了響應時間。

查看當前oracle是否採用了歸檔模式:

col name format a30;

select dbid,name,log_mode from v$database;

查看歸檔日誌路徑:

set pagesize 30;

show parameter log_archive_dest;


(4)服務器參數文件(SPFILE):其中包含的參數用show parameter查看,如果要修改的話,用:

alter system set db_block_size=xxxx;

或者直接登陸OEM更改;


(5)密碼文件、告警文件、跟蹤文件:個人感覺這幾個東西用到的不多

密碼文件:可以直接執行app\Administrator\product\11.2.0\dbhome_1\BIN下的orapwd.exe/orapwd.sh執行(windows平臺需要在dos窗口執行orapwd創建對應的密碼文件);


告警文件:位於

show parameter background_dump_dest;


跟蹤文件:用於記錄oracle和用戶後臺進程中的警告和錯誤信息;

show parameter user_dump_dest;



8. Oracle 11g服務器結構:直接上照片


各個詞的中英文對照:

User process:用戶進程

PGA:程序全局區

Instance:實例

SGA:系統全局區

Shared pool:共享池,分爲庫告訴緩衝區和字典高速緩衝區

Database buffer cache:高速數據緩衝區

Redo log buffer cache:重做日誌緩衝區

Server process:服務進程

PMON:進程監控進程

SMON:系統監控進程

DBWR:數據寫入進程

LGWR:日誌寫入進程

CHPT:檢查點進程

Others:其他進程,包括SNPN(快照進程)、DNNN(調度進程)、RECO(恢復進程)、LCKN(鎖定進程)、ARCH(歸檔進程)

Data files:數據文件,也就是上面說的.dbf文件

Control files:控制文件,也就是上面說的.ctl文件

Redo log files、Parameter file、Password file、Archived log files:上面說過了

各個名詞的含義百度百科上有詳細描述和舉例;再上一張圖把服務體系結構和物理、邏輯體系結構聯繫起來看下:



9. Oracle常用數據字典:





以上列出來的是一些常用的,還可以通過百度補充,有很多相關的文章,如:

http://www.cnblogs.com/linjiqin/p/3148746.html


【第一、二章完】





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章