Mendiagnosis masalah dengan instans RDS Oracle DB - 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.

Mendiagnosis masalah dengan instans RDS Oracle DB

Oracle Database mencakup infrastruktur kemampuan diagnosis kesalahan yang dapat Anda gunakan untuk mengatasi masalah basis data. Dalam terminologi Oracle, masalah adalah kesalahan kritis seperti bug kode atau kerusakan data. Insiden adalah kondisi saat terjadi masalah. Jika kesalahan yang sama terjadi tiga kali, infrastruktur akan menunjukkan tiga insiden masalah ini. Untuk informasi selengkapnya, lihat Diagnosing and resolving problems di dokumentasi Oracle Database.

Utilitas Automatic Diagnostic Repository Command Interpreter (ADRCI) adalah alat baris perintah Oracle yang Anda gunakan untuk mengelola data diagnostik. Misalnya, Anda dapat menggunakan alat ini untuk menyelidiki masalah dan memaketkan data diagnostik. Paket insiden mencakup data diagnostik insiden atau semua insiden yang mengacu pada masalah tertentu. Anda dapat mengunggah paket insiden, yang diimplementasikan sebagai file .zip, ke Oracle Support.

Untuk memberikan pengalaman layanan terkelola, Amazon RDS tidak menyediakan akses shellADRCI. Untuk melakukan tugas diagnostik untuk instans Oracle DB AndaRDS, gunakan RDS paket rdsadmin.rdsadmin_adrci_util Amazon.

Dengan menggunakan fungsi di rdsadmin_adrci_util, Anda dapat membuat daftar serta mengemas masalah dan insiden, serta menunjukkan file jejak. Semua fungsi mengembalikan ID tugas. ID ini merupakan bagian dari nama file log yang berisi ADRCI output, seperti dalamdbtask-task_id.log. File log berada di BDUMP direktori. Anda dapat mengunduh file log dengan mengikuti prosedur yang dijelaskan di Mengunduh file log basis data.

Parameter umum untuk prosedur diagnostik

Untuk melakukan tugas diagnostik, gunakan fungsi dalam RDS paket Amazonrdsadmin.rdsadmin_adrci_util. Paket memiliki parameter umum berikut.

Nama parameter Tipe data Nilai valid Default Wajib Deskripsi

incident_id

number

ID insiden yang valid atau null

Null

Tidak

Jika nilainya null, fungsi akan menunjukkan semua insiden. Jika nilainya tidak null dan mewakili ID insiden yang valid, fungsi akan menampilkan insiden yang ditentukan.

problem_id

number

ID masalah yang valid atau null

Null

Tidak

Jika nilainya null, fungsinya akan menunjukkan semua masalah. Jika nilainya tidak null dan mewakili ID masalah yang valid, fungsi akan menampilkan masalah yang ditentukan.

last

number

Bilangan bulat valid yang lebih besar dari 0 atau null

Null

Tidak

Jika nilainya null, fungsi akan menampilkan maksimal 50 item. Jika nilainya tidak null, fungsi akan menampilkan jumlah yang ditentukan.

Daftar insiden

Untuk membuat daftar insiden diagnostik untuk Oracle, gunakan fungsi AmazonRDS. rdsadmin.rdsadmin_adrci_util.list_adrci_incidents Anda dapat membuat daftar insiden dalam mode dasar atau terperinci. Secara default, fungsi ini mencantumkan 50 insiden terbaru.

Fungsi ini menggunakan parameter umum berikut:

  • incident_id

  • problem_id

  • last

Jika Anda menentukan incident_id danproblem_id, incident_id akan mengganti problem_id. Untuk informasi selengkapnya, lihat Parameter umum untuk prosedur diagnostik.

Fungsi ini menggunakan parameter tambahan berikut.

Nama parameter Tipe data Nilai valid Default Wajib Deskripsi

detail

boolean

TRUE atau FALSE

FALSE

Tidak

Jika TRUE, fungsi ini mencantumkan insiden dalam mode terperinci. Jika FALSE, fungsi ini mencantumkan daftar insiden dalam mode dasar.

Untuk mencantumkan semua insiden, kueri fungsi rdsadmin.rdsadmin_adrci_util.list_adrci_incidents tanpa argumen apa pun. Kueri akan mengembalikan ID tugas.

SQL> SELECT rdsadmin.rdsadmin_adrci_util.list_adrci_incidents AS task_id FROM DUAL; TASK_ID ------------------ 1590786706158-3126

Atau panggil rdsadmin.rdsadmin_adrci_util.list_adrci_incidents fungsi tanpa argumen dan simpan output dalam variabel SQL klien. Anda dapat menggunakan variabel di pernyataan lainnya.

SQL> VAR task_id VARCHAR2(80); SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_incidents; PL/SQL procedure successfully completed.

Untuk membaca file log, hubungi RDS prosedur Amazonrdsadmin.rds_file_util.read_text_file. Berikan ID tugas sebagai bagian dari nama file. Output berikut menunjukkan tiga insiden: 53523, 53522, dan 53521.

SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')); TEXT ------------------------------------------------------------------------------------------------------------------------- 2020-05-29 21:11:46.193 UTC [INFO ] Listing ADRCI incidents. 2020-05-29 21:11:46.256 UTC [INFO ] ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL: ************************************************************************* INCIDENT_ID PROBLEM_KEY CREATE_TIME ----------- ----------------------------------------------------------- ---------------------------------------- 53523 ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_003 2020-05-29 20:15:20.928000 +00:00 53522 ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_002 2020-05-29 20:15:15.247000 +00:00 53521 ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_001 2020-05-29 20:15:06.047000 +00:00 3 rows fetched 2020-05-29 21:11:46.256 UTC [INFO ] The ADRCI incidents were successfully listed. 2020-05-29 21:11:46.256 UTC [INFO ] The task finished successfully. 14 rows selected.

Untuk membuat daftar insiden tertentu, tentukan ID menggunakan parameter incident_id. Dalam contoh berikut, Anda mengueri file log untuk insiden 53523 saja.

SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_incidents(incident_id=>53523); PL/SQL procedure successfully completed. SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')); TEXT ------------------------------------------------------------------------------------------------------------------ 2020-05-29 21:15:25.358 UTC [INFO ] Listing ADRCI incidents. 2020-05-29 21:15:25.426 UTC [INFO ] ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL: ************************************************************************* INCIDENT_ID PROBLEM_KEY CREATE_TIME -------------------- ----------------------------------------------------------- --------------------------------- 53523 ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_003 2020-05-29 20:15:20.928000 +00:00 1 rows fetched 2020-05-29 21:15:25.427 UTC [INFO ] The ADRCI incidents were successfully listed. 2020-05-29 21:15:25.427 UTC [INFO ] The task finished successfully. 12 rows selected.

Mencantumkan masalah

Untuk membuat daftar masalah diagnostik untuk Oracle, gunakan RDS fungsi rdsadmin.rdsadmin_adrci_util.list_adrci_problems Amazon.

Secara default, fungsi ini akan mencantumkan 50 masalah terbaru.

Fungsi ini menggunakan parameter umum problem_id dan last. Untuk informasi selengkapnya, lihat Parameter umum untuk prosedur diagnostik.

Untuk mendapatkan ID tugas untuk semua masalah, panggil rdsadmin.rdsadmin_adrci_util.list_adrci_problems fungsi tanpa argumen apa pun, dan simpan output dalam variabel SQL klien.

SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_problems; PL/SQL procedure successfully completed.

Untuk membaca file log, panggil fungsi rdsadmin.rds_file_util.read_text_file, berikan ID tugas sebagai bagian dari nama file. Di output berikut, file log menampilkan tiga masalah: 1, 2, dan 3.

SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')); TEXT ---------------------------------------------------------------------------------------------------------------------- 2020-05-29 21:18:50.764 UTC [INFO ] Listing ADRCI problems. 2020-05-29 21:18:50.829 UTC [INFO ] ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL: ************************************************************************* PROBLEM_ID PROBLEM_KEY LAST_INCIDENT LASTINC_TIME ---------- ----------------------------------------------------------- ------------- --------------------------------- 2 ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_003 53523 2020-05-29 20:15:20.928000 +00:00 3 ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_002 53522 2020-05-29 20:15:15.247000 +00:00 1 ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_001 53521 2020-05-29 20:15:06.047000 +00:00 3 rows fetched 2020-05-29 21:18:50.829 UTC [INFO ] The ADRCI problems were successfully listed. 2020-05-29 21:18:50.829 UTC [INFO ] The task finished successfully. 14 rows selected.

Dalam contoh berikut, Anda hanya mencantumkan masalah nomor 3.

SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_problems(problem_id=>3); PL/SQL procedure successfully completed.

Untuk membaca file log masalah 3, panggil rdsadmin.rds_file_util.read_text_file. Berikan ID tugas sebagai bagian dari nama file.

SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')); TEXT ------------------------------------------------------------------------- 2020-05-29 21:19:42.533 UTC [INFO ] Listing ADRCI problems. 2020-05-29 21:19:42.599 UTC [INFO ] ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL: ************************************************************************* PROBLEM_ID PROBLEM_KEY LAST_INCIDENT LASTINC_TIME ---------- ----------------------------------------------------------- ------------- --------------------------------- 3 ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_002 53522 2020-05-29 20:15:15.247000 +00:00 1 rows fetched 2020-05-29 21:19:42.599 UTC [INFO ] The ADRCI problems were successfully listed. 2020-05-29 21:19:42.599 UTC [INFO ] The task finished successfully. 12 rows selected.

Membuat paket insiden

Anda dapat membuat paket insiden menggunakan RDS fungsi Amazonrdsadmin.rdsadmin_adrci_util.create_adrci_package. Output adalah file .zip yang dapat Anda berikan ke Oracle Support.

Fungsi ini menggunakan parameter umum berikut:

  • problem_id

  • incident_id

Pastikan untuk menentukan salah satu parameter sebelumnya. Jika Anda menentukan kedua parameter, incident_id akan menimpa problem_id. Untuk informasi selengkapnya, lihat Parameter umum untuk prosedur diagnostik.

