บทนำ
Oracle® 10g นำ tablespace ใหม่ที่บังคับชื่อ SYSAUX พร้อม attributes ที่บังคับเช่น PERMANENT, READ WRITE, EXTENT MANAGEMENT LOCAL, และ SEGMENT SPACE MANAGEMENT AUTO โพสต์นี้สำรวจวิธีจัดการ tablespace นี้เมื่อมันเติบโต
บทนำ
คุณสามารถใช้ SYSAUX tablespace เพื่อดำเนินงานต่อไปนี้:
- หลีกเลี่ยงการแบ่งส่วนของ SYSTEM tablespace ที่เกิดจากตัวเลือก install และ deinstall
- หลีกเลี่ยงความเสี่ยงของ SYSTEM tablespace corruption และสถานการณ์ out-of-space
- ลดการบำรุงรักษาสำหรับ database administrator
- จัดเก็บและลด tablespaces สำหรับ metadata ช่วยเหลือทั้งหมดที่เกี่ยวข้องกับ Oracle options และ features เช่น รายการต่อไปนี้:
SYSAUX Occupants
มี SYSAUX occupants 26 ตัวที่คุณสามารถสอบถามได้ ตามตัวอย่างต่อไปนี้:
SQL> select OCCUPANT_NAME,OCCUPANT_DESC from V$SYSAUX_OCCUPANTS order by SPACE_USAGE_KBYTES desc
รุ่นใหม่ของ Oracle Database เพิ่ม occupants มากขึ้น ตามภาพต่อไปนี้:
ภาพต่อไปนี้แสดง components ที่เพิ่มหรือ deprecated ในแต่ละรุ่น Oracle Database:
การจัดการ SYSAUX Tablespace แบบ Proactive
เพื่อติดตามและจัดการ SYSAUX tablespace แบบ proactive ให้ดำเนินการต่อไปนี้:
ตั้งค่า SYSAUX tablespace เป็น AUTOEXTEND off
-
ยืนยันค่า STATISTICS_LEVEL
- ค่า **ALL** บางครั้งใช้ทรัพยากรมาก - ค่า **Basic** และ **Typical** มักใช้ทรัพยากรน้อยกว่า ตรวจสอบว่าคุณใช้ advisors, baselines, และ SQL tuning sets อย่างไร Advisors ต้องเก็บข้อมูลใน snapshots แม้คุณวางแผนจะ drop snapshot range
รันคิวรีเพื่อกำหนดว่า sysaux_occupant 哪个ใช้พื้นที่มากที่สุดใน SYSAUX tablespace
การจัดการ SYSAUX Tablespace แบบ Remedial
SYSAUX tablespace โตขึ้นเนื่องจากเหตุผลต่อไปนี้:
- คุณตั้ง retention period มากเกินไป
- segment advisor โตใหญ่เกินไป
- Active session history (ASH) โตใหญ่เกินไป
ส่วนต่อไปเสนอการดำเนินการแก้ไขบางส่วน:
ตรวจสอบ AWR Retention Period
เพื่อจัดการสิ่งนี้ ให้ตรวจสอบ retention period ของ Automatic Workload Repository (AWR) snapshot AWR รวบรวมสถิติประสิทธิภาพสำหรับการตรวจจับปัญหาและ performance tuning และเก็บรายละเอียดในหน่วยความจำและตารางฐานข้อมูล ระบบลบข้อมูลที่จัดเก็บตาม retention period หาก retention period สูงเกินไป ข้อมูลนี้จะใช้พื้นที่มากขึ้นใน SYSAUX tablespace ดังนั้น คุณควรตั้ง retention period ให้เหมาะสม ตรวจสอบ retention period โดยใช้คิวรีต่อไปนี้:
SQL> SELECT retention FROM dba_hist_wr_control;
คุณสามารถเปลี่ยน retention แบบ manual โดยใช้ procedure DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS ตัวอย่างต่อไปนี้ตั้ง retention period เป็น 5760 นาที (หรือ 4 วัน: 4 วัน * 24 ชั่วโมงต่อวัน * 60 นาทีต่อชั่วโมง = 5760 นาที):
SQL> execute DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT(RETENTION=>5760);
ตรวจสอบออบเจ็กต์ที่ใหญ่ที่สุดใน SYSAUX Tablespace
รันคิวรีต่อไปนี้เพื่อระบุ occupant ที่ใหญ่ที่สุดใน tablespace:
SQL> select OCCUPANT_NAME, SCHEMA_NAME, MOVE_PROCEDURE, SPACE_USAGE_KBYTES from v$sysaux_occupants;
คุณใช้คำสั่ง move procedure เพื่อย้าย occupant ไปยัง tablespace อื่น เว้นแต่ move procedure จะเป็น null
ตัวอย่างต่อไปนี้ย้าย WKSYS occupant ไปยัง XYZ tablespace:
SQL> execute WKSYS.MOVE_WK(‘XYZ’);
ตรวจสอบ Active Session History (ASH)
ดูว่า ASH ใช้พื้นที่มากใน AWR data หรือไม่ โดยใช้สคริปต์ต่อไปนี้:
SQL> @$ORACLE_HOME/rdbms/admin/awrinfo.sql
ASH usage ที่ 1.1 เปอร์เซ็นต์ ถือว่ายอมรับได้ หากสูง ให้ลบ orphaned ASH rows ตรวจสอบ orphaned rows โดยใช้คิวรีต่อไปนี้:
SQL> SELECT COUNT(1) Orphaned_ASH_Rows FROM wrh$_active_session_history a WHERE NOT EXISTS (SELECT 1 FROM wrm$_snapshot WHERE snap_id = a.snap_id AND dbid= a.dbid AND instance_number = a.instance_number);
เนื่องจากค่ามากกว่าศูนย์ ให้ลบ เราลบ orphans โดยใช้คิวรีต่อไปนี้:
SQL> DELETE FROM wrh$_active_session_history a WHERE NOT EXISTS (SELECT 1 FROM wrm$_snapshot WHERE snap_id = a.snap_id AND dbid = a.dbid AND instance_number = a.instance_number);
จากนั้น รันคิวรีต่อไปนี้เพื่อ shrink ตาราง WRH$_ACTIVE_SESSION_HISTORY เพื่อคืนพื้นที่ที่ว่าง:
SQL> alter table WRH$_ACTIVE_SESSION_HISTORY shrink space;
สรุป
โพสต์นี้แนะนำ SYSAUX tablespace ยังให้คำแนะนำเกี่ยวกับการติดตามและจัดการการเติบโตของพื้นที่ใน SYSAUX tablespace default occupants และระบุ objects ที่ไม่ใช่ default ที่จัดเก็บผิดใน tablespace
เรียนรู้เพิ่มเติมเกี่ยวกับบริการฐานข้อมูลของเรา
ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถเริ่มสนทนากับเราได้