View a markdown version of this page

Menyusutkan ruang meja di RDS untuk Oracle - Amazon Relational Database Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyusutkan ruang meja di RDS untuk Oracle

Dimulai dengan Oracle Database 26ai (26.0.0.0), Amazon RDS for Oracle mendukung penyusutan tablespace dengan prosedur. rdsadmin.rdsadmin_util.shrink_tablespace Gunakan prosedur ini untuk merebut kembali ruang yang tidak terpakai di ruang meja dengan mengecilkan datafile-nya. Menyusut mengurangi konsumsi penyimpanan tanpa migrasi data atau rekreasi tablespace.

Gambaran umum

Seiring waktu, tablespace dalam database Oracle dapat mengakumulasi ruang yang tidak terpakai dari data yang dihapus atau direorganisasi. rdsadmin.rdsadmin_util.shrink_tablespaceProsedur ini membungkus DBMS_SPACE.SHRINK_TABLESPACE fungsionalitas Oracle dan menangani hak istimewa internal yang diperlukan untuk Anda.

Tablespace menyusut mendukung mode berikut:

  • Analyze mode (DBMS_SPACE.TS_MODE_ANALYZE) - Mengevaluasi tablespace dan melaporkan berapa banyak ruang yang dapat Anda reklamasi, tanpa membuat perubahan.

  • Shrink mode (DBMS_SPACE.TS_MODE_SHRINK) — Memindahkan objek dan mengubah ukuran data di tablespace untuk merebut kembali ruang yang tidak digunakan. Ini adalah mode default.

Persyaratan

Untuk menggunakan penyusutan tablespace, instans DB Anda harus memenuhi persyaratan berikut:

  • Oracle Database 26ai atau lebih tinggi

  • Oracle Enterprise Edition

Sintaks

EXEC rdsadmin.rdsadmin_util.shrink_tablespace( p_tablespace_name => 'tablespace_name', p_shrink_mode => mode, p_target_size => target_bytes);

Parameter

parameter shrink_tablespace
Nama parameter Jenis data Default Wajib Deskripsi

p_tablespace_name

VARCHAR2

Ya

Nama tablespace untuk menyusut.

p_shrink_mode

NUMBER

2 (TS_MODE_SHRINK)

Tidak

Mode menyusut. Gunakan DBMS_SPACE.TS_MODE_ANALYZE (1) untuk menganalisis saja, atau DBMS_SPACE.TS_MODE_SHRINK (2) untuk melakukan shrink.

p_target_size

NUMBER

0

Tidak

Ukuran target, dalam byte. Gunakan 0 (default) untuk menyusut ke ukuran minimum yang mungkin. Tentukan nilai positif untuk menyusut ke target tertentu.

Contoh

Menganalisis ruang meja untuk ruang yang dapat direklamasi

Untuk menganalisis tablespace tanpa membuat perubahan, jalankan perintah berikut:

EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS', DBMS_SPACE.TS_MODE_ANALYZE);

Berikut ini adalah output contoh:

-------------------ANALYZE RESULT-------------------
Total Movable Objects: 0
Total Movable Size(GB): 0
Original Datafile Size(GB): .1
Suggested Target Size(GB): .06
Process Time: +00 00:00:00.021513

Menyusutkan ruang meja ke ukuran minimum

Untuk mengecilkan tablespace dan merebut kembali semua ruang yang tidak digunakan, jalankan perintah berikut:

EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS');

Berikut ini adalah output contoh:

-------------------SHRINK RESULT-------------------
Total Moved Objects: 0
Total Moved Size(GB): 0
Original Datafile Size(GB): .1
New Datafile Size(GB): .05
Process Time: +00 00:00:00.281151

Menyusutkan tablespace ke ukuran target tertentu

Untuk mengecilkan tablespace ke ukuran target dalam byte, tentukan parameternya. p_target_size Jika target lebih kecil dari ukuran minimum yang dapat dicapai, Oracle menyesuaikannya ke atas secara otomatis:

EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS', DBMS_SPACE.TS_MODE_SHRINK, 52428800);

Pertimbangan-pertimbangan

Pertimbangkan hal berikut saat Anda mengecilkan tablespace:

  • Tablespace menyusut adalah operasi online. Objek di ruang meja tetap dapat diakses selama penyusutan.

  • Operasi menyusut mungkin memindahkan objek, seperti tabel dan indeks, di dalam ruang tabel untuk mengkonsolidasikan ruang kosong sebelum mengubah ukuran file data.

  • Indeks tetap valid setelah operasi menyusut, dan integritas data dipertahankan.

  • Jika nilainya p_target_size lebih kecil dari ruang yang ditempati objek saat ini, Oracle menyesuaikan target dengan ukuran minimum yang dapat dicapai.

  • Nilai tidak boleh melebihi ukuran tablespace saat ini. p_target_size Tentukan target yang lebih kecil dari atau sama dengan ukuran saat ini.

  • Transaksi aktif pada objek di tablespace dapat mencegah operasi merebut kembali semua ruang yang tersedia. Untuk hasil terbaik, jalankan shrink selama periode aktivitas rendah.

  • Memanggil DBMS_SPACE.SHRINK_TABLESPACE langsung tanpa rdsadmin_util pembungkus tidak didukung. Selalu gunakan rdsadmin.rdsadmin_util.shrink_tablespace pembungkusnya.

Sumber daya terkait