多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > Oracle RAC環境下配置statspack

Oracle RAC環境下配置statspack

來源:程序員人生   發布時間:2014-10-04 08:00:00 閱讀次數:3067次

    Statspack是Oracle 9i時代的產物,對于監控與分析數據庫性能有著跨里程碑的意義,是AWR的前身。在Oracle 10g后AWR取代了statspack。盡管如此,awr異常或者需要調試包license的情況下statpack依舊是不錯的選擇。然而在RAC環境中,statspack并不支持,需要單獨的進行配置以及使用job來進行管理。本文描述的則是通過在RAC環境下創建service,以及job來達到各節點同時產生snapshot的效果。

 

一、演示環境

suse11a:oracle:orcl101 > cat /etc/issue Welcome to SUSE Linux Enterprise Server 11 SP3 (x86_64) - Kernel (l). suse11a:oracle:orcl101 > sqlplus -v SQL*Plus: Release 10.2.0.5.0 - Production suse11a:oracle:orcl101 > $ORA_CRS_HOME/bin/crsctl query crs activeversion CRS active version on the cluster is [10.2.0.5.0]

二、配置statspack

1)首先添加service $ srvctl add service -d orcl10 -s statspack_suse11a_srvc -r orcl101 $ srvctl add service -d orcl10 -s statspack_suse11b_srvc -r orcl102 $ srvctl start service -d orcl10 -s statspack_suse11a_srvc $ srvctl start service -d orcl10 -s statspack_suse11b_srvc $ srvctl status service -d orcl10 Service orcl10_srv is running on instance(s) orcl102, orcl101 Service statspack_suse11a_srvc is running on instance(s) orcl101 Service statspack_suse11b_srvc is running on instance(s) orcl102 $ srvctl config service -d orcl10 orcl10_srv PREF: orcl102 orcl101 AVAIL: statspack_suse11a_srvc PREF: orcl101 AVAIL: statspack_suse11b_srvc PREF: orcl102 AVAIL: $ lsnrctl status ......... Service "statspack_suse11a_srvc" has 1 instance(s). Instance "orcl101", status READY, has 2 handler(s) for this service... Service "statspack_suse11b_srvc" has 1 instance(s). Instance "orcl102", status READY, has 1 handler(s) for this service... ............. 2)配置statspack conn / as sysdba create tablespace perfstat datafile '+ASM_DATA' size 500m autoextend on; @?/rdbms/admin/spcreate GRANT EXECUTE ON DBMS_LOCK TO perfstat; GRANT CREATE JOB TO perfstat; GRANT EXECUTE ON sys.DBMS_SCHEDULER TO perfstat; GRANT EXECUTE ON sys.DBMS_ISCHED TO perfstat; 3)創建job class BEGIN DBMS_SCHEDULER.create_job_class ( job_class_name => 'statspack_suse11a_class', service => 'statspack_suse11a_srvc'); DBMS_SCHEDULER.create_job_class ( job_class_name => 'statspack_suse11b_class', service => 'statspack_suse11b_srvc'); END; / SQL> select job_class_name, service from dba_scheduler_job_classes; JOB_CLASS_NAME SERVICE ------------------------------ ------------------------------------------------- DEFAULT_JOB_CLASS AUTO_TASKS_JOB_CLASS STATSPACK_SUSE11A_CLASS statspack_suse11a_srvc STATSPACK_SUSE11B_CLASS statspack_suse11b_srvc GRANT EXECUTE ON sys.STATSPACK_SUSE11A_CLASS TO perfstat; GRANT EXECUTE ON sys.STATSPACK_SUSE11B_CLASS TO perfstat; 4)創建用于同步節點的過程 conn perfstat/perfstat CREATE OR REPLACE PROCEDURE db_proc_rac_statspack AS w_status NUMBER (38); w_handle VARCHAR2 (60); w_snap_level NUMBER; BEGIN w_snap_level := 7; sys.DBMS_LOCK.allocate_unique (lockname => 'Synchronize Statspack', lockhandle => w_handle); w_status := sys.DBMS_LOCK.request (lockhandle => w_handle, lockmode => DBMS_LOCK.x_mode, timeout => 300, -- seconds, default is dbms_lock.maxwait release_on_commit => FALSE -- which is the default ); IF (w_status = 0) THEN DBMS_OUTPUT.put_line ( TO_CHAR (SYSDATE, 'dd hh24:mi:ss') || ': Acquired lock, running statspack'); statspack.snap (w_snap_level); DBMS_OUTPUT.put_line ( TO_CHAR (SYSDATE, 'dd hh24:mi:ss') || ': Snapshot completed'); w_status := sys.DBMS_LOCK.release (lockhandle => w_handle); ELSE DBMS_OUTPUT.put_line ( TO_CHAR (SYSDATE, 'dd hh24:mi:ss') || CASE w_status WHEN 1 THEN ': Lock wait timed out' WHEN 2 THEN ': deadlock detected' WHEN 3 THEN ': parameter error' WHEN 4 THEN ': already holding lock' WHEN 5 THEN ': illegal lock handle' ELSE ': unknown error' END); END IF; END; / 5) 創建用于job調度的過程 BEGIN DBMS_SCHEDULER.create_program (program_name => 'PROC_RAC_STATSPACK', program_type => 'STORED_PROCEDURE', program_action => 'db_proc_rac_statspack', enabled => TRUE); END; / 6) 清除同名job(如果存在) BEGIN DBMS_SCHEDULER.drop_job ('ORCL10_PERFSTAT_COLLECT_N1',force=>true); DBMS_SCHEDULER.drop_job ('ORCL10_PERFSTAT_COLLECT_N2',force=>true); DBMS_SCHEDULER.drop_job ('ORCL10_PERFSTAT_PURGE_N1',force=>true); DBMS_SCHEDULER.drop_job ('ORCL10_PERFSTAT_PURGE_N2',force=>true); END; / 7) 創建產生snapshot以及清除歷史snapshot的job --Author :Leshami --Blog :http://blog.csdn.net/leshami BEGIN DBMS_SCHEDULER.create_job ( job_name => 'ORCL_PERFSTAT_COLLECT_N1', program_name => 'PROC_RAC_STATSPACK', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=hourly; INTERVAL=1; BYMINUTE=30', job_class => 'statspack_suse11a_class', comments => 'This job will run on suse11a', ENABLED => TRUE); DBMS_SCHEDULER.create_job ( job_name => 'ORCL_PERFSTAT_PURGE_N1', job_type => 'PLSQL_BLOCK', job_action => 'begin STATSPACK.PURGE(31); end;', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=DAILY; BYHOUR=23; BYMINUTE=30', job_class => 'statspack_suse11a_class', enabled => TRUE); END; / --- create the job for Node 2: BEGIN DBMS_SCHEDULER.create_job ( job_name => 'ORCL_PERFSTAT_COLLECT_N2', program_name => 'PROC_RAC_STATSPACK', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=hourly; INTERVAL=1; BYMINUTE=30', job_class => 'statspack_suse11b_class', comments => 'This job will run on suse11b', enabled => TRUE); DBMS_SCHEDULER.create_job ( job_name => 'ORCL_PERFSTAT_PURGE_N2', job_type => 'PLSQL_BLOCK', job_action => 'begin STATSPACK.PURGE(31); end;', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=DAILY; BYHOUR=23; BYMINUTE=30', job_class => 'statspack_suse11b_class', enabled => TRUE); END; /

