مرحبا يا هبر! أقدم لكم ترجمة المقال
"كيفية استخدام statspack بدلاً من awr في طبعة أوراكل القياسية" .
كيفية استخدام STATSPACK بدلاً من AWR في Oracle Standard Edition.
تقرير المشكلة
كنت أجمع بيانات الأداء في قاعدة بيانات غير مألوفة.
بعد تشغيل تقرير AWR عن طريق تشغيل الأمر
@?/Rdbms/admin/awrrpt.sql
حصل خطأ:
WARNING (-20023) ORA-20023: Missing start and end values for time model stat: parse time elapsed WARNING (-20023) ORA-20023: Missing start and end values for time model stat: DB CPU WARNING (-20016) ORA-20016: Missing value for SGASTAT: free memory ...
هل هناك فرصة لتعطيل حزمة التشخيص؟
دعونا نرى المعلمة CONTROL_MANAGEMENT_PACK_ACCESS.
SQL> show parameter control_management_pack_access NAME TYPE ------------------------------------ ---------------------- VALUE ------------------------------ control_management_pack_access string NONE
كنت حذرا قليلا بشأن قيمة لا شيء. نظرًا لأن Oracle Enterprise Edition يتضمن ترخيص حزمة تشخيص ، ولا يتضمن Standart Edition ، لم يكن لدي الحق في استخدامه. دعونا نرى معلومات الإصدار.
.SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Release 11.1.0.6.0 - 64bit Production PL/SQL Release 11.1.0.6.0 - Production CORE 11.1.0.6.0 Production TNS for 64-bit Windows: Version 11.1.0.6.0 - Production NLSRTL Version 11.1.0.6.0 - Production
كما نرى ، لم تظهر "Enterprise Edition" في وحدة التحكم. هذا هو بالتأكيد الإصدار القياسي. حسنًا ، على الأقل أعلم أنه ليس لدي الحق في استخدامه.
عندما نظرت مرة أخرى إلى <ORACLE_HOME> / rdbms / admin directory ، اكتشفت أن STATSPACK لا يزال موجودًا ، وهو أداة جمع بيانات الأداء الأصلية لقواعد البيانات القديمة وهي مشابهة جدًا لـ AWR في الوظائف. وأفضل ما في الأمر أنه يمكننا استخدام STATSPACK كبديل لـ AWR في Standart Edition بدون قيود.
قم بتثبيت STATSPACK
يجب اتخاذ خطوتين على الأقل لإنشاء STATSPACK بمهمة مجدولة.
1) قم بتشغيل البرنامج النصي spcreate.sql
أقترح عليك الانتقال إلى <ORACLE_HOME> / rdbms / admin directory كدليل العمل الحالي ، لأن جميع السجلات ستظل في هذا الدليل في وقت التشغيل.
قم بتشغيل البرنامج النصي:
SQL> @spcreate.sql;
دعونا نرى ما لدينا في هذا البرنامج النصي:
@@spcusr connect perfstat/&&perfstat_password @@spctab @@spcpkg
يتطلب 3 سكربتات SQL أساسية للتشغيل.
spcusr.sql
- سيقوم بإنشاء مستخدم يسمى PERFSTAT ، وتكون مساحة الجدول الافتراضية هي SYSAUX ، وستكون مساحة الجدول المؤقتة TEMP.
- يمكن تكوين كل من مساحات الجدول ، ولكن قبل تشغيل هذا البرنامج النصي ، يجب التأكد من وجود مساحات الجدول في قاعدة البيانات الخاصة بك.
- عليك أن تتذكر كلمة المرور إذا كنت تريد تنفيذ بعض الإجراءات فيما بعد. Spctab.sql
في الجدول spctab.sql ، سيتم إنشاء 71 جدول STATSPACK.
STATS$DATABASE_INSTANCE STATS$LEVEL_DESCRIPTION STATS$SNAPSHOT STATS$DB_CACHE_ADVICE STATS$FILESTATXS STATS$TEMPSTATXS STATS$LATCH STATS$LATCH_CHILDREN STATS$LATCH_PARENT STATS$LATCH_MISSES_SUMMARY STATS$LIBRARYCACHE STATS$BUFFER_POOL_STATISTICS STATS$ROLLSTAT STATS$ROWCACHE_SUMMARY STATS$SGA STATS$SGASTAT STATS$SYSSTAT STATS$SESSTAT STATS$SYSTEM_EVENT STATS$SESSION_EVENT STATS$WAITSTAT STATS$ENQUEUE_STATISTICS STATS$SQL_SUMMARY STATS$SQLTEXT STATS$SQL_STATISTICS STATS$RESOURCE_LIMIT STATS$DLM_MISC STATS$CR_BLOCK_SERVER STATS$CURRENT_BLOCK_SERVER STATS$INSTANCE_CACHE_TRANSFER STATS$UNDOSTAT STATS$SQL_PLAN_USAGE STATS$SQL_PLAN STATS$SEG_STAT STATS$SEG_STAT_OBJ STATS$PGASTAT STATS$PARAMETER STATS$INSTANCE_RECOVERY STATS$STATSPACK_PARAMETER STATS$SHARED_POOL_ADVICE STATS$SQL_WORKAREA_HISTOGRAM STATS$PGA_TARGET_ADVICE STATS$JAVA_POOL_ADVICE STATS$THREAD STATS$FILE_HISTOGRAM STATS$EVENT_HISTOGRAM STATS$TIME_MODEL_STATNAME STATS$SYS_TIME_MODEL STATS$SESS_TIME_MODEL STATS$STREAMS_CAPTURE STATS$STREAMS_APPLY_SUM STATS$PROPAGATION_SENDER STATS$PROPAGATION_RECEIVER STATS$BUFFERED_QUEUES STATS$BUFFERED_SUBSCRIBERS STATS$RULE_SET STATS$OSSTATNAME STATS$OSSTAT STATS$PROCESS_ROLLUP STATS$PROCESS_MEMORY_ROLLUP STATS$SGA_TARGET_ADVICE STATS$STREAMS_POOL_ADVICE STATS$MUTEX_SLEEP STATS$DYNAMIC_REMASTER_STATS STATS$IOSTAT_FUNCTION_NAME STATS$IOSTAT_FUNCTION STATS$MEMORY_TARGET_ADVICE STATS$MEMORY_DYNAMIC_COMPS STATS$MEMORY_RESIZE_OPS STATS$INTERCONNECT_PINGS STATS$IDLE_EVENT
spcpkg.sql
سيقوم بإنشاء الإجراءات المخزنة STATSPACK الضرورية لـ PERFSTAT.
2. قم بتشغيل البرنامج النصي spauto.sql
يرسل هذا البرنامج النصي المهمة في الفاصل الزمني المحدد (ساعة واحدة).
SQL> @spauto.sql;
يعرض فيه هذا العمل:
SQL> begin 2 select instance_number into :instno from v$instance; 3 dbms_job.submit(:jobno, 'statspack.snap;', trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno); 4 commit; 5 end; 6 /
ثم اعرض وقت التشغيل التالي.
SQL> select job, next_date, next_sec 2 from user_jobs 3 where job = :jobno;
المزيد من الاعتبارات
للحصول على إحصائيات أعمق ، تحتاج إلى تغيير مستوى اللقطة إلى 7 بدلاً من المستوى الافتراضي البالغ 5.
SQL> exec statspack.snap(i_snap_level => 7, i_modify_parameter => 'true');
سيؤدي هذا الأمر إلى تغيير مستوى الانجذاب إلى 7 والتقاط صورة في نفس الوقت.