

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

# Migrasikan fungsi asli Oracle ke PostgreSQL menggunakan ekstensi
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions"></a>

*Pinesh Singal, Amazon Web Services*

## Ringkasan
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-summary"></a>

Pola migrasi ini memberikan step-by-step panduan untuk memigrasikan Amazon Relational Database Service (Amazon RDS) untuk instance database Oracle ke Amazon RDS for PostgreSQL atau database Amazon Aurora PostgreSQL Compatible Edition dengan memodifikasi dan ekstensi ke kode bawaan bawaan PostgreSQL () bawaan bawaan. `aws_oracle_ext` `orafce` `psql` Ini akan menghemat waktu pemrosesan.

Pola ini menggambarkan strategi migrasi manual offline tanpa downtime untuk database sumber Oracle multi-terabyte dengan jumlah transaksi yang tinggi.

Proses migrasi menggunakan AWS Schema Conversion Tool (AWS SCT) dengan `aws_oracle_ext` ekstensi `orafce` dan untuk mengonversi skema database Amazon RDS for Oracle ke Amazon RDS for PostgreSQL atau skema database yang kompatibel dengan Aurora PostgreSQL. Kemudian kode secara manual diubah menjadi PostgreSQL didukung kode bawaan asli. `psql` Ini karena ekstensi memanggil pemrosesan kode dampak pada server database PostgreSQL, dan tidak semua kode ekstensi sepenuhnya dikeluhkan atau kompatibel dengan kode PostgreSQL.

Pola ini terutama berfokus pada migrasi kode SQL secara manual menggunakan AWS SCT dan ekstensi dan. `aws_oracle_ext` `orafce` Anda mengonversi ekstensi yang sudah digunakan menjadi bawaan `psql` PostgreSQL () bawaan bawaan. Kemudian Anda menghapus semua referensi ke ekstensi dan mengonversi kode yang sesuai.

## Prasyarat dan batasan
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif 
+ Sistem operasi (Windows atau Mac) atau EC2 instans Amazon (aktif dan berjalan) 
+ Orafce

**Batasan**

Tidak semua fungsi Oracle menggunakan `aws_oracle_ext` atau `orafce` ekstensi dapat dikonversi ke fungsi PostgreSQL asli. Mungkin perlu pengerjaan ulang manual untuk mengompilasinya dengan pustaka PostgreSQL.