三、校驗結果

1) 驗證創建的Job SQL> select OWNER, JOB_NAME, STATE, START_DATE, ENABLED from dba_scheduler_jobs 2 where owner= 'PERFSTAT'; OWNER JOB_NAME STATE START_DATE ENABL --------------- ------------------------------ --------------- --------------------------------------- ----- PERFSTAT ORCL_PERFSTAT_PURGE_N1 SCHEDULED 22-AUG-14 02.42.37.295650 PM +08:00 TRUE PERFSTAT ORCL_PERFSTAT_COLLECT_N1 SCHEDULED 22-AUG-14 02.42.37.269292 PM +08:00 TRUE PERFSTAT ORCL_PERFSTAT_COLLECT_N2 SCHEDULED 22-AUG-14 02.43.17.414613 PM +08:00 TRUE PERFSTAT ORCL_PERFSTAT_PURGE_N2 SCHEDULED 22-AUG-14 02.43.17.438804 PM +08:00 TRUE 2) 手工執行Job SQL> exec dbms_scheduler.run_job('ORCL_PERFSTAT_COLLECT_N1'); SQL> exec dbms_scheduler.run_job('ORCL_PERFSTAT_COLLECT_N2'); SQL> SELECT * 2 FROM ( SELECT log_id, 3 job_name, 4 job_subname, 5 status, 6 actual_start_date, 7 run_duration 8 FROM dba_scheduler_job_run_details 9 WHERE job_name like '%ORCL_PERFSTAT%' 10 ORDER BY actual_start_date DESC) 11 WHERE ROWNUM < 15; LOG_ID JOB_NAME JOB_SUBNAME STATUS ACTUAL_START_DATE RUN_DURATION ---------- ------------------------- ------------ ----------- ------------------------------------- ---------------- 156 ORCL_PERFSTAT_COLLECT_N2 SUCCEEDED 22-AUG-14 02.43.32.470484 PM +08:00 +000 00:00:04 155 ORCL_PERFSTAT_COLLECT_N1 SUCCEEDED 22-AUG-14 02.43.00.288887 PM +08:00 +000 00:00:04


四、參考
http://www.oracle-class.com/?p=2384
http://jonathanlewis.wordpress.com/2011/01/14/statspack-on-rac/

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 成人精品一区久久久久 | 中国特黄特级真人毛片 | 欧美艳星xxx | 国产福利在线看 | 日本在线www | 亚洲精品成人a在线观看 | 欧美交| 国产亚洲福利精品一区 | 武则天免费一级淫片 | 中文字幕欧美激情 | xxnx日本免费护士 | 国产三级精品在线观看 | 一级毛片在线不卡直接观看 | 一二三四日本手机高清视频 | 欧美一级三级 | 午夜免费啪视频观看网站 | 蜜桃精品免费久久久久影院 | 国产一区私人高清影院 | 九九黄色 | 99爱视频| 国产亚洲综合一区在线 | 美女享受黑人的巨茎 | 精品一区二区三区视频在线观看免 | 国产精品9999久久久久 | 欧美另类老人xxxx | videos亚洲| 亚洲视频自拍偷拍 | 国产福利一区二区 | 亚洲精品第一页中文字幕 | 国产成人久久精品 | 亚洲午夜网 | 亚洲欧美自拍视频 | 国产成人免费a在线资源 | 欧美性猛交黑人xxxx | 亚洲an日韩专区在线 | 欧美日本高清一本二本三本 | 国产一级淫片免费大片 | 国产a级午夜毛片 | 中文字幕第二一区 | 免费看羞羞 | 久久精品隔壁老王影院 |