Melakukan berbagai tugas untuk instans DB Oracle - Layanan Basis Data Relasional Amazon

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

Melakukan berbagai tugas untuk instans DB Oracle

Setelah itu, Anda dapat menemukan cara melakukan berbagai tugas DBA di instans DB Amazon RDS Anda yang menjalankan Oracle. Untuk memberikan pengalaman layanan terkelola, Amazon RDS tidak memberikan akses shell ke instans DB, dan membatasi akses ke sejumlah prosedur dan tabel sistem tertentu yang memerlukan hak istimewa tingkat lanjut.

Membuat dan menghapus direktori di ruang penyimpanan data utama

Untuk membuat direktori, gunakan prosedur rdsadmin.rdsadmin_util.create_directory Amazon RDS. Anda dapat membuat hingga 10.000 direktori, semuanya berada di ruang penyimpanan data utama Anda. Untuk menghapus direktori gunakan prosedur rdsadmin.rdsadmin_util.drop_directory Amazon RDS.

Prosedur create_directory dan drop_directory memiliki parameter yang diperlukan berikut.

Nama parameter Jenis data Default Wajib Deskripsi

p_directory_name

VARCHAR2

Ya

Nama direktori.

Contoh berikut membuat direktori baru dengan nama PRODUCT_DESCRIPTIONS.

EXEC rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'product_descriptions');

Direktori data menyimpan nama direktori dengan huruf besar. Anda dapat membuat daftar direktori dengan membuat kueri DBA_DIRECTORIES. Sistem memilih nama jalur host aktual secara otomatis. Contoh berikut memperoleh jalur direktori untuk direktori dengan nama PRODUCT_DESCRIPTIONS:

SELECT DIRECTORY_PATH FROM DBA_DIRECTORIES WHERE DIRECTORY_NAME='PRODUCT_DESCRIPTIONS'; DIRECTORY_PATH ---------------------------------------- /rdsdbdata/userdirs/01

Nama pengguna master untuk instans DB memiliki hak istimewa baca dan tulis di direktori baru, dan dapat memberikan akses ke pengguna lain. Hak istimewa EXECUTE tidak tersedia untuk direktori pada instans DB. Direktori dibuat di ruang penyimpanan data utama Anda dan akan mengonsumsi ruang dan bandwidth I/O.

Contoh berikut menghapus direktori dengan nama PRODUCT_DESCRIPTIONS.

EXEC rdsadmin.rdsadmin_util.drop_directory(p_directory_name => 'product_descriptions');
catatan

Anda juga dapat menghapus direktori menggunakan perintah DROP DIRECTORY Oracle SQL.

Menghapus direktori tidak menghapus kontennya. Karena prosedur rdsadmin.rdsadmin_util.create_directory dapat menggunakan ulang nama jalur, file di direktori yang dihapus dapat muncul di direktori yang baru dibuat. Sebelum menghapus direktori, sebaiknya Anda menggunakan UTL_FILE.FREMOVE untuk menghapus file dari direktori. Untuk informasi lebih lanjut, lihat FREMOVE procedure di dokumentasi Oracle.

Membuat daftar file di direktori instans DB

Untuk membuat daftar file di direktori, gunakan prosedur rdsadmin.rds_file_util.listdir Amazon RDS. Prosedur ini tidak didukung pada replika Oracle. Prosedur listdir memiliki parameter berikut.

Nama parameter Jenis data Default Wajib Deskripsi

p_directory

varchar2

Ya

Nama direktori yang dibuat daftarnya.

Contoh berikut memberikan hak baca/tulis pada direktori PRODUCT_DESCRIPTIONS ke penggunardsadmin, lalu membuat daftar file dalam direktori ini.

GRANT READ,WRITE ON DIRECTORY PRODUCT_DESCRIPTIONS TO rdsadmin; SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'PRODUCT_DESCRIPTIONS'));

Membaca file di direktori instans DB

Untuk membaca file teks, gunakan prosedur rdsadmin.rds_file_util.read_text_file Amazon RDS. Prosedur read_text_file memiliki parameter berikut.

Nama parameter Jenis data Default Wajib Deskripsi

p_directory

varchar2

Ya

Nama direktori yang memuat file.

p_filename

varchar2

Ya

Nama file yang akan dibaca.

Contoh berikut membuat file rice.txt di direktori PRODUCT_DESCRIPTIONS.

declare fh sys.utl_file.file_type; begin fh := utl_file.fopen(location=>'PRODUCT_DESCRIPTIONS', filename=>'rice.txt', open_mode=>'w'); utl_file.put(file=>fh, buffer=>'AnyCompany brown rice, 15 lbs'); utl_file.fclose(file=>fh); end; /

Contoh berikut membaca file rice.txt dari direktori PRODUCT_DESCRIPTIONS.

SELECT * FROM TABLE (rdsadmin.rds_file_util.read_text_file( p_directory => 'PRODUCT_DESCRIPTIONS', p_filename => 'rice.txt'));

Mengakses file Opatch