Salah satu kelemahan menggunakan ekstensi AWS SCT adalah kinerjanya yang lambat dalam menjalankan dan mengambil hasilnya. *Biayanya dapat dipahami dari rencana [PostgreSQL EXPLORE sederhana (rencana eksekusi pernyataan) pada migrasi fungsi `SYSDATE` Oracle ke fungsi `NOW()` PostgreSQL antara ketiga `aws_oracle_ext` kode `orafce` (,, dan default)`psql`, seperti yang dijelaskan](https://www.postgresql.org/docs/current/sql-explain.html) di bagian pemeriksaan perbandingan Kinerja dalam dokumen terlampir.*

**Versi produk**
+ **Sumber:** Amazon RDS for Oracle database 10.2 dan yang lebih baru (untuk 10.x), 11g (11.2.0.3.v1 dan yang lebih baru) dan hingga 12.2, 18c, dan 19c (dan yang lebih baru) untuk Enterprise Edition, Standard Edition, Standard Edition 1, dan Standard Edition 2
+ **Target**: Amazon RDS untuk database yang kompatibel dengan PostgreSQL atau Aurora PostgreSQL 9.4 dan yang lebih baru (untuk 9.x), 10.x, 11.x, 12.x, 13.x, dan 14.x (dan yang lebih baru)
+ **AWS SCT**: Versi terbaru (pola ini diuji dengan 1.0.632)
+ **Orafce**: Versi terbaru (pola ini diuji dengan 3.9.0)

## Arsitektur
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-architecture"></a>

**Tumpukan teknologi sumber**
+ Instans database Amazon RDS for Oracle dengan versi 12.1.0.2.v18

**Tumpukan teknologi target**
+ Instans database yang kompatibel dengan Amazon RDS for PostgreSQL atau Aurora PostgreSQL dengan versi 11.5

**Arsitektur migrasi database**

Diagram berikut merupakan arsitektur migrasi database antara sumber Oracle dan database PostgreSQL target. Arsitekturnya melibatkan AWS Cloud, virtual private cloud (VPC), Availability Zones, subnet pribadi, database Amazon RDS for Oracle, AWS SCT, Amazon RDS untuk PostgreSQL atau database yang kompatibel dengan Aurora PostgreSQL, ekstensi untuk file Oracle (dan), dan bahasa kueri terstruktur (SQL). `aws_oracle_ext` `orafce`

![\[Prosesnya dijelaskan dalam daftar berikut.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/158847bb-27ef-4915-a9ca-7d87073792c1/images/234b824a-bfe5-4ef0-9fa7-8401370b92a5.png)


1. Luncurkan Amazon RDS for Oracle DB instance (sumber DB).

1. Gunakan AWS SCT dengan paket `orafce` ekstensi `aws_oracle_ext` dan untuk mengonversi kode sumber dari Oracle ke PostreSQL.

1. Konversi menghasilkan file.sql bermigrasi yang didukung PostgreSQL.

1. Secara manual mengonversi kode ekstensi Oracle yang tidak dikonversi ke kode PostgreSQL (). `psql`

1. Konversi manual menghasilkan file.sql dikonversi yang didukung PostgreSQL.

1. Jalankan file.sql ini di Amazon RDS untuk instans DB Amazon RDS for PostgreSQL (target DB).

## Alat
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-tools"></a>

**Alat**

*Layanan AWS*
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) - AWS Schema Conversion Tool (AWS SCT) mengonversi skema database Anda yang ada dari satu mesin database ke mesin database lainnya. Anda dapat mengonversi skema Pemrosesan Transaksional Online (OLTP) relasional, atau skema gudang data. Skema konversi Anda cocok untuk instans Amazon RDS for MySQL DB, kluster Amazon Aurora DB, instans Amazon RDS for PostgreSQL DB, atau cluster Amazon Redshift. Skema yang dikonversi juga dapat digunakan dengan database pada EC2 instans Amazon atau disimpan sebagai data dalam bucket Amazon S3.

  AWS SCT menyediakan antarmuka pengguna berbasis proyek untuk secara otomatis mengonversi skema database database sumber Anda menjadi format yang kompatibel dengan instans Amazon RDS target Anda. 

  Anda dapat menggunakan AWS SCT untuk melakukan migrasi dari database sumber Oracle ke salah satu target yang tercantum sebelumnya. Menggunakan AWS SCT, Anda dapat mengekspor definisi objek database sumber seperti skema, tampilan, prosedur tersimpan, dan fungsi. 

  Anda dapat menggunakan AWS SCT untuk mengonversi data dari Oracle ke Amazon RDS untuk PostgreSQL atau Amazon Aurora PostgreSQL Edisi yang kompatibel dengan Amazon Aurora. 

  Dalam pola ini, Anda menggunakan AWS SCT untuk mengonversi dan memigrasikan kode Oracle ke PostgreSQL menggunakan ekstensi `aws_oracle_ext` dan`orafce`, dan memigrasikan kode ekstensi secara manual ke kode bawaan default atau asli. `psql`
+ Paket ekstensi [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html) adalah modul add-on yang mengemulasi fungsi yang ada dalam database sumber yang diperlukan saat mengonversi objek ke database target. Sebelum Anda dapat menginstal paket ekstensi AWS SCT, Anda perlu mengonversi skema database Anda.

  Saat Anda mengonversi skema database atau gudang data, AWS SCT menambahkan skema tambahan ke basis data target Anda. Skema ini mengimplementasikan fungsi sistem SQL dari database sumber yang diperlukan saat menulis skema yang dikonversi ke database target Anda. Skema tambahan ini disebut skema paket ekstensi.

  Skema paket ekstensi untuk database OLTP diberi nama sesuai dengan database sumber. Untuk database Oracle, skema paket ekstensi adalah. `AWS_ORACLE_EXT`

*Alat-alat lainnya*
+ [Orafce](https://github.com/orafce/orafce) - Orafce adalah modul yang mengimplementasikan fungsi, tipe data, dan paket yang kompatibel dengan Oracle. Ini adalah alat sumber terbuka dengan lisensi Berkeley Source Distribution (BSD) sehingga siapa pun dapat menggunakannya. `orafce`Modul ini berguna untuk migrasi dari Oracle ke PostgreSQL karena memiliki banyak fungsi Oracle yang diimplementasikan di PostgreSQL.

 

**Kode**

Untuk daftar semua kode yang umum digunakan dan dimigrasi dari Oracle ke PostgreSQL guna menghindari penggunaan kode ekstensi AWS SCT, lihat dokumen terlampir.

## Epik
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-epics"></a>

### Konfigurasikan database sumber Amazon RDS for Oracle
<a name="configure-the-amazon-rds-for-oracle-source-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance database Oracle. | Buat instance database yang kompatibel dengan Amazon RDS for Oracle atau Aurora PostgreSQL dari konsol Amazon RDS. | AWS Umum, DBA | 
| Konfigurasikan grup keamanan. | Konfigurasikan grup keamanan masuk dan keluar. | AWS Umum | 
| Buat database. | Buat database Oracle dengan pengguna dan skema yang dibutuhkan. | AWS Umum, DBA | 
| Buat objek. | Buat objek dan masukkan data dalam skema. | DBA | 

### Konfigurasikan database target Amazon RDS for PostgreSQL
<a name="configure-the-amazon-rds-for-postgresql-target-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instance database PostgreSQL. | Buat instance database Amazon RDS for PostgreSQL atau Amazon Aurora PostgreSQL dari konsol Amazon RDS. | AWS Umum, DBA | 
| Konfigurasikan grup keamanan. | Konfigurasikan grup keamanan masuk dan keluar. | AWS Umum | 
| Buat database. | Buat database PostgreSQL dengan pengguna dan skema yang dibutuhkan. | AWS Umum, DBA | 
| Validasi ekstensi. | Pastikan bahwa `aws_oracle_ext` dan diinstal dan `orafce` dikonfigurasi dengan benar di database PostgreSQL. | DBA | 
| Verifikasi bahwa database PostgreSQL tersedia. | Pastikan database PostgreSQL aktif dan berjalan. | DBA | 

### Migrasikan skema Oracle ke PostgreSQL menggunakan AWS SCT dan ekstensi
<a name="migrate-the-oracle-schema-into-postgresql-using-aws-sct-and-the-extensions"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal AWS SCT. | Instal AWS SCT versi terbaru. | DBA | 
| Konfigurasikan AWS SCT. | Konfigurasikan AWS SCT dengan driver Java Database Connectivity (JDBC) untuk Oracle () `ojdbc8.jar` dan PostgreSQL (). `postgresql-42.2.5.jar` | DBA | 
| Aktifkan paket atau templat ekstensi AWS SCT. | Di bawah AWS SCT **Project Settings**, aktifkan implementasi fungsi bawaan dengan `aws_oracle_ext` dan `orafce` ekstensi untuk skema database Oracle. | DBA | 
| Konversi skema. | Di AWS SCT, pilih **Konversi Skema untuk mengonversi skema** dari Oracle ke PostgreSQL dan buat file.sql. | DBA | 

### Ubah kode ekstensi AWS SCT ke kode psql
<a name="convert-aws-sct-extension-code-to-psql-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konversi kode secara manual. | Secara manual mengonversi setiap baris kode yang didukung ekstensi menjadi kode bawaan `psql` default, seperti yang dijelaskan dalam dokumen terlampir. Misalnya, ubah `AWS_ORACLE_EXT.SYSDATE()` atau `ORACLE.SYSDATE()` ke`NOW()`. | DBA | 
| Validasi kode | (Opsional) Validasi setiap baris kode dengan menjalankannya sementara di database PostgreSQL. | DBA | 
| Buat objek dalam database PostgreSQL. | Untuk membuat objek dalam database PostgreSQL, jalankan file.sql yang dihasilkan oleh AWS SCT dan dimodifikasi dalam dua langkah sebelumnya. | DBA | 

## Sumber daya terkait
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-resources"></a>
+ Basis Data
  + [Oracle di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html)
  + [PostgreSQL di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)
  + [Bekerja dengan Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)
  + [PostgreSQL JELASKAN rencana](https://www.postgresql.org/docs/current/sql-explain.html)
+ AWS SCT
  + [Ikhtisar Alat Konversi Schema AWS](https://aws.amazon.com/dms/schema-conversion-tool/)
  + [Panduan Pengguna AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
  + [Menggunakan antarmuka pengguna AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
  + [Menggunakan Oracle Database sebagai sumber AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)
+ Ekstensi untuk AWS SCT
  + [Menggunakan paket ekstensi AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html)
  + [Fungsionalitas Oracle](https://postgres.cz/wiki/Oracle_functionality_(en))
  + [PGXN orafce](https://pgxn.org/dist/orafce/)
  + [GitHub orafce](https://github.com/orafce/orafce)

## Informasi tambahan
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-additional"></a>

Untuk informasi lebih lanjut, ikuti perintah terperinci, dengan sintaks dan contoh, untuk mengonversi kode secara manual dalam dokumen terlampir.

## Lampiran
<a name="attachments-158847bb-27ef-4915-a9ca-7d87073792c1"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/158847bb-27ef-4915-a9ca-7d87073792c1/attachments/attachment.zip)