Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

จัดการพื้นที่ตาราง SYSAUX

Oracle® 10g แนะนำพื้นที่ตารางบังคับใหม่ที่เรียกว่า SYSAUX พร้อมแอตทริบิวต์บังคับ เช่น ถาวร , อ่านเขียน ,การจัดการขอบเขตในพื้นที่ และ ระบบจัดการพื้นที่เซ็กเมนต์อัตโนมัติ . โพสต์นี้จะสำรวจวิธีจัดการพื้นที่ตารางนี้เมื่อเติบโตขึ้น

แนะนำตัว

คุณสามารถใช้พื้นที่ตาราง SYSAUX เพื่อทำงานต่อไปนี้:

  • หลีกเลี่ยงการกระจายตัวของพื้นที่ตาราง SYSTEM ที่เกิดจากตัวเลือกการติดตั้งและถอนการติดตั้ง
  • หลีกเลี่ยงการเสี่ยงต่อความเสียหายของพื้นที่ตาราง SYSTEM และสถานการณ์ที่ไม่อยู่ในพื้นที่
  • ลดการบำรุงรักษาสำหรับผู้ดูแลระบบฐานข้อมูล
  • จัดเก็บและลดพื้นที่ตารางสำหรับข้อมูลเมตาของฐานข้อมูลเสริมทั้งหมดที่เกี่ยวข้องกับตัวเลือกและคุณสมบัติของ Oracle เช่นรายการต่อไปนี้:
จัดการพื้นที่ตาราง SYSAUX

ผู้โดยสาร SYSAUX

มีผู้ครอบครอง SYSAUX 26 คนที่คุณสามารถสอบถามได้ดังแสดงในตัวอย่างต่อไปนี้:

SQL> select OCCUPANT_NAME,OCCUPANT_DESC
     from V$SYSAUX_OCCUPANTS
     order by SPACE_USAGE_KBYTES desc
จัดการพื้นที่ตาราง SYSAUX

เวอร์ชันที่ใหม่กว่าของ Oracle Database ได้เพิ่มเวอร์ชันมากขึ้น ดังแสดงในภาพต่อไปนี้:

จัดการพื้นที่ตาราง SYSAUX

รูปภาพต่อไปนี้แสดงส่วนประกอบที่เพิ่มหรือเลิกใช้งานในแต่ละเวอร์ชันของ OracleDatabase:

จัดการพื้นที่ตาราง SYSAUX จัดการพื้นที่ตาราง SYSAUX

การจัดการพื้นที่ตาราง SYSAUX เชิงรุก

หากต้องการตรวจสอบและจัดการพื้นที่ตาราง SYSAUX ในเชิงรุก ให้ดำเนินการดังต่อไปนี้:

  1. ตั้งค่าพื้นที่ตาราง SYSAUX เป็น AUTOEXTEND ปิด .

  2. ยืนยัน STATISTICS_LEVEL ค่า.

    - The **ALL** value is sometimes resource-intensive.
    - The **Basic** and **Typical** values tend to consume fewer resources.
    
  3. ตรวจสอบวิธีที่คุณใช้ที่ปรึกษา ข้อมูลพื้นฐาน และชุดการปรับแต่ง SQL ที่ปรึกษาจำเป็นต้องเก็บข้อมูลในสแนปชอตแม้ว่าคุณจะวางแผนที่จะลดช่วงสแนปชอตก็ตาม

  4. เรียกใช้แบบสอบถามเพื่อกำหนดว่า sysaux_occupant ใดใช้พื้นที่มากที่สุดในตาราง SYSAUX

การแก้ไขการจัดการพื้นที่ตาราง SYSAUX

พื้นที่ตาราง SYSAUX เติบโตด้วยเหตุผลดังต่อไปนี้:

  • คุณกำหนดระยะเวลาเก็บรักษามากเกินไป
  • ตัวแนะนำกลุ่มใหญ่เกินไป
  • ประวัติเซสชันที่ใช้งานอยู่ (ASH) มีขนาดใหญ่เกินไป

ส่วนต่อไปนี้มีการดำเนินการแก้ไข:

ตรวจสอบระยะเวลาเก็บรักษา AWR

