oracle資料庫開發實例
『壹』 windows下怎麼創建oracle的實例
創建oracle11g 資料庫方法:按住鍵盤上Windows鍵,打開開始菜單,找到Database Configuration Assitant並打開;
打開資料庫配置助手Database Configuration Assitant,單擊「下一步」;
選擇「創建資料庫」,單擊「下一步」
選擇「一般用途或事務處理」,單擊「下一步」;
設置資料庫的名稱和實例名,兩者可設置相同,也可以不同,單擊「下一步」
管理選項配置,不勾選配置Enterprise Manager,單擊「下一步」;
資料庫身份證明,可以為不同的賬戶分別設置不同的管理口令,也可以為所有賬戶設置同一口令,單擊「下一步」;
資料庫文件所在位置,默認存儲類型:文件系統,存儲位置:使用模版中的資料庫文件位置,也可以自己指定存儲路徑,單擊「下一步」;
恢復配置,指定快速恢復區;
資料庫內容,根據需要,選擇是否添加示例方案,單擊「下一步」;
初始化參數,設置內存、字元集等,單擊「下一步」;
資料庫存儲,控制文件、數據文件、重做日誌文件位置設置,單擊「下一步」;
創建選項,創建資料庫,生成腳本,單擊「完成」,開始創建資料庫。
『貳』 ORACLE瀹炰緥鍜孫RACLE鏁版嵁搴撹﹁В
瀵艱伙細oracle鏁版嵁搴撴槸涓縐嶅ぇ鍨嬫暟鎹搴撶郴緇燂紝涓鑸搴旂敤浜庡晢涓氾紝鏀垮簻閮ㄩ棬錛屽畠鐨勫姛鑳藉緢寮哄ぇ錛岃兘澶熷勭悊澶ф壒閲忕殑鏁版嵁錛屽湪緗戠粶鏂歸潰涔熺敤鐨勯潪甯稿氥備笉榪囷紝涓鑸鐨勪腑灝忓瀷浼佷笟閮芥瘮杈冨枩嬈㈢敤mysql, SQL server絳夋暟鎹搴撶郴緇燂紝瀹冪殑鎿嶄綔寰堢畝鍗曪紝鍔熻兘涔熼潪甯擱綈鍏ㄣ傚彧鏄姣旇緝oracle鏁版嵁搴撹岃█錛屽湪澶勭悊澶ч噺鏁版嵁鏂歸潰鏈変簺涓嶅傘
涓銆丱RACLE瀹炰緥
1銆丱RACLE 瀹炰緥鈥斺斿寘鎷鍐呭瓨緇撴瀯涓庡悗鍙拌繘紼
System Global Area(SGA) 鍜 Background Process 縐頒負鏁版嵁搴撶殑瀹炰緥銆
2銆丱RACLE 鏁版嵁搴撯斺旂墿鐞嗘搷浣滅郴緇熸枃浠剁殑闆嗗悎
涓緋誨垪鐗╃悊鏂囦歡鐨勯泦鍚(鏁版嵁鏂囦歡錛屾帶鍒舵枃浠訛紝鑱旀満鏃ュ織錛屽弬鏁版枃浠剁瓑)
3銆佺郴緇熷叏灞鍏變韓鍖篠ystem Global Area(SGA)
System Global Area鏄涓鍧楀法澶х殑鍏變韓鍐呭瓨鍖哄煙錛屼粬琚鐪嬪仛鏄疧racle鏁版嵁搴撶殑涓涓澶х紦鍐叉睜錛岃繖閲岀殑鏁版嵁鍙浠ヨ玂RACLE鐨勫悇涓榪涚▼鍏辯敤銆傚叾澶у皬鍙浠ラ氳繃濡備笅璇鍙ユ煡鐪嬶細
SQL select * from v$sga;
NAME VALUE
-
Fixed Size 39816
Variable Size 259812784
Database Buffers 1.049E+09
Redo Buffers 327680
鏇磋︾粏鐨勪俊鎮鍙浠ュ弬鑰僔$sgastat銆乂$buffer_pool
涓昏佸寘鎷浠ヤ笅鍑犱釜閮ㄥ垎錛
a銆 鍏變韓奼(Shared pool)
鍏變韓奼犳槸SGA涓鏈鍏抽敭鐨勫唴瀛樼墖孌碉紝鐗瑰埆鏄鍦ㄦц兘鍜屽彲浼哥緝鎬т笂銆備竴涓澶灝忕殑鍏變韓奼犱細鎵兼潃鎬ц兘錛屼嬌緋葷粺鍋滄錛屽お澶х殑鍏變韓奼犱篃浼氭湁鍚屾牱鐨勬晥鏋滐紝灝嗕細娑堣楀ぇ閲忕殑CPU鏉ョ$悊榪欎釜鍏變韓奼犮備笉姝g『鐨勪嬌鐢ㄥ叡浜奼犲彧浼氬甫鏉ョ伨闅俱傚叡浜奼犱富瑕佸張鍙浠ュ垎涓轟互涓嬩袱涓閮ㄥ垎錛
SQL璇鍙ョ紦鍐(Library Cache)
褰撲竴涓鐢ㄦ埛鎻愪氦涓涓猄QL璇鍙ワ紝Oracle浼氬皢榪欏彞SQL榪涜屽垎鏋(parse)錛岃繖涓榪囩▼綾諱技浜庣紪璇戱紝浼氳楄垂鐩稿硅緝澶氱殑鏃墮棿銆傚湪鍒嗘瀽瀹岃繖涓猄QL錛孫racle浼氭妸浠栫殑鍒嗘瀽緇撴灉緇欎繚瀛樺湪Sharedpool鐨凩ibraryCache涓錛屽綋鏁版嵁搴撶浜屾℃墽琛岃SQL鏃訛紝Oracle鑷鍔ㄨ煩榪囪繖涓鍒嗘瀽榪囩▼錛屼粠鑰屽噺灝戜簡緋葷粺榪愯岀殑鏃墮棿銆傝繖涔熸槸涓轟粈涔堢涓嬈¤繍琛岀殑SQL姣旂浜屾¤繍琛岀殑SQL瑕佹參涓鐐圭殑鍘熷洜銆
涓嬮潰涓句緥璇存槑parse鐨勬椂闂
SQL select count(*) fromscpass ;
COUNT(*)
--
243
Elapsed: 00:00:00.08
榪欐槸鍦⊿hare_pool 鍜孌ata buffer 閮芥病鏈夋暟鎹緙撳啿鍖虹殑鎯呭喌涓嬫墍鐢ㄧ殑鏃墮棿
SQL alter system flush SHARED_POOL;
System altered.
娓呯┖Share_pool錛屼繚鐣橠ata buffer
SQL select count(*) from scpass ;
COUNT(*)
--
243
Elapsed: 00:00:00.02
SQL select count(*) from scpass ;
COUNT(*)
--
243
Elapsed: 00:00:00.00
浠庝袱鍙SQL 鐨勬椂闂村樊涓婂彲浠ョ湅鍑鴻SQL 鐨凱arse 鏃墮棿綰︿負00:00:00.02
瀵逛簬淇濆瓨鍦ㄥ叡浜奼犱腑鐨凷QL璇鍙ワ紝鍙浠ヤ粠V$Sqltext銆乿$Sqlarea涓鏌ヨ㈠埌錛屽逛簬緙栫▼鑰呮潵璇達紝瑕佸敖閲忔彁楂樿鍙ョ殑閲嶇敤鐜囷紝鍑忓皯璇鍙ョ殑鍒嗘瀽鏃墮棿銆備竴涓璁捐$殑宸鐨勫簲鐢ㄧ▼搴忓彲浠ユ瘉鎺夋暣涓鏁版嵁搴撶殑Sharepool錛屾彁楂楽QL璇鍙ョ殑閲嶇敤鐜囧繀欏誨厛鍏繪垚鑹濂界殑鍙樻垚涔犳儻錛屽敖閲忎嬌鐢˙ind鍙橀噺銆
鏁版嵁瀛楀吀緙撳啿鍖(Data Dictionary Cache)
鏄捐屾槗瑙侊紝鏁版嵁瀛楀吀緙撳啿鍖烘槸ORACLE鐗瑰湴涓烘暟鎹瀛楀吀鍑嗗囩殑涓鍧楃紦鍐叉睜錛屼緵ORACLE鍐呴儴浣跨敤錛屾病鏈変粈涔堝彲浠ヨ寸殑銆
涓婃枃鐨勫唴瀹圭浉瀵規潵璇磋繕鏄寰堝熀紜鐨勶紝鎵浠ュ逛簬鍒氬垰鍏ラ棬鐨勫垵瀛﹁呮潵璇達紝瀛︿範鍒濇湡錛屽ソ濂界殑鐮旂┒涓涓嬫湰鏂囦腑浠嬬粛鐨勫唴瀹癸紝鐩鎬俊瀵瑰ぇ瀹剁殑鍏ラ棬瀛︿範浼氬緢鏈夊府鍔╃殑銆
『叄』 教你設計大型Oracle資料庫
本文教你如何設計大型Oracle資料庫 希望對大家有所幫助
一 概論
超大型系統的特點為
處理的用戶數一般都超過百萬 有的還超過千萬 資料庫的數據量一般超過 TB;
系統必須提供實時響應功能 系統需不停機運行 要求系統有很高的可用性及可擴展性
為了能達到以上要求 除了需要性能優越的計算機和海量存儲設備外 還需要先進的資料庫結構設計和優化的應用系統
一般的超大型系統採用雙機或多機集群系統 下面以資料庫採用Oracle 並行伺服器為例來談談超大型資料庫設計方法
確定系統的ORACLE並行伺服器應用劃分策略迅盯
資料庫物理結構的設計
系統硬碟的劃分及分配
備份及恢復策略的考慮
二 Oracle並行伺服器應用劃分策略
Oracle並行伺服器允許不同節點上的多個INSTANCE實例同時訪問一個資料庫 以提高系統的可用性 可擴展性及性能 Oracle並行伺服器中的每個INSTANCE實例都可將共享資料庫中的表或索引的數據塊讀入本地的緩沖區中 這就意味著一個數據塊可存在於多個INSTANCE實例的SGA區中 那麼保持這些緩沖區的數據的一致性就很嘩亮重要 Oracle使用 PCM( Parallel Cache Management)鎖維護緩沖區的一致性 Oracle同時通過I DLM(集成的分布式鎖管理器)實現PCM 鎖 並通過專門的LCK進程實現INSTANCE實例間的數據一致
考慮這種情況 INSTANCE 對BLOCK X塊修改 這時INSTANCE 對BLOCK X塊也需要修改 Oracle並行伺服器利用PCM鎖機制 使BLOCK X從INSTANCE 的SGA區寫入資料庫數據文件中 又從數據文件中把BLOCK X塊讀入INSTANCE 的SGA區中 發生這種情況即為一個PING PING使原來 個MEMORY IO可以完成的工作變成 個DISK IO和 個 MEMORY IO才能夠完成 如果系統中有過多的PING 將大大降低系統的性能
Oracle並行伺服器中的每個PCM鎖可管理多個數據塊 PCM鎖管理的數據塊的個數與分配給一個數據文件的PCM鎖的個數及該數據文件的大小有關 當INSTANCE 和INSTANCE 要操作不同的BLOCK 如果這些BLOCK 是由同一個PCM鎖管理的 仍然會發生PING 這些PING稱為FALSE PING 當多個INSTANCE訪問相同的BLOCK而產生的PING是TRUE PING
合理的應用劃分使不同的應用訪問不同的數據 可避免或減少TRUE PING;通過給FALSE PING較多的數據文件分配更多的PCM鎖可減少 FALSE PING的次數 增加PCM鎖不能減少TRUE PING
所以 Oracle並行伺服器設計的目的是使系統交易處理合理的分布在INSTANCE實例間 以最小化PING 同時合理的分配PCM鎖 減少FALSE PING 設計的關鍵是找出可能產生的沖突 從而決定應用劃分的策略 應用劃分有如下四種方法
根據功能模塊劃分 不同的節點運行不同的應用
根據用戶劃分 不同類型的用戶運行在不同的節點上
根據數據劃分 不同的節點訪問不同的數據或索引
根據時間劃分 不同的應用在不同的時間段運行
應用劃分的兩個重要原則是使PING最小化及使各節點的負載大致均衡
三 資料庫物理結構的設計
資料庫物理結構設計包括確定表及索引的物理存儲參數 確定及分配數據畝蘆和庫表空間 確定初始的回滾段 臨時表空間 redo log files等 並確定主要的初始化參數 物理設計的目的是提高系統的性能 整個物理設計的參數可以根據實際運行情況作調整
表及索引數據量估算及物理存儲參數的設置
lishixin/Article/program/Oracle/201311/18944