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
| Nama parameter | Jenis data | Default | Wajib | Deskripsi |
|---|---|---|---|---|
|
|
|
— |
Ya |
Nama tablespace untuk menyusut. |
|
|
|
|
Tidak |
Mode menyusut. Gunakan |
|
|
|
|
Tidak |
Ukuran target, dalam byte. Gunakan |
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_sizelebih 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_sizeTentukan 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_TABLESPACElangsung tanpardsadmin_utilpembungkus tidak didukung. Selalu gunakanrdsadmin.rdsadmin_util.shrink_tablespacepembungkusnya.
Sumber daya terkait
-
DBMS_ SPACE.SHRINK _TABLESPACE
dalam dokumentasi Oracle Database -
Lihat informasi yang lebih lengkap di Melakukan tugas basis data umum untuk instans DB Oracle.