Untuk membuat paket untuk insiden tertentu, panggil RDS fungsi Amazon rdsadmin.rdsadmin_adrci_util.create_adrci_package dengan incident_id parameter. Contoh berikut membuat paket untuk insiden 53523.

SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.create_adrci_package(incident_id=>53523); PL/SQL procedure successfully completed.

Untuk membaca file log, panggil rdsadmin.rds_file_util.read_text_file. Anda dapat memberikan ID tugas sebagai bagian dari nama file. Output menunjukkan bahwa Anda menghasilkan paket insiden ORA700EVE_20200529212043_COM_1.zip.

SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')); TEXT -------------------------------------------------------------------------------------------------------------------------------------- 2020-05-29 21:20:43.031 UTC [INFO ] The ADRCI package is being created. 2020-05-29 21:20:47.641 UTC [INFO ] Generated package 1 in file /rdsdbdata/log/trace/ORA700EVE_20200529212043_COM_1.zip, mode complete 2020-05-29 21:20:47.642 UTC [INFO ] The ADRCI package was successfully created. 2020-05-29 21:20:47.642 UTC [INFO ] The task finished successfully.

Untuk membuat paket data diagnostik masalah tertentu, tentukan ID menggunakan parameter problem_id. Dalam contoh berikut, Anda hanya memaketkan data untuk masalah nomor 3.

SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.create_adrci_package(problem_id=>3); PL/SQL procedure successfully completed.

Untuk membaca output tugas, panggil rdsadmin.rds_file_util.read_text_file, berikan ID tugas sebagai bagian dari nama file. Output menunjukkan bahwa Anda menghasilkan paket insiden ORA700EVE_20200529212111_COM_1.zip.

SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')); TEXT ------------------------------------------------------------------------------------------------------------------------------------------------------------ 2020-05-29 21:21:11.050 UTC [INFO ] The ADRCI package is being created. 2020-05-29 21:21:15.646 UTC [INFO ] Generated package 2 in file /rdsdbdata/log/trace/ORA700EVE_20200529212111_COM_1.zip, mode complete 2020-05-29 21:21:15.646 UTC [INFO ] The ADRCI package was successfully created. 2020-05-29 21:21:15.646 UTC [INFO ] The task finished successfully.

Anda juga dapat mengunduh file log. Untuk informasi selengkapnya, lihat Mengunduh file log basis data.

Menampilkan file jejak

Anda dapat menggunakan RDS fungsi Amazon rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile untuk membuat daftar file jejak di bawah direktori jejak dan semua direktori insiden di bawah ADR beranda saat ini. Anda juga dapat menampilkan konten file jejak dan file jejak insiden.

Fungsi ini menggunakan parameter berikut.

Nama parameter Tipe data Nilai valid Default Wajib Deskripsi

filename

varchar2

Nama file jejak yang valid

Null

Tidak

Jika nilainya null, fungsi akan menunjukkan semua file jejak. Jika nilainya tidak null, fungsi akan menampilkan file yang ditentukan.

Untuk menampilkan file jejak, panggil RDS fungsi Amazonrdsadmin.rdsadmin_adrci_util.show_adrci_tracefile.

SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile; PL/SQL procedure successfully completed.

Untuk mencantumkan nama file jejak, panggil RDS prosedur Amazonrdsadmin.rds_file_util.read_text_file, berikan ID tugas sebagai bagian dari nama file.

SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')) WHERE TEXT LIKE '%/alert_%'; TEXT --------------------------------------------------------------- diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-28 diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-27 diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-26 diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-25 diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-24 diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-23 diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-22 diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-21 diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log 9 rows selected.

Dalam contoh berikut, Anda membuat output untuk alert_ORCL.log.

SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile('diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log'); PL/SQL procedure successfully completed.

Untuk membaca file log, panggil rdsadmin.rds_file_util.read_text_file. Berikan ID tugas sebagai bagian dari nama file. Output menunjukkan 10 baris pertama dari alert_ ORCL .log.

SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')) WHERE ROWNUM <= 10; TEXT ----------------------------------------------------------------------------------------- 2020-05-29 21:24:02.083 UTC [INFO ] The trace files are being displayed. 2020-05-29 21:24:02.128 UTC [INFO ] Thu May 28 23:59:10 2020 Thread 1 advanced to log sequence 2048 (LGWR switch) Current log# 3 seq# 2048 mem# 0: /rdsdbdata/db/ORCL_A/onlinelog/o1_mf_3_hbl2p8xs_.log Thu May 28 23:59:10 2020 Archived Log entry 2037 added for thread 1 sequence 2047 ID 0x5d62ce43 dest 1: Fri May 29 00:04:10 2020 Thread 1 advanced to log sequence 2049 (LGWR switch) Current log# 4 seq# 2049 mem# 0: /rdsdbdata/db/ORCL_A/onlinelog/o1_mf_4_hbl2qgmh_.log Fri May 29 00:04:10 2020 10 rows selected.

Anda juga dapat mengunduh file log. Untuk informasi selengkapnya, lihat Mengunduh file log basis data.