ในการจัดการสิ่งนี้ ให้ตรวจสอบระยะเวลาเก็บรักษาของสแน็ปช็อต Automatic Workload Repository(AWR) AWR รวบรวมสถิติประสิทธิภาพสำหรับการตรวจหาปัญหาและการปรับแต่งประสิทธิภาพ และจัดเก็บรายละเอียดในหน่วยความจำและตารางฐานข้อมูล ระบบจะลบข้อมูลที่เก็บไว้ตามระยะเวลาเก็บรักษา หากระยะเวลาเก็บรักษาสูงเกินไป ข้อมูลนี้จะใช้พื้นที่มากขึ้นในพื้นที่ตาราง SYSAUX ดังนั้น คุณควรกำหนดระยะเวลาเก็บรักษาที่เหมาะสม ตรวจสอบระยะเวลาเก็บรักษาโดยใช้ข้อความค้นหาต่อไปนี้:

SQL> SELECT retention FROM dba_hist_wr_control;

คุณสามารถเปลี่ยนการเก็บรักษาด้วยตนเองโดยใช้DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS ขั้นตอน. ตัวอย่างต่อไปนี้กำหนดระยะเวลาเก็บรักษาเป็น 5760 นาที (หรือสี่วัน:4 วัน * 24 ชั่วโมงต่อวัน * 60 นาทีต่อชั่วโมง =5760 นาที):

SQL> execute DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT(RETENTION=>5760);

ตรวจสอบวัตถุที่ใหญ่ที่สุดในพื้นที่ตาราง SYSAUX

เรียกใช้แบบสอบถามต่อไปนี้เพื่อระบุผู้ครอบครองที่ใหญ่ที่สุดใน tablespace:

SQL> select OCCUPANT_NAME, SCHEMA_NAME, MOVE_PROCEDURE, SPACE_USAGE_KBYTES
     from v$sysaux_occupants;
จัดการพื้นที่ตาราง SYSAUX

คุณใช้ ย้าย คำสั่งขั้นตอนเพื่อย้ายผู้ครอบครองไปยังพื้นที่โต๊ะอื่นเว้นแต่ ย้าย ขั้นตอนเป็นโมฆะ

ตัวอย่างต่อไปนี้จะย้ายผู้ครอบครอง WKSYS ในพื้นที่ตาราง XYZ:

SQL> execute WKSYS.MOVE_WK(‘XYZ’);

ตรวจสอบประวัติเซสชันที่ใช้งานอยู่ (ASH)

ดูว่า ASH ใช้พื้นที่มากขึ้นในข้อมูล AWR หรือไม่โดยใช้สคริปต์ต่อไปนี้:

SQL> @$ORACLE_HOME/rdbms/admin/awrinfo.sql
จัดการพื้นที่ตาราง SYSAUX

การใช้ ASH เป็นที่ยอมรับที่ 1.1 เปอร์เซ็นต์ ถ้าสูง ให้ลบแถว ASH ที่ถูกละเลย ตรวจสอบแถวที่ถูกละเลยโดยใช้แบบสอบถามต่อไปนี้:

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);
จัดการพื้นที่ตาราง SYSAUX

เนื่องจากค่ามากกว่าศูนย์ ให้ลบ พวกเราเด็กกำพร้าโดยใช้แบบสอบถามต่อไปนี้:

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);

จากนั้น เรียกใช้แบบสอบถามต่อไปนี้เพื่อลดขนาด WRH$_ACTIVE_SESSION_HISTORY ตารางเพื่อเรียกคืนพื้นที่ว่าง:

 SQL> alter table WRH$_ACTIVE_SESSION_HISTORY shrink space;

บทสรุป

โพสต์นี้แนะนำพื้นที่ตาราง SYSAUX นอกจากนี้ยังให้คำแนะนำในการตรวจสอบและจัดการการเติบโตของพื้นที่ในผู้อยู่อาศัยเริ่มต้นของพื้นที่ตาราง SYSAUX และระบุวัตถุที่ไม่ใช่ค่าเริ่มต้นที่จัดเก็บไว้ในพื้นที่ตารางอย่างไม่ถูกต้อง

เรียนรู้เพิ่มเติมเกี่ยวกับบริการฐานข้อมูลของเรา

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณสามารถเริ่มการสนทนากับเราได้