

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

# Mendiagnosis masalah dengan RDS untuk instans Oracle DB
<a name="Appendix.Oracle.CommonDBATasks.Diagnostics"></a>

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](https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/diagnosing-and-resolving-problems.html#GUID-8DEB1BE0-8FB9-4FB2-A19A-17CF6F5791C3) di dokumentasi Oracle Database.

Utilitas Automatic Diagnostic Repository Command Interpreter (ADRCI) merupakan 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 shell ADRCI. Untuk melakukan tugas diagnostik untuk instans RDS untuk Oracle DB, gunakan paket Amazon RDS. `rdsadmin.rdsadmin_adrci_util`

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 output ADRCI, seperti di `dbtask-task_id.log`. File log terletak di direktori BDUMP. Anda dapat mengunduh file log dengan mengikuti prosedur yang dijelaskan di [Mengunduh file log basis data](USER_LogAccess.Procedural.Downloading.md).

## Parameter umum untuk prosedur diagnostik
<a name="Appendix.Oracle.CommonDBATasks.CommonDiagParameters"></a>

Untuk melakukan tugas diagnostik, gunakan fungsi dalam paket `rdsadmin.rdsadmin_adrci_util` Amazon RDS. 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
<a name="Appendix.Oracle.CommonDBATasks.Incidents"></a>

Untuk membuat daftar masalah diagnostik bagi Oracle, gunakan fungsi `rdsadmin.rdsadmin_adrci_util.list_adrci_incidents` Amazon RDS. 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` dan`problem_id`, `incident_id` akan mengganti `problem_id`. Untuk informasi selengkapnya, lihat [Parameter umum untuk prosedur diagnostik](#Appendix.Oracle.CommonDBATasks.CommonDiagParameters).

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
```

Anda juga dapat memanggil fungsi `rdsadmin.rdsadmin_adrci_util.list_adrci_incidents` tanpa argumen dan menyimpan output di variabel klien SQL. 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, panggil prosedur `rdsadmin.rds_file_util.read_text_file` Amazon RDS. 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
<a name="Appendix.Oracle.CommonDBATasks.Problems"></a>

Untuk mencantumkan masalah diagnostik bagi Oracle, gunakan fungsi `rdsadmin.rdsadmin_adrci_util.list_adrci_problems` Amazon RDS.

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](#Appendix.Oracle.CommonDBATasks.CommonDiagParameters).

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

```
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
<a name="Appendix.Oracle.CommonDBATasks.IncPackages"></a>

Anda dapat membuat paket insiden menggunakan fungsi `rdsadmin.rdsadmin_adrci_util.create_adrci_package` Amazon RDS. 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](#Appendix.Oracle.CommonDBATasks.CommonDiagParameters).

Untuk membuat paket insiden tertentu, panggil fungsi Amazon RDS `rdsadmin.rdsadmin_adrci_util.create_adrci_package` dengan parameter `incident_id`. 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](USER_LogAccess.Procedural.Downloading.md).

## Menampilkan file jejak
<a name="Appendix.Oracle.CommonDBATasks.ShowTrace"></a>

Anda dapat menggunakan fungsi Amazon RDS `rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile` untuk membuat daftar file jejak di bagian direktori jejak dan semua direktori insiden di beranda ADR 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 fungsi `rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile` Amazon RDS.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile;

PL/SQL procedure successfully completed.
```

Untuk mencantumkan nama file jejak, panggil prosedur `rdsadmin.rds_file_util.read_text_file` Amazon RDS, dengan memberikan 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 menampilkan 10 baris pertama alert\$1ORCL.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. Lihat informasi yang lebih lengkap di [Mengunduh file log basis data](USER_LogAccess.Procedural.Downloading.md).