1.oracle sid:oracle system id detifier,在單節點環境中,oracle sid的名字預設情況下和instance name,db name 相同。
2.檢查$oracle_home
空間大小,單節點環境:30g以上,rac環境:50g以上。
3.檢查oracle使用者的環境變數
3.1.oracle庫環境變數是否正確設定,linux:ld_library_path
64位環境:export ld_library_path=$oracle_home/lib
64位環境調32位的庫環境:export ld_library_path=$oracle_home/lib
建立oracle日誌檔案目錄和密碼檔案
bdump目錄由oracle引數 background_dump_dest 指定,主要存放oracle 警告日誌和dbwr、lgwr等後台程序的跟蹤檔案。
adump目錄由oracle引數audit_file_dest指定,主要存放oracle程序的審計資訊,當不指定audit_file_dest引數時,oracle預設將審計資訊寫在$oracle_home/rdbms/audit目錄中。
udump目錄主要由user_dump_dest引數指定,它主要存放使用者程序的跟蹤檔案,如使用者程序執行過程中異常終止,其跟蹤檔案會生成在udump目錄中
cdump目錄是由引數core_dump_dest指定,主要存放oracle軟體執行過程中產生的core檔案,它主要儲存oracle程序異常終止時的記憶體狀態。
為了避免產生過大的core檔案,oracle提供了3個引數:max_dump_file_size,background_core_dump,shadow_core_dump 用於控制core檔案的大小。但是core檔案往往增長的很迅速大量的core檔案很容易引起oracle目錄空間的不足,從而引起資料庫執行異常。
建立密碼檔案:
$ orapwd file=$oracle_home/dbs/orapworcl password=orcl entries=5 force=y
建立oracle引數檔案:
1.設定記憶體相關引數
oracle記憶體引數主要分為sga和pga兩大塊。
oltp業務系統:事物併發量大,平均事物響應時間較短,系統中多為sql解析或遞迴呼叫等cpu密集操作。磁碟操作型別一般是以db file sequential read 的物理讀為主,也就是隨機單塊讀。所以oltp系統最容易出現瓶頸的地方就是cpu和儲存的iops。
一般情況下,
oltp資料庫:
sga=系統記憶體 *70% 80%
pga=sga(10%~20%)
在資源空閒的系統中,按照通用規則設定sga和pga應該不會有問題。但是還需要考慮以下情況:
1.資料庫伺服器上可能執行其他消耗記憶體的應用軟體
2.資料庫可能存在大量程序的情況,根據經驗,高併發的資料庫環境下,每個程序將消耗3m~5m系統記憶體。
3.過大的pga設定可能會引起某些程序過量的消耗記憶體。
目前,在大記憶體系統中,一般來講在oltp系統中將sga的大小設定不超過物理記憶體的一半,pga不超過3gb較為合適。設定完成後,可以根據awr報告中的sga和pga建議值進行適當調整。如果某些會話有較大的排序或者hash操作,需要較大的記憶體,可以在會話級別設定引數sort_area_size,hash_area_size
設定程序相關引數
在建立資料庫時,對於程序相關引數,只需要關心 processes 和db_writer_process 引數
引數processes 表示允許多少程序連線到oracle資料庫,這些程序包括oracle後台程序、job派生程序、併發程序等後台程序。
引數db_writer_process 表示oracle用多少個dbwr 程序從buffer cache 寫資料塊至資料檔案中,該引數的預設值取1和引數 cpu_count /8 兩者之間最大值。一般情況下,該引數保持預設值即可。當系統儲存出現i/o效能瓶頸或者有較大的資料修改量時,為提高系統效能,則可適當加大該值。
設定db_files引數
資料庫引數db_files 決定著資料檔案的數量,預設值為200個。該引數為靜態引數,需要重啟資料庫才能生效。但也不要設定的過大,測試表明,設定過大的db_files 引數也容易導致消耗過多的共享池和pga記憶體。
設定block_size 和db_file_multiblock_read_count引數
引數db_block_size 表示oracle預設的資料塊大小,在oracle10g中其預設值為8kb,在絕大數系統中,保持預設值即可,在行長度固定的前提下,設定較大的值,乙個資料塊可以容納較多的行,較多的事物槽數。但在高併發的環境中,多程序讀取或者修改同乙個塊中行的概率將會加大,所以使用較大的block容易產生熱點塊。
資料塊大小對比:
smaller:由於資料能分布到更多的資料塊,在高併發程序的隨機訪問情況下,能有效減少塊衝突,缺點:同樣的資料需要更多的資料塊來儲存,由於資料塊的塊頭資訊大小固定,所以需要更多的空間來儲存塊頭元資訊。行長度過大容易導致行連線,從而導致oracle獲取資料塊的效率降低。
larger:能夠更加有效的利用塊空間,在行長度固定的前提下,單塊能夠儲存更多的資料行,也就意味著oracle一次i/o能讀取更多的資料行。適合連續順序或者存放大物件資料(如:lob)缺點:由於大資料塊可以存放更多的索引節點資訊,容易引起爭用,所以大資料塊不適合存放索引節點資訊。
引數db_file_multiblock_read_count 表示oracle一次順序i/o讀操作最多能讀取的資料塊塊數。在權標掃瞄或者索引快速掃瞄比較多的系統中,建議將該值設定的較大。但是db_file_multiblock_read_count引數受操作最大單次i/o大小的限制,大多數作業系統單次讀操作的大小不能超過1mb,這也意味著在8k資料塊大小的情況下,該引數最大值為128.值得一提的是,該引數的大小還會影響cbo對執行計畫的評估,如果設成較大值,oracle的執行計畫傾向於全表掃瞄。
設定open_cursors 和session_cached_cursors
在9.2.0.5前,open_cursors引數的作用有兩個,一方面是限制乙個會話中開啟的cursors的總量,另一方面是作為pl/sql cursor的緩衝。在sql和pl/sql中,如果某個cursor關閉了,這個cursor不會馬上硬關閉,而是首先儲存在cursor緩衝中。如果這個會話當前開啟的cursor數量還沒有達到open_cursors 引數設定的值,那麼就可以保持open狀態。如果當前開啟的cursor數量已經達到了open_cursors引數的限制,那麼按照fifo原則,oracle首先會關閉乙個被緩衝的,並開啟實際當時並未開啟的cursor。如果緩衝池中的所有cursor都實際開啟的,則報ora-01000.9.2.0.5之後,open_cursors 引數不在承擔pl/sql緩衝的工作,pl/sql中的sql將使用session_cached_cursors 的會話緩衝。
設定乙個較大的open_cursors 引數可以讓會話緩衝更多的cursor,改善sql解析的效能。不過該引數設定的較大,會預先分配一定的記憶體。在dedicated server 模式下會占用較大的pga記憶體,在shared server 模式下則會消耗一定的shared pool 記憶體。一般的oltp系統中,設定1000 至 2000 就足夠了。
session_cached_cursors 引數可以提高sql的解析效率,10g該引數預設值是20,11gr2預設為50,如果摸個cursor被頻繁的呼叫,那麼當同乙個會話中該cursor被第三次呼叫後就會被cache,乙個cache的cursor下次再被呼叫的時候,可以省去parse的過程。但需要注意,較大session_cached_cursors 值會消耗額外的library_cache記憶體,所以在shared pool緊張的資料庫中,謹慎設定該引數,以防引起ora-04031和ora-07445錯誤。
Python命令列引數定義及需要注意的地方
在命令列中執行python 是很常見的,下面介紹如何定義命令後面跟的引數。1 常規用法 python 中主要使用下面幾行 來定義並獲取需要在命令列中賦值的引數 import argparse parser argparse.argumentparser description.1 parser.ad...
MySQL命令列中建立觸發器要注意的問題
create trigger 觸發器名 before after insert delete update on 表名 for each row begin sql語句 end 在mysql終端中,使用上述語法有時會報錯,因為sql語句末尾需要加分號 但是終端中一旦出現分號,系統就認為觸發器建立結束...
命令列建立raid
備註 一般我們在做raid的時候都是通過顯示器或者遠端控制口連線伺服器,然後重啟根據raid卡的步驟一步步完成下去的,這樣效率比較低,所以一般如果不涉及到系統盤的情況下,我們可以通過命令列來搞定,從而提公升效率。前提 安裝好megacli這個服務 檢視raid opt megaraid megacl...