Opatch adalah utilitas Oracle yang mendukung aplikasi dan rollback patch untuk perangkat lunak Oracle. Mekanisme Oracle untuk menentukan patch mana yang telah diterapkan ke basis data adalah perintah opatch lsinventory. Untuk membuka permintaan layanan bagi pelanggan Bring Your Own Licence (BYOL), Oracle mendukung permintaan lsinventory dan terkadang file lsinventory_detail yang dihasilkan oleh Opatch.

Untuk memberikan pengalaman layanan terkelola, Amazon RDS tidak menyediakan akses shell ke Opatch. Sebagai gantinya, lsinventory-dbv.txt di direktori BDUMP berisi informasi patch yang terkait dengan versi mesin Anda saat ini. Saat Anda melakukan peningkatan kecil atau besar, Amazon RDS memperbarui lsinventory-dbv.txt dalam waktu satu jam setelah patch diterapkan. Untuk memverifikasi patch yang diterapkan, baca lsinventory-dbv.txt. Tindakan ini mirip dengan menjalankan perintah opatch lsinventory.

catatan

Contoh di bagian ini mengasumsikan bahwa direktori BDUMP diberi nama BDUMP. Pada replika baca, nama direktori BDUMP berbeda. Untuk mempelajari cara mendapatkan nama BDUMP dengan mengueri V$DATABASE.DB_UNIQUE_NAME pada replika baca, lihat Membuat daftar file.

File inventaris menggunakan konvensi penamaan Amazon RDS lsinventory-dbv.txt dan lsinventory_detail-dbv.txt, di mana dbv adalah nama lengkap versi DB Anda. File lsinventory-dbv.txt tersedia di semua versi DB. Yang sesuai lsinventory_detail-dbv.txt tersedia di 19.0.0.0, ru-2020-01.rur-2020-01.r1 atau yang lebih baru.

Misalnya, jika versi DB Anda adalah 19.0.0.0.ru-2021-07.rur-2021-07.r1, inventaris file Anda memiliki nama berikut.

lsinventory-19.0.0.0.ru-2021-07.rur-2021-07.r1.txt lsinventory_detail-19.0.0.0.ru-2021-07.rur-2021-07.r1.txt

Pastikan Anda mengunduh file yang sesuai dengan versi mesin DB terkini milik Anda.

Untuk mengunduh file inventaris menggunakan konsol
  1. Buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.

  2. Di panel navigasi, pilih Basis data.

  3. Pilih nama instans DB yang memiliki file log yang ingin dilihat.

  4. Pilih tab Log & peristiwa.

  5. Gulir ke bawah hingga bagian Log.

  6. Di bagian Log, cari lsinventory.

  7. Pilih file yang ingin Anda akses, lalu pilih Unduh.

Untuk membaca lsinventory-dbv.txt di klien SQL, Anda dapat menggunakan pernyataan SELECT. Untuk teknik ini, gunakan fungsi rdsadmin berikut: rdsadmin.rds_file_util.read_text_file atau rdsadmin.tracefile_listing.

Pada kueri sampel berikut, ganti dbv dengan versi DB Oracle Anda. Misalnya, versi DB Anda mungkin 19.0.0.0.ru-2020-04.rur-2020-04.r1.

SELECT text FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'lsinventory-dbv.txt'));

Untuk membaca lsinventory-dbv.txt di klien SQL, Anda dapat menulis program PL/SQL. Program ini menggunakan utl_file untuk membaca file, dan dbms_output untuk mencetaknya. Ini adalah paket yang diberikan oleh Oracle.

Pada program sampel berikut, ganti dbv dengan versi DB Oracle Anda. Misalnya, versi DB Anda mungkin 19.0.0.0.ru-2020-04.rur-2020-04.r1.

SET SERVEROUTPUT ON DECLARE v_file SYS.UTL_FILE.FILE_TYPE; v_line VARCHAR2(1000); v_oracle_home_type VARCHAR2(1000); c_directory VARCHAR2(30) := 'BDUMP'; c_output_file VARCHAR2(30) := 'lsinventory-dbv.txt'; BEGIN v_file := SYS.UTL_FILE.FOPEN(c_directory, c_output_file, 'r'); LOOP BEGIN SYS.UTL_FILE.GET_LINE(v_file, v_line,1000); DBMS_OUTPUT.PUT_LINE(v_line); EXCEPTION WHEN no_data_found THEN EXIT; END; END LOOP; END; /

Atau kueri rdsadmin.tracefile_listing, dan gulung output ke file. Contoh berikut menggulung output ke /tmp/tracefile.txt.

SPOOL /tmp/tracefile.txt SELECT * FROM rdsadmin.tracefile_listing WHERE FILENAME LIKE 'lsinventory%'; SPOOL OFF;

Mengelola tugas penasihat

Oracle Database mencakup sejumlah penasihat. Setiap penasihat mendukung tugas otomatis dan manual. Anda dapat menggunakan prosedur di paket rdsadmin.rdsadmin_util untuk mengelola beberapa tugas penasihat.

