文章詳情頁
Oracle并行服務(wù)器(OPS)12問
瀏覽:8日期:2023-11-14 11:57:51
Oracle并行服務(wù)器(OPS)12問 ; 本文以問答的方式闡述了Oracle并行服務(wù)器的相關(guān)概念。1、什么是OPS OPS(Oracle Parallel Server)可以讓位于不同系統(tǒng)的多個實例同時訪問同一個數(shù)據(jù)庫。并行服務(wù)器可以有效地提高系統(tǒng)的可用性和對多系統(tǒng)的訪問性能,但是,假如你的數(shù)據(jù)沒有做很好的分割,性能可能還會下降。安裝OPS時,多個實例mount同一數(shù)據(jù)庫文件,實例間的通訊由分布式鎖治理器(DLM)來治理。需要注重的是分布式鎖治理器與你所使用的硬件和操作系統(tǒng)有著密切的關(guān)系。為了確定多個企圖同時修改同一數(shù)據(jù)的實例,Oracle使用了十個后臺進程:LCK0-LCK9,來鎖定某一實例所使用的資源。OPS主要用于UNIX/Linux集群環(huán)境中。2、OPS的優(yōu)點1)高可用性2)加快事務(wù)響應(yīng)時間 - 可用于決策支持系統(tǒng)3)增大交易連接數(shù) - 可用于聯(lián)機事務(wù)處理系統(tǒng)3、所有的應(yīng)用都是適合OPS嗎?可以根據(jù)功能或數(shù)據(jù)進行分割的應(yīng)用最適合OPS。那些有'熱數(shù)據(jù)'(經(jīng)常被多實例同時訪問的數(shù)據(jù))的應(yīng)用并不適合使用OPS。4、OPS需要非凡的硬件嗎?OPS要求服務(wù)器之間互連并共享磁盤子系統(tǒng)。所有可以做成集群的系統(tǒng)都可以,常用的有UNIX/LINUX和NT等。5、如何設(shè)置OPS?1)關(guān)閉數(shù)據(jù)庫2)啟用OPS選項,在UNIX中通過重新連接Oracle軟件的方式來完成。3)使Oracle軟件在所有節(jié)點上都有效,可以通過復(fù)制軟件到其他節(jié)點或共享磁盤的方式來完成。4)每個實例要有自己的Redo log file,所以要增加必要的log文件:ALTER DATABASE ADD LOGFILE THREAD 2GROUP G4 ('RAW_FILE1') SIZE 500k,GROUP G5 ('RAW_FILE2') SIZE 500k,GROUP G6 ('RAW_FILE3') SIZE 500k;ALTER DATABASE ENABLE PUBLIC THREAD 2;5)每個實例要有自己的回滾段,所以要增加必要的回滾段:CREATE ROLLBACK SEGMENT RB2 TABLESPACE RBS;6)編輯初始化參數(shù)文件initSID.ora文件,添加如下幾項:PARALLEL_SERVER = TRUEINSTANCE_NUMBER = 1THREAD = 1ROLLBACK_SEGMENTS = (r01, r02, r03, r04)7)創(chuàng)建OPS所需的數(shù)據(jù)字典,即運行CATPARR.SQL。8)在所有的節(jié)點上啟動實例。6、如何確定一個數(shù)據(jù)庫是運行在并行狀態(tài)?show parameter parallel_server7、如何跟蹤活動的實例?SELECT * FROM SYS.V_$ACTIVE_INSTANCES;SELECT * FROM SYS.V_$THREAD;8、如何確定每個實例使用了多少個PCM鎖?select count(*) 'Number of hashed PCM locks'from v$lock_element where bitand(flags, 4) != 0/select count(*) 'Number of fine grain PCM locks'from v$lock_element where bitand(flags, 4) = 0/9、如何查看每個數(shù)據(jù)文件分配了多少個PCM鎖以及ping率?col file_name format a29col tablespace format a12col blocking format 9999999col nlocks format 99999col start_lk format 9999999select l.file_id ' ' l.file_name file_name,l.ts_name 'TABLESPACE',start_lk, nlocks, blocking, frequency 'PING COUNT'from sys.file_ping p, sys.file_lock lwhere l.file_id = p.file_idorder by l.file_id/10、什么是pinging?Pinging是進程,用于協(xié)調(diào)多實例對同一數(shù)據(jù)塊的讀寫操作。OPS性能優(yōu)化的一個挑戰(zhàn)就是要最小化pinging。11、如何監(jiān)控PCM鎖的活動情況?查看當(dāng)前實例活動PCM鎖的總數(shù):select * from sys.v$lock_activity;查看每個數(shù)據(jù)庫對象的PCM鎖活動狀況:col table format a40select file#, kind' 'username'.'name 'TABLE', sum(xnc) pingsfrom sys.v$false_ping p, sys.dba_users uwhere u.user_id = p.owner#group by file#, kind' 'username'.'name, xncorder by xnc desc/ 12、如何設(shè)置一個對所有OPS實例通用的SQL*Net連接串?1)首先要求所有節(jié)點上的SID相同,假如不相同可以按如下操作進行更改:關(guān)閉數(shù)據(jù)庫的所有實例將ORACLE_SID環(huán)境變量設(shè)成一致復(fù)制原來的初始化文件initOLDSID.ora為initCOMMON.ora重起所有實例2)編輯本地TNSNAMES.ora,如下例:PHOENIX =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.50)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.51)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = ora8)))
標(biāo)簽:
Oracle
數(shù)據(jù)庫
排行榜