Prosedur tugas penasihat tersedia dalam versi mesin berikut:

  • Oracle Database 21c (21.0.0)

  • Versi 19.0.0.0.ru-2021-01.rur-2021-01.r1 dan Oracle Database versi 19c yang lebih baru

    Untuk informasi selengkapnya, lihat Versi 19.0.0.0.ru-2021-01.rur-2021-01.r1 di Catatan Rilis Amazon RDS for Oracle.

Mengatur parameter untuk tugas penasihat

Untuk mengatur parameter untuk beberapa tugas penasihat, gunakan prosedur rdsadmin.rdsadmin_util.advisor_task_set_parameter Amazon RDS. Prosedur advisor_task_set_parameter memiliki parameter berikut.

Nama parameter Jenis data Default Wajib Deskripsi

p_task_name

varchar2

Ya

Nama tugas penasihat yang parameternya ingin Anda ubah. Nilai berikut ini valid:

  • AUTO_STATS_ADVISOR_TASK

  • INDIVIDUAL_STATS_ADVISOR_TASK

  • SYS_AUTO_SPM_EVOLVE_TASK

  • SYS_AUTO_SQL_TUNING_TASK

p_parameter

varchar2

Ya

Nama parameter tugas. Untuk menemukan parameter yang valid untuk tugas penasihat, jalankan kueri berikut. Ganti p_task_name dengan nilai yang valid untuk p_task_name:

COL PARAMETER_NAME FORMAT a30 COL PARAMETER_VALUE FORMAT a30 SELECT PARAMETER_NAME, PARAMETER_VALUE FROM DBA_ADVISOR_PARAMETERS WHERE TASK_NAME='p_task_name' AND PARAMETER_VALUE != 'UNUSED' ORDER BY PARAMETER_NAME;

p_value

varchar2

Ya

Nilai untuk parameter tugas. Untuk menemukan nilai yang valid untuk parameter tugas, jalankan kueri berikut. Ganti p_task_name dengan nilai yang valid untuk p_task_name:

COL PARAMETER_NAME FORMAT a30 COL PARAMETER_VALUE FORMAT a30 SELECT PARAMETER_NAME, PARAMETER_VALUE FROM DBA_ADVISOR_PARAMETERS WHERE TASK_NAME='p_task_name' AND PARAMETER_VALUE != 'UNUSED' ORDER BY PARAMETER_NAME;

Program PL/SQL berikut menetapkan ACCEPT_PLANS menjadi FALSE untuk SYS_AUTO_SPM_EVOLVE_TASK. Tugas otomatis SQL Plan Management memverifikasi rencana dan membuat laporan temuan, tetapi tidak mengembangkan rencana secara otomatis. Anda dapat menggunakan laporan untuk mengidentifikasi garis dasar rencana SQL baru dan menerimanya secara manual.

BEGIN rdsadmin.rdsadmin_util.advisor_task_set_parameter( p_task_name => 'SYS_AUTO_SPM_EVOLVE_TASK', p_parameter => 'ACCEPT_PLANS', p_value => 'FALSE'); END;

Program PL/SQL berikut menetapkan EXECUTION_DAYS_TO_EXPIRE menjadi 10 untuk AUTO_STATS_ADVISOR_TASK. Tugas AUTO_STATS_ADVISOR_TASK yang telah ditetapkan berjalan secara otomatis pada masa pemeliharaan sekali per hari. Contoh yang ada menetapkan periode retensi untuk eksekusi tugas sampai 10 hari.

BEGIN rdsadmin.rdsadmin_util.advisor_task_set_parameter( p_task_name => 'AUTO_STATS_ADVISOR_TASK', p_parameter => 'EXECUTION_DAYS_TO_EXPIRE', p_value => '10'); END;

Menonaktifkan AUTO_STATS_ADVISOR_TASK

Untuk menonaktifkan AUTO_STATS_ADVISOR_TASK, gunakan prosedur rdsadmin.rdsadmin_util.advisor_task_drop Amazon RDS. Prosedur advisor_task_drop menerima parameter berikut.

Nama parameter Jenis data Default Wajib Deskripsi

p_task_name

varchar2

Ya

Nama tugas penasihat yang akan dinonaktifkan. Satu-satunya nilai yang valid adalah AUTO_STATS_ADVISOR_TASK.

Perintah berikut menghapus AUTO_STATS_ADVISOR_TASK.

EXEC rdsadmin.rdsadmin_util.advisor_task_drop('AUTO_STATS_ADVISOR_TASK')

Anda dapat mengaktifkan kembali AUTO_STATS_ADVISOR_TASK menggunakan rdsadmin.rdsadmin_util.dbms_stats_init.

Mengaktifkan kembali AUTO_STATS_ADVISOR_TASK

Untuk mengaktifkan kembali AUTO_STATS_ADVISOR_TASK, gunakan prosedur rdsadmin.rdsadmin_util.dbms_stats_init Amazon RDS. Prosedur dbms_stats_init tidak menggunakan parameter.

Perintah berikut mengaktifkan kembali AUTO_STATS_ADVISOR_TASK.

EXEC rdsadmin.rdsadmin_util.dbms_stats_init()