

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

# Sumber untuk migrasi data
<a name="CHAP_Source"></a>

AWS Database Migration Service (AWS DMS) dapat menggunakan banyak mesin data paling populer sebagai sumber replikasi data. Sumber basis data dapat menjadi mesin yang dikelola sendiri yang berjalan pada instans Amazon EC2 atau basis data lokal. Atau bisa juga sumber data pada AWS layanan seperti Amazon RDS atau Amazon S3.

Untuk daftar lengkap sumber yang valid, lihat [Sumber untuk AWS DMS](CHAP_Introduction.Sources.md#CHAP_Introduction.Sources.title).

**Topics**
+ [Menggunakan database Oracle sebagai sumber AWS DMS](CHAP_Source.Oracle.md)
+ [Menggunakan database Microsoft SQL Server sebagai sumber AWS DMS](CHAP_Source.SQLServer.md)
+ [Menggunakan database Microsoft Azure SQL sebagai sumber untuk AWS DMS](CHAP_Source.AzureSQL.md)
+ [Menggunakan Microsoft Azure SQL Managed Instance sebagai sumber untuk AWS DMS](CHAP_Source.AzureMgd.md)
+ [Menggunakan Microsoft Azure Database untuk PostgreSQL server fleksibel sebagai sumber untuk AWS DMS](CHAP_Source.AzureDBPostgreSQL.md)
+ [Menggunakan Microsoft Azure Database untuk MySQL server fleksibel sebagai sumber AWS DMS](CHAP_Source.AzureDBMySQL.md)
+ [Menggunakan OCI MySQL Heatwave sebagai sumber untuk AWS DMS](CHAP_Source.heatwave.md)
+ [Menggunakan Google Cloud untuk MySQL sebagai sumber untuk AWS DMS](CHAP_Source.GC.md)
+ [Menggunakan Google Cloud untuk PostgreSQL sebagai sumber untuk AWS DMS](CHAP_Source.GCPostgres.md)
+ [Menggunakan database PostgreSQL sebagai sumber AWS DMS](CHAP_Source.PostgreSQL.md)
+ [Menggunakan database yang kompatibel dengan MySQL sebagai sumber AWS DMS](CHAP_Source.MySQL.md)
+ [Menggunakan database SAP ASE sebagai sumber untuk AWS DMS](CHAP_Source.SAP.md)
+ [Menggunakan MongoDB sebagai sumber AWS DMS](CHAP_Source.MongoDB.md)
+ [Menggunakan Amazon DocumentDB (dengan kompatibilitas MongoDB) sebagai sumber AWS DMS](CHAP_Source.DocumentDB.md)
+ [Menggunakan Amazon S3 sebagai sumber AWS DMS](CHAP_Source.S3.md)
+ [Menggunakan IBM Db2 untuk Linux, Unix, Windows, dan database Amazon RDS (Db2 LUW) sebagai sumber untuk AWS DMS](CHAP_Source.DB2.md)
+ [Menggunakan IBM Db2 untuk z/OS database sebagai sumber untuk AWS DMS](CHAP_Source.DB2zOS.md)

# Menggunakan database Oracle sebagai sumber AWS DMS
<a name="CHAP_Source.Oracle"></a>

Anda dapat memigrasikan data dari satu atau banyak database Oracle menggunakan. AWS DMS Dengan basis data Oracle sebagai sumber, Anda dapat memigrasi data ke salah satu target yang didukung oleh AWS DMS.

AWS DMS mendukung edisi database Oracle berikut:
+ Oracle Enterprise Edition
+ Oracle Standard Edition
+ Oracle Express Edition
+ Oracle Personal Edition

Untuk informasi tentang versi database Oracle yang AWS DMS mendukung sebagai sumber, lihat. [Sumber untuk AWS DMS](CHAP_Introduction.Sources.md)

Anda dapat menggunakan Lapisan Soket Aman (SSL) untuk mengenkripsi koneksi antara titik akhir Oracle Anda dan instans replikasi Anda. Untuk informasi lebih lanjut tentang menggunakan SSL dengan endpoint Oracle, lihat. [Dukungan SSL untuk titik akhir Oracle](#CHAP_Security.SSL.Oracle)

AWS DMS mendukung penggunaan enkripsi data transparan Oracle (TDE) untuk mengenkripsi data saat istirahat di database sumber. Untuk informasi lebih lanjut tentang menggunakan Oracle TDE dengan titik akhir sumber Oracle, lihat [Metode enkripsi yang didukung untuk menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.Encryption).

AWS mendukung penggunaan TLS versi 1.2 dan yang lebih baru dengan endpoint Oracle (dan semua jenis endpoint lainnya), dan merekomendasikan penggunaan TLS versi 1.3 atau yang lebih baru.

Ikuti langkah-langkah ini untuk mengonfigurasi database Oracle sebagai titik akhir AWS DMS sumber:

1. Buat pengguna Oracle dengan izin yang sesuai AWS DMS untuk mengakses database sumber Oracle Anda.

1. Buat titik akhir sumber Oracle yang sesuai dengan konfigurasi basis data Oracle yang Anda pilih. Untuk membuat full-load-only tugas, tidak diperlukan konfigurasi lebih lanjut.

1. Untuk membuat tugas yang menangani pengambilan data perubahan (tugas CDC saja atau beban penuh dan CDC), pilih Oracle LogMiner atau AWS DMS Binary Reader untuk menangkap perubahan data. Memilih LogMiner atau Pembaca Biner menentukan beberapa izin dan opsi konfigurasi selanjutnya. Untuk perbandingan LogMiner dan Pembaca Biner, lihat bagian berikut.

**catatan**  
Untuk informasi selengkapnya tentang tugas beban penuh, tugas CDC saja, dan tugas beban penuh dan CDC, lihat [Membuat tugas](CHAP_Tasks.Creating.md)

Untuk detail tambahan tentang bekerja dengan database sumber Oracle dan AWS DMS, lihat bagian berikut. 

**Topics**
+ [Menggunakan Oracle LogMiner atau AWS DMS Binary Reader untuk CDC](#CHAP_Source.Oracle.CDC)
+ [Alur kerja untuk mengonfigurasi database sumber Oracle yang dikelola sendiri atau AWS dikelola untuk AWS DMSMengkonfigurasi database sumber Oracle](#CHAP_Source.Oracle.Workflows)
+ [Bekerja dengan database Oracle yang dikelola sendiri sebagai sumber AWS DMS](#CHAP_Source.Oracle.Self-Managed)
+ [Bekerja dengan database Oracle yang AWS dikelola sebagai sumber AWS DMS](#CHAP_Source.Oracle.Amazon-Managed)
+ [Keterbatasan dalam menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.Limitations)
+ [Dukungan SSL untuk titik akhir Oracle](#CHAP_Security.SSL.Oracle)
+ [Metode enkripsi yang didukung untuk menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.Encryption)
+ [Metode kompresi yang didukung untuk menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.Compression)
+ [Mereplikasi tabel bersarang menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.NestedTables)
+ [Menyimpan REDO di Oracle ASM saat menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.REDOonASM)
+ [Pengaturan titik akhir saat menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.ConnectionAttrib)
+ [Jenis data sumber untuk Oracle](#CHAP_Source.Oracle.DataTypes)

## Menggunakan Oracle LogMiner atau AWS DMS Binary Reader untuk CDC
<a name="CHAP_Source.Oracle.CDC"></a>

Dalam AWS DMS, ada dua metode untuk membaca redo log ketika melakukan change data capture (CDC) untuk Oracle sebagai sumber: Oracle LogMiner dan Binary Reader. AWS DMS LogMiner adalah API Oracle untuk membaca log redo online dan file log redo yang diarsipkan. Binary Reader adalah AWS DMS metode yang membaca dan mem-parsing file log redo mentah secara langsung. Metode ini memiliki beberapa fitur berikut.


| Fitur | LogMiner | Binary Reader | 
| --- | --- | --- | 
| Mudah dikonfigurasi | Ya | Tidak | 
| Dampak lebih rendah pada sistem sumber I/O dan CPU | Tidak | Ya | 
| Performa CDC yang lebih baik | Tidak | Ya | 
| Mendukung klaster tabel Oracle | Ya | Tidak | 
| Mendukung semua jenis Hybrid Columnar Compression (HCC) Oracle | Ya |  Sebagian Binary Reader tidak mendukung QUERY LOW untuk tugas-tugas dengan CDC. Semua jenis HCC lainnya didukung sepenuhnya.  | 
| Dukungan kolom LOB hanya di Oracle 12c | Tidak (LOB Support tidak tersedia dengan LogMiner di Oracle 12c.) | Ya | 
| Mendukung pernyataan UPDATE yang hanya memengaruhi kolom LOB | Tidak | Ya | 
| Mendukung enkripsi data transparan (TDE) Oracle |  Sebagian Saat menggunakan Oracle LogMiner, AWS DMS tidak mendukung enkripsi TDE pada tingkat kolom untuk Amazon RDS for Oracle.  |  Sebagian Binary Reader mendukung TDE hanya untuk basis data Oracle yang dikelola sendiri.  | 
| Mendukung semua metode kompresi Oracle | Ya | Tidak | 
| Mendukung transaksi XA | Tidak | Ya | 
| RAC |  Ya Tidak disarankan, karena alasan kinerja, dan beberapa keterbatasan DMS internal.  |  Ya Sangat direkomendasikan  | 

**catatan**  
Secara default, AWS DMS menggunakan Oracle LogMiner for (CDC).   
AWS DMS mendukung metode enkripsi data transparan (TDE) saat bekerja dengan database sumber Oracle. Jika kredensyal TDE yang Anda tentukan salah, tugas AWS DMS migrasi tidak akan gagal, yang dapat memengaruhi replikasi tabel terenkripsi yang sedang berlangsung. Untuk informasi selengkapnya tentang menentukan kredensil TDE, lihat. [Metode enkripsi yang didukung untuk menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.Encryption)

Keuntungan utama menggunakan LogMiner dengan AWS DMS meliputi:
+ LogMiner mendukung sebagian besar opsi Oracle, seperti opsi enkripsi dan opsi kompresi. Binary Reader tidak mendukung semua opsi Oracle, terutama kompresi dan sebagian besar opsi untuk enkripsi.
+ LogMiner menawarkan konfigurasi yang lebih sederhana, terutama dibandingkan dengan pengaturan akses langsung Binary Reader atau ketika log redo dikelola menggunakan Oracle Automatic Storage Management (ASM).
+ LogMiner mendukung cluster tabel untuk digunakan oleh AWS DMS. Pembaca biner tidak.

Keuntungan utama menggunakan Binary Reader dengan AWS DMS meliputi:
+ Untuk migrasi dengan volume perubahan yang tinggi, LogMiner mungkin memiliki beberapa I/O atau dampak CPU pada komputer hosting database sumber Oracle. Pembaca Biner memiliki peluang lebih kecil untuk memiliki I/O atau dampak CPU karena log ditambang secara langsung daripada membuat beberapa kueri basis data.
+ Untuk migrasi dengan volume perubahan yang tinggi, kinerja CDC biasanya jauh lebih baik ketika menggunakan Binary Reader dibandingkan dengan menggunakan Oracle. LogMiner
+ Binary Reader mendukung CDC untuk LOBs di Oracle versi 12c. LogMiner tidak.

Secara umum, gunakan Oracle LogMiner untuk memigrasikan database Oracle Anda kecuali Anda memiliki salah satu situasi berikut:
+ Anda perlu menjalankan beberapa tugas migrasi pada sumber basis data Oracle.
+ Volume perubahan atau volume log redo pada basis data sumber Oracle tinggi, atau Anda memiliki perubahan dan juga menggunakan ASM Oracle.

**catatan**  
Jika Anda mengubah antara menggunakan Oracle LogMiner dan AWS DMS Binary Reader, pastikan untuk memulai ulang tugas CDC. 

### Konfigurasi untuk CDC pada sumber basis data Oracle
<a name="CHAP_Source.Oracle.CDC.Configuration"></a>

Agar titik akhir sumber Oracle terhubung ke basis data untuk tugas change data capture (CDC), Anda mungkin perlu menentukan atribut koneksi tambahan. Hal yang sama juga berlaku untuk tugas beban penuh dan CDC atau untuk tugas CDC-only. Atribut koneksi tambahan yang Anda tentukan bergantung pada metode yang Anda gunakan untuk mengakses log redo: Oracle LogMiner atau AWS DMS Binary Reader. 

Anda menentukan atribut sambungan tambahan saat Anda membuat titik akhir sumber. Jika Anda memiliki beberapa sambungan pengaturan atribut, pisahkan satu sama lain dengan titik koma tanpa spasi putih tambahan (misalnya,`oneSetting;thenAnother`).

AWS DMS menggunakan secara LogMiner default. Anda tidak harus menentukan atribut sambungan tambahan untuk menggunakannya. 

Untuk menggunakan Binary Reader untuk mengakses log redo, tambahkan atribut sambungan tambahan berikut.

```
useLogMinerReader=N;useBfile=Y;
```

Gunakan format berikut untuk atribut sambungan tambahan untuk mengakses server yang menggunakan ASM dengan Binary Reader.

```
useLogMinerReader=N;useBfile=Y;asm_user=asm_username;asm_server=RAC_server_ip_address:port_number/+ASM;
```

Atur parameter permintaan `Password` titik akhir sumber untuk kata sandi pengguna Oracle dan kata sandi ASM, yang dipisah dengan koma sebagai berikut.

```
oracle_user_password,asm_user_password
```

Apabila sumber Oracle menggunakan ASM, Anda dapat bekerja dengan pilihan performa tinggi pada Binary Reader untuk pemrosesan transaksi dalam skala besar. Pilihan ini mencakup atribut sambungan tambahan untuk menentukan jumlah thread paralel (`parallelASMReadThreads`) dan jumlah buffer read-ahead (`readAheadBlocks`). Pengaturan atribut ini secara bersamaan dapat secara signifikan meningkatkan performa tugas CDC. Pengaturan berikut memberikan hasil yang baik untuk sebagian besar konfigurasi ASM.

```
useLogMinerReader=N;useBfile=Y;asm_user=asm_username;asm_server=RAC_server_ip_address:port_number/+ASM;
    parallelASMReadThreads=6;readAheadBlocks=150000;
```

Untuk informasi lebih lanjut tentang nilai-nilai yang didukung atribut sambungan tambahan, lihat [Pengaturan titik akhir saat menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.ConnectionAttrib).

Selain itu, performa tugas CDC dengan sumber Oracle yang menggunakan ASM tergantung pada pengaturan lain yang Anda pilih. Pengaturan ini mencakup atribut sambungan tambahan AWS DMS dan pengaturan SQL untuk mengonfigurasi sumber Oracle. Untuk informasi lebih lanjut tentang atribut sambungan tambahan untuk sumber Oracle yang menggunakan ASM, lihat [Pengaturan titik akhir saat menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.ConnectionAttrib)

Anda juga perlu memilih titik awal CDC yang sesuai. Biasanya ketika Anda melakukan hal ini, Anda ingin mengidentifikasi titik pemrosesan transaksi yang menangkap transaksi terbuka paling awal untuk memulai CDC. Jika tidak, tugas CDC dapat melewatkan transaksi terbuka sebelumnya. Untuk basis data sumber Oracle, Anda dapat memilih titik awal CDC berdasarkan system change number (SCN) Oracle untuk mengidentifikasi transaksi terbuka paling awal ini. Untuk informasi selengkapnya, lihat [Melakukan replikasi mulai dari titik awal CDC](CHAP_Task.CDC.md#CHAP_Task.CDC.StartPoint).

Untuk informasi lebih lanjut tentang mengonfigurasi CDC untuk basis data Oracle yang dikelola sendiri sebagai sumber, lihat [Hak istimewa akun diperlukan saat menggunakan Oracle LogMiner untuk mengakses log redo](#CHAP_Source.Oracle.Self-Managed.LogMinerPrivileges), [Hak istimewa akun diperlukan saat menggunakan AWS DMS Binary Reader untuk mengakses redo log](#CHAP_Source.Oracle.Self-Managed.BinaryReaderPrivileges), dan [Hak istimewa akun tambahan yang diperlukan saat menggunakan Binary Reader dengan Oracle ASM](#CHAP_Source.Oracle.Self-Managed.ASMBinaryPrivileges).

Untuk informasi selengkapnya tentang mengonfigurasi CDC untuk database Oracle yang AWS dikelola sebagai sumber, lihat dan. [Mengkonfigurasi tugas CDC untuk menggunakan Binary Reader dengan RDS untuk sumber Oracle AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.CDC) [Menggunakan Amazon RDS Oracle Standby (baca replika) sebagai sumber dengan Binary Reader untuk CDC di AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.StandBy)

## Alur kerja untuk mengonfigurasi database sumber Oracle yang dikelola sendiri atau AWS dikelola untuk AWS DMS


## Mengkonfigurasi database sumber Oracle
<a name="CHAP_Source.Oracle.Workflows"></a>

Untuk mengonfigurasi instans basis data sumber yang dikelola sendiri, gunakan langkah-langkah alur kerja berikut, bergantung pada bagaimana Anda melakukan CDC. 


| Untuk langkah alur kerja ini | Jika Anda menggunakan CDC LogMiner, lakukan ini | Jika Anda melakukan CDC menggunakan Binary Reader, lakukan ini | 
| --- | --- | --- | 
| Berikan hak istimewa akun Oracle. | Lihat [Hak istimewa akun pengguna diperlukan pada sumber Oracle yang dikelola sendiri untuk AWS DMS](#CHAP_Source.Oracle.Self-Managed.Privileges). | Lihat [Hak istimewa akun pengguna diperlukan pada sumber Oracle yang dikelola sendiri untuk AWS DMS](#CHAP_Source.Oracle.Self-Managed.Privileges). | 
| Siapkan basis data sumber untuk replikasi menggunakan CDC. | Lihat [Mempersiapkan database sumber yang dikelola sendiri Oracle untuk CDC menggunakan AWS DMS](#CHAP_Source.Oracle.Self-Managed.Configuration). | Lihat [Mempersiapkan database sumber yang dikelola sendiri Oracle untuk CDC menggunakan AWS DMS](#CHAP_Source.Oracle.Self-Managed.Configuration). | 
| Berikan hak istimewa pengguna Oracle tambahan yang diperlukan untuk CDC. | Lihat [Hak istimewa akun diperlukan saat menggunakan Oracle LogMiner untuk mengakses log redo](#CHAP_Source.Oracle.Self-Managed.LogMinerPrivileges). | Lihat [Hak istimewa akun diperlukan saat menggunakan AWS DMS Binary Reader untuk mengakses redo log](#CHAP_Source.Oracle.Self-Managed.BinaryReaderPrivileges). | 
| Untuk instans Oracle dengan ASM, berikan hak istimewa pengguna akun tambahan yang diperlukan untuk mengakses ASM untuk CDC. | Tidak ada tindakan tambahan. AWS DMS mendukung Oracle ASM tanpa hak istimewa akun tambahan. | Lihat [Hak istimewa akun tambahan yang diperlukan saat menggunakan Binary Reader dengan Oracle ASM](#CHAP_Source.Oracle.Self-Managed.ASMBinaryPrivileges). | 
| Jika Anda belum melakukannya, konfigurasikan tugas yang akan digunakan LogMiner atau Binary Reader untuk CDC. | Lihat [Menggunakan Oracle LogMiner atau AWS DMS Binary Reader untuk CDC](#CHAP_Source.Oracle.CDC). | Lihat [Menggunakan Oracle LogMiner atau AWS DMS Binary Reader untuk CDC](#CHAP_Source.Oracle.CDC). | 
| Konfigurasikan Oracle Standby sebagai sumber untuk CDC. | AWS DMS tidak mendukung Oracle Standby sebagai sumber. | Lihat [Menggunakan Oracle Standby yang dikelola sendiri sebagai sumber dengan Binary Reader untuk CDC di AWS DMS](#CHAP_Source.Oracle.Self-Managed.BinaryStandby). | 

Gunakan langkah-langkah alur kerja berikut untuk mengonfigurasi instance database sumber Oracle yang AWS dikelola.


| Untuk langkah alur kerja ini | Jika Anda menggunakan CDC LogMiner, lakukan ini | Jika Anda melakukan CDC menggunakan Binary Reader, lakukan ini | 
| --- | --- | --- | 
| Berikan hak istimewa akun Oracle. | Untuk informasi selengkapnya, lihat [Hak istimewa akun pengguna diperlukan pada sumber Oracle AWS yang dikelola untuk AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.Privileges). | Untuk informasi selengkapnya, lihat [Hak istimewa akun pengguna diperlukan pada sumber Oracle AWS yang dikelola untuk AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.Privileges). | 
| Siapkan basis data sumber untuk replikasi menggunakan CDC. | Untuk informasi selengkapnya, lihat [Mengkonfigurasi sumber AWS Oracle yang dikelola untuk AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.Configuration). | Untuk informasi selengkapnya, lihat [Mengkonfigurasi sumber AWS Oracle yang dikelola untuk AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.Configuration). | 
| Berikan hak istimewa pengguna Oracle tambahan yang diperlukan untuk CDC. | Tidak perlu hak istimewa akun tambahan. | Untuk informasi selengkapnya, lihat [Mengkonfigurasi tugas CDC untuk menggunakan Binary Reader dengan RDS untuk sumber Oracle AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.CDC). | 
| Jika Anda belum melakukannya, konfigurasikan tugas yang akan digunakan LogMiner atau Binary Reader untuk CDC. | Untuk informasi selengkapnya, lihat [Menggunakan Oracle LogMiner atau AWS DMS Binary Reader untuk CDC](#CHAP_Source.Oracle.CDC). | Untuk informasi selengkapnya, lihat [Menggunakan Oracle LogMiner atau AWS DMS Binary Reader untuk CDC](#CHAP_Source.Oracle.CDC). | 
| Konfigurasi Oracle Standby sebagai sumber untuk CDC. | AWS DMS tidak mendukung Oracle Standby sebagai sumber. | Untuk informasi selengkapnya, lihat [Menggunakan Amazon RDS Oracle Standby (baca replika) sebagai sumber dengan Binary Reader untuk CDC di AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.StandBy). | 

## Bekerja dengan database Oracle yang dikelola sendiri sebagai sumber AWS DMS
<a name="CHAP_Source.Oracle.Self-Managed"></a>

Suatu *basis data yang dikelola sendiri* adalah basis data yang Anda konfigurasi dan kontrol, baik instans basis data lokal atau basis data pada Amazon EC2. Berikut ini, Anda dapat mengetahui tentang hak istimewa dan konfigurasi yang Anda butuhkan saat menggunakan database Oracle yang dikelola sendiri. AWS DMS

### Hak istimewa akun pengguna diperlukan pada sumber Oracle yang dikelola sendiri untuk AWS DMS
<a name="CHAP_Source.Oracle.Self-Managed.Privileges"></a>

Untuk menggunakan database Oracle sebagai sumber AWS DMS, berikan hak istimewa berikut kepada pengguna Oracle yang ditentukan dalam pengaturan koneksi endpoint Oracle.

**catatan**  
Ketika memberikan hak istimewa, gunakan nama objek yang sebenarnya, bukan sinonim dari setiap objek. Misalnya, gunakan `V_$OBJECT` termasuk garis bawahnya, bukan `V$OBJECT` tanpa garis bawah.

```
GRANT CREATE SESSION TO dms_user;
GRANT SELECT ANY TRANSACTION TO dms_user;
GRANT SELECT ON V_$ARCHIVED_LOG TO dms_user;
GRANT SELECT ON V_$LOG TO dms_user;
GRANT SELECT ON V_$LOGFILE TO dms_user;
GRANT SELECT ON V_$LOGMNR_LOGS TO dms_user;
GRANT SELECT ON V_$LOGMNR_CONTENTS TO dms_user;
GRANT SELECT ON V_$DATABASE TO dms_user;
GRANT SELECT ON V_$THREAD TO dms_user;
GRANT SELECT ON V_$PARAMETER TO dms_user;
GRANT SELECT ON V_$NLS_PARAMETERS TO dms_user;
GRANT SELECT ON V_$TIMEZONE_NAMES TO dms_user;
GRANT SELECT ON V_$TRANSACTION TO dms_user;
GRANT SELECT ON V_$CONTAINERS TO dms_user;                   
GRANT SELECT ON ALL_INDEXES TO dms_user;
GRANT SELECT ON ALL_OBJECTS TO dms_user;
GRANT SELECT ON ALL_TABLES TO dms_user;
GRANT SELECT ON ALL_USERS TO dms_user;
GRANT SELECT ON ALL_CATALOG TO dms_user;
GRANT SELECT ON ALL_CONSTRAINTS TO dms_user;
GRANT SELECT ON ALL_CONS_COLUMNS TO dms_user;
GRANT SELECT ON ALL_TAB_COLS TO dms_user;
GRANT SELECT ON ALL_IND_COLUMNS TO dms_user;
GRANT SELECT ON ALL_ENCRYPTED_COLUMNS TO dms_user;
GRANT SELECT ON ALL_LOG_GROUPS TO dms_user;
GRANT SELECT ON ALL_TAB_PARTITIONS TO dms_user;
GRANT SELECT ON SYS.DBA_REGISTRY TO dms_user;
GRANT SELECT ON SYS.OBJ$ TO dms_user;
GRANT SELECT ON DBA_TABLESPACES TO dms_user;
GRANT SELECT ON DBA_OBJECTS TO dms_user; -– Required if the Oracle version is earlier than 11.2.0.3.
GRANT SELECT ON SYS.ENC$ TO dms_user; -– Required if transparent data encryption (TDE) is enabled. For more information on using Oracle TDE with AWS DMS, see Metode enkripsi yang didukung untuk menggunakan Oracle sebagai sumber AWS DMS.
GRANT SELECT ON GV_$TRANSACTION TO dms_user; -– Required if the source database is Oracle RAC in AWS DMS versions 3.4.6 and higher.
GRANT SELECT ON V_$DATAGUARD_STATS TO dms_user; -- Required if the source database is Oracle Data Guard and Oracle Standby is used in the latest release of DMS version 3.4.6, version 3.4.7, and higher.
GRANT SELECT ON V_$DATABASE_INCARNATION TO dms_user;
```

Berikan hak istimewa tambahan berikut untuk setiap tabel yang direplikasi ketika Anda menggunakan daftar tabel tertentu.

```
GRANT SELECT on any-replicated-table to dms_user;
```

Berikan hak istimewa tambahan berikut untuk menggunakan fitur validasi.

```
GRANT EXECUTE ON SYS.DBMS_CRYPTO TO dms_user;
```

Berikan hak istimewa tambahan berikut jika Anda menggunakan pembaca biner alih-alih. LogMiner

```
GRANT SELECT ON SYS.DBA_DIRECTORIES TO dms_user;
```

Berikan hak istimewa tambahan berikut ini untuk menunjukkan tampilan.

```
GRANT SELECT on ALL_VIEWS to dms_user;
```

Untuk menunjukkan tampilan, Anda juga harus menambahkan atribut sambungan tambahan `exposeViews=true` ke titik akhir sumber Anda.

Berikan hak istimewa berikut tambahan saat menggunakan replikasi tanpa server.

```
GRANT SELECT on dba_segments to dms_user;
GRANT SELECT on v_$tablespace to dms_user;
GRANT SELECT on dba_tab_subpartitions to dms_user;
GRANT SELECT on dba_extents to dms_user;
```

Untuk informasi tentang replikasi tanpa server, lihat. [Bekerja dengan Tanpa AWS DMS Server](CHAP_Serverless.md)

Berikan hak istimewa tambahan berikut saat menggunakan penilaian premi khusus Oracle.

```
GRANT SELECT on gv_$parameter  to dms_user;
GRANT SELECT on v_$instance to dms_user;
GRANT SELECT on v_$version to dms_user;
GRANT SELECT on gv_$ASM_DISKGROUP to dms_user;
GRANT SELECT on gv_$database to dms_user;
GRANT SELECT on dba_db_links to dms_user;
GRANT SELECT on gv_$log_History to dms_user;
GRANT SELECT on gv_$log to dms_user;
GRANT SELECT ON DBA_TYPES TO dms_user;
GRANT SELECT ON DBA_USERS to dms_user;
GRANT SELECT ON DBA_DIRECTORIES to dms_user;
GRANT EXECUTE ON SYS.DBMS_XMLGEN TO dms_user;
```

Untuk informasi tentang penilaian premi khusus Oracle, lihat. [Penilaian Oracle](CHAP_Tasks.AssessmentReport.Oracle.md)

#### Prasyarat untuk menangani transaksi terbuka untuk Oracle Standby
<a name="CHAP_Source.Oracle.Self-Managed.Privileges.Standby"></a>

Saat menggunakan AWS DMS versi 3.4.6 dan yang lebih tinggi, lakukan langkah-langkah berikut untuk menangani transaksi terbuka untuk Oracle Standby. 

1. Buat link database bernama, `AWSDMS_DBLINK` pada database utama. `DMS_USER`akan menggunakan link database untuk terhubung ke database utama. Perhatikan bahwa link database dijalankan dari instance standby untuk query transaksi terbuka yang berjalan pada database utama. Lihat contoh berikut ini. 

   ```
   CREATE PUBLIC DATABASE LINK AWSDMS_DBLINK 
      CONNECT TO DMS_USER IDENTIFIED BY DMS_USER_PASSWORD
      USING '(DESCRIPTION=
               (ADDRESS=(PROTOCOL=TCP)(HOST=PRIMARY_HOST_NAME_OR_IP)(PORT=PORT))
               (CONNECT_DATA=(SERVICE_NAME=SID))
             )';
   ```

1. Verifikasi koneksi ke link database menggunakan `DMS_USER` dibuat, seperti yang ditunjukkan pada contoh berikut.

   ```
   select 1 from dual@AWSDMS_DBLINK
   ```

### Mempersiapkan database sumber yang dikelola sendiri Oracle untuk CDC menggunakan AWS DMS
<a name="CHAP_Source.Oracle.Self-Managed.Configuration"></a>

Siapkan basis data Oracle yang dikelola sendiri sebagai sumber untuk menjalankan tugas CDC dengan melakukan hal berikut: 
+ [Memverifikasi yang AWS DMS mendukung versi basis data sumber](#CHAP_Source.Oracle.Self-Managed.Configuration.DbVersion).
+ [Memastikan bahwa mode ARCHELOG aktif](#CHAP_Source.Oracle.Self-Managed.Configuration.ArchiveLogMode).
+ [Mengatur supplemental logging](#CHAP_Source.Oracle.Self-Managed.Configuration.SupplementalLogging).

#### Memverifikasi yang AWS DMS mendukung versi basis data sumber
<a name="CHAP_Source.Oracle.Self-Managed.Configuration.DbVersion"></a>

Menjalankan kueri seperti berikut untuk melakukan verifikasi bahwa versi yang digunakan saat ini dari basis data sumber Oracle didukung oleh AWS DMS.

```
SELECT name, value, description FROM v$parameter WHERE name = 'compatible';
```

Di sini, `name`, `value`, dan `description` adalah kolom di suatu tempat di basis data yang sedang dijalankan kueri berdasarkan nilai `name`. Jika kueri ini berjalan tanpa kesalahan, AWS DMS mendukung versi database saat ini dan Anda dapat melanjutkan migrasi. Jika kueri menimbulkan kesalahan, AWS DMS tidak mendukung versi database saat ini. Untuk melanjutkan migrasi, pertama-tama konversikan database Oracle ke versi yang didukung oleh AWS DMS.

#### Memastikan bahwa mode ARCHELOG aktif
<a name="CHAP_Source.Oracle.Self-Managed.Configuration.ArchiveLogMode"></a>

Anda dapat menjalankan Oracle dalam dua mode yang berbeda: mode `ARCHIVELOG` dan mode `NOARCHIVELOG`. Untuk menjalankan tugas CDC, jalankan basis data di mode `ARCHIVELOG`. Untuk mengetahui apakah database dalam `ARCHIVELOG` mode, jalankan query berikut.

```
SQL> SELECT log_mode FROM v$database;
```

Jika `NOARCHIVELOG` mode dikembalikan, atur database `ARCHIVELOG` sesuai instruksi Oracle. 

#### Mengatur supplemental logging
<a name="CHAP_Source.Oracle.Self-Managed.Configuration.SupplementalLogging"></a>

Untuk menangkap perubahan yang sedang berlangsung, Anda AWS DMS mengharuskan Anda mengaktifkan logging tambahan minimal pada database sumber Oracle Anda. Selain itu, Anda perlu mengaktifkan supplemental logging pada setiap tabel yang direplikasi pada basis data.

Secara default, AWS DMS menambahkan logging `PRIMARY KEY` tambahan pada semua tabel yang direplikasi. AWS DMS Untuk memungkinkan menambahkan logging `PRIMARY KEY` tambahan, berikan hak istimewa berikut untuk setiap tabel yang direplikasi.

```
ALTER on any-replicated-table;
```

Anda dapat menonaktifkan logging `PRIMARY KEY` tambahan default yang ditambahkan dengan AWS DMS menggunakan atribut koneksi tambahan. `addSupplementalLogging` Untuk informasi selengkapnya, lihat [Pengaturan titik akhir saat menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.ConnectionAttrib).

Pastikan untuk mengaktifkan logging tambahan jika tugas replikasi Anda memperbarui tabel menggunakan `WHERE` klausa yang tidak mereferensikan kolom kunci utama.

**Untuk mengatur supplemental logging secara manual**

1. Menjalankan kueri berikut untuk melakukan verifikasi jika supplemental logging sudah diaktifkan untuk basis data.

   ```
   SELECT supplemental_log_data_min FROM v$database;
   ```

   Jika hasil yang dikembalikan adalah `YES` atau `IMPLICIT`, supplemental logging diaktifkan untuk basis data.

   Jika tidak, aktifkan supplemental logging untuk basis data dengan menjalankan perintah berikut.

   ```
   ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
   ```

1. Pastikan bahwa supplemental logging yang diperlukan ditambahkan untuk setiap tabel yang direplikasi.

   Pertimbangkan hal berikut:
   + Jika supplemental logging `ALL COLUMNS` ditambahkan ke tabel, Anda tidak perlu menambah logging lagi.
   + Jika kunci primer ada, tambahkan supplemental logging untuk kunci primer tersebut. Anda dapat melakukannya baik dengan menggunakan format untuk menambahkan supplemental logging pada kunci primer itu sendiri, atau dengan menambahkan supplemental logging pada kolom kunci primer pada basis data.

     ```
     ALTER TABLE Tablename ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
     ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
     ```
   + Jika tidak ada kunci primer dan tabel memiliki indeks unik tunggal, tambahkan semua kolum indeks unik pada supplemental log.

     ```
     ALTER TABLE TableName ADD SUPPLEMENTAL LOG GROUP LogGroupName (UniqueIndexColumn1[, UniqueIndexColumn2] ...) ALWAYS;
     ```

     Menggunakan `SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS` tidak menambahkan kolom indeks unik ke log.
   + Jika tidak ada kunci primer dan tabel memiliki beberapa indeks unik, AWS DMS pilih indeks unik pertama dalam daftar naik yang diurutkan menurut abjad. Anda perlu menambahkan supplemental logging pada kolom indeks yang dipilih seperti pada item sebelumnya.

     Menggunakan `SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS` tidak menambahkan kolom indeks unik ke log.
   + Jika tidak ada kunci primer ada dan tidak ada indeks unik, tambahkan supplemental logging pada semua kolom.

     ```
     ALTER TABLE TableName ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
     ```

     Dalam beberapa kasus, kunci primer tabel atau indeks unik target berbeda dari kunci primer tabel atau indeks unik sumber. Dalam kasus tersebut, tambahkan supplemental logging secara manual pada kolom tabel sumber yang membentuk kunci primer tabel atau indeks unik target.

     Dan jika Anda mengubah kunci primer tabel target, tambahkan supplemental logging pada kolum indeks unik target, bukan kolom kunci primer atau indeks unik sumber.

Jika filter atau transformasi didefinisikan untuk tabel, Anda mungkin perlu mengaktifkan logging tambahan.

Pertimbangkan hal berikut:
+ Jika supplemental logging `ALL COLUMNS` ditambahkan pada tabel, Anda tidak perlu menambahkan logging lagi.
+ Jika tabel memiliki indeks unik atau kunci primer, tambahkan tambahan supplemental logging pada setiap kolom yang terlibat dalam filter atau transformasi. Namun, lakukan hal tersebut hanya jika kolom-kolom itu berbeda dari kolom kunci primer atau indeks unik.
+ Jika transformasi hanya mencakup satu kolom, jangan tambahkan kolom ini ke grup supplemental logging. Misalnya, untuk transformasi `A+B`, tambahkan supplemental logging pada kolom `A` dan kolom `B`. Namun, untuk transformasi `substring(A,10)` jangan tambahkan supplemental logging di kolom `A`.
+ Untuk mengatur supplemental logging pada kolom kunci primer atau indeks unik kolom dan kolom lain yang disaring atau diubah, Anda dapat mengatur supplemental logging `USER_LOG_GROUP`. Tambahkan logging ini pada kolom kunci primer atau indeks unik dan kolom tertentu lainnya yang disaring atau diubah.

  Misalnya, untuk mereplikasi tabel bernama `TEST.LOGGING` dengan kunci primer `ID` dan filter oleh kolom `NAME`, Anda dapat menjalankan perintah yang mirip dengan berikut ini untuk membuat grup log supplemental logging.

  ```
  ALTER TABLE TEST.LOGGING ADD SUPPLEMENTAL LOG GROUP TEST_LOG_GROUP (ID, NAME) ALWAYS;
  ```

### Hak istimewa akun diperlukan saat menggunakan Oracle LogMiner untuk mengakses log redo
<a name="CHAP_Source.Oracle.Self-Managed.LogMinerPrivileges"></a>

Untuk mengakses log redo menggunakan Oracle LogMiner, berikan hak istimewa berikut kepada pengguna Oracle yang ditentukan dalam pengaturan koneksi endpoint Oracle.

```
GRANT EXECUTE on DBMS_LOGMNR to dms_user;
GRANT SELECT on V_$LOGMNR_LOGS to dms_user;
GRANT SELECT on V_$LOGMNR_CONTENTS to dms_user;
GRANT LOGMINING to dms_user; -– Required only if the Oracle version is 12c or higher.
```

### Hak istimewa akun diperlukan saat menggunakan AWS DMS Binary Reader untuk mengakses redo log
<a name="CHAP_Source.Oracle.Self-Managed.BinaryReaderPrivileges"></a>

Untuk mengakses log redo menggunakan AWS DMS Binary Reader, berikan hak istimewa berikut kepada pengguna Oracle yang ditentukan dalam pengaturan koneksi endpoint Oracle.

```
GRANT SELECT on v_$transportable_platform to dms_user;   -– Grant this privilege if the redo logs are stored in Oracle Automatic Storage Management (ASM) and AWS DMS accesses them from ASM.
GRANT CREATE ANY DIRECTORY to dms_user;                  -– Grant this privilege to allow AWS DMS to use Oracle BFILE read file access in certain cases. This access is required when the replication instance does not have file-level access to the redo logs and the redo logs are on non-ASM storage.
GRANT EXECUTE on DBMS_FILE_TRANSFER to dms_user;         -– Grant this privilege to copy the redo log files to a temporary folder using the CopyToTempFolder method.
GRANT EXECUTE on DBMS_FILE_GROUP to dms_user;
```

Binary Reader bekerja dengan fitur file Oracle yang mencakup direktori Oracle. Setiap objek direktori Oracle termasuk nama folder yang berisi file log redo untuk memproses. Direktori Oracle ini tidak diwakili pada tingkat sistem file. Sebaliknya, mereka adalah direktori logis yang dibuat pada tingkat basis data Oracle. Anda dapat melihatnya di gambaran `ALL_DIRECTORIES` Oracle.

Jika Anda AWS DMS ingin membuat direktori Oracle ini, berikan `CREATE ANY DIRECTORY` hak istimewa yang ditentukan sebelumnya. AWS DMS membuat nama direktori dengan `DMS_` awalan. Jika Anda tidak memberikan `CREATE ANY DIRECTORY` hak istimewa, buatlah direktori yang sesuai secara manual. Dalam beberapa kasus ketika Anda membuat direktori Oracle secara manual, pengguna Oracle yang ditentukan dalam titik akhir sumber Oracle bukanlah pengguna yang membuat direktori ini. Dalam kasus ini, berikan juga hak istimewa kepada `READ on DIRECTORY`.

**catatan**  
AWS DMS CDC tidak mendukung Active Dataguard Standby yang tidak dikonfigurasi untuk menggunakan layanan transportasi redo otomatis.

Dalam beberapa kasus, Anda mungkin menggunakan Oracle Managed Files (OMF) untuk menyimpan log. Atau titik akhir sumber Anda ada di ADG dan dengan demikian Anda tidak dapat memberikan hak istimewa BUAT DIREKTORI APAPUN. Dalam kasus ini, buat direktori secara manual dengan semua lokasi log yang mungkin sebelum memulai tugas AWS DMS replikasi. Jika AWS DMS tidak menemukan direktori precreated yang diharapkan, tugas berhenti. Juga, AWS DMS tidak menghapus entri yang telah dibuat dalam `ALL_DIRECTORIES` tampilan, jadi hapus secara manual.

### Hak istimewa akun tambahan yang diperlukan saat menggunakan Binary Reader dengan Oracle ASM
<a name="CHAP_Source.Oracle.Self-Managed.ASMBinaryPrivileges"></a>

Untuk mengakses log redo pada Automatic Storage Management (ASM) menggunakan Binary Reader, berikan hak istimewa berikut untuk pengguna Oracle yang ditentukan pada pengaturan sambungan titik akhir Oracle.

```
SELECT ON v_$transportable_platform
SYSASM -– To access the ASM account with Oracle 11g Release 2 (version 11.2.0.2) and higher, grant the Oracle endpoint user the SYSASM privilege. For older supported Oracle versions, it's typically sufficient to grant the Oracle endpoint user the SYSDBA privilege.
```

Anda dapat melakukan validasi akses akun ASM dengan membuka prompt perintah dan meminta salah satu pernyataan berikut, tergantung pada versi Oracle Anda sebagaimana ditentukan sebelumnya.

Jika Anda membutuhkan hak istimewa `SYSDBA`, gunakan berikut ini.

```
sqlplus asmuser/asmpassword@+asmserver as sysdba
```

Jika Anda membutuhkan hak istimewa`SYSASM`, gunakan berikut ini. 

```
sqlplus asmuser/asmpassword@+asmserver as sysasm
```

### Menggunakan Oracle Standby yang dikelola sendiri sebagai sumber dengan Binary Reader untuk CDC di AWS DMS
<a name="CHAP_Source.Oracle.Self-Managed.BinaryStandby"></a>

Untuk mengonfigurasi instans Oracle Standby sebagai sumber ketika menggunakan Binary Reader untuk CDC, mulai dengan prasyarat berikut:
+ AWS DMS saat ini hanya mendukung Oracle Active Data Guard Standby.
+ Pastikan bahwa konfigurasi Oracle Data Guard menggunakan:
  + Pengulangan layanan transportasi untuk transfer otomatis data pengulangan.
  + Terapkan layanan untuk secara otomatis menerapkan pengulangan ke basis data standby.

Untuk mengonfirmasi persyaratan tersebut terpenuhi, jalankan kueri berikut.

```
SQL> select open_mode, database_role from v$database;
```

Dari output kueri itu, konfirmasikan bahwa database siaga dibuka dalam mode READ ONLY dan redo diterapkan secara otomatis. Contoh:

```
OPEN_MODE             DATABASE_ROLE
--------------------  ----------------
READ ONLY WITH APPLY  PHYSICAL STANDBY
```

**Untuk mengonfigurasi instans Oracle Standby sebagai sumber ketika menggunakan Binary Reader untuk CDC**

1. Berikan hak istimewa tambahan yang diperlukan untuk mengakses berkas log standby.

   ```
   GRANT SELECT ON v_$standby_log TO dms_user;
   ```

1. Buat titik akhir sumber untuk Oracle Standby dengan menggunakan Konsol Manajemen AWS atau AWS CLI. Saat membuat titik akhir, tentukan atribut sambungan tambahan berikut.

   ```
   useLogminerReader=N;useBfile=Y;
   ```
**catatan**  
Di AWS DMS, Anda dapat menggunakan atribut koneksi tambahan untuk menentukan apakah Anda ingin bermigrasi dari log arsip alih-alih log pengulangan. Untuk informasi selengkapnya, lihat [Pengaturan titik akhir saat menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.ConnectionAttrib).

1. Konfigurasikan tujuan log yang diarsipkan.

   Pembaca biner DMS untuk sumber Oracle tanpa ASM menggunakan Direktori Oracle untuk mengakses log redo yang diarsipkan. Jika database Anda dikonfigurasi untuk menggunakan Fast Recovery Area (FRA) sebagai tujuan log arsip, lokasi file redo arsip tidak konstan. Setiap hari redo log yang diarsipkan dihasilkan menghasilkan direktori baru yang dibuat di FRA, menggunakan format nama direktori YYYY\$1MM\$1DD. Contoh: 

   ```
   DB_RECOVERY_FILE_DEST/SID/archivelog/YYYY_MM_DD
   ```

   Ketika DMS membutuhkan akses ke file redo yang diarsipkan di direktori FRA yang baru dibuat dan basis data baca-tulis utama digunakan sebagai sumber, DMS membuat direktori Oracle baru atau menggantikan direktori Oracle yang ada, sebagai berikut. 

   ```
   CREATE OR REPLACE DIRECTORY dmsrep_taskid AS ‘DB_RECOVERY_FILE_DEST/SID/archivelog/YYYY_MM_DD’;
   ```

   Ketika database siaga digunakan sebagai sumber, DMS tidak dapat membuat atau mengganti direktori Oracle karena database dalam mode read-only. Namun, Anda dapat memilih untuk melakukan salah satu langkah tambahan ini: 

   1. Ubah `log_archive_dest_id_1` untuk menggunakan jalur aktual alih-alih FRA dalam konfigurasi sedemikian rupa sehingga Oracle tidak akan membuat subdirektori harian:

      ```
      ALTER SYSTEM SET log_archive_dest_1=’LOCATION=full directory path’
      ```

      Kemudian, buat objek direktori Oracle yang akan digunakan oleh DMS:

      ```
      CREATE OR REPLACE DIRECTORY dms_archived_logs AS ‘full directory path’;
      ```

   1. Buat tujuan log arsip tambahan dan objek direktori Oracle yang menunjuk ke tujuan itu. Contoh:

      ```
      ALTER SYSTEM SET log_archive_dest_3=’LOCATION=full directory path’; 
      CREATE DIRECTORY dms_archived_log AS ‘full directory path’;
      ```

      Kemudian tambahkan atribut koneksi tambahan ke titik akhir sumber tugas:

      ```
      archivedLogDestId=3
      ```

   1. Secara manual membuat objek direktori Oracle untuk digunakan oleh DMS.

      ```
      CREATE DIRECTORY dms_archived_log_20210301 AS ‘DB_RECOVERY_FILE_DEST/SID/archivelog/2021_03_01’;
      CREATE DIRECTORY dms_archived_log_20210302 AS ‘DB_RECOVERY_FILE_DEST>/SID>/archivelog/2021_03_02’; 
      ...
      ```

   1. Buat pekerjaan penjadwal Oracle yang berjalan setiap hari dan membuat direktori yang diperlukan.

1. Konfigurasikan tujuan log online. 

   Buat direktori Oracle yang menunjuk ke direktori OS dengan log redo siaga:

   ```
   CREATE OR REPLACE DIRECTORY STANDBY_REDO_DIR AS '<full directory path>';
   GRANT READ ON DIRECTORY STANDBY_REDO_DIR TO <dms_user>;
   ```

### Menggunakan database yang dikelola pengguna di Oracle Cloud Infrastructure (OCI) sebagai sumber untuk CDC AWS DMS
<a name="CHAP_Source.Oracle.Self-Managed.OCI"></a>

Database yang dikelola pengguna adalah database yang Anda konfigurasikan dan kontrol, seperti database Oracle yang dibuat pada mesin virtual (VM), bare metal, atau server Exadata. Atau, database yang Anda konfigurasikan dan kontrol yang berjalan pada infrastruktur khusus, seperti Oracle Cloud Infrastructure (OCI). Informasi berikut menjelaskan hak istimewa dan konfigurasi yang Anda butuhkan saat menggunakan database yang dikelola pengguna Oracle di OCI sebagai sumber untuk pengambilan data perubahan (CDC) di. AWS DMS

**Untuk mengonfigurasi database Oracle yang dikelola pengguna yang dihosting OCI sebagai sumber untuk pengambilan data perubahan**

1. Berikan hak istimewa akun pengguna yang diperlukan untuk database sumber Oracle yang dikelola pengguna di OCI. Untuk informasi selengkapnya, lihat [Hak istimewa akun untuk titik akhir sumber Oracle yang dikelola sendiri](#CHAP_Source.Oracle.Self-Managed.Privileges).

1. Berikan hak istimewa akun yang diperlukan saat menggunakan Binary Reader untuk mengakses log redo. Untuk informasi selengkapnya, lihat [Hak istimewa akun yang diperlukan saat menggunakan Pembaca Biner](#CHAP_Source.Oracle.Self-Managed.BinaryReaderPrivileges).

1. Tambahkan hak istimewa akun yang diperlukan saat menggunakan Binary Reader dengan Oracle Automatic Storage Management (ASM). Untuk informasi selengkapnya, lihat [Hak istimewa akun tambahan yang diperlukan saat menggunakan Binary Reader dengan Oracle ASM](#CHAP_Source.Oracle.Self-Managed.ASMBinaryPrivileges).

1. Siapkan penebangan tambahan. Untuk informasi selengkapnya, lihat [Menyiapkan pencatatan tambahan](#CHAP_Source.Oracle.Self-Managed.Configuration.SupplementalLogging).

1. Set-up enkripsi TDE. Untuk informasi selengkapnya, lihat [Metode enkripsi saat menggunakan database Oracle sebagai titik akhir sumber](#CHAP_Source.Oracle.Encryption).

Keterbatasan berikut berlaku saat mereplikasi data dari database sumber Oracle di Oracle Cloud Infrastructure (OCI).

**Batasan**
+ DMS tidak mendukung penggunaan Oracle LogMiner untuk mengakses log redo.
+ DMS tidak mendukung Autonomous DB.

## Bekerja dengan database Oracle yang AWS dikelola sebagai sumber AWS DMS
<a name="CHAP_Source.Oracle.Amazon-Managed"></a>

Database yang AWS dikelola adalah database yang ada di layanan Amazon seperti Amazon RDS, Amazon Aurora, atau Amazon S3. Berikut ini, Anda dapat menemukan hak istimewa dan konfigurasi yang perlu Anda atur saat menggunakan database Oracle AWS-managed. AWS DMS

### Hak istimewa akun pengguna diperlukan pada sumber Oracle AWS yang dikelola untuk AWS DMS
<a name="CHAP_Source.Oracle.Amazon-Managed.Privileges"></a>

Berikan hak istimewa berikut kepada akun pengguna Oracle yang ditentukan dalam definisi titik akhir sumber Oracle.

**penting**  
Untuk semua nilai parameter seperti `dms_user` dan `any-replicated-table`, Oracle mengasumsikan nilai adalah semua huruf besar kecuali jika Anda menentukan nilai dengan pengidentifikasi kepekaan kapital. Misalnya, anggaplah Anda membuat nilai `dms_user` tanpa menggunakan tanda petik, seperti dalam `CREATE USER myuser` atau `CREATE USER MYUSER`. Dalam hal ini, Oracle mengidentifikasi dan menyimpan nilai dalam huruf besar semua (`MYUSER`). Jika Anda menggunakan tanda petik, seperti dalam `CREATE USER "MyUser"` atau `CREATE USER 'MyUser'`, Oracle mengidentifikasi dan menyimpan nilai dengan kepekaan kapital yang Anda tentukan (`MyUser`).

```
GRANT CREATE SESSION to dms_user;
GRANT SELECT ANY TRANSACTION to dms_user;
GRANT SELECT on DBA_TABLESPACES to dms_user;
GRANT SELECT ON any-replicated-table to dms_user;
GRANT EXECUTE on rdsadmin.rdsadmin_util to dms_user;
 -- For Oracle 12c or higher:
GRANT LOGMINING to dms_user; – Required only if the Oracle version is 12c or higher.
```

Selain itu, hiberikan izin `SELECT` dan `EXECUTE` pada objek `SYS` menggunakan prosedur Amazon RDS `rdsadmin.rdsadmin_util.grant_sys_object` seperti yang telah ditunjukkan. Untuk informasi selengkapnya, lihat [Memberikan hak istimewa PILIH atau JALANKAN pada objek SYS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html#Appendix.Oracle.CommonDBATasks.TransferPrivileges).

```
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_VIEWS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_PARTITIONS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_INDEXES', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_OBJECTS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TABLES', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_USERS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CATALOG', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CONSTRAINTS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CONS_COLUMNS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_COLS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_IND_COLUMNS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_LOG_GROUPS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOG', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGFILE', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$THREAD', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$PARAMETER', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$NLS_PARAMETERS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TIMEZONE_NAMES', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TRANSACTION', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$CONTAINERS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('OBJ$', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_ENCRYPTED_COLUMNS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','dms_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR', 'dms_user', 'EXECUTE');

-- (as of Oracle versions 12.1 and higher)
exec rdsadmin.rdsadmin_util.grant_sys_object('REGISTRY$SQLPATCH', 'dms_user', 'SELECT');

-- (for Amazon RDS Active Dataguard Standby (ADG))
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$STANDBY_LOG', 'dms_user', 'SELECT'); 

-- (for transparent data encryption (TDE))

exec rdsadmin.rdsadmin_util.grant_sys_object('ENC$', 'dms_user', 'SELECT'); 
               
-- (for validation with LOB columns)
exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_CRYPTO', 'dms_user', 'EXECUTE');
                    
-- (for binary reader)
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_DIRECTORIES','dms_user','SELECT'); 
                    
-- Required when the source database is Oracle Data guard, and Oracle Standby is used in the latest release of DMS version 3.4.6, version 3.4.7, and higher.

exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATAGUARD_STATS', 'dms_user', 'SELECT');
```

Untuk informasi selengkapnya tentang penggunaan Amazon RDS Active Dataguard Standby (ADG) dengan AWS DMS , lihat [Menggunakan Amazon RDS Oracle Standby (baca replika) sebagai sumber dengan Binary Reader untuk CDC di AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.StandBy).

Untuk informasi lebih lanjut tentang menggunakan Oracle TDE dengan AWS DMS, lihat. [Metode enkripsi yang didukung untuk menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.Encryption)

#### Prasyarat untuk menangani transaksi terbuka untuk Oracle Standby
<a name="CHAP_Source.Oracle.Amazon-Managed.Privileges.Standby"></a>

Saat menggunakan AWS DMS versi 3.4.6 dan yang lebih tinggi, lakukan langkah-langkah berikut untuk menangani transaksi terbuka untuk Oracle Standby. 

1. Buat link database bernama, `AWSDMS_DBLINK` pada database utama. `DMS_USER`akan menggunakan link database untuk terhubung ke database utama. Perhatikan bahwa link database dijalankan dari instance standby untuk query transaksi terbuka yang berjalan pada database utama. Lihat contoh berikut ini. 

   ```
   CREATE PUBLIC DATABASE LINK AWSDMS_DBLINK 
      CONNECT TO DMS_USER IDENTIFIED BY DMS_USER_PASSWORD
      USING '(DESCRIPTION=
               (ADDRESS=(PROTOCOL=TCP)(HOST=PRIMARY_HOST_NAME_OR_IP)(PORT=PORT))
               (CONNECT_DATA=(SERVICE_NAME=SID))
             )';
   ```

1. Verifikasi koneksi ke link database menggunakan `DMS_USER` dibuat, seperti yang ditunjukkan pada contoh berikut.

   ```
   select 1 from dual@AWSDMS_DBLINK
   ```

### Mengkonfigurasi sumber AWS Oracle yang dikelola untuk AWS DMS
<a name="CHAP_Source.Oracle.Amazon-Managed.Configuration"></a>

Sebelum menggunakan database Oracle yang AWS dikelola sebagai sumber AWS DMS, lakukan tugas-tugas berikut untuk database Oracle:
+ Aktifkan pencadangan otomatis *Untuk informasi selengkapnya tentang mengaktifkan pencadangan otomatis, lihat [Mengaktifkan pencadangan otomatis](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.Enabling) di Panduan Pengguna Amazon RDS.*
+ Siapkan supplemental logging
+ Siapkan pengarsipan. Mengarsipkan log redo untuk instans Amazon RDS for Oracle DB AWS DMS memungkinkan untuk mengambil informasi log menggunakan Oracle atau Binary Reader. LogMiner 

**Mengatur pengarsipan**

1. Jalankan perintah `rdsadmin.rdsadmin_util.set_configuration` untuk mengatur pengarsipan.

   Misalnya, untuk mempertahankan log redo diarsipkan selama 24 jam, jalankan perintah berikut.

   ```
   exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24);
   commit;
   ```
**catatan**  
Fungsi commit diperlukan agar perubahan dapat berpengaruh.

1. Pastikan penyimpanan Anda memiliki cukup ruang untuk log redo yang diarsipkan selama periode penyimpanan yang ditentukan. Misalnya, jika periode penyimpanan Anda adalah 24 jam, hitung ukuran total log redo yang diarsipkan yang terakumulasi selama durasi jam umumnya untuk pemrosesan transaksi dan kalikan totalnya dengan 24. Bandingkan total 24 jam yang dihitung ini dengan ruang penyimpanan yang tersedia dan tentukan apakah Anda memiliki cukup ruang penyimpanan untuk menangani pemrosesan transaksi 24 jam penuh.

**Mengatur supplemental logging**

1. Jalankan perintah berikut untuk mengaktifkan supplemental logging pada tingkat basis data.

   ```
   exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');
   ```

1. Jalankan perintah berikut untuk mengaktifkan supplemental logging kunci primer.

   ```
   exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','PRIMARY KEY');
   ```

1. (Opsional) Aktifkan supplemental logging tingkat kunci pada tingkat tabel.

   Basis data sumber Anda menimbulkan sedikit overhead ketika supplemental logging tingkat kunci diaktifkan. Oleh karena itu, jika Anda memigrasikan hanya subset dari tabel Anda, Anda mungkin ingin mengaktifkan tingkat kunci supplemental logging pada tingkat tabel. Untuk mengaktifkan supplemental logging tingkat kunci pada tingkat tabel, jalankan perintah berikut.

   ```
   alter table table_name add supplemental log data (PRIMARY KEY) columns;
   ```

### Mengkonfigurasi tugas CDC untuk menggunakan Binary Reader dengan RDS untuk sumber Oracle AWS DMS
<a name="CHAP_Source.Oracle.Amazon-Managed.CDC"></a>

Anda dapat mengonfigurasi AWS DMS untuk mengakses sumber Amazon RDS for Oracle instance redo log menggunakan Binary Reader untuk CDC. 

**catatan**  
Untuk menggunakan Oracle LogMiner, hak istimewa akun pengguna minimum yang diperlukan sudah cukup. Untuk informasi selengkapnya, lihat [Hak istimewa akun pengguna diperlukan pada sumber Oracle AWS yang dikelola untuk AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.Privileges).

Untuk menggunakan AWS DMS Binary Reader, tentukan pengaturan tambahan dan atribut koneksi tambahan untuk titik akhir sumber Oracle, tergantung pada versi Anda AWS DMS .

Dukungan Binary Reader tersedia pada versi Amazon RDS for Oracle berikut ini:
+ Oracle 11.2 - Versi 11.2.0.4V11 dan lebih tinggi
+ Oracle 12.1 - Versi 12.1.0.2.V7 dan lebih tinggi
+ Oracle 12.2 - Semua versi
+ Oracle 18.0 - Semua versi
+ Oracle 19.0 - Semua versi

**Mengonfigurasi CDC menggunakan Binary Reader**

1. Masuk ke basis data sumber Amazon RDS for Oracle Anda sebagai pengguna utama dan jalankan prosedur yang tersimpan berikut untuk membuat direktori tingkat server.

   ```
   exec rdsadmin.rdsadmin_master_util.create_archivelog_dir;
   exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;
   ```

1. Berikan hak istimewa berikut kepada akun pengguna Oracle yang digunakan untuk mengakses titik akhir sumber Oracle.

   ```
   GRANT READ ON DIRECTORY ONLINELOG_DIR TO dms_user;
   GRANT READ ON DIRECTORY ARCHIVELOG_DIR TO dms_user;
   ```

1. Atur atribut sambungan tambahan berikut pada titik akhir sumber Oracle Amazon RDS:
   + Untuk RDS Oracle versi 11.2 dan 12.1, atur berikut ini.

     ```
     useLogminerReader=N;useBfile=Y;accessAlternateDirectly=false;useAlternateFolderForOnline=true;
     oraclePathPrefix=/rdsdbdata/db/{$DATABASE_NAME}_A/;usePathPrefix=/rdsdbdata/log/;replacePathPrefix=true;
     ```
   + Untuk RDS Oracle versi 12.2, 18.0, dan 19.0, atur berikut ini.

     ```
     useLogminerReader=N;useBfile=Y;
     ```

**catatan**  
Pastikan tidak ada spasi putih yang mengikuti pemisah titik koma (;) untuk beberapa pengaturan atribut, misalnya `oneSetting;thenAnother`.

Untuk informasi lebih lanjut tentang mengonfigurasi tugas CDC, lihat [Konfigurasi untuk CDC pada sumber basis data Oracle](#CHAP_Source.Oracle.CDC.Configuration).

### Menggunakan Amazon RDS Oracle Standby (baca replika) sebagai sumber dengan Binary Reader untuk CDC di AWS DMS
<a name="CHAP_Source.Oracle.Amazon-Managed.StandBy"></a>

Lakukan verifikasi prasyarat berikut untuk menggunakan Amazon RDS for Oracle Standby sebagai sumber ketika menggunakan Binary Reader untuk CDC di AWS DMS:
+ Gunakan pengguna utama Oracle untuk mengatur Binary Reader.
+ Pastikan bahwa AWS DMS saat ini mendukung hanya menggunakan Oracle Active Data Guard Standby.

Setelah Anda melakukannya, gunakan prosedur berikut untuk menggunakan RDS for Oracle Standby sebagai sumber ketika menggunakan Binary Reader untuk CDC.

**Mengonfigurasi RDS for Oracle Standby sebagai sumber saat menggunakan Binary Reader untuk CDC**

1. Masuk ke RDS untuk instance utama Oracle sebagai pengguna utama.

1. Jalankan prosedur yang tersimpan berikut seperti yang didokumentasikan di panduan pengguna Amazon RDS untuk membuat direktori tingkat server.

   ```
   exec rdsadmin.rdsadmin_master_util.create_archivelog_dir;
   exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;
   ```

1. Identifikasi direktori yang dibuat pada langkah 2.

   ```
   SELECT directory_name, directory_path FROM all_directories
   WHERE directory_name LIKE ( 'ARCHIVELOG_DIR_%' )
           OR directory_name LIKE ( 'ONLINELOG_DIR_%' )
   ```

   Misalnya, kode sebelumnya menampilkan daftar direktori seperti berikut ini.  
![\[Table showing directory names and their corresponding paths for archive and online logs.\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/images/datarep-rds-server-level-directories.png)

1. Berikan hak istimewa `Read` mengenai direktori sebelumnya kepada akun pengguna Oracle yang digunakan untuk mengakses Oracle Standby.

   ```
   GRANT READ ON DIRECTORY ARCHIVELOG_DIR_A TO dms_user;
   GRANT READ ON DIRECTORY ARCHIVELOG_DIR_B TO dms_user;
   GRANT READ ON DIRECTORY ONLINELOG_DIR_A TO dms_user;
   GRANT READ ON DIRECTORY ONLINELOG_DIR_B TO dms_user;
   ```

1. Lakukan penukaran log arsip pada instans utama. Dengan melakukannya, perubahan pada `ALL_DIRECTORIES` dapat dipastikan juga dipindahkan ke Oracle Standby.

1. Jalankan kueri `ALL_DIRECTORIES` pada Oracle Standby untuk mengonfirmasi bahwa perubahan telah diterapkan.

1. Buat titik akhir sumber untuk Oracle Standby dengan menggunakan AWS DMS Management Console atau AWS Command Line Interface ().AWS CLI Sembari membuat titik akhir, tentukan atribut sambungan tambahan berikut.

   ```
   useLogminerReader=N;useBfile=Y;archivedLogDestId=1;additionalArchivedLogDestId=2
   ```

1. Setelah membuat titik akhir, gunakan **koneksi titik akhir Uji** pada halaman **Buat titik akhir** konsol atau AWS CLI `test-connection` perintah untuk memverifikasi bahwa konektivitas dibuat.

## Keterbatasan dalam menggunakan Oracle sebagai sumber AWS DMS
<a name="CHAP_Source.Oracle.Limitations"></a>

Keterbatasan berikut berlaku saat menggunakan basis data Oracle sebagai sumber untuk AWS DMS:
+ AWS DMS mendukung tipe data Oracle Extended dalam AWS DMS versi 3.5.0 dan yang lebih tinggi.
+ AWS DMS tidak mendukung nama objek yang panjang (lebih dari 30 byte).
+ AWS DMS tidak mendukung indeks berbasis fungsi.
+ Jika Anda mengelola supplemental logging dan melakukan transformasi pada salah satu kolom, pastikan bahwa supplemental logging diaktifkan untuk semua bidang dan kolom. Untuk informasi selengkapnya tentang pengaturan supplemental logging, lihat topik berikut:
  + Untuk basis data sumber Oracle yang dikelola sendiri, lihat [Mengatur supplemental logging](#CHAP_Source.Oracle.Self-Managed.Configuration.SupplementalLogging).
  + Untuk database sumber Oracle yang AWS dikelola, lihat. [Mengkonfigurasi sumber AWS Oracle yang dikelola untuk AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.Configuration)
+ AWS DMS tidak mendukung database root kontainer multi-tenant (CDB\$1ROOT). DMS mendukung PDB menggunakan Binary Reader.
+ AWS DMS tidak mendukung kendala yang ditangguhkan.
+ AWS DMS versi 3.5.3 dan di atas sepenuhnya mendukung aman. LOBs
+ AWS DMS mendukung `rename table table-name to new-table-name` sintaks untuk semua versi Oracle yang didukung 11 dan lebih tinggi. Sintaks ini tidak didukung untuk sumber basis data Oracle versi 10.
+ AWS DMS tidak mereplikasi hasil pernyataan DDL. `ALTER TABLE ADD column data_type DEFAULT default_value` Alih-alih mereplikasi `default_value` ke target, DMS menetapkan kolom baru untuk `NULL`.
+ Saat menggunakan AWS DMS versi 3.4.7 atau lebih tinggi, untuk mereplikasi perubahan yang dihasilkan dari operasi partisi atau subpartisi, lakukan hal berikut sebelum memulai tugas DMS.
  + Buat struktur tabel yang dipartisi (DDL) secara manual; 
  + Pastikan DDL sama pada sumber Oracle dan target Oracle; 
  + Mengatur atribut koneksi tambahan`enableHomogenousPartitionOps=true`.

  Untuk informasi selengkapnya tentang `enableHomogenousPartitionOps`, lihat [Pengaturan titik akhir saat menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.ConnectionAttrib). Juga, perhatikan bahwa pada tugas FULL\$1CDC, DMS tidak mereplikasi perubahan data yang ditangkap sebagai bagian dari perubahan cache. Dalam kasus penggunaan itu, buat ulang struktur tabel pada target Oracle dan muat ulang tabel yang dimaksud.

  Sebelum AWS DMS versi 3.4.7:

  DMS tidak mereplikasi perubahan data yang dihasilkan dari operasi partisi atau subpartisi (`ADD`,, `DROP``EXCHANGE`, dan). `TRUNCATE` Pembaruan tersebut dapat menyebabkan kesalahan berikut selama replikasi:
  + Untuk operasi `ADD`, pembaruan dan penghapusan data tambahan mungkin memunculkan peringatan “0 baris terpengaruh”.
  + Untuk operasi `DROP` dan `TRUNCATE`, sisipan baru mungkin memunculkan kesalahan “duplikat”.
  + Operasi `EXCHANGE` mungkin memunculkan peringatan kesalahan “0 baris terpengaruh” dan “duplikat”.

  Untuk mereplikasi perubahan yang dihasilkan dari operasi partisi atau subpartisi, load ulang tabel yang bersangkutan. Setelah menambahkan partisi kosong baru, operasi pada partisi yyang baru ditambahkan direplikasi ke target seperti biasa.
+ AWS DMS versi sebelum 3.4 tidak mendukung perubahan data pada target yang dihasilkan dari menjalankan `CREATE TABLE AS` pernyataan pada sumber. Namun, tabel baru dibuat pada target.
+ AWS DMS tidak menangkap perubahan yang dibuat oleh `DBMS_REDEFINITION` paket Oracle, misalnya metadata tabel dan bidang. `OBJECT_ID`
+ Ketika mode LOB ukuran terbatas diaktifkan, BLOB/CLOB kolom kosong pada sumber Oracle direplikasi sebagai nilai NULL. Ketika mode LOB Penuh diaktifkan, mereka direplikasi sebagai string kosong ('').
+ Saat menangkap perubahan dengan Oracle 11 LogMiner, pembaruan pada kolom CLOB dengan panjang string lebih besar dari 1982 hilang, dan target tidak diperbarui.
+ Selama pengambilan data perubahan (CDC), AWS DMS tidak mendukung pembaruan batch ke kolom numerik yang didefinisikan sebagai kunci utama.
+ AWS DMS tidak mendukung `UPDATE` perintah tertentu. Contoh berikut adalah perintah `UPDATE` yang tidak didukung.

  ```
  UPDATE TEST_TABLE SET KEY=KEY+1;
  ```

  Di sini,`TEST_TABLE` adalah nama tabel dan `KEY` adalah kolom numerik yang didefinisikan sebagai kunci primer.
+ AWS DMS tidak mendukung mode LOB penuh untuk memuat kolom LONG dan LONG RAW. Sebagai gantinya, Anda dapat menggunakan mode LOB terbatas untuk memigrasikan tipe data ini ke target Oracle. Dalam mode LOB terbatas, AWS DMS potong data apa pun menjadi 64 KB yang Anda atur ke kolom LONG atau LONG RAW yang lebih panjang dari 64 KB.
+ AWS DMS tidak mendukung mode LOB penuh untuk memuat kolom XMLTYPE. Sebagai gantinya, Anda dapat menggunakan mode LOB terbatas untuk memigrasikan kolom XMLTYPE ke target Oracle. Dalam mode LOB terbatas, DMS memotong data yang lebih besar dari variabel 'Ukuran LOB maksimum' yang ditentukan pengguna. Nilai maksimum yang disarankan untuk 'Ukuran LOB maksimum' adalah 100MB.
+ AWS DMS tidak mereplikasi tabel yang namanya mengandung apostrof.
+ AWS DMS mendukung CDC dari pandangan terwujud. Tetapi DMS tidak mendukung CDC dari pandangan lain.
+ AWS DMS tidak mendukung CDC untuk tabel terorganisir indeks dengan segmen luapan.
+ AWS DMS tidak mendukung `Drop Partition` operasi untuk tabel yang dipartisi dengan referensi dengan `enableHomogenousPartitionOps` set ke. `true`
+ Bila Anda menggunakan Oracle LogMiner untuk mengakses redo log, AWS DMS memiliki batasan berikut:
  + Hanya untuk Oracle 12, AWS DMS tidak mereplikasi perubahan apa pun pada kolom LOB.
  + AWS DMS tidak mendukung transaksi XA dalam replikasi saat menggunakan Oracle. LogMiner
  + Oracle LogMiner tidak mendukung koneksi ke database pluggable (PDB). Untuk menyambung ke PDB, akses log redo menggunakan Binary Reader.
  + Operasi SHRINK SPACE tidak didukung.
+ Bila Anda menggunakan Binary Reader, AWS DMS memiliki keterbatasan ini:
  + Itu tidak mendukung cluster tabel.
  + DMS mendukung hanya operasi `SHRINK SPACE` tingkat tabel. Level ini mencakup tabel lengkap, partisi, dan sub-partisi.
  + Itu tidak mendukung perubahan pada tabel terorganisir indeks dengan kompresi kunci.
  + Itu tidak mendukung penerapan log pengulangan online pada perangkat mentah.
  + Binary Reader mendukung TDE hanya untuk database Oracle yang dikelola sendiri karena RDS untuk Oracle tidak mendukung pengambilan kata sandi dompet untuk kunci enkripsi TDE.
+ AWS DMS tidak mendukung koneksi ke sumber Amazon RDS Oracle menggunakan proxy Oracle Automatic Storage Management (ASM).
+ AWS DMS tidak mendukung kolom virtual. 
+ AWS DMS tidak mendukung tipe `ROWID` data atau tampilan terwujud berdasarkan kolom ROWID.

  AWS DMS memiliki sebagian dukungan untuk Oracle Materialized Views. Untuk muatan penuh, DMS dapat melakukan salinan penuh Oracle Materialized View. DMS menyalin Tampilan Materialisasi sebagai tabel dasar ke sistem target dan mengabaikan kolom ROWID apa pun di Tampilan Materialisasi. Untuk replikasi berkelanjutan (CDC), DMS mencoba mereplikasi perubahan pada data Tampilan Materialisasi tetapi hasilnya mungkin tidak ideal. Secara khusus, jika Tampilan Materialisasi benar-benar disegarkan, DMS mereplikasi penghapusan individual untuk semua baris, diikuti oleh sisipan individual untuk semua baris. Itu adalah latihan yang sangat intensif sumber daya dan mungkin berkinerja buruk untuk tampilan terwujud dengan sejumlah besar baris. Untuk replikasi berkelanjutan di mana tampilan terwujud melakukan penyegaran cepat, DMS mencoba memproses dan mereplikasi perubahan data penyegaran cepat. Dalam kedua kasus, DMS melewatkan kolom ROWID apa pun dalam tampilan terwujud.
+ AWS DMS tidak memuat atau menangkap tabel sementara global.
+ Untuk target S3 yang menggunakan replikasi, aktifkan supplemental logging pada setiap kolom sehingga sumber pembaruan baris dapat menangkap setiap nilai kolom. Lihat contoh berikut: `alter table yourtablename add supplemental log data (all) columns;`.
+ Pembaruan untuk baris dengan kunci unik komposit yang berisi tidak `null` dapat direplikasi pada target.
+ AWS DMS tidak mendukung penggunaan beberapa kunci enkripsi Oracle TDE pada titik akhir sumber yang sama. Setiap titik akhir hanya dapat memiliki satu atribut untuk enkripsi TDE Nama Kunci "`securityDbEncryptionName`“, dan satu kata sandi TDE untuk kunci ini.
+ Saat mereplikasi dari Amazon RDS for Oracle, TDE hanya didukung dengan tablespace terenkripsi dan menggunakan Oracle. LogMiner
+ AWS DMS tidak mendukung beberapa operasi penggantian nama tabel secara berurutan.
+ Saat menggunakan Oracle 19.0 sebagai sumber, AWS DMS tidak mendukung fitur berikut:
  + Pengalihan DML-penjaga data
  + Tabel hibrida yang dipartisi
  + Akun Oracle khusus skema
+ AWS DMS tidak mendukung migrasi tabel atau tampilan jenis `BIN$` atau`DR$`.
+ Dimulai dengan Oracle 18.x, AWS DMS tidak mendukung pengambilan data perubahan (CDC) dari Oracle Express Edition (Oracle Database XE).
+ Saat memigrasikan data dari kolom CHAR, DMS memotong spasi tambahan apa pun. 
+ AWS DMS tidak mendukung replikasi dari wadah aplikasi.
+ AWS DMS tidak mendukung melakukan Oracle Flashback Database dan restore point, karena operasi ini mempengaruhi konsistensi file Oracle Redo Log.
+ Sebelum AWS DMS versi 3.5.3, prosedur Direct-load `INSERT` dengan opsi eksekusi paralel tidak didukung dalam kasus berikut:
  + Tabel tidak terkompresi dengan lebih dari 255 kolom
  + Ukuran baris melebihi 8K
  + Tabel Exadata HCC
  + Database berjalan di platform Big Endian
+ Tabel sumber dengan kunci primer atau unik tidak memerlukan semua pencatatan tambahan COLUMN untuk diaktifkan. Ini menciptakan lebih banyak aktivitas redo log dan dapat meningkatkan latensi DMS CDC.
+ AWS DMS tidak memigrasikan data dari kolom tak terlihat di database sumber Anda. Untuk menyertakan kolom ini dalam lingkup migrasi Anda, gunakan `ALTER TABLE` pernyataan untuk membuat kolom ini terlihat.
+ Untuk semua versi Oracle, AWS DMS tidak mereplikasi hasil `UPDATE` operasi pada `XMLTYPE` dan kolom LOB.
+ AWS DMS tidak mendukung replikasi dari tabel dengan kendala validitas temporal.
+ Jika sumber Oracle menjadi tidak tersedia selama tugas pemuatan penuh, AWS DMS mungkin menandai tugas sebagai selesai setelah beberapa upaya penyambungan ulang, meskipun migrasi data tetap tidak lengkap. Dalam skenario ini, tabel target hanya berisi catatan yang dimigrasi sebelum koneksi hilang, berpotensi menciptakan inkonsistensi data antara sumber dan sistem target. Untuk memastikan kelengkapan data, Anda harus memulai ulang tugas pemuatan penuh sepenuhnya atau memuat ulang tabel tertentu yang terpengaruh oleh gangguan koneksi.

## Dukungan SSL untuk titik akhir Oracle
<a name="CHAP_Security.SSL.Oracle"></a>

AWS DMS Endpoint Oracle mendukung SSL V3 untuk mode dan SSL. `none` `verify-ca` Untuk menggunakan SSL dengan titik akhir Oracle, unggah Oracle wallet untuk titik akhir, bukannya file sertifikat .pem. 

**Topics**
+ [Menggunakan sertifikat yang ada untuk Oracle SSL](#CHAP_Security.SSL.Oracle.Existing)
+ [Menggunakan sertifikat yang ditandatangani sendiri untuk Oracle SSL](#CHAP_Security.SSL.Oracle.SelfSigned)

### Menggunakan sertifikat yang ada untuk Oracle SSL
<a name="CHAP_Security.SSL.Oracle.Existing"></a>

Untuk menggunakan instalasi klien Oracle yang ada untuk membuat file Oracle wallet dari file sertifikat CA, lakukan langkah-langkah berikut.

**Untuk menggunakan instalasi klien oracle yang ada untuk Oracle SSL dengan AWS DMS**

1. Mengatur variabel sistem `ORACLE_HOME` ke lokasi direktori `dbhome_1`Anda dengan menjalankan perintah berikut.

   ```
   prompt>export ORACLE_HOME=/home/user/app/user/product/12.1.0/dbhome_1                        
   ```

1. Tambahkan `$ORACLE_HOME/lib` ke variabel sistem `LD_LIBRARY_PATH`.

   ```
   prompt>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib                        
   ```

1. Buat direktori untuk Oracle wallet di `$ORACLE_HOME/ssl_wallet`.

   ```
   prompt>mkdir $ORACLE_HOME/ssl_wallet
   ```

1. Tempatkan file `.pem` sertifikat CA dalam direktori `ssl_wallet`. Jika Anda menggunakan Amazon RDS, Anda dapat mengunduh file sertifikat CA root `rds-ca-2015-root.pem` yang di-host oleh Amazon RDS. Untuk informasi selengkapnya tentang mengunduh file ini, lihat [Menggunakan SSL/TLS untuk mengenkripsi sambungan ke instans DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) di *Panduan Pengguna Amazon RDS*.

1. Jika sertifikat CA Anda berisi lebih dari satu file PEM (seperti Amazon RDS global atau bundel regional), Anda harus membaginya menjadi file terpisah dan menambahkannya ke dompet Oracle menggunakan skrip bash berikut. Skrip ini membutuhkan dua input parameter: jalur ke sertifikat CA dan jalur ke folder dompet Oracle yang dibuat sebelumnya.

   ```
   #!/usr/bin/env bash
   
   certnum=$(grep -c BEGIN <(cat $1))
   
   cnt=0
   temp_cert=""
   while read line
   do
   if [ -n "$temp_cert" -a "$line" == "-----BEGIN CERTIFICATE-----" ]
   then
   cnt=$(expr $cnt + 1)
   printf "\rImporting certificate # $cnt of $certnum"
   orapki wallet add -wallet "$2" -trusted_cert -cert <(echo -n "${temp_cert}") -auto_login_only 1>/dev/null 2>/dev/null
   temp_cert=""
   fi
   temp_cert+="$line"$'\n'
   done < <(cat $1)
   
   cnt=$(expr $cnt + 1)
   printf "\rImporting certificate # $cnt of $certnum"
   orapki wallet add -wallet "$2" -trusted_cert -cert <(echo -n "${temp_cert}") -auto_login_only 1>/dev/null 2>/dev/null
   echo ""
   ```

Ketika Anda telah menyelesaikan langkah-langkah sebelumnya, Anda dapat mengimpor file wallet dengan `ImportCertificate` panggilan API dengan menentukan parameter sertifikat-wallet. Anda kemudian dapat menggunakan sertifikat wallet yang diimpor ketika Anda memilih `verify-ca` sebagai mode SSL saat membuat atau memodifikasi titik akhir Oracle Anda.

**catatan**  
 Dompet Oracle adalah file biner. AWS DMS menerima file-file ini apa adanya. 

### Menggunakan sertifikat yang ditandatangani sendiri untuk Oracle SSL
<a name="CHAP_Security.SSL.Oracle.SelfSigned"></a>

Untuk menggunakan sertifikat yang ditandatangani sendiri untuk Oracle SSL, lakukan langkah-langkah berikut, dengan asumsi kata sandi dompet Oracle. `oracle123`

**Untuk menggunakan sertifikat yang ditandatangani sendiri untuk Oracle SSL dengan AWS DMS**

1. Buat direktori yang akan Anda gunakan untuk bekerja dengan sertifikat yang ditandatangani sendiri.

   ```
   mkdir -p /u01/app/oracle/self_signed_cert
   ```

1. Ubah ke direktori yang Anda buat pada langkah sebelumnya.

   ```
   cd /u01/app/oracle/self_signed_cert
   ```

1. Buat kunci root.

   ```
   openssl genrsa -out self-rootCA.key 2048
   ```

1. Tandatangani sendiri sertifikat root menggunakan kunci root yang Anda buat pada langkah sebelumnya.

   ```
   openssl req -x509 -new -nodes -key self-rootCA.key 
           -sha256 -days 3650 -out self-rootCA.pem
   ```

   Gunakan parameter input seperti berikut ini.
   + `Country Name (2 letter code) [XX]`, misalnya: `AU`
   + `State or Province Name (full name) []`, misalnya: `NSW`
   + `Locality Name (e.g., city) [Default City]`, misalnya: `Sydney`
   + `Organization Name (e.g., company) [Default Company Ltd]`, misalnya: `AmazonWebService`
   + `Organizational Unit Name (e.g., section) []`, misalnya: `DBeng`
   + `Common Name (e.g., your name or your server's hostname) []`, misalnya: `aws`
   + `Email Address []`, misalnya: abcd.efgh@amazonwebservice.com

1. Buat direktori untuk Oracle wallet di basis data Oracle.

   ```
   mkdir -p /u01/app/oracle/wallet
   ```

1. Membuat Oracle basis data baru.

   ```
   orapki wallet create -wallet "/u01/app/oracle/wallet" -pwd oracle123 -auto_login_local
   ```

1. Tambahkan sertifikat root ke Oracle wallet.

   ```
   orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd oracle123 -trusted_cert 
   -cert /u01/app/oracle/self_signed_cert/self-rootCA.pem
   ```

1. Daftar isi dari Oracle wallet. Daftar harus mencakup sertifikat root. 

   ```
   orapki wallet display -wallet /u01/app/oracle/wallet -pwd oracle123
   ```

   Misalnya, ini mungkin ditampilkan mirip dengan yang berikut ini.

   ```
   Requested Certificates:
   User Certificates:
   Trusted Certificates:
   Subject:        CN=aws,OU=DBeng,O= AmazonWebService,L=Sydney,ST=NSW,C=AU
   ```

1. Buat Certificate Signing Request (CSR) menggunakan utilitas ORAPKI.

   ```
   orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd oracle123 
   -dn "CN=aws" -keysize 2048 -sign_alg sha256
   ```

1. Jalankan perintah berikut.

   ```
   openssl pkcs12 -in /u01/app/oracle/wallet/ewallet.p12 -nodes -out /u01/app/oracle/wallet/nonoracle_wallet.pem
   ```

   Ini memiliki output seperti berikut ini.

   ```
   Enter Import Password:
   MAC verified OK
   Warning unsupported bag type: secretBag
   ```

1. Masukan 'dms' sebagai nama umum.

   ```
   openssl req -new -key /u01/app/oracle/wallet/nonoracle_wallet.pem -out certdms.csr
   ```

   Gunakan parameter input seperti berikut ini.
   + `Country Name (2 letter code) [XX]`, misalnya: `AU`
   + `State or Province Name (full name) []`, misalnya: `NSW`
   + `Locality Name (e.g., city) [Default City]`, misalnya: `Sydney`
   + `Organization Name (e.g., company) [Default Company Ltd]`, misalnya: `AmazonWebService`
   + `Organizational Unit Name (e.g., section) []`, misalnya: `aws`
   + `Common Name (e.g., your name or your server's hostname) []`, misalnya: `aws`
   + `Email Address []`, misalnya: abcd.efgh@amazonwebservice.com

   Pastikan ini tidak sama dengan langkah 4. Anda dapat melakukan ini, misalnya, dengan mengubah Nama Unit Organisasi ke nama yang berbeda seperti yang ditunjukkan.

   Masukkan atribut tambahan berikut untuk dikirim bersama permintaan sertifikat Anda.
   + `A challenge password []`, misalnya: `oracle123`
   + `An optional company name []`, misalnya: `aws`

1. Dapatkan tanda tangan sertifikat.

   ```
   openssl req -noout -text -in certdms.csr | grep -i signature
   ```

   Kunci tanda tangan untuk posting ini adalah`sha256WithRSAEncryption`.

1. Jalankan perintah berikut untuk menghasilkan file certificate (`.crt`).

   ```
   openssl x509 -req -in certdms.csr -CA self-rootCA.pem -CAkey self-rootCA.key 
   -CAcreateserial -out certdms.crt -days 365 -sha256
   ```

   Ini menampilkan output seperti berikut ini.

   ```
   Signature ok
   subject=/C=AU/ST=NSW/L=Sydney/O=awsweb/OU=DBeng/CN=aws
   Getting CA Private Key
   ```

1. Tambahkan sertifikat ke wallet.

   ```
   orapki wallet add -wallet /u01/app/oracle/wallet -pwd oracle123 -user_cert -cert certdms.crt
   ```

1. Lihat dompetnya. Itu harus memiliki dua entri. Lihat kode berikut.

   ```
   orapki wallet display -wallet /u01/app/oracle/wallet -pwd oracle123
   ```

1. Konfigurasikan file `sqlnet.ora` (`$ORACLE_HOME/network/admin/sqlnet.ora`).

   ```
   WALLET_LOCATION =
      (SOURCE =
        (METHOD = FILE)
        (METHOD_DATA =
          (DIRECTORY = /u01/app/oracle/wallet/)
        )
      ) 
   
   SQLNET.AUTHENTICATION_SERVICES = (NONE)
   SSL_VERSION = 1.0
   SSL_CLIENT_AUTHENTICATION = FALSE
   SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA)
   ```

1. Hentikan Oracle listener.

   ```
   lsnrctl stop
   ```

1. Tambahkan entri untuk SSL di file `listener.ora` (`$ORACLE_HOME/network/admin/listener.ora`).

   ```
   SSL_CLIENT_AUTHENTICATION = FALSE
   WALLET_LOCATION =
     (SOURCE =
       (METHOD = FILE)
       (METHOD_DATA =
         (DIRECTORY = /u01/app/oracle/wallet/)
       )
     )
   
   SID_LIST_LISTENER =
    (SID_LIST =
     (SID_DESC =
      (GLOBAL_DBNAME = SID)
      (ORACLE_HOME = ORACLE_HOME)
      (SID_NAME = SID)
     )
    )
   
   LISTENER =
     (DESCRIPTION_LIST =
       (DESCRIPTION =
         (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
         (ADDRESS = (PROTOCOL = TCPS)(HOST = localhost.localdomain)(PORT = 1522))
         (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
       )
     )
   ```

1. Konfigurasikan file `tnsnames.ora` (`$ORACLE_HOME/network/admin/tnsnames.ora`).

   ```
   <SID>=
   (DESCRIPTION=
           (ADDRESS_LIST = 
                   (ADDRESS=(PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
           )
           (CONNECT_DATA =
                   (SERVER = DEDICATED)
                   (SERVICE_NAME = <SID>)
           )
   )
   
   <SID>_ssl=
   (DESCRIPTION=
           (ADDRESS_LIST = 
                   (ADDRESS=(PROTOCOL = TCPS)(HOST = localhost.localdomain)(PORT = 1522))
           )
           (CONNECT_DATA =
                   (SERVER = DEDICATED)
                   (SERVICE_NAME = <SID>)
           )
   )
   ```

1. Nyalakan kembali Oracle listener.

   ```
   lsnrctl start
   ```

1. Tampilkan status Oracle listener.

   ```
   lsnrctl status
   ```

1. Uji sambungan SSL ke basis data dari localhost menggunakan sqlplus dan entri tnsnames SSL.

   ```
   sqlplus -L ORACLE_USER@SID_ssl
   ```

1. Verifikasi bahwa Anda berhasil terhubung menggunakan SSL.

   ```
   SELECT SYS_CONTEXT('USERENV', 'network_protocol') FROM DUAL;
   
   SYS_CONTEXT('USERENV','NETWORK_PROTOCOL')
   --------------------------------------------------------------------------------
   tcps
   ```

1. Ubah direktori ke direktori dengan sertifikat yang ditandatangani sendiri.

   ```
   cd /u01/app/oracle/self_signed_cert
   ```

1. Buat dompet Oracle klien baru AWS DMS untuk digunakan.

   ```
   orapki wallet create -wallet ./ -auto_login_only
   ```

1. Tambahkan sertifikat root yang ditandatangani sendiri ke Oracle wallet.

   ```
   orapki wallet add -wallet ./ -trusted_cert -cert self-rootCA.pem -auto_login_only
   ```

1. Buat daftar isi dompet Oracle AWS DMS untuk digunakan. Daftar harus mencakup sertifikat root yang ditandatangani sendiri.

   ```
   orapki wallet display -wallet ./
   ```

   Ini memiliki output seperti berikut ini.

   ```
   Trusted Certificates:
   Subject:        CN=aws,OU=DBeng,O=AmazonWebService,L=Sydney,ST=NSW,C=AU
   ```

1. Unggah dompet Oracle yang baru saja Anda buat. AWS DMS

## Metode enkripsi yang didukung untuk menggunakan Oracle sebagai sumber AWS DMS
<a name="CHAP_Source.Oracle.Encryption"></a>

Dalam tabel berikut, Anda dapat menemukan metode enkripsi data transparan (TDE) yang AWS DMS mendukung saat bekerja dengan database sumber Oracle. 


| Metode akses log redo | Tablespace TDE | Kolom TDE | 
| --- | --- | --- | 
| Oracle LogMiner | Ya | Ya | 
| Binary Reader | Ya | Ya | 

AWS DMS mendukung Oracle TDE saat menggunakan Binary Reader, pada tingkat kolom dan tingkat tablespace. Untuk menggunakan enkripsi TDE AWS DMS, pertama-tama identifikasi lokasi dompet Oracle tempat kunci enkripsi TDE dan kata sandi TDE disimpan. Kemudian identifikasi kunci enkripsi TDE yang benar dan kata sandi untuk titik akhir sumber Oracle Anda.

**Mengidentifikasi dan menentukan kunci enkripsi dan kata sandi untuk enkripsi TDE**

1. Jalankan kueri berikut untuk menemukan enkripsi Oracle wallet pada host basis data Oracle.

   ```
   SQL> SELECT WRL_PARAMETER FROM V$ENCRYPTION_WALLET;
   
   WRL_PARAMETER
   --------------------------------------------------------------------------------
   /u01/oracle/product/12.2.0/dbhome_1/data/wallet/
   ```

   Di sini, `/u01/oracle/product/12.2.0/dbhome_1/data/wallet/` adalah lokasi wallet.

1. Dapatkan ID kunci master untuk sumber non-CDB atau CDB sebagai berikut:

   1. Untuk sumber non-CDB jalankan kueri berikut untuk mengambil ID kunci enkripsi Master:

      ```
      SQL>  select rownum, key_id, activation_time from v$encryption_keys;
      
      ROWNUM KEY_ID                                                 ACTIVATION_TIME
      ------ ------------------------------------------------------ ---------------
           1 AeKask0XZU+NvysflCYBEVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA   04-SEP-24 10.20.56.605200 PM +00:00
           2 AV7WU9uhoU8rv8daE/HNnSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA   10-AUG-21 07.52.03.966362 PM +00:00
           3 AckpoJ/f+k8xvzJ+gSuoVH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA   14-SEP-20 09.26.29.048870 PM +00:00
      ```

      Waktu aktivasi berguna jika Anda berencana untuk memulai CDC dari beberapa titik di masa lalu. Misalnya, dengan menggunakan hasil di atas, Anda dapat memulai CDC dari beberapa titik antara 10-AUG-21 07.52.03 PM dan 14-SEP-20 09.26.29 PM menggunakan Master Key ID di ROWNUM 2. Ketika tugas mencapai redo yang dihasilkan pada atau setelah 14-SEP-20 09.26.29 PM gagal, Anda harus memodifikasi titik akhir sumber, memberikan ID kunci Master di ROWNUM 3, dan kemudian melanjutkan tugas.

   1. Untuk sumber CDB DMS memerlukan kunci enkripsi CDB\$1ROOT Master. Connect ke CDB\$1ROOT dan jalankan query berikut:

      ```
      SQL> select rownum, key_id, activation_time from v$encryption_keys where con_id = 1;
      
      ROWNUM KEY_ID                                               ACTIVATION_TIME
      ------ ---------------------------------------------------- -----------------------------------
           1 Aa2E/Vwb5U+zv5hCncS5ErMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 29-AUG-24 12.51.19.699060 AM +00:00
      ```

1. Dari baris perintah, cantumkan entri wallet enkripsi pada host basis data Oracle sumber.

   ```
   $ mkstore -wrl /u01/oracle/product/12.2.0/dbhome_1/data/wallet/ -list
   Oracle Secret Store entries:
   ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   ORACLE.SECURITY.DB.ENCRYPTION.AY1mRA8OXU9Qvzo3idU4OH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   ORACLE.SECURITY.DB.ENCRYPTION.MASTERKEY
   ORACLE.SECURITY.ID.ENCRYPTION.
   ORACLE.SECURITY.KB.ENCRYPTION.
   ORACLE.SECURITY.KM.ENCRYPTION.AY1mRA8OXU9Qvzo3idU4OH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   ```

   Temukan entri yang berisi ID kunci utama yang Anda temukan di langkah 2 (`AWGDC9glSk8Xv+3bVveiVSg`). Entri ini adalah nama kunci enkripsi TDE.

1. Lihat detail entri yang Anda temukan pada langkah sebelumnya.

   ```
   $ mkstore -wrl /u01/oracle/product/12.2.0/dbhome_1/data/wallet/ -viewEntry ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   Oracle Secret Store Tool : Version 12.2.0.1.0
   Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
   Enter wallet password:
   ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA = AEMAASAASGYs0phWHfNt9J5mEMkkegGFiD4LLfQszDojgDzbfoYDEACv0x3pJC+UGD/PdtE2jLIcBQcAeHgJChQGLA==
   ```

   Masukkan kata sandi wallet untuk melihat hasilnya.

   Di sini, nilai di sebelah kanan `'='` adalah kata sandi TDE.

1. Tentukan nama kunci enkripsi TDE untuk titik akhir sumber Oracle dengan menetapkan atribut sambungan tambahan `securityDbEncryptionName`.

   ```
   securityDbEncryptionName=ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   ```

1. Berikan kata sandi TDE terkait untuk kunci ini pada konsol sebagai bagian dari nilai **Kata sandi** sumber Oracle. Gunakan urutan berikut untuk memformat nilai kata sandi yang dipisahkan dengan koma, diakhiri dengan nilai kata sandi TDE.

   ```
   Oracle_db_password,ASM_Password,AEMAASAASGYs0phWHfNt9J5mEMkkegGFiD4LLfQszDojgDzbfoYDEACv0x3pJC+UGD/PdtE2jLIcBQcAeHgJChQGLA==
   ```

   Tentukan nilai kata sandi dalam urutan ini terlepas dari konfigurasi basis data Oracle Anda. Misalnya, jika Anda menggunakan TDE tetapi basis data Oracle Anda tidak menggunakan ASM, tentukan nilai kata sandi dalam urutan yang dipisahkan koma berikut.

   ```
   Oracle_db_password,,AEMAASAASGYs0phWHfNt9J5mEMkkegGFiD4LLfQszDojgDzbfoYDEACv0x3pJC+UGD/PdtE2jLIcBQcAeHgJChQGLA==
   ```

Jika kredensil TDE yang Anda tentukan salah, tugas AWS DMS migrasi tidak akan gagal. Namun, tugas juga tidak membaca atau menerapkan perubahan replikasi yang sedang berlangsung ke database target. Setelah memulai tugas, pantau **Statistik tabel** pada laman tugas migrasi konsol untuk memastikan bahwa perubahan telah direplikasi.

Jika DBA mengubah nilai kredensial TDE untuk basis data Oracle sementara tugas berjalan, tugas akan gagal. Pesan keliru berisi nama kunci enkripsi TDE baru. Untuk menentukan nilai baru dan memulai ulang tugas, gunakan prosedur sebelumnya.

**penting**  
Anda tidak dapat memanipulasi dompet TDE yang dibuat di lokasi Oracle Automatic Storage Management (ASM) karena perintah tingkat OS seperti`cp`,, `mv``orapki`, dan `mkstore` merusak file dompet yang disimpan di lokasi ASM. Pembatasan ini khusus untuk file dompet TDE yang disimpan di lokasi ASM saja, tetapi tidak untuk file dompet TDE yang disimpan dalam direktori OS lokal.  
Untuk memanipulasi dompet TDE yang disimpan di ASM dengan perintah tingkat OS, buat keystore lokal dan gabungkan keystore ASM ke keystore lokal sebagai berikut:   
Buat keystore lokal.  

   ```
   ADMINISTER KEY MANAGEMENT create keystore file system wallet location identified by wallet password;
   ```
Gabungkan keystore ASM ke keystore lokal.  

   ```
   ADMINISTER KEY MANAGEMENT merge keystore ASM wallet location identified by wallet password into existing keystore file system wallet location identified by wallet password with backup;
   ```
Kemudian, untuk membuat daftar entri dompet enkripsi dan kata sandi TDE, jalankan langkah 3 dan 4 terhadap keystore lokal.

## Metode kompresi yang didukung untuk menggunakan Oracle sebagai sumber AWS DMS
<a name="CHAP_Source.Oracle.Compression"></a>

Dalam tabel berikut, Anda dapat menemukan metode kompresi mana yang AWS DMS mendukung saat bekerja dengan database sumber Oracle. Seperti yang ditunjukkan tabel, dukungan kompresi bergantung pada versi database Oracle Anda dan apakah DMS dikonfigurasi untuk menggunakan Oracle LogMiner untuk mengakses log redo.


| Versi | Basic | OLTP |  HCC (dari Oracle 11g R2 atau versi lebih baru)  | Lainnya | 
| --- | --- | --- | --- | --- | 
| Oracle 10 | Tidak | N/A | N/A | Tidak | 
| Oracle 11 atau yang lebih baru - Oracle LogMiner | Ya | Ya | Ya  | Ya - Metode kompresi apa pun yang didukung oleh Oracle LogMiner. | 
| Oracle 11 atau versi yang lebih baru — Binary Reader | Ya | Ya | Ya — Untuk informasi lebih lanjut, lihat catatan berikut. | Ya | 

**catatan**  
Ketika titik akhir sumber Oracle dikonfigurasi untuk menggunakan Binary Reader, tingkat Query Low metode kompresi HCC didukung untuk tugas beban penuh saja.

## Mereplikasi tabel bersarang menggunakan Oracle sebagai sumber AWS DMS
<a name="CHAP_Source.Oracle.NestedTables"></a>

AWS DMS mendukung replikasi tabel Oracle yang berisi kolom yang merupakan tabel bersarang atau tipe yang ditentukan. Untuk mengaktifkan fungsionalitas ini, tambahkan pengaturan atribut sambungan tambahan berikut ke titik akhir sumber Oracle.

```
allowSelectNestedTables=true;
```

AWS DMS membuat tabel target dari tabel bersarang Oracle sebagai tabel induk dan anak biasa pada target tanpa kendala unik. Untuk mengakses data yang benar pada target, gabungkan tabel induk dan anak. Untuk melakukannya, pertama-tama secara manual buatlah indeks nonunik pada kolom `NESTED_TABLE_ID` dalam tabel anak target. Anda kemudian dapat menggunakan kolom `NESTED_TABLE_ID`di klausul join `ON` bersama-sama dengan kolom induk yang sesuai dengan nama tabel anak. Selain itu, membuat indeks seperti itu meningkatkan kinerja ketika data tabel anak target diperbarui atau dihapus oleh AWS DMS. Sebagai contoh, lihat [Contoh gabungan untuk tabel induk dan anak pada target](#CHAP_Source.Oracle.NestedTables.JoinExample).

Kami sarankan Anda mengonfigurasi tugas agar berhenti setelah beban penuh selesai. Kemudian, buat indeks nonunik ini untuk semua tabel anak yang telah direplikasi pada target dan lanjutkan tugas.

Jika tabel bersarang yang diambil ditambahkan ke tabel induk yang ada (ditangkap atau tidak ditangkap), tangani AWS DMS dengan benar. Namun, indeks nonunik untuk tabel target yang sesuai tidak dibuat. Dalam hal ini, jika tabel anak target menjadi sangat besar, performa mungkin akan terpengaruh. Dalam kasus seperti itu, kami merekomendasikan agar Anda menghentikan tugas, membuat indeks, kemudian melanjutkan tugas.

Setelah tabel bersarang direplikasi ke target, jalankan DBA untuk menggabungkan tabel induk dengan tabel anaknya yang sesuai untuk meratakan data.

### Prasyarat untuk mereplikasi tabel bersarang Oracle sebagai sumber
<a name="CHAP_Source.Oracle.NestedTables.Prerequisites"></a>

Pastikan bahwa Anda mereplikasi tabel induk untuk semua tabel bersarang yang telah direplikasi. Sertakan tabel induk (tabel yang berisi kolom tabel bersarang) dan tabel turunan (yaitu, bersarang) dalam AWS DMS pemetaan tabel.

### Jenis tabel bersarang yang didukung Oracle sebagai sumber
<a name="CHAP_Source.Oracle.NestedTables.Types"></a>

AWS DMS mendukung jenis tabel bersarang Oracle berikut sebagai sumber:
+ Jenis data
+ Objek yang ditetapkan pengguna

### Keterbatasan AWS DMS dukungan untuk tabel bersarang Oracle sebagai sumber
<a name="CHAP_Source.Oracle.NestedTables.Limitations"></a>

AWS DMS memiliki batasan berikut dalam mendukung tabel bersarang Oracle sebagai sumber:
+ AWS DMS hanya mendukung satu tingkat sarang meja.
+ AWS DMS pemetaan tabel tidak memeriksa apakah tabel induk dan anak atau tabel dipilih untuk replikasi. Artinya, adalah memungkinan untuk memilih tabel induk tanpa anak atau tabel anak tanpa induk.

### Bagaimana AWS DMS mereplikasi tabel bersarang Oracle sebagai sumber
<a name="CHAP_Source.Oracle.NestedTables.HowReplicated"></a>

AWS DMS mereplikasi tabel induk dan bersarang ke target sebagai berikut:
+ AWS DMS membuat tabel induk identik dengan sumbernya. DMS kemudian mendefinisikan kolom bersarang di induk sebagai `RAW(16)` dan termasuk acuan ke tabel bersarang induk di kolom `NESTED_TABLE_ID`nya.
+ AWS DMS membuat tabel anak identik dengan sumber bersarang, tetapi dengan kolom tambahan bernama`NESTED_TABLE_ID`. Kolom ini memiliki jenis dan nilai yang sama dengan kolom bersarang induk yang sesuai dan memiliki arti yang sama.

### Contoh gabungan untuk tabel induk dan anak pada target
<a name="CHAP_Source.Oracle.NestedTables.JoinExample"></a>

Untuk meratakan tabel induk, jalankan gabungan antara tabel induk dan anak, seperti yang ditunjukkan dalam contoh berikut:

1. Buat `Type` tabel.

   ```
   CREATE OR REPLACE TYPE NESTED_TEST_T AS TABLE OF VARCHAR(50);
   ```

1. Buat tabel induk dengan kolom jenis `NESTED_TEST_T` sebagaimana didefinisikan sebelumnya.

   ```
   CREATE TABLE NESTED_PARENT_TEST (ID NUMBER(10,0) PRIMARY KEY, NAME NESTED_TEST_T) NESTED TABLE NAME STORE AS NAME_KEY;
   ```

1. Ratakan tabel `NESTED_PARENT_TEST` menggunakan gabungan dengan tabel anak `NAME_KEY` di mana `CHILD.NESTED_TABLE_ID` cocok dengan `PARENT.NAME`.

   ```
   SELECT … FROM NESTED_PARENT_TEST PARENT, NAME_KEY CHILD WHERE CHILD.NESTED_
   TABLE_ID = PARENT.NAME;
   ```

## Menyimpan REDO di Oracle ASM saat menggunakan Oracle sebagai sumber AWS DMS
<a name="CHAP_Source.Oracle.REDOonASM"></a>

Untuk sumber Oracle dengan generasi REDO tinggi, menyimpan REDO di Oracle ASM dapat menguntungkan kinerja, terutama dalam konfigurasi RAC karena Anda dapat mengonfigurasi DMS untuk mendistribusikan pembacaan ASM REDO di semua node ASM.

Untuk memanfaatkan konfigurasi ini, gunakan atribut `asmServer` koneksi. Misalnya, string koneksi berikut mendistribusikan pembacaan DMS REDO di 3 node ASM:

```
asmServer=(DESCRIPTION=(CONNECT_TIMEOUT=8)(ENABLE=BROKEN)(LOAD_BALANCE=ON)(FAILOVER=ON)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=asm_node1_ip_address)(PORT=asm_node1_port_number))
(ADDRESS=(PROTOCOL=tcp)(HOST=asm_node2_ip_address)(PORT=asm_node2_port_number))
(ADDRESS=(PROTOCOL=tcp)(HOST=asm_node3_ip_address)(PORT=asm_node3_port_number)))
(CONNECT_DATA=(SERVICE_NAME=+ASM)))
```

Saat menggunakan NFS untuk menyimpan Oracle REDO, penting untuk memastikan bahwa patch klien DNFS (NFS langsung) yang berlaku diterapkan, khususnya patch apa pun yang menangani bug Oracle 25224242. Untuk informasi tambahan, tinjau Publikasi Oracle berikut mengenai patch terkait klien NFS Langsung, Patch yang [Direkomendasikan untuk](https://support.oracle.com/knowledge/Oracle Cloud/1495104_1.html) Klien NFS Langsung. 

Selain itu, untuk meningkatkan kinerja baca NFS, kami sarankan Anda meningkatkan nilai `rsize` dan `wsize` masuk `fstab` untuk volume NFS, seperti yang ditunjukkan pada contoh berikut.

```
NAS_name_here:/ora_DATA1_archive /u09/oradata/DATA1 nfs rw,bg,hard,nointr,tcp,nfsvers=3,_netdev,
timeo=600,rsize=262144,wsize=262144
```

Juga, sesuaikan `tcp-max-xfer-size` nilainya sebagai berikut:

```
vserver nfs modify -vserver vserver -tcp-max-xfer-size 262144
```

## Pengaturan titik akhir saat menggunakan Oracle sebagai sumber AWS DMS
<a name="CHAP_Source.Oracle.ConnectionAttrib"></a>

Anda dapat menggunakan pengaturan endpoint untuk mengkonfigurasi database sumber Oracle Anda mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat Anda membuat titik akhir sumber menggunakan AWS DMS konsol, atau dengan menggunakan `create-endpoint` perintah di [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), dengan sintaks `--oracle-settings '{"EndpointSetting": "value", ...}'` JSON.

Tabel berikut menunjukkan pengaturan endpoint yang dapat Anda gunakan dengan Oracle sebagai sumber.


| Nama | Deskripsi | 
| --- | --- | 
| AccessAlternateDirectly |  Atur atribut ini menjadi salah untuk menggunakan Binary Reader untuk menangkap perubahan data untuk Amazon RDS for Oracle sebagai sumber. Ini memberitahu instans DMS untuk tidak mengakses log redo melalui penggantian prefiks jalur tertentu menggunakan akses file langsung. Untuk informasi selengkapnya, lihat [Mengkonfigurasi tugas CDC untuk menggunakan Binary Reader dengan RDS untuk sumber Oracle AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.CDC). Nilai default: benar  Nilai yang benar: benar/salah Contoh: `--oracle-settings '{"AccessAlternateDirectly": false}'`  | 
|  `AdditionalArchivedLogDestId`  |  Atur atribut ini dengan `ArchivedLogDestId` pada pengaturan primer-standby. Atribut ini berguna dalam peralihan ketika basis data Oracle Data Guard digunakan sebagai sumber. Dalam hal ini, AWS DMS perlu mengetahui tujuan mana untuk mendapatkan log redo arsip untuk membaca perubahan. Ini karena primer sebelumnya saat ini adalah instans Standby setelah peralihan. Meskipun AWS DMS mendukung penggunaan `RESETLOGS` opsi Oracle untuk membuka database, jangan pernah gunakan `RESETLOGS` kecuali diperlukan. Untuk informasi tambahan tentang `RESETLOGS`, lihat [Konsep Perbaikan Data RMAN](https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/rman-data-repair-concepts.html#GUID-1805CCF7-4AF2-482D-B65A-998192F89C2B) dalam *Panduan Pengguna Backup dan Pemulihan Basis Data Oracle®*. Nilai yang valid: Arsipkan Id tujuan Contoh: `--oracle-settings '{"AdditionalArchivedLogDestId": 2}'`  | 
|  `AddSupplementalLogging`  |  Atur atribut ini untuk mengatur supplemental logging tingkat tabel untuk basis data Oracle. Atribut ini memungkinkan salah satu dari berikut ini pada semua tabel yang dipilih untuk tugas migrasi, tergantung pada metadata tabel: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.Oracle.html) Nilai default: SALAH  Nilai yang valid: true/false  Contoh: `--oracle-settings '{"AddSupplementalLogging": false}'`  Jika Anda menggunakan opsi ini, Anda masih perlu mengaktifkan supplemental logging tingkat basis data seperti yang dibahas sebelumnya.    | 
|  `AllowSelectNestedTables`  |  Atur atribut ini menjadi benar untuk mengaktifkan replikasi tabel Oracle yang berisi kolom yang merupakan tabel bersarang atau jenis yang telah didefinisikan. Untuk informasi selengkapnya, lihat [Mereplikasi tabel bersarang menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.NestedTables). Nilai default: salah  Nilai yang benar: benar/salah Contoh: `--oracle-settings '{"AllowSelectNestedTables": true}'`  | 
|  `ArchivedLogDestId`  |  Menentukan ID tujuan untuk log redo diarsipkan. Nilai ini harus sama dengan angka di kolom dest\$1id dari tampilan v\$1archived\$1log. Jika Anda bekerja dengan tujuan redo log tambahan, kami sarankan Anda menggunakan `AdditionalArchivedLogDestId` atribut untuk menentukan ID tujuan tambahan. Melakukan hal ini meningkatkan performa dengan memastikan bahwa log yang benar diakses dari awal.  Nilai default: 1 Nilai yang benar: Angka  Contoh: `--oracle-settings '{"ArchivedLogDestId": 1}'`  | 
|  `ArchivedLogsOnly`  |  Saat bidang ini disetel ke Y, AWS DMS hanya mengakses log redo yang diarsipkan. Jika log redo yang diarsipkan disimpan di Oracle ASM saja, akun AWS DMS pengguna harus diberikan hak ASM.  Nilai default: N  Nilai yang valid: Y/N  Contoh: `--oracle-settings '{"ArchivedLogsOnly": Y}'`  | 
|  `asmUsePLSQLArray`(Hanya ECA)  |  Gunakan atribut koneksi tambahan (ECA) ini saat menangkap perubahan sumber dengan. BinaryReader Pengaturan ini memungkinkan DMS untuk menyangga 50 pembacaan pada tingkat ASM per utas baca tunggal sambil mengontrol jumlah utas menggunakan atribut. `parallelASMReadThreads` Ketika Anda mengatur atribut ini, pembaca AWS DMS biner menggunakan PL/SQL blok anonim untuk menangkap data redo dan mengirimkannya kembali ke contoh replikasi sebagai buffer besar. Ini mengurangi jumlah perjalanan pulang pergi ke sumbernya. Ini dapat secara signifikan meningkatkan kinerja pengambilan sumber, tetapi menghasilkan konsumsi memori PGA yang lebih tinggi pada Instans ASM. Masalah stabilitas mungkin muncul jika target memori tidak cukup. Anda dapat menggunakan rumus berikut untuk memperkirakan total penggunaan memori PGA instans ASM dengan satu tugas DMS: `number_of_redo_threads * parallelASMReadThreads * 7 MB` Nilai default: salah Nilai yang benar: benar/salah Contoh ECA: `asmUsePLSQLArray=true;`  | 
|  `ConvertTimestampWithZoneToUTC`  |  Tetapkan atribut ini `true` untuk mengonversi nilai stempel waktu dari kolom 'TIMESTAMP WITH TIME ZONE' dan 'TIMESTAMP WITH LOCAL TIME ZONE' ke UTC. Secara default nilai atribut ini adalah 'false' dan data akan direplikasi menggunakan zona waktu database sumber. Nilai default: salah Nilai yang benar: benar/salah Contoh: `--oracle-settings '{"ConvertTimestampWithZoneToUTC": true}'`  | 
|  `EnableHomogenousPartitionOps`  |  *Atur atribut ini `true` untuk mengaktifkan replikasi Oracle Partition dan SubPartition DDL Operations untuk migrasi Oracle Homogenous.* Perhatikan bahwa fitur dan peningkatan ini diperkenalkan di AWS DMS versi 3.4.7. Nilai default: salah Nilai yang benar: benar/salah Contoh: `--oracle-settings '{"EnableHomogenousPartitionOps": true}'`  | 
|  `EnableHomogenousTablespace`  |  Mengatur atribut ini untuk mengaktifkan replikasi tablespace homogen dan membuat tabel atau indeks yang ada di bawah tablespace yang sama pada target. Nilai default: salah Nilai yang benar: benar/salah Contoh: `--oracle-settings '{"EnableHomogenousTablespace": true}'`  | 
|  `EscapeCharacter`  |  Atur atribut ini ke karakter escape. Karakter escape ini memungkinkan Anda untuk membuat karakter wildcard tunggal berperilaku sebagai karakter normal dalam ekspresi pemetaan tabel. Untuk informasi selengkapnya, lihat [Wildcard dalam pemetaan tabel](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Wildcards.md). Nilai default: Null  Nilai yang valid: Karakter apa pun selain karakter wildcard Contoh: `--oracle-settings '{"EscapeCharacter": "#"}'` Anda hanya dapat menggunakan `escapeCharacter` nama tabel. Itu tidak luput dari karakter dari nama skema atau nama kolom.  | 
|  `ExposeViews`  |  Gunakan atribut ini untuk menarik data sekali dari tampilan; Anda tidak dapat menggunakannya untuk replikasi yang sedang berlangsung. Ketika Anda mengekstraksi data dari tampilan, tampilan ditampilkan sebagai tabel pada skema target. Nilai default: salah Nilai yang benar: benar/salah Contoh: `--oracle-settings '{"ExposeViews": true}'`  | 
|  `ExtraArchivedLogDestIds`  |  Menentukan IDs satu tujuan lagi untuk satu atau lebih log redo diarsipkan. Ini IDs adalah nilai kolom dest\$1id dalam tampilan v\$1archived\$1log. Gunakan pengaturan ini dengan atribut koneksi ArchivedLogDestId tambahan dalam primary-to-single pengaturan atau primary-to-multiple-standby penyiapan. Pengaturan ini berguna dalam peralihan ketika Anda menggunakan database Oracle Data Guard sebagai sumber. Dalam hal ini, AWS DMS perlu informasi tentang tujuan apa untuk mendapatkan log redo arsip dari untuk membaca perubahan. AWS DMS membutuhkan ini karena setelah peralihan primer sebelumnya adalah instance siaga. Nilai yang valid: Arsipkan Id tujuan Contoh: `--oracle-settings '{"ExtraArchivedLogDestIds": 1}'`  | 
|  `FailTasksOnLobTruncation`  |  Ketika diatur ke `true`, atribut ini menyebabkan tugas gagal jika ukuran sebenarnya dari kolom LOB lebih besar dari `LobMaxSize` yang ditentukan. Jika tugas diatur ke mode LOB terbatas dan opsi ini diatur menjadi `true`, tugas gagal dan bukannya momotong data LOB. Nilai default: salah  Nilai yang benar: Boolean  Contoh: `--oracle-settings '{"FailTasksOnLobTruncation": true}'`  | 
|  `filterTransactionsOfUser`(Hanya ECA)  |  Gunakan atribut koneksi tambahan (ECA) ini untuk memungkinkan DMS mengabaikan transaksi dari pengguna tertentu saat mereplikasi data dari Oracle saat menggunakan. LogMiner Anda dapat meneruskan nilai nama pengguna yang dipisahkan koma, tetapi harus dalam semua huruf KAPITAL. Contoh ECA: `filterTransactionsOfUser=USERNAME;`  | 
|  `NumberDataTypeScale`  |  Menentukan skala angka. Anda dapat memilih menaikkan skala hingga 38, atau Anda dapat memilih -1 untuk FLOAT, atau -2 untuk VARCHAR. Secara default, jenis data ANGKA dikonversi ke presisi 38, skala 10. Nilai default: 10  Values valid: -2 hingga 38 (-2 untuk VARCHAR, -1 untuk FLOAT) Contoh: `--oracle-settings '{"NumberDataTypeScale": 12}'`  Pilih kombinasi skala presisi, -1 (FLOAT) atau -2 (VARCHAR). DMS mendukung kombinasi skala presisi yang didukung oleh Oracle. Jika presisi 39 atau lebih, pilih -2 (VARCHAR). NumberDataTypeScale Pengaturan untuk database Oracle digunakan untuk tipe data NUMBER saja (tanpa presisi eksplisit dan definisi skala). Anda harus mencatat bahwa kehilangan presisi dapat terjadi ketika pengaturan ini tidak dikonfigurasi dengan benar.   | 
|  `OpenTransactionWindow`  |   Menyediakan jangka waktu dalam hitungan menit untuk memeriksa transaksi terbuka untuk tugas CDC saja. Saat Anda menyetel `OpenTransactionWindow` ke 1 atau lebih tinggi, DMS menggunakan `SCN_TO_TIMESTAMP` untuk mengonversi nilai SCN ke nilai stempel waktu. Karena keterbatasan Oracle Database, jika Anda menentukan SCN yang terlalu tua sebagai titik awal CDC, SCN\$1TO\$1TIMESTAMP akan gagal dengan kesalahan, dan Anda tidak dapat memulai tugas khusus CDC. `ORA-08181` Nilai default: 0  Nilai yang valid: Sebuah integer dari 0 sampai 240 Contoh: `openTransactionWindow=15;`  | 
| OraclePathPrefix | Atur atribut string ini ke nilai yang diperlukan untuk menggunakan Binary Reader untuk menangkap perubahan data untuk Amazon RDS for Oracle sebagai sumber. Nilai ini menentukan root default Oracle yang digunakan untuk mengakses log redo. Untuk informasi selengkapnya, lihat [Mengkonfigurasi tugas CDC untuk menggunakan Binary Reader dengan RDS untuk sumber Oracle AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.CDC).Nilai default: tidak ada. Nilai yang valid:/rdsdbdata/db/ORCL\$1A/ Contoh: `--oracle-settings '{"OraclePathPrefix": "/rdsdbdata/db/ORCL_A/"}'`  | 
| ParallelASMReadThreads |  Atur atribut ini untuk mengubah jumlah thread yang dikonfigurasi DMS untuk melakukan change data capture (CDC) menggunakan Oracle Automatic Storage Management (ASM). Anda dapat menentukan nilai integer antara 2 (default) dan 8 (maksimum). Gunakan atribut ini bersama-sama dengan `ReadAheadBlocks` atribut. Untuk informasi selengkapnya, lihat [Mengkonfigurasi tugas CDC untuk menggunakan Binary Reader dengan RDS untuk sumber Oracle AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.CDC). Nilai default: 2  Nilai yang valid: Integer dari 2 sampai 8 Contoh: `--oracle-settings '{"ParallelASMReadThreads": 6;}'`  | 
| ReadAheadBlocks |  Atur atribut ini untuk mengubah jumlah blok baca-depan yang dikonfigurasi DMS untuk melakukan CDC menggunakan Oracle Automatic Storage Management (ASM) dan penyimpanan NAS non-ASM. Anda dapat menentukan nilai integer antara 1000 (default) dan 2.000.000 (maksimum). Gunakan atribut ini bersama-sama dengan `ParallelASMReadThreads` atribut. Untuk informasi selengkapnya, lihat [Mengkonfigurasi tugas CDC untuk menggunakan Binary Reader dengan RDS untuk sumber Oracle AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.CDC). Nilai default: 1000  Nilai yang valid: Sebuah integer dari 1000 sampai 2.000.000 Contoh: `--oracle-settings '{"ReadAheadBlocks": 150000}'`  | 
|  `ReadTableSpaceName`  |  Ketika diatur ke `true`, atribut ini mendukung replikasi tablespace. Nilai default: salah  Nilai yang benar: Boolean  Contoh: `--oracle-settings '{"ReadTableSpaceName": true}'`  | 
| ReplacePathPrefix | Atur atribut ini menjadi true untuk menggunakan Binary Reader untuk menangkap perubahan data untuk Amazon RDS for Oracle sebagai sumber. Pengaturan ini memberitahu instans DMS untuk menggantikan root Oracle default dengan pengaturan UsePathPrefix yang ditentukan untuk mengakses log redo. Untuk informasi selengkapnya, lihat [Mengkonfigurasi tugas CDC untuk menggunakan Binary Reader dengan RDS untuk sumber Oracle AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.CDC).Nilai default: salah Nilai yang benar: benar/salah Contoh: `--oracle-settings '{"ReplacePathPrefix": true}'`  | 
|  `RetryInterval`  |  Menentukan jumlah detik bahwa sistem menunggu sebelum mengirim ulang kueri.  Nilai default: 5  Nilai yang valid: Angka mulai dari 1  Contoh: `--oracle-settings '{"RetryInterval": 6}'`  | 
|  `SecurityDbEncryptionName`  |  Menentukan nama kunci yang digunakan untuk enkripsi data transparan (TDE) dari kolom dan tablespace dalam basis data sumber Oracle. Untuk informasi lebih lanjut tentang pengaturan atribut ini dan kata sandi terkait pada titik akhir sumber Oracle, lihat [Metode enkripsi yang didukung untuk menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.Encryption). Nilai default: ""  Nilai valid: String  Contoh: `--oracle-settings '{"SecurityDbEncryptionName": "ORACLE.SECURITY.DB.ENCRYPTION.Adg8m2dhkU/0v/m5QUaaNJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"}'`  | 
|  `SpatialSdo2GeoJsonFunctionName`  |  Untuk Oracle versi 12.1 atau sumber versi sebelumnya yang bermigrasi ke target PostgreSQL, gunakan atribut ini untuk mengonversi SDO\$1GEOMETRY ke format GEOJSON. Secara default, AWS DMS memanggil fungsi `SDO2GEOJSON` kustom yang harus ada dan dapat diakses oleh AWS DMS pengguna. Atau Anda dapat membuat fungsi kustom Anda sendiri yang meniru operasi `SDOGEOJSON` dan atur `SpatialSdo2GeoJsonFunctionName`untuk memanggilnya sebagai gantinya.  Nilai default: SDO2 GEOJSON Nilai valid: String  Contoh: `--oracle-settings '{"SpatialSdo2GeoJsonFunctionName": "myCustomSDO2GEOJSONFunction"}'`  | 
|  `StandbyDelayTime`  |  Gunakan atribut ini untuk menentukan waktu dalam menit untuk penundaan sinkronisasi standby. Jika sumber merupakan basis data standby Active Data Guard, gunakan atribut ini untuk menentukan jeda waktu antara basis data primer dan standby. Di AWS DMS, Anda dapat membuat tugas Oracle CDC yang menggunakan instance siaga Active Data Guard sebagai sumber untuk mereplikasi perubahan yang sedang berlangsung. Melakukan hal ini menghilangkan kebutuhan untuk terhubung ke basis data aktif yang mungkin sedang dalam produksi. Nilai default: 0  Nilai yang benar: Angka  Contoh: `--oracle-settings '{"StandbyDelayTime": 1}'` **Catatan:** Saat menggunakan DMS 3.4.6, 3.4.7 dan yang lebih tinggi, penggunaan pengaturan koneksi ini adalah opsional. Dalam versi terbaru dari DMS 3.4.6 dan versi 3.4.7, `dms_user` harus memiliki `select` izin pada`V_$DATAGUARD_STATS`, memungkinkan DMS untuk menghitung waktu tunda siaga.  | 
| UseAlternateFolderForOnline | Atur atribut ini menjadi benar untuk menggunakan Binary Reader untuk menangkap perubahan data untuk Amazon RDS for Oracle sebagai sumber. Ini memberitahu instans DMS untuk menggunakan pengganti prefiks tertentu untuk mengakses semua log redo online. Untuk informasi selengkapnya, lihat [Mengkonfigurasi tugas CDC untuk menggunakan Binary Reader dengan RDS untuk sumber Oracle AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.CDC).Nilai default: salah Nilai yang benar: benar/salah Contoh: `--oracle-settings '{"UseAlternateFolderForOnline": true}'`  | 
| UseBfile |  Atur atribut ini menjadi Y untuk menangkap perubahan data menggunakan utilitas Binary Reader. Atur `UseLogminerReader` menjadi N untuk mengatur atribut ini menjadi Y. Untuk menggunakan Binary Reader dengan Amazon RDS for Oracle sebagai sumber, Anda tetapkan atribut tambahan. Untuk informasi lebih lanjut tentang pengaturan ini dan menggunakan Oracle Automatic Storage Management (ASM), lihat [Menggunakan Oracle LogMiner atau AWS DMS Binary Reader untuk CDC](#CHAP_Source.Oracle.CDC). Catatan: Saat mengatur nilai ini sebagai Extra Connection Attribute (ECA), nilai yang valid adalah 'Y' dan 'N'. Saat menyetel nilai ini sebagai pengaturan titik akhir, nilai yang valid adalah `true` dan`false`. Nilai default: N  Nilai yang valid: Y/N (saat menyetel nilai ini sebagai ECA); true/false (saat mengatur nilai ini sebagai pengaturan titik akhir). Contoh: `--oracle-settings '{"UseBfile": Y}'`  | 
|  `UseLogminerReader`  |  Atur atribut ini ke Y untuk menangkap data perubahan menggunakan LogMiner utilitas (default). Atur opsi ini menjadi N jika Anda ingin AWS DMS untuk mengakses log redo sebagai file biner. Ketika Anda mengatur opsi ini menjadi N, tambahkan juga pengaturan UsebFile=y. Untuk informasi lebih lanjut tentang pengaturan ini dan penggunaan Oracle Automatic Storage Management (ASM), lihat [Menggunakan Oracle LogMiner atau AWS DMS Binary Reader untuk CDC](#CHAP_Source.Oracle.CDC). Catatan: Saat mengatur nilai ini sebagai Extra Connection Attribute (ECA), nilai yang valid adalah 'Y' dan 'N'. Saat menyetel nilai ini sebagai pengaturan titik akhir, nilai yang valid adalah `true` dan`false`. Nilai default: Y  Nilai yang valid: Y/N (saat menyetel nilai ini sebagai ECA); true/false (saat mengatur nilai ini sebagai pengaturan titik akhir). Contoh: `--oracle-settings '{"UseLogminerReader": Y}'`  | 
| UsePathPrefix | Atur atribut string ini ke nilai yang diperlukan untuk menggunakan Binary Reader untuk menangkap perubahan data untuk Amazon RDS for Oracle sebagai sumber. Nilai ini menentukan prefiks jalur yang digunakan untuk menggantikan root Oracle default untuk mengakses log redo. Untuk informasi selengkapnya, lihat [Mengkonfigurasi tugas CDC untuk menggunakan Binary Reader dengan RDS untuk sumber Oracle AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.CDC).Nilai default: tidak ada. Nilai yang valid: /rdsdbdata/log/ Contoh: `--oracle-settings '{"UsePathPrefix": "/rdsdbdata/log/"}'`  | 

## Jenis data sumber untuk Oracle
<a name="CHAP_Source.Oracle.DataTypes"></a>

Endpoint Oracle untuk AWS DMS mendukung sebagian besar tipe data Oracle. Tabel berikut menunjukkan tipe data sumber Oracle yang didukung saat menggunakan AWS DMS dan pemetaan default ke tipe AWS DMS data.

**catatan**  
Dengan pengecualian tipe data LONG dan LONG RAW, ketika mereplikasi dari sumber Oracle ke target Oracle (*replikasi homogen*), semua tipe data sumber dan target akan identik. Tetapi tipe data LONG akan dipetakan ke CLOB dan tipe data LONG RAW akan dipetakan ke BLOB. 

Untuk informasi tentang cara melihat jenis data yang dipetakan dalam target, lihat bagian titik akhir target yang Anda gunakan.

Untuk informasi tambahan tentang tipe AWS DMS data, lihat[Tipe data untuk AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  Tipe data Oracle  |  AWS DMS tipe data  | 
| --- | --- | 
|  BINARY\$1FLOAT  |  REAL4  | 
|  BINARY\$1DOUBLE  |  REAL8  | 
|  BINARY  |  BYTES  | 
|  FLOAT (P)  |  Jika presisi kurang dari atau sama dengan 24, gunakan REAL4. Jika presisi lebih besar dari 24, gunakan REAL8.  | 
|  ANGKA (P,S)  |  Ketika skala lebih besar dari 0, gunakan NUMERIK. Ketika skala adalah 0: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.Oracle.html) Ketika skala kurang dari 0, gunakan REAL8. | 
|  DATE  |  DATETIME  | 
|  INTERVAL\$1YEAR TO MONTH  |  STRING (dengan indikasi interval year\$1to\$1month)  | 
|  INTERVAL\$1DAY TO SECOND  |  STRING (dengan indikasi interval day\$1to\$1second)  | 
|  TIMESTAMP  |  DATETIME  | 
|  TIMESTAMP WITH TIME ZONE  |  STRING (dengan indikasi timestamp\$1with\$1timezone)  | 
|  TIMESTAMP WITH LOCAL TIME ZONE  |  STRING (dengan indikasi timestamp\$1with\$1local\$1 zona waktu)  | 
|  CHAR  |  STRING  | 
|  VARCHAR2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.Oracle.html)  | 
|  NCHAR  |  WSTRING  | 
|  NVARCHAR2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.Oracle.html)  | 
|  RAW  |  BYTES  | 
|  REAL  |  REAL8  | 
|  BLOB  |  BLOB Untuk menggunakan tipe data ini AWS DMS, Anda harus mengaktifkan penggunaan tipe data BLOB untuk tugas tertentu. AWS DMS mendukung tipe data BLOB hanya dalam tabel yang menyertakan kunci utama.  | 
|  CLOB  |  CLOB Untuk menggunakan tipe data ini AWS DMS, Anda harus mengaktifkan penggunaan tipe data CLOB untuk tugas tertentu. Selama CDC, AWS DMS mendukung tipe data CLOB hanya dalam tabel yang menyertakan kunci utama.  | 
|  NCLOB  |  NCLOB Untuk menggunakan tipe data ini AWS DMS, Anda harus mengaktifkan penggunaan tipe data NCLOB untuk tugas tertentu. Selama CDC, AWS DMS mendukung tipe data NCLOB hanya dalam tabel yang menyertakan kunci utama.  | 
|  LONG  |  CLOB Tipe data LONG tidak didukung dalam mode penerapan yang dioptimalkan secara batch (mode TurboStream CDC). Untuk menggunakan tipe data ini dengan AWS DMS, aktifkan penggunaan LOBs untuk tugas tertentu. Selama CDC atau beban penuh, AWS DMS mendukung tipe data LOB hanya dalam tabel yang memiliki kunci utama. Juga, AWS DMS tidak mendukung mode LOB penuh untuk memuat kolom LONG. Sebagai gantinya, Anda dapat menggunakan mode LOB terbatas untuk memigrasikan kolom LONG ke target Oracle. Dalam mode LOB terbatas, AWS DMS potong data apa pun menjadi 64 KB yang Anda atur ke kolom LONG yang lebih panjang dari 64 KB. Untuk informasi selengkapnya tentang dukungan LOB di AWS DMS, lihat [Mengatur dukungan LOB untuk database sumber dalam suatu tugas AWS DMS](CHAP_Tasks.LOBSupport.md)  | 
|  LONG RAW  |  BLOB Tipe data LONG RAW tidak didukung dalam mode penerapan yang dioptimalkan secara batch (mode TurboStream CDC). Untuk menggunakan tipe data ini dengan AWS DMS, aktifkan penggunaan LOBs untuk tugas tertentu. Selama CDC atau beban penuh, AWS DMS mendukung tipe data LOB hanya dalam tabel yang memiliki kunci utama. Juga, AWS DMS tidak mendukung mode LOB penuh untuk memuat kolom LONG RAW. Sebagai gantinya, Anda dapat menggunakan mode LOB terbatas untuk memigrasikan kolom LONG RAW ke target Oracle. Dalam mode LOB terbatas, AWS DMS potong data apa pun menjadi 64 KB yang Anda atur ke kolom LONG RAW yang lebih panjang dari 64 KB. Untuk informasi selengkapnya tentang dukungan LOB di AWS DMS, lihat [Mengatur dukungan LOB untuk database sumber dalam suatu tugas AWS DMS](CHAP_Tasks.LOBSupport.md)  | 
|  XMLTYPE  |  CLOB  | 
| SDO\$1GEOMETRY | BLOB (ketika Oracle migrasi ke Oracle)CLOB (ketika Oracle migrasi ke PostgreSQL) | 

Tabel Oracle yang digunakan sebagai sumber dengan kolom tipe data berikut tidak didukung dan tidak dapat direplikasi. Mereplikasi kolom dengan jenis data ini menghasilkan kolom nol.
+ BFILE
+ ROWID
+ REF
+ UROWID
+ Jenis data yang ditentukan pengguna
+ ANYDATA
+ VARRAY

**catatan**  
Kolom virtual tidak didukung.

### Migrasi jenis data spasial Oracle
<a name="CHAP_Source.Oracle.DataTypes.Spatial"></a>

*Data spasial* mengidentifikasi informasi geometri untuk objek atau lokasi di suatu ruang. Dalam basis data Oracle, deskripsi geometris dari objek spasial disimpan dalam sebuah objek jenis SDO\$1GEOMETRY. Dalam objek ini, deskripsi geometris disimpan dalam satu baris dalam satu kolom dari tabel yang telah ditetapkan pengguna. 

AWS DMS mendukung migrasi tipe Oracle SDO\$1GEOMETRY dari sumber Oracle ke target Oracle atau PostgreSQL.

Saat Anda memigrasikan tipe data spasial Oracle menggunakan AWS DMS, perhatikan pertimbangan ini:
+ Ketika migrasi ke target Oracle, pastikan untuk secara manual mentransfer entri USER\$1SDO\$1GEOM\$1METADATA yang mencakup informasi tentang jenis. 
+ Saat bermigrasi dari titik akhir sumber Oracle ke titik akhir target PostgreSQL, buat kolom target. AWS DMS Kolom ini memiliki geometri default dan informasi jenis geografi dengan dimensi 2D dan spatial reference identifier (SRID) sama dengan nol (0). Contohnya `GEOMETRY, 2, 0`.
+ Untuk Oracle versi 12.1 atau sumber versi sebelumnya yang migrasi ke target PostgreSQL, konversikan objek `SDO_GEOMETRY` menjadi format `GEOJSON` dengan menggunakan fungsi `SDO2GEOJSON`, atau atribut sambungan tambahan `spatialSdo2GeoJsonFunctionName`. Untuk informasi selengkapnya, lihat [Pengaturan titik akhir saat menggunakan Oracle sebagai sumber AWS DMS](#CHAP_Source.Oracle.ConnectionAttrib).
+ AWS DMS mendukung migrasi Kolom Spasial Oracle hanya untuk mode LOB Penuh. AWS DMS tidak mendukung mode LOB Terbatas atau LOB Inline. Untuk informasi selengkapnya tentang mode LOB, lihat[Mengatur dukungan LOB untuk database sumber dalam suatu tugas AWS DMS](CHAP_Tasks.LOBSupport.md).
+ Karena AWS DMS hanya mendukung mode LOB Penuh untuk memigrasikan Kolom Spasial Oracle, tabel kolom memerlukan kunci utama dan kunci unik. Jika tabel tidak memiliki kunci utama dan kunci unik, tabel dilewati dari migrasi.

# Menggunakan database Microsoft SQL Server sebagai sumber AWS DMS
<a name="CHAP_Source.SQLServer"></a>

Migrasikan data dari satu atau banyak database Microsoft SQL Server menggunakan. AWS DMS Dengan database SQL Server sebagai sumber, Anda dapat memigrasikan data ke database SQL Server lain, atau ke salah satu database lain AWS DMS yang didukung. 

Untuk informasi tentang versi SQL Server yang AWS DMS mendukung sebagai sumber, lihat[Sumber untuk AWS DMS](CHAP_Introduction.Sources.md).

Basis data sumber SQL Server dapat dipasang pada setiap komputer dalam jaringan Anda. Akun SQL Server dengan hak istimewa akses yang sesuai untuk basis data sumber untuk jenis tugas yang Anda pilih diperlukan untuk digunakan dengan AWS DMS. Untuk informasi selengkapnya, lihat [Izin untuk tugas SQL Server](#CHAP_Source.SQLServer.Permissions).

AWS DMS mendukung migrasi data dari contoh bernama SQL Server. Anda dapat menggunakan notasi berikut dalam nama server ketika Anda membuat titik akhir sumber.

```
IPAddress\InstanceName
```

Sebagai contoh, berikut ini adalah nama server titik akhir sumber yang benar. Di sini, bagian pertama dari nama adalah alamat IP server, dan bagian kedua adalah nama instance SQL Server (dalam contoh ini, SQLTest).

```
10.0.0.25\SQLTest
```

Juga, dapatkan nomor port yang instance bernama SQL Server Anda mendengarkan, dan menggunakannya untuk mengkonfigurasi titik akhir AWS DMS sumber Anda. 

**catatan**  
Port 1433 adalah default untuk SQL Server. Tapi port dinamis yang berubah setiap kali SQL Server dimulai, dan nomor port statis tertentu yang digunakan untuk menyambung ke SQL Server melalui firewall juga sering digunakan. Jadi, Anda ingin mengetahui nomor port sebenarnya dari instance bernama SQL Server saat Anda membuat titik akhir AWS DMS sumber.

Anda dapat menggunakan SSL untuk mengenkripsi sambungan antara titik akhir SQL Server dan instans replikasi. Untuk informasi selengkapnya tentang menggunakan titik akhir SSL dengan SQL Server, lihat [Menggunakan SSL dengan AWS Database Migration Service](CHAP_Security.SSL.md).

Anda dapat menggunakan CDC untuk migrasi berkelanjutan dari database SQL Server. Untuk informasi tentang mengonfigurasi database server SQL sumber Anda untuk CDC, lihat. [Menangkap perubahan data untuk replikasi berkelanjutan dari SQL Server](CHAP_Source.SQLServer.CDC.md)

Untuk detail tambahan tentang bekerja dengan database sumber SQL Server dan AWS DMS, lihat berikut ini.

**Topics**
+ [Keterbatasan dalam menggunakan SQL Server sebagai sumber AWS DMS](#CHAP_Source.SQLServer.Limitations)
+ [Izin untuk tugas SQL Server](#CHAP_Source.SQLServer.Permissions)
+ [Prasyarat untuk menggunakan replikasi berkelanjutan (CDC) dari sumber SQL Server](#CHAP_Source.SQLServer.Prerequisites)
+ [Metode kompresi yang didukung untuk SQL Server](#CHAP_Source.SQLServer.Compression)
+ [Bekerja dengan grup ketersediaan SQL Server AlwaysOn yang dikelola sendiri](#CHAP_Source.SQLServer.AlwaysOn)
+ [Pengaturan titik akhir saat menggunakan SQL Server sebagai sumber AWS DMS](#CHAP_Source.SQLServer.ConnectionAttrib)
+ [Jenis sumber data untuk SQL Server](#CHAP_Source.SQLServer.DataTypes)
+ [Menangkap perubahan data untuk replikasi berkelanjutan dari SQL Server](CHAP_Source.SQLServer.CDC.md)

## Keterbatasan dalam menggunakan SQL Server sebagai sumber AWS DMS
<a name="CHAP_Source.SQLServer.Limitations"></a>

Keterbatasan berikut berlaku saat menggunakan basis data SQL Server sebagai sumber untuk AWS DMS:
+ Properti identitas untuk kolom tidak bermigrasi ke kolom basis data target.
+ Titik akhir SQL Server tidak mendukung penggunaan tabel dengan kolom jarang.
+ Autentikasi Windows tidak didukung.
+ Perubahan bidang terhitung di SQL Server tidak direplikasi.
+ Tabel temporal tidak didukung.
+ Penggantian partisi SQL Server tidak didukung.
+ Saat menggunakan utilitas WRITETEXT dan UPDATETEXT, AWS DMS tidak menangkap peristiwa yang diterapkan pada database sumber.
+ Pola data manipulation language (DML) berikut ini tidak didukung. 

  ```
  SELECT * INTO new_table FROM existing_table
  ```
+ Ketika menggunakan SQL Server sebagai sumber, enkripsi tingkat kolom tidak didukung.
+ AWS DMS tidak mendukung audit tingkat server pada SQL Server 2008 atau SQL Server 2008 R2 sebagai sumber. Ini karena masalah yang diketahui dengan SQL Server 2008 dan 2008 R2. Misalnya, menjalankan perintah berikut AWS DMS menyebabkan kegagalan.

  ```
  USE [master]
  GO 
  ALTER SERVER AUDIT [my_audit_test-20140710] WITH (STATE=on)
  GO
  ```
+ Kolom Geometri dan Geografi tidak didukung dalam mode lob penuh saat menggunakan SQL Server sebagai sumber. Sebaliknya, gunakan modus lob terbatas atau atur pengaturan tugas `InlineLobMaxSize` untuk menggunakan mode lob inline.
+ Saat menggunakan database sumber Microsoft SQL Server dalam tugas replikasi, definisi SQL Server Replication Publisher tidak dihapus jika Anda menghapus tugas. Administrator sistem Microsoft SQL Server harus menghapus definisi tersebut dari Microsoft SQL Server.
+ Migrasi data dari terikat skema dan non-schema-bound tampilan didukung untuk tugas yang hanya memuat penuh. 
+ Mengganti nama tabel menggunakan sp\$1rename tidak didukung (misalnya, `sp_rename 'Sales.SalesRegion', 'SalesReg;)`
+ Mengganti nama kolom menggunakan sp\$1rename tidak didukung (misalnya,`sp_rename 'Sales.Sales.Region', 'RegID', 'COLUMN';`)
+ AWS DMS tidak mendukung pemrosesan perubahan untuk mengatur dan menghapus nilai default kolom (menggunakan `ALTER COLUMN SET DEFAULT` klausa dengan `ALTER TABLE` pernyataan).
+ AWS DMS tidak mendukung pemrosesan perubahan untuk mengatur nullabilitas kolom (menggunakan `ALTER COLUMN [SET|DROP] NOT NULL` klausa dengan pernyataan). `ALTER TABLE`
+ Dengan SQL Server 2012 dan SQL Server 2014, saat menggunakan replikasi DMS dengan Availability Groups, basis data distribusi tidak dapat ditempatkan dalam grup ketersediaan. SQL 2016 mendukung penempatan database distribusi ke dalam grup ketersediaan, kecuali untuk database distribusi yang digunakan dalam topologi gabungan, dua arah, atau replikasi. peer-to-peer
+ Untuk tabel yang dipartisi, AWS DMS tidak mendukung pengaturan kompresi data yang berbeda untuk setiap partisi.
+ Saat memasukkan nilai ke jenis data spasial SQL Server (GEOGRAPHY dan GEOMETRY), Anda dapat mengabaikan properti spatial reference system identifier (SRID) atau menentukan angka yang berbeda. Saat mereplikasi tabel dengan tipe data spasial, AWS DMS ganti SRID dengan SRID default (0 untuk GEOMETRI dan 4326 untuk GEOGRAFI).
+ Jika database Anda tidak dikonfigurasi untuk MS-REPLICATION atau MS-CDC, Anda masih dapat menangkap tabel yang tidak memiliki Kunci Utama, tetapi hanya peristiwa DHTML yang ditangkap. INSERT/DELETE Peristiwa UPDATE dan TRUNCATE TABLE diabaikan.
+ Indeks Columnstore tidak didukung.
+ Tabel yang memorinya dioptimalkan (menggunakan In-Memory OLTP) tidak didukung.
+ Ketika mereplikasi tabel dengan kunci primer yang terdiri dari beberapa kolom, memperbarui kolom kunci primer selama beban penuh tidak didukung.
+ Ketahanan tertunda tidak didukung.
+ Pengaturan `readBackupOnly=true` titik akhir (atribut koneksi tambahan) tidak berfungsi pada RDS untuk instance sumber SQL Server karena cara RDS melakukan pencadangan.
+ `EXCLUSIVE_AUTOMATIC_TRUNCATION`tidak berfungsi pada instance sumber Amazon RDS SQL Server karena pengguna RDS tidak memiliki akses untuk menjalankan prosedur tersimpan SQL Server,. `sp_repldone`
+ AWS DMS tidak menangkap perintah memotong.
+ AWS DMS tidak mendukung replikasi dari database dengan percepatan pemulihan database (ADR) diaktifkan.
+ AWS DMS tidak mendukung pengambilan pernyataan bahasa definisi data (DDL) dan bahasa manipulasi data (DML/bahasa manipulasi data) dalam satu transaksi.
+ AWS DMS tidak mendukung replikasi paket aplikasi tingkat data (DACPAC).
+ Pernyataan UPDATE yang melibatkan kunci primer atau indeks unik dan memperbarui beberapa baris data, dapat menyebabkan konflik saat Anda menerapkan perubahan pada database target. Ini mungkin terjadi, misalnya, ketika database target menerapkan pembaruan sebagai pernyataan INSERT dan DELETE, bukan pernyataan UPDATE tunggal. Dengan mode penerapan yang dioptimalkan batch, tabel mungkin diabaikan. Dengan mode penerapan transaksional, operasi UPDATE dapat mengakibatkan pelanggaran kendala. Untuk menghindari masalah ini, muat ulang tabel yang relevan. Atau, cari catatan bermasalah di tabel kontrol Apply Exceptions (`dmslogs.awsdms_apply_exceptions`) dan edit secara manual di database target. Untuk informasi selengkapnya, lihat [Mengubah pengaturan penyetelan pemrosesan](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md).
+ AWS DMS tidak mendukung replikasi tabel dan skema, di mana nama menyertakan karakter khusus dari set berikut.

  `\\ -- \n \" \b \r ' \t ;` 
+ Masking data tidak didukung. AWS DMS memigrasikan data bertopeng tanpa masking.
+ AWS DMS mereplikasi hingga 32.767 tabel dengan kunci utama dan hingga 1.000 kolom untuk setiap tabel. Ini karena AWS DMS membuat artikel replikasi SQL Server untuk setiap tabel yang direplikasi, dan artikel replikasi SQL Server memiliki keterbatasan ini.
+ Saat menggunakan Change Data Capture (CDC), Anda harus menentukan semua kolom yang membentuk indeks unik sebagai`NOT NULL`. Jika persyaratan ini tidak terpenuhi, kesalahan sistem SQL Server 22838 akan terjadi. 
+ Anda mungkin kehilangan peristiwa jika SQL Server mengarsipkan dari log transaksi aktif ke log cadangan, atau memotongnya dari log transaksi aktif.

Keterbatasan berikut berlaku saat mengakses log transaksi backup:
+ Backup terenkripsi tidak didukung.
+ Backup yang disimpan di URL atau Windows Azure tidak didukung.
+ AWS DMS doe snot mendukung pemrosesan langsung cadangan log transaksi di tingkat file dari folder bersama alternatif.
+ Untuk sumber Cloud SQL Server selain Amazon RDS untuk Microsoft SQL AWS DMS Server, mendukung replikasi berkelanjutan (CDC) dengan log transaksi aktif saja. Anda tidak dapat menggunakan log cadangan dengan CDC. Anda mungkin kehilangan peristiwa jika SQL server mengarsipkannya dari log transaksi aktif ke log cadangan, atau memotongnya dari log transaksi aktif sebelum DMS dapat membacanya. 
+ Untuk sumber Amazon RDS for Microsoft SQL Server AWS DMS , 3.5.2 dan di bawahnya mendukung replikasi berkelanjutan (CDC) dengan log transaksi aktif saja, karena DMS tidak dapat mengakses log cadangan dengan CDC. Anda mungkin kehilangan peristiwa jika RDS untuk SQL Server mengarsipkannya dari log transaksi aktif ke log cadangan, atau memotongnya dari log transaksi aktif sebelum DMS dapat membacanya. Batasan ini tidak berlaku untuk AWS DMS versi 3.5.3 ke atas.
+ AWS DMS tidak mendukung CDC untuk Amazon RDS Proxy untuk SQL Server sebagai sumber.
+ Jika sumber SQL Server menjadi tidak tersedia selama tugas pemuatan penuh, AWS DMS mungkin menandai tugas sebagai selesai setelah beberapa upaya penyambungan ulang, meskipun migrasi data tetap tidak lengkap. Dalam skenario ini, tabel target hanya berisi catatan yang dimigrasi sebelum koneksi hilang, berpotensi menciptakan inkonsistensi data antara sumber dan sistem target. Untuk memastikan kelengkapan data, Anda harus memulai ulang tugas pemuatan penuh sepenuhnya atau memuat ulang tabel tertentu yang terpengaruh oleh gangguan koneksi.

## Izin untuk tugas SQL Server
<a name="CHAP_Source.SQLServer.Permissions"></a>

**Topics**
+ [Izin untuk tugas beban penuh saja](#CHAP_Source.SQLServer.Permissions.FullLoad)
+ [Izin untuk tugas dengan replikasi yang sedang berlangsung](#CHAP_Source.SQLServer.Permissions.Ongoing)

### Izin untuk tugas beban penuh saja
<a name="CHAP_Source.SQLServer.Permissions.FullLoad"></a>

Izin berikut diperlukan untuk melakukan tugas beban penuh saja. Perhatikan bahwa AWS DMS tidak membuat `dms_user` login. Untuk informasi tentang membuat login untuk SQL Server, lihat [Membuat topik pengguna database](https://learn.microsoft.com/en-us/sql/relational-databases/security/authentication-access/create-a-database-user?view=sql-server-ver16) dalam *dokumentasi Microsoft*.

```
USE db_name;
                
                CREATE USER dms_user FOR LOGIN dms_user; 
                ALTER ROLE [db_datareader] ADD MEMBER dms_user; 
                GRANT VIEW DATABASE STATE to dms_user;
                GRANT VIEW DEFINITION to dms_user;
                
                USE master;
                
                GRANT VIEW SERVER STATE TO dms_user;
```

### Izin untuk tugas dengan replikasi yang sedang berlangsung
<a name="CHAP_Source.SQLServer.Permissions.Ongoing"></a>

Instans SQL Server yang dikelola sendiri dapat dikonfigurasi untuk replikasi berkelanjutan menggunakan DMS dengan atau tanpa menggunakan peran. `sysadmin` Untuk instance SQL Server, di mana Anda tidak dapat memberikan `sysadmin` peran, pastikan bahwa pengguna DMS memiliki hak istimewa yang dijelaskan sebagai berikut.

**Menyiapkan izin untuk replikasi berkelanjutan dari database SQL Server yang dikelola sendiri**

1. Buat akun SQL Server baru dengan otentikasi kata sandi menggunakan SQL Server Management Studio (SSMS) atau seperti yang dijelaskan sebelumnya dalam[Izin untuk tugas beban penuh saja](#CHAP_Source.SQLServer.Permissions.FullLoad), misalnya,. `self_managed_user`

1. Jalankan `GRANT` perintah berikut: 

   ```
   GRANT VIEW SERVER STATE TO self_managed_user;
   
   USE msdb;
       GRANT SELECT ON msdb.dbo.backupset TO self_managed_user;
       GRANT SELECT ON msdb.dbo.backupmediafamily TO self_managed_user;
       GRANT SELECT ON msdb.dbo.backupfile TO self_managed_user;
       
   USE db_name;
       CREATE USER self_managed_user FOR LOGIN self_managed_user;
       ALTER ROLE [db_owner] ADD MEMBER self_managed_user;
       GRANT VIEW DEFINITION to self_managed_user;
   ```

1. Selain izin sebelumnya, pengguna memerlukan salah satu dari yang berikut:
   + Pengguna harus menjadi anggota dari peran server `sysadmin` tetap
   + Konfigurasi dan izin seperti yang dijelaskan dalam [Menyiapkan replikasi yang sedang berlangsung di SQL Server di lingkungan grup ketersediaan: Tanpa peran sysadmin](CHAP_Source.SQLServer.CDC.md#CHAP_SupportScripts.SQLServer.ag) atau[Menyiapkan replikasi yang sedang berlangsung pada SQL Server mandiri: Tanpa peran sysadmin](CHAP_Source.SQLServer.CDC.md#CHAP_SupportScripts.SQLServer.standalone), tergantung pada konfigurasi sumber Anda.

#### Menyiapkan izin untuk replikasi berkelanjutan dari database SQL Server cloud
<a name="CHAP_Source.SQLServer.Permissions.Cloud"></a>

Instance SQL server yang dihosting cloud adalah instance yang berjalan di Amazon RDS untuk Amazon RDS for Microsoft SQL Server, Instans Terkelola Azure SQL, atau instans SQL Server cloud terkelola lainnya yang didukung oleh DMS.

Buat akun SQL Server baru dengan otentikasi kata sandi menggunakan SQL Server Management Studio (SSMS) atau seperti yang dijelaskan sebelumnya dalam[Izin untuk tugas beban penuh saja](#CHAP_Source.SQLServer.Permissions.FullLoad), misalnya,. `rds_user`

Jalankan perintah memberikan hak istimewa berikut.

```
GRANT VIEW SERVER STATE TO rds_user;
```

Untuk sumber Amazon RDS for Microsoft SQL Server, DMS versi 3.5.3 dan di atasnya mendukung pembacaan dari backup log transaksi. Untuk memastikan bahwa DMS dapat mengakses backup log, selain di atas, baik memberikan hak `master` pengguna, atau hak istimewa berikut pada sumber RDS SQL Server:

```
USE msdb;
    GRANT EXEC ON msdb.dbo.rds_dms_tlog_download TO rds_user;
    GRANT EXEC ON msdb.dbo.rds_dms_tlog_read TO rds_user;
    GRANT EXEC ON msdb.dbo.rds_dms_tlog_list_current_lsn TO rds_user;
    GRANT EXEC ON msdb.dbo.rds_task_status TO rds_user;
    
USE db_name;
    CREATE USER rds_user FOR LOGIN rds_user;
    ALTER ROLE [db_owner] ADD MEMBER rds_user;
    GRANT VIEW DEFINITION to rds_user;
```

Untuk Amazon Azure SQL Managed Instances berikan hak istimewa berikut:

```
GRANT SELECT ON msdb.dbo.backupset TO rds_user;
GRANT SELECT ON msdb.dbo.backupmediafamily TO rds_user;
GRANT SELECT ON msdb.dbo.backupfile TO rds_user;
```

## Prasyarat untuk menggunakan replikasi berkelanjutan (CDC) dari sumber SQL Server
<a name="CHAP_Source.SQLServer.Prerequisites"></a>

Anda dapat menggunakan replikasi berkelanjutan (mengubah pengambilan data, atau CDC) untuk database SQL Server yang dikelola sendiri di tempat atau di Amazon EC2, atau database cloud seperti Amazon RDS atau instans yang dikelola Microsoft Azure SQL.

Persyaratan berikut berlaku secara khusus saat menggunakan replikasi yang sedang berlangsung dengan database SQL Server sebagai sumber untuk: AWS DMS
+ SQL Server harus dikonfigurasi untuk backup penuh, dan Anda harus menjalankan backup sebelum mulai mereplikasi data.
+ Model pemulihan harus diatur menjadi **Bulk logged** atau **Full**.
+ Backup SQL Server untuk beberapa disk tidak didukung. Jika cadangan didefinisikan untuk menulis cadangan database ke beberapa file melalui disk yang berbeda, tidak AWS DMS dapat membaca data dan AWS DMS tugas gagal.
+ Untuk sumber SQL Server yang dikelola sendiri, definisi SQL Server Replication Publisher untuk sumber yang digunakan dalam tugas DMS CDC tidak dihapus ketika Anda menghapus tugas. Administrator sistem SQL Server harus menghapus definisi ini dari SQL Server untuk sumber yang dikelola sendiri.
+ Selama CDC, AWS DMS perlu mencari cadangan log transaksi SQL Server untuk membaca perubahan. AWS DMS tidak mendukung cadangan log transaksi SQL Server yang dibuat menggunakan perangkat lunak cadangan pihak ketiga yang *tidak* dalam format asli. Untuk mendukung backup log transaksi yang *ada* dalam format asli dan dibuat menggunakan perangkat lunak backup pihak ketiga, tambahkan atribut sambungan `use3rdPartyBackupDevice=Y` ke titik akhir sumber.
+ Untuk sumber SQL Server yang dikelola sendiri, perhatikan bahwa SQL Server tidak menangkap perubahan pada tabel yang baru dibuat sampai mereka telah diterbitkan. Ketika tabel ditambahkan ke sumber SQL Server, AWS DMS mengelola pembuatan publikasi. Namun, proses ini mungkin memakan waktu beberapa menit. Operasi yang dibuat untuk tabel yang baru dibuat selama penundaan ini tidak ditangkap atau direplikasi ke target. 
+ AWS DMS mengubah pengambilan data memerlukan pencatatan transaksi penuh untuk dihidupkan di SQL Server. Untuk mengaktifkan login transaksi penuh di SQL Server, aktifkan MS-REPLICATION atau CHANGE DATA CAPTURE (CDC).
+ Entri *tlog* SQL Server tidak akan ditandai untuk digunakan kembali sampai pekerjaan penangkapan MS CDC memproses perubahan tersebut.
+ Operasi CDC tidak didukung pada tabel yang memorinya dioptimalkan. Batasan ini berlaku untuk SQL Server 2014 (ketika fitur pertama kali diperkenalkan) dan lebih tinggi.
+ AWS DMS mengubah pengambilan data memerlukan database distribusi secara default di Amazon EC2 atau On-Prem SQL server sebagai sumber. Jadi, pastikan Anda telah mengaktifkan distributor saat mengonfigurasi replikasi MS untuk tabel dengan kunci utama.

## Metode kompresi yang didukung untuk SQL Server
<a name="CHAP_Source.SQLServer.Compression"></a>

Perhatikan hal berikut tentang dukungan untuk metode kompresi SQL Server di AWS DMS:
+ AWS DMS mendukung Row/Page kompresi di SQL Server versi 2008 dan yang lebih baru.
+ AWS DMS tidak mendukung format penyimpanan Vardecimal.
+ AWS DMS tidak mendukung kolom jarang dan kompresi struktur kolumnar.

## Bekerja dengan grup ketersediaan SQL Server AlwaysOn yang dikelola sendiri
<a name="CHAP_Source.SQLServer.AlwaysOn"></a>

Grup ketersediaan SQL Server Always On menyediakan ketersediaan tinggi dan pemulihan bencana sebagai alternatif tingkat perusahaan untuk pencerminan basis data. 

Di AWS DMS, Anda dapat memigrasikan perubahan dari satu replika grup ketersediaan primer atau sekunder.

### Bekerja dengan replika grup ketersediaan utama
<a name="CHAP_Source.SQLServer.AlwaysOn.Primary"></a>

 

**Untuk menggunakan grup ketersediaan utama sebagai sumber AWS DMS, lakukan hal berikut:**

1. Aktifkan opsi distribusi untuk semua instance SQL Server di replika ketersediaan Anda. Untuk informasi selengkapnya, lihat [Menyiapkan replikasi yang sedang berlangsung pada SQL Server yang dikelola sendiri](CHAP_Source.SQLServer.CDC.md#CHAP_Source.SQLServer.CDC.MSCDC).

1. Di AWS DMS konsol, buka pengaturan database sumber SQL Server. Untuk **Nama Server**, tentukan nama Layanan Nama Domain (DNS) atau alamat IP yang dikonfigurasi untuk pendengar grup ketersediaan Anda. 

Ketika Anda memulai AWS DMS tugas untuk pertama kalinya, mungkin perlu waktu lebih lama dari biasanya untuk memulai. Kelambatan ini terjadi karena pembuatan artikel tabel sedang digandakan oleh server grup ketersediaan. 

### Bekerja dengan replika grup ketersediaan sekunder
<a name="CHAP_Source.SQLServer.AlwaysOn.Secondary"></a>

**Untuk menggunakan grup ketersediaan sekunder sebagai sumber AWS DMS, lakukan hal berikut:**

1. Gunakan kredensil yang sama untuk menghubungkan ke replika individual seperti yang digunakan oleh pengguna titik akhir AWS DMS sumber.

1. Pastikan instans AWS DMS replikasi Anda dapat menyelesaikan nama DNS untuk semua replika yang ada, dan menghubungkannya. Anda dapat menggunakan query SQL berikut untuk mendapatkan nama DNS untuk semua replika Anda.

   ```
   select ar.replica_server_name, ar.endpoint_url from sys.availability_replicas ar
   JOIN sys.availability_databases_cluster adc
   ON adc.group_id = ar.group_id AND adc.database_name = '<source_database_name>';
   ```

1. **Saat Anda membuat titik akhir sumber, tentukan nama DNS pendengar grup ketersediaan untuk **nama Server titik akhir atau untuk alamat Server** rahasia titik akhir.** Untuk informasi selengkapnya tentang pendengar grup ketersediaan, lihat [Apa itu pendengar grup ketersediaan?](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/availability-group-listener-overview?view=sql-server-ver15) dalam dokumentasi SQL Server.

   Anda dapat menggunakan server DNS publik atau server DNS lokal untuk menyelesaikan pemroses grup ketersediaan, replika utama, dan replika sekunder. Untuk menggunakan server DNS lokal, konfigurasikan Resolver Amazon Route 53. Untuk informasi selengkapnya, lihat [Menggunakan server nama on-premise Anda sendiri](CHAP_BestPractices.md#CHAP_BestPractices.Rte53DNSResolver).

1. Tambahkan atribut koneksi tambahan berikut ke titik akhir sumber Anda.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.SQLServer.html)

1. Aktifkan opsi distribusi pada semua replika di grup ketersediaan Anda. Tambahkan semua node ke daftar distributor. Untuk informasi selengkapnya, lihat [Mengatur distribusi](CHAP_Source.SQLServer.CDC.md#CHAP_Source.SQLServer.CDC.MSCDC.Setup).

1. Jalankan kueri berikut pada replika baca-tulis utama untuk mengaktifkan publikasi database Anda. Anda menjalankan query ini hanya sekali untuk database Anda. 

   ```
   sp_replicationdboption @dbname = N'<source DB name>', @optname = N'publish', @value = N'true';
   ```



#### Batasan
<a name="CHAP_Source.SQLServer.AlwaysOn.Secondary.limitations"></a>

Berikut ini adalah batasan untuk bekerja dengan replika grup ketersediaan sekunder:
+ AWS DMS tidak mendukung Safeguard saat menggunakan replika grup ketersediaan hanya-baca sebagai sumber. Untuk informasi selengkapnya, lihat [Pengaturan titik akhir saat menggunakan SQL Server sebagai sumber AWS DMS](#CHAP_Source.SQLServer.ConnectionAttrib).
+ AWS DMS tidak mendukung atribut koneksi `setUpMsCdcForTables` tambahan saat menggunakan replika grup ketersediaan hanya-baca sebagai sumber. Untuk informasi selengkapnya, lihat [Pengaturan titik akhir saat menggunakan SQL Server sebagai sumber AWS DMS](#CHAP_Source.SQLServer.ConnectionAttrib).
+ AWS DMS dapat menggunakan replika grup ketersediaan sekunder yang dikelola sendiri sebagai basis data sumber untuk replikasi berkelanjutan (ubah pengambilan data, atau CDC) mulai dari versi 3.4.7. Replika baca multi-AZ Cloud SQL Server tidak didukung. Jika Anda menggunakan versi sebelumnya AWS DMS, pastikan Anda menggunakan replika grup ketersediaan utama sebagai basis data sumber untuk CDC.

#### Failover ke node lain
<a name="CHAP_Source.SQLServer.AlwaysOn.Secondary.failover"></a>

Jika Anda menyetel atribut koneksi `ApplicationIntent` tambahan untuk titik akhir Anda`ReadOnly`, AWS DMS tugas Anda akan tersambung ke node hanya-baca dengan prioritas perutean hanya-baca tertinggi. Kemudian gagal ke node hanya-baca lainnya di grup ketersediaan Anda ketika node hanya-baca prioritas tertinggi tidak tersedia. Jika Anda tidak mengatur`ApplicationIntent`, AWS DMS tugas Anda hanya terhubung ke node utama (baca/tulis) di grup ketersediaan Anda.

## Pengaturan titik akhir saat menggunakan SQL Server sebagai sumber AWS DMS
<a name="CHAP_Source.SQLServer.ConnectionAttrib"></a>

Anda dapat menggunakan pengaturan endpoint untuk mengkonfigurasi database sumber SQL Server Anda mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat Anda membuat titik akhir sumber menggunakan AWS DMS konsol, atau dengan menggunakan `create-endpoint` perintah di [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), dengan sintaks `--microsoft-sql-server-settings '{"EndpointSetting": "value", ...}'` JSON.

Tabel berikut menunjukkan pengaturan endpoint yang dapat Anda gunakan dengan SQL Server sebagai sumber.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.SQLServer.html)

## Jenis sumber data untuk SQL Server
<a name="CHAP_Source.SQLServer.DataTypes"></a>

Migrasi data yang menggunakan SQL Server sebagai sumber untuk AWS DMS mendukung sebagian besar tipe data SQL Server. Tabel berikut menunjukkan tipe data sumber SQL Server yang didukung saat menggunakan AWS DMS dan pemetaan default dari tipe AWS DMS data.

Untuk informasi tentang cara melihat jenis data yang dipetakan dalam target, lihat bagian titik akhir target yang Anda gunakan.

Untuk informasi tambahan tentang tipe AWS DMS data, lihat[Tipe data untuk AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  Jenis data SQL Server  |  AWS DMS tipe data  | 
| --- | --- | 
|  BIGINT  |  INT8  | 
|  BIT  |  BOOLEAN  | 
|  DECIMAL  |  NUMERIC  | 
|  INT  |  INT4  | 
|  MONEY  |  NUMERIC  | 
|  NUMERIC (p,s)  |  NUMERIC   | 
|  SMALLINT  |  INT2  | 
|  SMALLMONEY  |  NUMERIC  | 
|  TINYINT  |  UINT1  | 
|  REAL  |  REAL4  | 
|  FLOAT  |  REAL8  | 
|  DATETIME  |  DATETIME  | 
|  DATETIME2 (SQL Server 2008 dan lebih tinggi)  |  DATETIME  | 
|  SMALLDATETIME  |  DATETIME  | 
|  DATE  |  DATE  | 
|  TIME  |  TIME  | 
|  DATETIMEOFFSET  |  WSTRING  | 
|  CHAR  |  STRING  | 
|  VARCHAR  |  STRING  | 
|  VARCHAR (max)  |  CLOB TEXT Untuk menggunakan tipe data ini AWS DMS, Anda harus mengaktifkan penggunaan tipe data CLOB untuk tugas tertentu. Untuk tabel SQL Server, AWS DMS memperbarui kolom LOB di target bahkan untuk pernyataan UPDATE yang tidak mengubah nilai kolom LOB di SQL Server. Selama CDC, AWS DMS mendukung tipe data CLOB hanya dalam tabel yang menyertakan kunci utama.  | 
|  NCHAR  |  WSTRING  | 
|  NVARCHAR (panjang)  |  WSTRING  | 
|  NVARCHAR (maks)  |  NCLOB NTEXT Untuk menggunakan tipe data ini AWS DMS, Anda harus mengaktifkan penggunaan SupportLobs untuk tugas tertentu. Untuk informasi selengkapnya tentang mengaktifkan dukungan Lob, lihat. [Mengatur dukungan LOB untuk database sumber dalam suatu tugas AWS DMS](CHAP_Tasks.LOBSupport.md)  Untuk tabel SQL Server, AWS DMS memperbarui kolom LOB di target bahkan untuk pernyataan UPDATE yang tidak mengubah nilai kolom LOB di SQL Server. Selama CDC, AWS DMS mendukung tipe data CLOB hanya dalam tabel yang menyertakan kunci utama.  | 
|  BINARY  |  BYTES  | 
|  VARBINARY  |  BYTES  | 
|  VARBINARY (max)  |  BLOB CITRA Untuk tabel SQL Server, AWS DMS memperbarui kolom LOB di target bahkan untuk pernyataan UPDATE yang tidak mengubah nilai kolom LOB di SQL Server. Untuk menggunakan tipe data ini AWS DMS, Anda harus mengaktifkan penggunaan tipe data BLOB untuk tugas tertentu. AWS DMS mendukung tipe data BLOB hanya dalam tabel yang menyertakan kunci utama.  | 
|  TIMESTAMP  |  BYTES  | 
|  UNIQUEIDENTIFIER  |  STRING  | 
|  HIERARCHYID   |  Gunakan HIERARCHYID saat mereplikasi ke titik akhir target SQL Server. Gunakan WSTRING (250) ketika mereplikasi ke semua titik akhir target lainnya.  | 
|  XML  |  NCLOB Untuk tabel SQL Server, AWS DMS memperbarui kolom LOB di target bahkan untuk pernyataan UPDATE yang tidak mengubah nilai kolom LOB di SQL Server. Untuk menggunakan tipe data ini AWS DMS, Anda harus mengaktifkan penggunaan tipe data NCLOB untuk tugas tertentu. Selama CDC, AWS DMS mendukung tipe data NCLOB hanya dalam tabel yang menyertakan kunci utama.  | 
|  GEOMETRY  |  Gunakan GEOMETRY ketika mereplikasi ke titik akhir target yang mendukung jenis data ini. Gunakan CLOB ketika mereplikasi ke titik akhir target yang tidak mendukung jenis data ini.  | 
|  GEOGRAPHY  |  Gunakan GEOGRAPHY ketika mereplikasi ke titik akhir target yang mendukung jenis data ini. Gunakan CLOB ketika mereplikasi ke titik akhir target yang tidak mendukung jenis data ini.  | 

AWS DMS tidak mendukung tabel yang menyertakan bidang dengan tipe data berikut. 
+ CURSOR
+ SQL\$1VARIANT
+ TABLE

**catatan**  
Jenis data yang ditetapkan pengguna didukung sesuai dengan jenis dasar mereka. Misalnya, jenis data yang ditetapkan pengguna berdasarkan DATETIME diperlakukan sebagai jenis data DATETIME.

# Menangkap perubahan data untuk replikasi berkelanjutan dari SQL Server
<a name="CHAP_Source.SQLServer.CDC"></a>

Topik ini menjelaskan cara mengatur replikasi CDC pada sumber SQL Server.

**Topics**
+ [Menangkap perubahan data untuk SQL Server yang dikelola sendiri di tempat atau di Amazon EC2](#CHAP_Source.SQLServer.CDC.Selfmanaged)
+ [Menyiapkan replikasi yang sedang berlangsung pada instance cloud SQL Server DB](#CHAP_Source.SQLServer.Configuration)

## Menangkap perubahan data untuk SQL Server yang dikelola sendiri di tempat atau di Amazon EC2
<a name="CHAP_Source.SQLServer.CDC.Selfmanaged"></a>

Untuk menangkap perubahan dari database Microsoft SQL Server sumber, pastikan database dikonfigurasi untuk backup penuh. Konfigurasikan basis data dalam modus pemulihan penuh atau mode bulk-logged.

Untuk sumber SQL Server yang dikelola sendiri, AWS DMS gunakan yang berikut ini:

**MS-Replication**  
Untuk menangkap perubahan untuk tabel dengan kunci primer. Anda dapat mengonfigurasi ini secara otomatis dengan memberikan hak istimewa sysadmin kepada pengguna AWS DMS endpoint pada instance SQL Server sumber. Atau Anda dapat mengikuti langkah-langkah di bagian ini untuk menyiapkan sumber dan menggunakan pengguna yang tidak memiliki hak sysadmin untuk titik akhir. AWS DMS 

**MS-CDC**  
Untuk menangkap perubahan untuk tabel tanpa kunci primer. Aktifkan MS-CDC pada tingkat basis data dan untuk semua tabel secara masing-masing.

Saat menyiapkan basis data SQL Server untuk replikasi yang sedang berlangsung (CDC), Anda dapat melakukan salah satu dari berikut ini.
+ Atur replikasi yang sedang berlangsung menggunakan peran sysadmin.
+ Atur replikasi yang sedang berlangsung untuk tidak menggunakan peran sysadmin.

**catatan**  
Anda dapat menggunakan skrip berikut untuk menemukan semua tabel tanpa kunci utama atau unik:  

```
USE [DBname]
SELECT SCHEMA_NAME(schema_id) AS schema_name, name AS table_name
FROM sys.tables
WHERE OBJECTPROPERTY(object_id, 'TableHasPrimaryKey') = 0
        AND  OBJECTPROPERTY(object_id, 'TableHasUniqueCnst') = 0
ORDER BY schema_name, table_name;
```

### Menyiapkan replikasi yang sedang berlangsung pada SQL Server yang dikelola sendiri
<a name="CHAP_Source.SQLServer.CDC.MSCDC"></a>

Bagian ini berisi informasi tentang pengaturan replikasi yang sedang berlangsung pada server SQL yang dikelola sendiri dengan atau tanpa menggunakan peran sysadmin.

**Topics**
+ [Menyiapkan replikasi yang sedang berlangsung pada SQL Server yang dikelola sendiri: Menggunakan peran sysadmin](#CHAP_Source.SQLServer.CDC.MSCDC.Sysadmin)
+ [Menyiapkan replikasi yang sedang berlangsung pada SQL Server mandiri: Tanpa peran sysadmin](#CHAP_SupportScripts.SQLServer.standalone)
+ [Menyiapkan replikasi yang sedang berlangsung di SQL Server di lingkungan grup ketersediaan: Tanpa peran sysadmin](#CHAP_SupportScripts.SQLServer.ag)

#### Menyiapkan replikasi yang sedang berlangsung pada SQL Server yang dikelola sendiri: Menggunakan peran sysadmin
<a name="CHAP_Source.SQLServer.CDC.MSCDC.Sysadmin"></a>

AWS DMS replikasi berkelanjutan untuk SQL Server menggunakan replikasi SQL Server asli untuk tabel dengan kunci utama, dan mengubah pengambilan data (CDC) untuk tabel tanpa kunci utama.

Sebelum menyiapkan replikasi yang sedang berlangsung, lihat [Prasyarat untuk menggunakan replikasi berkelanjutan (CDC) dari sumber SQL Server](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Prerequisites). 

Untuk tabel dengan kunci utama, umumnya AWS DMS dapat mengkonfigurasi artefak yang diperlukan pada sumber. Namun, untuk instans sumber SQL Server yang dikelola sendiri, pastikan untuk terlebih dahulu mengonfigurasi distribusi SQL Server secara manual. Setelah Anda melakukannya, pengguna AWS DMS sumber dengan izin sysadmin dapat secara otomatis membuat publikasi untuk tabel dengan kunci utama.

Untuk memeriksa apakah distribusi sudah dikonfigurasi, jalankan perintah berikut.

```
sp_get_distributor
```

Jika hasilnya `NULL` untuk distribusi kolom, maka distribusi tidak dikonfigurasi. Anda dapat menggunakan prosedur berikut untuk mengatur distribusi.<a name="CHAP_Source.SQLServer.CDC.MSCDC.Setup"></a>

**Mengatur distribusi**

1. Sambungkan ke basis data sumber SQL Server Anda menggunakan alat SQL Server Management Studio (SSMS).

1. Buka menu konteks (klik kanan) untuk folder **Replikasi**, dan pilih **Konfigurasi** Distribusi. Wizard Konfigurasi Distribusi muncul. 

1. Ikuti wizard untuk memasukkan nilai default dan membuat distribusi.<a name="CHAP_Source.SQLServer.CDC.MSCDC.Setup.CDC"></a>

**Untuk mengatur CDC**

AWS DMS versi 3.4.7 dan yang lebih besar dapat mengatur MS CDC untuk database Anda dan semua tabel Anda secara otomatis jika Anda tidak menggunakan replika hanya-baca. Untuk menggunakan fitur ini, atur `SetUpMsCdcForTables` ECA ke true. Untuk informasi tentang ECAs, lihat[Pengaturan titik akhir](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.ConnectionAttrib).

Untuk versi yang AWS DMS lebih awal dari 3.4.7, atau untuk replika hanya-baca sebagai sumber, lakukan langkah-langkah berikut:

1. Untuk tabel tanpa kunci primer, atur MS-CDC untuk basis data. Untuk melakukannya, gunakan akun yang memiliki peran sysadmin, dan jalankan perintah berikut.

   ```
   use [DBname]
   EXEC sys.sp_cdc_enable_db
   ```

1. Selanjutnya, atur MS-CDC untuk setiap tabel sumber. Untuk setiap tabel dengan kunci unik tetapi tanpa kunci primer, jalankan kueri berikut untuk mengatur MS-CDC.

   ```
   exec sys.sp_cdc_enable_table
   @source_schema = N'schema_name',
   @source_name = N'table_name',
   @index_name = N'unique_index_name',
   @role_name = NULL,
   @supports_net_changes = 1
   GO
   ```

1. Untuk setiap tabel tanpa bukti kunci primer atau tanpa kunci unik, jalankan kueri berikut untuk mengatur MS-CDC.

   ```
   exec sys.sp_cdc_enable_table
   @source_schema = N'schema_name',
   @source_name = N'table_name',
   @role_name = NULL
   GO
   ```

Untuk informasi lebih lanjut tentang pengaturan MS-CDC untuk tabel tertentu, lihat [Dokumentasi SQL Server](https://msdn.microsoft.com/en-us/library/cc627369.aspx). 

#### Menyiapkan replikasi yang sedang berlangsung pada SQL Server mandiri: Tanpa peran sysadmin
<a name="CHAP_SupportScripts.SQLServer.standalone"></a>

Bagian ini menjelaskan cara mengatur replikasi berkelanjutan untuk sumber database SQL Server mandiri yang tidak memerlukan akun pengguna untuk memiliki hak istimewa sysadmin.

**catatan**  
Setelah menjalankan langkah-langkah di bagian ini, pengguna DMS non-sysadmin akan memiliki izin untuk melakukan hal berikut:  
Baca perubahan dari file log transaksi online
Akses disk untuk membaca perubahan dari file cadangan log transaksional
Menambahkan atau mengubah publikasi yang digunakan DMS
Tambahkan artikel ke publikasi

1. Siapkan Microsoft SQL Server untuk Replikasi seperti yang dijelaskan dalam. [Menangkap perubahan data untuk replikasi berkelanjutan dari SQL Server](#CHAP_Source.SQLServer.CDC)

1. Aktifkan MS-REPLICATION pada database sumber. Ini dapat dilakukan secara manual atau dengan menjalankan tugas sekali sebagai pengguna sysadmin.

1. Buat `awsdms` skema pada database sumber menggunakan skrip berikut:

   ```
   use master
   go
   create schema awsdms
   go
   
   
   -- Create the table valued function [awsdms].[split_partition_list] on the Master database, as follows:
   USE [master]
   GO
   
   set ansi_nulls on
   go
   
   set quoted_identifier on
   go
   
   if (object_id('[awsdms].[split_partition_list]','TF')) is not null
   
   drop function [awsdms].[split_partition_list];
   
   go
   
   create function [awsdms].[split_partition_list]
   
   (
   
   @plist varchar(8000), --A delimited list of partitions
   
   @dlm nvarchar(1) --Delimiting character
   
   )
   
   returns @partitionsTable table --Table holding the BIGINT values of the string fragments
   
   (
   
   pid bigint primary key
   
   )   
   
   as
   
   begin
   
   declare @partition_id bigint;
   
   declare @dlm_pos integer;
   
   declare @dlm_len integer;
   
   set @dlm_len = len(@dlm);
   
   while (charindex(@dlm,@plist)>0)
   
   begin
   
   set @dlm_pos = charindex(@dlm,@plist);
   
   set @partition_id = cast( ltrim(rtrim(substring(@plist,1,@dlm_pos-1))) as bigint);
   
   insert into @partitionsTable (pid) values (@partition_id)
   
   set @plist = substring(@plist,@dlm_pos+@dlm_len,len(@plist));
   
   end
   
   set @partition_id = cast (ltrim(rtrim(@plist)) as bigint);
   
   insert into @partitionsTable (pid) values ( @partition_id );
   
   return
   
   end
   
   GO
   ```

1. Buat `[awsdms].[rtm_dump_dblog]` prosedur pada database Master menggunakan skrip berikut:

   ```
   use [MASTER]
   
   go
   
   if (object_id('[awsdms].[rtm_dump_dblog]','P')) is not null drop procedure [awsdms].[rtm_dump_dblog];
   go
   
   
   set ansi_nulls on
   go
   
   set quoted_identifier on
   GO
   
   
   
   CREATE procedure [awsdms].[rtm_dump_dblog]
   
   (
   
   @start_lsn varchar(32),
   
   @seqno integer,
   
   @filename varchar(260),
   
   @partition_list varchar(8000), -- A comma delimited list: P1,P2,... Pn
   
   @programmed_filtering integer,
   
   @minPartition bigint,
   
   @maxPartition bigint
   
   )
   
   as begin
   
   declare @start_lsn_cmp varchar(32); -- Stands against the GT comparator
   
   SET NOCOUNT ON -- – Disable "rows affected display"
   
   set @start_lsn_cmp = @start_lsn;
   
   if (@start_lsn_cmp) is null
   
   set @start_lsn_cmp = '00000000:00000000:0000';
   
   if (@partition_list is null)
   
   begin
   
   RAISERROR ('Null partition list waspassed',16,1);
   
   return
   
   end
   
   if (@start_lsn) is not null
   
   set @start_lsn = '0x'+@start_lsn;
   
   if (@programmed_filtering=0)
   
   
   
   SELECT
   
   [Current LSN],
   
   [operation],
   
   [Context],
   
   [Transaction ID],
   
   [Transaction Name],
   
   [Begin Time],
   
   [End Time],
   
   [Flag Bits],
   
   [PartitionID],
   
   [Page ID],
   
   [Slot ID],
   
   [RowLog Contents 0],
   
   [Log Record],
   
   [RowLog Contents 1]
   
   FROM
   
   fn_dump_dblog (
   
   @start_lsn, NULL, N'DISK', @seqno, @filename,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default)
   
   where [Current LSN] collate SQL_Latin1_General_CP1_CI_AS > @start_lsn_cmp collate SQL_Latin1_General_CP1_CI_AS
   
   and
   
   (
   
   ( [operation] in ('LOP_BEGIN_XACT','LOP_COMMIT_XACT','LOP_ABORT_XACT') )
   
   or
   
   ( [operation] in ('LOP_INSERT_ROWS','LOP_DELETE_ROWS','LOP_MODIFY_ROW')
   
   and
   
   ( ( [context] in ('LCX_HEAP','LCX_CLUSTERED','LCX_MARK_AS_GHOST') ) or ([context] = 'LCX_TEXT_MIX' and (datalength([RowLog Contents 0]) in (0,1))))
   
   and [PartitionID] in ( select * from master.awsdms.split_partition_list (@partition_list,','))
   
   )
   
   or
   
   ([operation] = 'LOP_HOBT_DDL')
   
   )
   
   
   else
   
   
   SELECT
   
   [Current LSN],
   
   [operation],
   
   [Context],
   
   [Transaction ID],
   
   [Transaction Name],
   
   [Begin Time],
   
   [End Time],
   
   [Flag Bits],
   
   [PartitionID],
   
   [Page ID],
   
   [Slot ID],
   
   [RowLog Contents 0],
   
   [Log Record],
   
   [RowLog Contents 1] -- After Image
   
   FROM
   
   fn_dump_dblog (
   
   @start_lsn, NULL, N'DISK', @seqno, @filename,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default)
   
   where [Current LSN] collate SQL_Latin1_General_CP1_CI_AS > @start_lsn_cmp collate SQL_Latin1_General_CP1_CI_AS
   
   and
   
   (
   
   ( [operation] in ('LOP_BEGIN_XACT','LOP_COMMIT_XACT','LOP_ABORT_XACT') )
   
   or
   
   ( [operation] in ('LOP_INSERT_ROWS','LOP_DELETE_ROWS','LOP_MODIFY_ROW')
   
   and
   
   ( ( [context] in ('LCX_HEAP','LCX_CLUSTERED','LCX_MARK_AS_GHOST') ) or ([context] = 'LCX_TEXT_MIX' and (datalength([RowLog Contents 0]) in (0,1))))
   
   and ([PartitionID] is not null) and ([PartitionID] >= @minPartition and [PartitionID]<=@maxPartition)
   
   )
   
   or
   
   ([operation] = 'LOP_HOBT_DDL')
   
   )
   
   
   
   SET NOCOUNT OFF -- Re-enable "rows affected display"
   
   end
   
   GO
   ```

1. Buat sertifikat pada database Master menggunakan skrip berikut:

   ```
   Use [master]
   Go
   
   CREATE CERTIFICATE [awsdms_rtm_dump_dblog_cert] ENCRYPTION BY PASSWORD = N'@5trongpassword'
   
   WITH SUBJECT = N'Certificate for FN_DUMP_DBLOG Permissions';
   ```

1. Buat login dari sertifikat menggunakan skrip berikut: 

   ```
   Use [master]
   Go
   
   CREATE LOGIN awsdms_rtm_dump_dblog_login FROM CERTIFICATE [awsdms_rtm_dump_dblog_cert];
   ```

1. Tambahkan login ke peran server sysadmin menggunakan skrip berikut:

   ```
   ALTER SERVER ROLE [sysadmin] ADD MEMBER [awsdms_rtm_dump_dblog_login];
   ```

1. Tambahkan tanda tangan ke [master]. [awsdms]. [rtm\$1dump\$1dblog] menggunakan sertifikat, menggunakan skrip berikut: 

   ```
   Use [master]
   GO
   ADD SIGNATURE
   TO [master].[awsdms].[rtm_dump_dblog] BY CERTIFICATE [awsdms_rtm_dump_dblog_cert] WITH PASSWORD = '@5trongpassword';
   ```
**catatan**  
Jika Anda membuat ulang prosedur yang disimpan, Anda perlu menambahkan tanda tangan lagi.

1. Buat [awsdms]. [rtm\$1position\$11st\$1timestamp] pada database Master menggunakan skrip berikut:

   ```
   use [master]
       if object_id('[awsdms].[rtm_position_1st_timestamp]','P') is not null
       DROP PROCEDURE [awsdms].[rtm_position_1st_timestamp];
       go
       create procedure [awsdms].[rtm_position_1st_timestamp]
       (
       @dbname                sysname,      -- Database name
       @seqno                 integer,      -- Backup set sequence/position number within file
       @filename              varchar(260), -- The backup filename
       @1stTimeStamp          varchar(40)   -- The timestamp to position by
       ) 
       as begin
   
       SET NOCOUNT ON       -- Disable "rows affected display"
   
       declare @firstMatching table
       (
       cLsn varchar(32),
       bTim datetime
       )
   
       declare @sql nvarchar(4000)
       declare @nl                       char(2)
       declare @tb                       char(2)
       declare @fnameVar                 nvarchar(254) = 'NULL'
   
       set @nl  = char(10); -- New line
       set @tb  = char(9)   -- Tab separator
   
       if (@filename is not null)
       set @fnameVar = ''''+@filename +''''
   
       set @sql='use ['+@dbname+'];'+@nl+
       'select top 1 [Current LSN],[Begin Time]'+@nl+
       'FROM fn_dump_dblog (NULL, NULL, NULL, '+ cast(@seqno as varchar(10))+','+ @fnameVar+','+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default)'+@nl+
       'where operation=''LOP_BEGIN_XACT''' +@nl+
       'and [Begin Time]>= cast('+''''+@1stTimeStamp+''''+' as datetime)'+@nl
   
       --print @sql
       delete from  @firstMatching 
       insert into @firstMatching  exec sp_executesql @sql    -- Get them all
   
       select top 1 cLsn as [matching LSN],convert(varchar,bTim,121) as [matching Timestamp] from @firstMatching;
   
       SET NOCOUNT OFF      -- Re-enable "rows affected display"
   
       end
       GO
   ```

1. Buat sertifikat pada database Master menggunakan skrip berikut:

   ```
   Use [master]
   Go
   CREATE CERTIFICATE [awsdms_rtm_position_1st_timestamp_cert]
   ENCRYPTION BY PASSWORD = '@5trongpassword'
   WITH SUBJECT = N'Certificate for FN_POSITION_1st_TIMESTAMP Permissions';
   ```

1. Buat login dari sertifikat menggunakan skrip berikut:

   ```
   Use [master]
   Go
   CREATE LOGIN awsdms_rtm_position_1st_timestamp_login FROM CERTIFICATE [awsdms_rtm_position_1st_timestamp_cert];
   ```

1. Tambahkan login ke peran sysadmin menggunakan skrip berikut:

   ```
   ALTER SERVER ROLE [sysadmin] ADD MEMBER [awsdms_rtm_position_1st_timestamp_login];
   ```

1. Tambahkan tanda tangan ke [master]. [awsdms]. [rtm\$1position\$11st\$1timestamp] menggunakan sertifikat, menggunakan skrip berikut:

   ```
   Use [master]
       GO
       ADD SIGNATURE
       TO [master].[awsdms].[rtm_position_1st_timestamp]
       BY CERTIFICATE [awsdms_rtm_position_1st_timestamp_cert]
       WITH PASSWORD = '@5trongpassword';
   ```

1. Berikan pengguna DMS mengeksekusi akses ke prosedur tersimpan baru menggunakan skrip berikut:

   ```
   use master
   go
   GRANT execute on [awsdms].[rtm_position_1st_timestamp] to dms_user;
   ```

1. Buat pengguna dengan izin dan peran berikut di masing-masing database berikut:
**catatan**  
Anda harus membuat akun pengguna dmsnosysadmin dengan SID yang sama pada setiap replika. Kueri SQL berikut dapat membantu memverifikasi nilai SID akun dmsnosysadmin pada setiap replika. Untuk informasi selengkapnya tentang membuat pengguna, lihat [MEMBUAT PENGGUNA (Transact-SQL) di dokumentasi server](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-user-transact-sql) [Microsoft](https://learn.microsoft.com/en-us/sql/) SQL. [Untuk informasi selengkapnya tentang membuat akun pengguna SQL untuk database Azure SQL, lihat Replikasi geo aktif.](https://learn.microsoft.com/en-us/azure/azure-sql/database/active-geo-replication-overview)

   ```
   use master
   go
   grant select on sys.fn_dblog to [DMS_user]
   grant view any definition to [DMS_user]
   grant view server state to [DMS_user]--(should be granted to the login).
   grant execute on sp_repldone to [DMS_user]
   grant execute on sp_replincrementlsn to [DMS_user]
   grant execute on sp_addpublication to [DMS_user]
   grant execute on sp_addarticle to [DMS_user]
   grant execute on sp_articlefilter to [DMS_user]
   grant select on [awsdms].[split_partition_list] to [DMS_user]
   grant execute on [awsdms].[rtm_dump_dblog] to [DMS_user]
   ```

   ```
   use msdb
   go
   grant select on msdb.dbo.backupset to self_managed_user
   grant select on msdb.dbo.backupmediafamily to self_managed_user
   grant select on msdb.dbo.backupfile to self_managed_user
   ```

   Jalankan skrip berikut pada database sumber:

   ```
   use Source_DB
       Go
       EXEC sp_addrolemember N'db_owner', N'DMS_user'
   ```

1. Terakhir, tambahkan Extra Connection Attribute (ECA) ke titik akhir SQL Server sumber:

   ```
   enableNonSysadminWrapper=true;
   ```

#### Menyiapkan replikasi yang sedang berlangsung di SQL Server di lingkungan grup ketersediaan: Tanpa peran sysadmin
<a name="CHAP_SupportScripts.SQLServer.ag"></a>

Bagian ini menjelaskan cara mengatur replikasi berkelanjutan untuk sumber database SQL Server di lingkungan grup ketersediaan yang tidak memerlukan akun pengguna untuk memiliki hak istimewa sysadmin.

**catatan**  
Setelah menjalankan langkah-langkah di bagian ini, pengguna DMS non-sysadmin akan memiliki izin untuk melakukan hal berikut:  
Baca perubahan dari file log transaksi online
Akses disk untuk membaca perubahan dari file cadangan log transaksional
Menambahkan atau mengubah publikasi yang digunakan DMS
Tambahkan artikel ke publikasi

**Untuk mengatur replikasi yang sedang berlangsung tanpa menggunakan pengguna sysadmin di lingkungan Grup Ketersediaan**

1. Siapkan Microsoft SQL Server untuk Replikasi seperti yang dijelaskan dalam. [Menangkap perubahan data untuk replikasi berkelanjutan dari SQL Server](#CHAP_Source.SQLServer.CDC)

1. Aktifkan MS-REPLICATION pada database sumber. Ini dapat dilakukan secara manual atau dengan menjalankan tugas sekali menggunakan pengguna sysadmin.
**catatan**  
Anda harus mengkonfigurasi distributor MS-REPLICATION sebagai lokal atau dengan cara yang memungkinkan akses ke pengguna non-sysadmin melalui server tertaut terkait.

1. Jika opsi **Exclusive use sp\$1repldone dalam satu titik akhir tugas** diaktifkan, hentikan pekerjaan MS-REPLICATION Log Reader.

1. Lakukan langkah-langkah berikut pada setiap replika:

   1. Buat skema `[awsdms]` [awsdms] di database master:

      ```
      CREATE SCHEMA [awsdms]
      ```

   1. Buat fungsi `[awsdms].[split_partition_list]` tabel bernilai pada database Master:

      ```
      USE [master]
      GO
      
      SET ansi_nulls on
      GO
        
      SET quoted_identifier on
      GO
      
      IF (object_id('[awsdms].[split_partition_list]','TF')) is not null
        DROP FUNCTION [awsdms].[split_partition_list];
      GO
      
      CREATE FUNCTION [awsdms].[split_partition_list] 
      ( 
        @plist varchar(8000),    --A delimited list of partitions    
        @dlm nvarchar(1)    --Delimiting character
      ) 
      RETURNS @partitionsTable table --Table holding the BIGINT values of the string fragments
      (
        pid bigint primary key
      ) 
      AS 
      BEGIN
        DECLARE @partition_id bigint;
        DECLARE @dlm_pos integer;
        DECLARE @dlm_len integer;  
        SET @dlm_len = len(@dlm);
        WHILE (charindex(@dlm,@plist)>0)
        BEGIN 
          SET @dlm_pos = charindex(@dlm,@plist);
          SET @partition_id = cast( ltrim(rtrim(substring(@plist,1,@dlm_pos-1))) as bigint);
          INSERT into @partitionsTable (pid) values (@partition_id)
          SET @plist = substring(@plist,@dlm_pos+@dlm_len,len(@plist));
        END 
        SET @partition_id = cast (ltrim(rtrim(@plist)) as bigint);
        INSERT into @partitionsTable (pid) values (  @partition_id  );
        RETURN
      END
      GO
      ```

   1. Buat `[awsdms].[rtm_dump_dblog]` prosedur pada database Master:

      ```
      USE [MASTER] 
      GO
      
      IF (object_id('[awsdms].[rtm_dump_dblog]','P')) is not null
        DROP PROCEDURE [awsdms].[rtm_dump_dblog]; 
      GO
      
      SET ansi_nulls on
      GO 
      
      SET quoted_identifier on 
      GO
                                          
      CREATE PROCEDURE [awsdms].[rtm_dump_dblog]
      (
        @start_lsn            varchar(32),
        @seqno                integer,
        @filename             varchar(260),
        @partition_list       varchar(8000), -- A comma delimited list: P1,P2,... Pn
        @programmed_filtering integer,
        @minPartition         bigint,
        @maxPartition         bigint
      ) 
      AS 
      BEGIN
      
        DECLARE @start_lsn_cmp varchar(32); -- Stands against the GT comparator
      
        SET NOCOUNT ON  -- Disable "rows affected display"
      
        SET @start_lsn_cmp = @start_lsn;
        IF (@start_lsn_cmp) is null
          SET @start_lsn_cmp = '00000000:00000000:0000';
      
        IF (@partition_list is null)
          BEGIN
            RAISERROR ('Null partition list was passed',16,1);
            return
            --set @partition_list = '0,';    -- A dummy which is never matched
          END
      
        IF (@start_lsn) is not null
          SET @start_lsn = '0x'+@start_lsn;
      
        IF (@programmed_filtering=0)
          SELECT
            [Current LSN],
            [operation],
            [Context],
            [Transaction ID],
            [Transaction Name],
            [Begin Time],
            [End Time],
            [Flag Bits],
            [PartitionID],
            [Page ID],
            [Slot ID],
            [RowLog Contents 0],
            [Log Record],
            [RowLog Contents 1] -- After Image
          FROM
            fn_dump_dblog (
              @start_lsn, NULL, N'DISK', @seqno, @filename,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default)
          WHERE 
            [Current LSN] collate SQL_Latin1_General_CP1_CI_AS > @start_lsn_cmp collate SQL_Latin1_General_CP1_CI_AS -- This aims for implementing FN_DBLOG based on GT comparator.
            AND
            (
              (  [operation] in ('LOP_BEGIN_XACT','LOP_COMMIT_XACT','LOP_ABORT_XACT') )
              OR
              (  [operation] in ('LOP_INSERT_ROWS','LOP_DELETE_ROWS','LOP_MODIFY_ROW')
                AND
                ( ( [context]   in ('LCX_HEAP','LCX_CLUSTERED','LCX_MARK_AS_GHOST') ) or ([context] = 'LCX_TEXT_MIX') )
                AND       
                [PartitionID] in ( select * from master.awsdms.split_partition_list (@partition_list,','))
              )
            OR
            ([operation] = 'LOP_HOBT_DDL')
          )
          ELSE
            SELECT
              [Current LSN],
              [operation],
              [Context],
              [Transaction ID],
              [Transaction Name],
              [Begin Time],
              [End Time],
              [Flag Bits],
              [PartitionID],
              [Page ID],
              [Slot ID],
              [RowLog Contents 0],
              [Log Record],
              [RowLog Contents 1] -- After Image
            FROM
              fn_dump_dblog (
                @start_lsn, NULL, N'DISK', @seqno, @filename,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default)
            WHERE [Current LSN] collate SQL_Latin1_General_CP1_CI_AS > @start_lsn_cmp collate SQL_Latin1_General_CP1_CI_AS -- This aims for implementing FN_DBLOG based on GT comparator.
            AND
            (
              (  [operation] in ('LOP_BEGIN_XACT','LOP_COMMIT_XACT','LOP_ABORT_XACT') )
              OR
              (  [operation] in ('LOP_INSERT_ROWS','LOP_DELETE_ROWS','LOP_MODIFY_ROW')
                AND
                ( ( [context]   in ('LCX_HEAP','LCX_CLUSTERED','LCX_MARK_AS_GHOST') ) or ([context] = 'LCX_TEXT_MIX') )
                AND ([PartitionID] is not null) and ([PartitionID] >= @minPartition and [PartitionID]<=@maxPartition)
              )
              OR
              ([operation] = 'LOP_HOBT_DDL')
            )
            SET NOCOUNT OFF -- Re-enable "rows affected display"
      END
      GO
      ```

   1. Buat sertifikat pada Master Database:

      ```
      USE [master]
      GO
      CREATE CERTIFICATE [awsdms_rtm_dump_dblog_cert]
        ENCRYPTION BY PASSWORD = N'@hardpassword1'
        WITH SUBJECT = N'Certificate for FN_DUMP_DBLOG Permissions'
      ```

   1. Buat login dari sertifikat:

      ```
      USE [master]
      GO
      CREATE LOGIN awsdms_rtm_dump_dblog_login FROM CERTIFICATE
        [awsdms_rtm_dump_dblog_cert];
      ```

   1. Tambahkan login ke peran server sysadmin:

      ```
      ALTER SERVER ROLE [sysadmin] ADD MEMBER [awsdms_rtm_dump_dblog_login];
      ```

   1. Tambahkan tanda tangan ke [master]. [awsdms]. Prosedur [rtm\$1dump\$1dblog] menggunakan sertifikat:

      ```
      USE [master]
      GO
      
      ADD SIGNATURE
        TO [master].[awsdms].[rtm_dump_dblog]
        BY CERTIFICATE [awsdms_rtm_dump_dblog_cert]
        WITH PASSWORD = '@hardpassword1';
      ```
**catatan**  
Jika Anda membuat ulang prosedur yang disimpan, Anda perlu menambahkan tanda tangan lagi.

   1. Buat `[awsdms].[rtm_position_1st_timestamp]` prosedur pada database Master:

      ```
      USE [master]
      IF object_id('[awsdms].[rtm_position_1st_timestamp]','P') is not null
        DROP PROCEDURE [awsdms].[rtm_position_1st_timestamp];
      GO
      CREATE PROCEDURE [awsdms].[rtm_position_1st_timestamp]
      (
        @dbname                sysname,      -- Database name
        @seqno                 integer,      -- Backup set sequence/position number within file
        @filename              varchar(260), -- The backup filename
        @1stTimeStamp          varchar(40)   -- The timestamp to position by
      ) 
      AS 
      BEGIN
        SET NOCOUNT ON       -- Disable "rows affected display"
      
        DECLARE @firstMatching table
        (
          cLsn varchar(32),
          bTim datetime
        )
        DECLARE @sql nvarchar(4000)
        DECLARE @nl                       char(2)
        DECLARE @tb                       char(2)
        DECLARE @fnameVar                 sysname = 'NULL'
      
        SET @nl  = char(10); -- New line
        SET @tb  = char(9)   -- Tab separator
      
        IF (@filename is not null)
          SET @fnameVar = ''''+@filename +''''
        SET @filename = ''''+@filename +''''
        SET @sql='use ['+@dbname+'];'+@nl+
          'SELECT TOP 1 [Current LSN],[Begin Time]'+@nl+
          'FROM fn_dump_dblog (NULL, NULL, NULL, '+ cast(@seqno as varchar(10))+','+ @filename +','+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default)'+@nl+
          'WHERE operation=''LOP_BEGIN_XACT''' +@nl+
          'AND [Begin Time]>= cast('+''''+@1stTimeStamp+''''+' as datetime)'+@nl
      
          --print @sql
          DELETE FROM @firstMatching 
          INSERT INTO @firstMatching  exec sp_executesql @sql    -- Get them all
          SELECT TOP 1 cLsn as [matching LSN],convert(varchar,bTim,121) AS[matching Timestamp] FROM @firstMatching;
      
          SET NOCOUNT OFF      -- Re-enable "rows affected display"
      
      END
      GO
      ```

   1. Buat sertifikat pada database Master:

      ```
      USE [master]
      GO
      CREATE CERTIFICATE [awsdms_rtm_position_1st_timestamp_cert]
        ENCRYPTION BY PASSWORD = N'@hardpassword1'
        WITH SUBJECT = N'Certificate for FN_POSITION_1st_TIMESTAMP Permissions';
      ```

   1. Buat login dari sertifikat:

      ```
      USE [master]
      GO
      CREATE LOGIN awsdms_rtm_position_1st_timestamp_login FROM CERTIFICATE
        [awsdms_rtm_position_1st_timestamp_cert];
      ```

   1. Tambahkan login ke peran server sysadmin:

      ```
      ALTER SERVER ROLE [sysadmin] ADD MEMBER [awsdms_rtm_position_1st_timestamp_login];
      ```

   1. Tambahkan tanda tangan ke `[master].[awsdms].[rtm_position_1st_timestamp]` prosedur menggunakan sertifikat:

      ```
      USE [master]
      GO
      ADD SIGNATURE
        TO [master].[awsdms].[rtm_position_1st_timestamp]
        BY CERTIFICATE [awsdms_rtm_position_1st_timestamp_cert]
        WITH PASSWORD = '@hardpassword1';
      ```
**catatan**  
Jika Anda membuat ulang prosedur yang disimpan, Anda perlu menambahkan tanda tangan lagi.

   1. Buat pengguna dengan yang berikut permissions/roles di masing-masing database berikut:
**catatan**  
Anda harus membuat akun pengguna dmsnosysadmin dengan SID yang sama pada setiap replika. Kueri SQL berikut dapat membantu memverifikasi nilai SID akun dmsnosysadmin pada setiap replika. Untuk informasi selengkapnya tentang membuat pengguna, lihat [MEMBUAT PENGGUNA (Transact-SQL) di dokumentasi server](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-user-transact-sql) [Microsoft](https://learn.microsoft.com/en-us/sql/) SQL. [Untuk informasi selengkapnya tentang membuat akun pengguna SQL untuk database Azure SQL, lihat Replikasi geo aktif.](https://learn.microsoft.com/en-us/azure/azure-sql/database/active-geo-replication-overview)

      ```
      SELECT @@servername servername, name, sid, create_date, modify_date
        FROM sys.server_principals
        WHERE name = 'dmsnosysadmin';
      ```

   1. Berikan izin pada database master pada setiap replika:

      ```
      USE master
      GO 
      
      GRANT select on sys.fn_dblog to dmsnosysadmin;
      GRANT view any definition to dmsnosysadmin;
      GRANT view server state to dmsnosysadmin -- (should be granted to the login).
      GRANT execute on sp_repldone to dmsnosysadmin;
      GRANT execute on sp_replincrementlsn to dmsnosysadmin;
      GRANT execute on sp_addpublication to dmsnosysadmin;
      GRANT execute on sp_addarticle to dmsnosysadmin;
      GRANT execute on sp_articlefilter to dmsnosysadmin;
      GRANT select on [awsdms].[split_partition_list] to dmsnosysadmin;
      GRANT execute on [awsdms].[rtm_dump_dblog] to dmsnosysadmin;
      GRANT execute on [awsdms].[rtm_position_1st_timestamp] to dmsnosysadmin;
      ```

   1. Berikan izin pada database msdb pada setiap replika:

      ```
      USE msdb
      GO
      GRANT select on msdb.dbo.backupset TO self_managed_user
      GRANT select on msdb.dbo.backupmediafamily TO self_managed_user
      GRANT select on msdb.dbo.backupfile TO self_managed_user
      ```

   1. Tambahkan `db_owner` peran `dmsnosysadmin` ke database sumber. Karena database disinkronkan, Anda dapat menambahkan peran pada replika utama saja.

      ```
      use <source DB>
      GO 
      EXEC sp_addrolemember N'db_owner', N'dmsnosysadmin'
      ```

## Menyiapkan replikasi yang sedang berlangsung pada instance cloud SQL Server DB
<a name="CHAP_Source.SQLServer.Configuration"></a>

Bagian ini menjelaskan cara mengatur CDC pada instance database SQL Server yang dihosting cloud. Instance SQL server yang dihosting cloud adalah instance yang berjalan di Amazon RDS for SQL Server, Instans Azure SQL Manged, atau instans SQL Server cloud terkelola lainnya. Untuk informasi tentang batasan replikasi yang sedang berlangsung untuk setiap jenis database, lihat[Keterbatasan dalam menggunakan SQL Server sebagai sumber AWS DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations). 

Sebelum menyiapkan replikasi yang sedang berlangsung, lihat [Prasyarat untuk menggunakan replikasi berkelanjutan (CDC) dari sumber SQL Server](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Prerequisites). 

Tidak seperti sumber Microsoft SQL Server yang dikelola sendiri, Amazon RDS for SQL Server tidak mendukung replikasi MS. Oleh karena itu, AWS DMS perlu menggunakan MS-CDC untuk tabel dengan atau tanpa kunci primer.

Amazon RDS tidak memberikan hak sysadmin untuk menyetel artefak replikasi yang AWS DMS digunakan untuk perubahan berkelanjutan dalam instance SQL Server sumber. Pastikan untuk mengaktifkan MS-CDC untuk instans Amazon RDS (menggunakan hak pengguna master) seperti pada prosedur berikut.

**Untuk mengaktifkan MS-CDC untuk instance cloud SQL Server DB**

1. Jalankan salah satu query berikut di tingkat database.

   Untuk contoh RDS untuk SQL Server DB, gunakan kueri ini.

   ```
   exec msdb.dbo.rds_cdc_enable_db 'DB_name'
   ```

   Untuk instans DB terkelola Azure SQL, gunakan kueri ini.

   ```
   USE DB_name 
   GO 
   EXEC sys.sp_cdc_enable_db 
   GO
   ```

1. Untuk setiap tabel dengan kunci utama, jalankan query berikut untuk mengaktifkan MS-CDC.

   ```
   exec sys.sp_cdc_enable_table
   @source_schema = N'schema_name',
   @source_name = N'table_name',
   @role_name = NULL,
   @supports_net_changes = 1
   GO
   ```

   Untuk setiap tabel dengan kunci unik tetapi tidak ada kunci utama, jalankan kueri berikut untuk mengaktifkan MS-CDC.

   ```
   exec sys.sp_cdc_enable_table
   @source_schema = N'schema_name',
   @source_name = N'table_name',
   @index_name = N'unique_index_name',
   @role_name = NULL,
   @supports_net_changes = 1
   GO
   ```

    Untuk setiap tabel tanpa kunci primer atau kunci unik, jalankan kueri berikut untuk mengaktifkan MS-CDC.

   ```
   exec sys.sp_cdc_enable_table
   @source_schema = N'schema_name',
   @source_name = N'table_name',
   @role_name = NULL
   GO
   ```

1. Mengatur periode retensi:
   + Untuk instance RDS untuk SQL Server yang mereplikasi menggunakan DMS versi 3.5.3 dan di atasnya, pastikan periode retensi diatur ke nilai default 5 detik. Jika Anda memutakhirkan atau berpindah dari DMS 3.5.2 ke bawah ke DMS 3.5.3 ke atas, ubah nilai interval polling setelah tugas berjalan pada instance baru atau yang ditingkatkan. Skrip berikut menetapkan periode retensi ke 5 detik:

     ```
     use dbname
     EXEC sys.sp_cdc_change_job @job_type = 'capture' ,@pollinginterval = 5
     exec sp_cdc_stop_job 'capture'
     exec sp_cdc_start_job 'capture'
     ```
   + Parameter`@pollinginterval` diukur dalam hitungan detik dengan nilai yang disarankan, yang ditetapkan menjadi 86399. Ini berarti bahwa log transaksi mempertahankan perubahan selama 86.399 detik (satu hari) ketika. `@pollinginterval = 86399` Prosedur `exec sp_cdc_start_job 'capture'` memulai pengaturan.
**catatan**  
Dengan beberapa versi SQL Server, jika nilai `pollinginterval` diatur ke lebih dari 3599 detik, nilai reset ke default lima detik. Ketika ini terjadi, entri T-Log dibersihkan sebelum AWS DMS dapat membacanya. Untuk menentukan versi SQL Server mana yang terpengaruh oleh masalah yang diketahui ini, lihat [artikel Microsoft KB ini](https://support.microsoft.com/en-us/topic/kb4459220-fix-incorrect-results-occur-when-you-convert-pollinginterval-parameter-from-seconds-to-hours-in-sys-sp-cdc-scan-in-sql-server-dac8aefe-b60b-7745-f987-582dda2cfa78).

     Jika Anda menggunakan Amazon RDS dengan Multi-AZ, pastikan Anda juga mengatur sekunder Anda untuk memiliki nilai yang tepat jika terjadi failover.

     ```
     exec rdsadmin..rds_set_configuration 'cdc_capture_pollinginterval' , <5 or preferred value>
     ```

**Untuk mempertahankan periode retensi ketika tugas AWS DMS replikasi dihentikan selama lebih dari satu jam**
**catatan**  
Langkah-langkah berikut tidak diperlukan untuk RDS untuk sumber SQL Server mereplikasi menggunakan DMS 3.5.3 dan di atasnya.

1. Hentikan tugas yang memotong log transaksi dengan menggunakan perintah berikut. 

   ```
   exec sp_cdc_stop_job 'capture'
   ```

1. Temukan tugas Anda di AWS DMS konsol dan lanjutkan tugas.

1. Pilih tab **Monitoring**, dan periksa `CDCLatencySource` metriknya. 

1. Setelah metrik `CDCLatencySource` sama dengan 0 (nol) dan tidak berubah, ulang kembali tugas yang memotong log transaksi menggunakan perintah berikut.

   ```
   exec sp_cdc_start_job 'capture'
   ```

Jangan lupa untuk memulai tugas yang memotong log transaksi SQL Server. Jika tidak, penyimpanan pada instans SQL Server Anda dapat terisi.

### Pengaturan yang disarankan saat menggunakan RDS untuk SQL Server sebagai sumber AWS DMS
<a name="CHAP_Source.SQLServer.Configuration.Settings"></a>

#### Untuk AWS DMS 3.5.3 dan di atas
<a name="CHAP_Source.SQLServer.Configuration.Settings.353"></a>

**catatan**  
Rilis awal fitur cadangan log RDS untuk SQL Server diaktifkan secara default untuk titik akhir yang Anda buat atau modifikasi setelah rilis DMS versi 3.5.3. Untuk menggunakan fitur ini untuk titik akhir yang ada, ubah titik akhir tanpa membuat perubahan apa pun.

AWS DMS versi 3.5.3 memperkenalkan dukungan untuk membaca dari cadangan log. DMS terutama bergantung pada pembacaan dari log transaksi aktif untuk mereplikasi peristiwa. Jika transaksi dicadangkan sebelum DMS dapat membacanya dari log aktif, tugas mengakses cadangan RDS sesuai permintaan dan membaca dari log cadangan berikutnya hingga mencapai log transaksi aktif. Untuk memastikan bahwa DMS memiliki akses ke cadangan log, atur periode retensi cadangan otomatis RDS setidaknya satu hari. Untuk informasi tentang menyetel periode penyimpanan cadangan otomatis, lihat [Periode retensi cadangan](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ManagingAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupRetention) di *Panduan Pengguna Amazon RDS*.

Tugas DMS mengakses cadangan log menggunakan penyimpanan pada instance RDS. Perhatikan bahwa tugas hanya mengakses cadangan log yang diperlukan untuk replikasi. Amazon RDS menghapus cadangan yang diunduh ini dalam beberapa jam. Penghapusan ini tidak memengaruhi cadangan Amazon RDS yang disimpan di Amazon S3, atau fungsionalitas Amazon RDS. `RESTORE DATABASE` Dianjurkan untuk mengalokasikan penyimpanan tambahan pada RDS Anda untuk sumber SQL Server jika Anda berniat untuk mereplikasi menggunakan DMS. Salah satu cara untuk memperkirakan jumlah penyimpanan yang dibutuhkan adalah dengan mengidentifikasi cadangan dari mana DMS akan memulai atau melanjutkan replikasi dari, dan menambahkan ukuran file dari semua backup berikutnya menggunakan fungsi metadata RDS. `tlog backup` Untuk informasi selengkapnya tentang `tlog backup` fungsi ini, lihat [Mencantumkan cadangan log transaksi yang tersedia](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER.SQLServer.AddlFeat.TransactionLogAccess.html#USER.SQLServer.AddlFeat.TransactionLogAccess.Listing) di Panduan Pengguna *Amazon RDS.* 

Sebagai alternatif, Anda dapat memilih untuk mengaktifkan penskalaan otomatis penyimpanan dan/atau memicu penskalaan penyimpanan berdasarkan metrik CloudWatch `FreeStorageSpace` untuk instans Amazon RDS Anda.

Kami sangat menyarankan agar Anda tidak memulai atau melanjutkan dari titik yang terlalu jauh ke belakang dalam pencadangan log transaksi, karena dapat menyebabkan penyimpanan pada instance SQL Server Anda terisi. Dalam kasus seperti itu, disarankan untuk memulai beban penuh. Mereplikasi dari cadangan log transaksi lebih lambat daripada membaca dari log transaksi aktif. Untuk informasi selengkapnya, lihat [Pemrosesan cadangan log transaksi untuk RDS untuk SQL Server](CHAP_Troubleshooting_Latency_Source_SQLServer.md#CHAP_Troubleshooting_Latency_Source_SQLServer_backup).

Perhatikan bahwa mengakses cadangan log memerlukan hak istimewa tambahan. Untuk informasi selengkapnya, lihat seperti yang dijelaskan di [Menyiapkan izin untuk replikasi berkelanjutan dari database SQL Server cloud](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Permissions.Cloud) Pastikan Anda memberikan hak istimewa ini sebelum tugas mulai mereplikasi.

#### Untuk AWS DMS 3.5.2 dan di bawah
<a name="CHAP_Source.SQLServer.Configuration.Settings.352"></a>

Saat Anda bekerja dengan Amazon RDS for SQL Server sebagai sumber, pekerjaan pengambilan MS-CDC bergantung pada parameter dan. `maxscans` `maxtrans` Parameter ini mengatur jumlah maksimum pemindaian yang dilakukan penangkapan MS-CDC pada log transaksi dan jumlah transaksi yang diproses untuk setiap pemindaian.

Untuk database, di mana sejumlah transaksi lebih besar dari`maxtrans*maxscans`, meningkatkan `polling_interval` nilai dapat menyebabkan akumulasi catatan log transaksi aktif. Pada gilirannya, akumulasi ini dapat menyebabkan peningkatan ukuran log transaksi.

Perhatikan bahwa AWS DMS tidak bergantung pada pekerjaan penangkapan MS-CDC. Pekerjaan penangkapan MS-CDC menandai entri log transaksi sebagai telah diproses. Hal ini memungkinkan tugas backup log transaksi untuk menghapus entri dari log transaksi.

Kami menyarankan Anda memantau ukuran log transaksi dan keberhasilan pekerjaan MS-CDC. Jika pekerjaan MS-CDC gagal, log transaksi dapat tumbuh secara berlebihan dan menyebabkan kegagalan replikasi. AWS DMS Anda dapat memantau kesalahan pekerjaan pengambilan MS-CDC menggunakan tampilan manajemen `sys.dm_cdc_errors` dinamis di database sumber. Anda dapat memantau ukuran log transaksi menggunakan perintah `DBCC SQLPERF(LOGSPACE)` manajemen.

**Untuk mengatasi peningkatan log transaksi yang disebabkan oleh MS-CDC**

1. Periksa apakah database `Log Space Used %` AWS DMS mereplikasi dari dan memvalidasi bahwa itu meningkat terus menerus.

   ```
   DBCC SQLPERF(LOGSPACE)
   ```

1. Identifikasi apa yang memblokir proses pencadangan log transaksi.

   ```
   Select log_reuse_wait, log_reuse_wait_desc, name from sys.databases where name = db_name();
   ```

   Jika `log_reuse_wait_desc` nilainya sama`REPLICATION`, retensi cadangan log disebabkan oleh latensi di MS-CDC.

1. Tingkatkan jumlah peristiwa yang diproses oleh pekerjaan penangkapan dengan meningkatkan nilai `maxtrans` dan `maxscans` parameter.

   ```
   EXEC sys.sp_cdc_change_job @job_type = 'capture' ,@maxtrans = 5000, @maxscans = 20 
   exec sp_cdc_stop_job 'capture'
   exec sp_cdc_start_job 'capture'
   ```

Untuk mengatasi masalah ini, tetapkan nilai `maxscans` dan `maxtrans` sehingga `maxtrans*maxscans` sama dengan jumlah rata-rata peristiwa yang dihasilkan untuk tabel yang AWS DMS mereplikasi dari database sumber untuk setiap hari.

Jika Anda menetapkan parameter ini lebih tinggi dari nilai yang disarankan, pekerjaan penangkapan akan memproses semua peristiwa di log transaksi. Jika Anda menetapkan parameter ini di bawah nilai yang disarankan, latensi MS-CDC meningkat dan log transaksi Anda bertambah.

Mengidentifikasi nilai yang sesuai untuk `maxscans` dan `maxtrans` bisa sulit karena perubahan beban kerja menghasilkan berbagai jumlah peristiwa. Dalam hal ini, kami menyarankan Anda mengatur pemantauan pada latensi MS-CDC. Untuk informasi selengkapnya, lihat [Memantau proses](https://docs.microsoft.com/en-us/sql/relational-databases/track-changes/administer-and-monitor-change-data-capture-sql-server?view=sql-server-ver15#Monitor) dalam dokumentasi SQL Server. Kemudian konfigurasikan `maxtrans` dan `maxscans` secara dinamis berdasarkan hasil pemantauan.

Jika AWS DMS tugas tidak dapat menemukan nomor urutan log (LSNs) yang diperlukan untuk melanjutkan atau melanjutkan tugas, tugas mungkin gagal dan memerlukan pemuatan ulang lengkap.

**catatan**  
Saat menggunakan AWS DMS untuk mereplikasi data dari sumber RDS untuk SQL Server, Anda mungkin mengalami kesalahan saat mencoba melanjutkan replikasi setelah peristiwa stop-start dari instans Amazon RDS. Hal ini disebabkan proses SQL Server Agent memulai kembali proses pengambilan pekerjaan ketika restart setelah peristiwa stop-start. Ini melewati interval pemungutan suara MS-CDC.  
Karena itu, pada database dengan volume transaksi lebih rendah dari pemrosesan pekerjaan penangkapan MS-CDC, ini dapat menyebabkan data diproses atau ditandai sebagai direplikasi dan dicadangkan sebelum AWS DMS dapat dilanjutkan dari tempat berhenti, yang mengakibatkan kesalahan berikut:  

```
[SOURCE_CAPTURE ]E: Failed to access LSN '0000dbd9:0006f9ad:0003' in the backup log sets since BACKUP/LOG-s are not available. [1020465] (sqlserver_endpoint_capture.c:764)
```
Untuk mengurangi masalah ini, tetapkan `maxscans` nilai `maxtrans` dan seperti yang direkomendasikan sebelumnya.

# Menggunakan database Microsoft Azure SQL sebagai sumber untuk AWS DMS
<a name="CHAP_Source.AzureSQL"></a>

Dengan AWS DMS, Anda dapat menggunakan Microsoft Azure SQL Database sebagai sumber dalam banyak cara yang sama seperti yang Anda lakukan SQL Server. AWS DMS mendukung, sebagai sumber, daftar versi database yang sama yang didukung untuk SQL Server yang berjalan di tempat atau pada instans Amazon EC2. 

Untuk informasi selengkapnya, lihat [Menggunakan database Microsoft SQL Server sebagai sumber AWS DMS](CHAP_Source.SQLServer.md).

**catatan**  
AWS DMS tidak mendukung operasi pengambilan data perubahan (CDC) dengan Azure SQL Database.

# Menggunakan Microsoft Azure SQL Managed Instance sebagai sumber untuk AWS DMS
<a name="CHAP_Source.AzureMgd"></a>

Dengan AWS DMS, Anda dapat menggunakan Microsoft Azure SQL Managed Instance sebagai sumber dengan cara yang hampir sama seperti SQL Server. AWS DMS mendukung, sebagai sumber, daftar versi database yang sama yang didukung untuk SQL Server yang berjalan di tempat atau pada instans Amazon EC2. 

Untuk informasi selengkapnya, lihat [Menggunakan database Microsoft SQL Server sebagai sumber AWS DMS](CHAP_Source.SQLServer.md).

# Menggunakan Microsoft Azure Database untuk PostgreSQL server fleksibel sebagai sumber untuk AWS DMS
<a name="CHAP_Source.AzureDBPostgreSQL"></a>

Dengan AWS DMS, Anda dapat menggunakan Microsoft Azure Database untuk PostgreSQL server fleksibel sebagai sumber dalam banyak cara yang sama seperti yang Anda lakukan PostgreSQL.

Untuk informasi tentang versi Microsoft Azure Database untuk PostgreSQL server fleksibel AWS DMS yang mendukung sebagai sumber, lihat. [Sumber untuk AWS DMS](CHAP_Introduction.Sources.md)

## Menyiapkan Microsoft Azure untuk PostgreSQL server fleksibel untuk replikasi logis dan decoding
<a name="CHAP_Source.AzureDBPostgreSQL.setup"></a>

Anda dapat menggunakan replikasi logis dan fitur decoding di Microsoft Azure Database untuk PostgreSQL server fleksibel selama migrasi database.

Untuk decoding logis, DMS menggunakan plugin atau. `test_decoding` `pglogical` Jika `pglogical` plugin tersedia pada database PostgreSQL sumber, DMS membuat slot `pglogical` replikasi menggunakan, jika tidak plugin digunakan. `test_decoding` 

Untuk mengonfigurasi server fleksibel Microsoft Azure untuk PostgreSQL Anda sebagai titik akhir sumber untuk DMS, lakukan langkah-langkah berikut: 

1. Buka halaman Parameter Server di portal.

1. Atur parameter `wal_level` server ke`LOGICAL`.

1. Jika Anda ingin menggunakan `pglogical` ekstensi, atur `azure.extensions` parameter `shared_preload_libraries` dan ke`pglogical`.

1. Atur `max_replication_slots` parameter ke jumlah maksimum tugas DMS yang Anda rencanakan untuk dijalankan secara bersamaan. Di Microsoft Azure, nilai default untuk parameter ini adalah 10. Nilai maksimum parameter ini bergantung pada memori yang tersedia dari instance PostgreSQL Anda, memungkinkan antara 2 dan 8 slot replikasi per GB memori.

1. Atur `max_wal_senders` parameter ke nilai yang lebih besar dari 1. Parameter`max_wal_senders` mengatur jumlah tugas bersamaan yang dapat berjalan. Nilai default adalah 10.

1. Tetapkan nilai `max_worker_processes` parameter ke setidaknya 16. Jika tidak, Anda mungkin melihat kesalahan seperti berikut:

   ```
   WARNING: out of background worker slots.
   ```

1. Simpan perubahan. Mulai ulang server untuk menerapkan perubahan.

1. Konfirmasikan bahwa instance PostgreSQL Anda memungkinkan lalu lintas jaringan dari sumber daya penghubung Anda.

1. Berikan izin replikasi pengguna yang ada, atau buat pengguna baru dengan izin replikasi, menggunakan perintah berikut. 
   + Berikan izin replikasi pengguna yang ada menggunakan perintah berikut:

     ```
     ALTER USER <existing_user> WITH REPLICATION;
     ```
   + Buat pengguna baru dengan izin replikasi menggunakan perintah berikut: 

     ```
     CREATE USER aws_dms_user PASSWORD 'aws_dms_user_password';
     GRANT azure_pg_admin to aws_dms_user;
     ALTER ROLE aws_dms_user REPLICATION LOGIN;
     ```

Untuk informasi selengkapnya tentang replikasi logis dengan PostgreSQL, lihat topik berikut:
+ [Mengaktifkan change data capture (CDC) menggunakan replikasi logis](CHAP_Source.PostgreSQL.md#CHAP_Source.PostgreSQL.Security)
+ [Menggunakan titik awal CDC asli untuk mengatur beban CDC dari sumber PostgreSQL](CHAP_Source.PostgreSQL.md#CHAP_Source.PostgreSQL.v10)
+ [Replikasi logis dan decoding logis di Azure Database untuk PostgreSQL - Server Fleksibel dalam Database Azure untuk dokumentasi PostgreSQL](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-logical)[.](https://learn.microsoft.com/en-us/azure/postgresql/)

# Menggunakan Microsoft Azure Database untuk MySQL server fleksibel sebagai sumber AWS DMS
<a name="CHAP_Source.AzureDBMySQL"></a>

Dengan AWS DMS, Anda dapat menggunakan Microsoft Azure Database untuk MySQL server fleksibel sebagai sumber dalam banyak cara yang sama seperti yang Anda lakukan MySQL.

Untuk informasi tentang versi Microsoft Azure Database untuk server fleksibel MySQL AWS DMS yang mendukung sebagai sumber, lihat. [Sumber untuk AWS DMS](CHAP_Introduction.Sources.md) 

Untuk informasi selengkapnya tentang menggunakan database yang kompatibel dengan MySQL yang dikelola pelanggan, lihat. AWS DMS[Menggunakan database yang kompatibel dengan MySQL yang dikelola sendiri sebagai sumber AWS DMS](CHAP_Source.MySQL.md#CHAP_Source.MySQL.CustomerManaged)

## Keterbatasan saat menggunakan Azure MySQL sebagai sumber AWS Database Migration Service
<a name="CHAP_Source.AzureDBMySQL.limitations"></a>
+ Nilai defaut untuk variabel sistem server fleksibel Azure MySQL `sql_generate_invisible_primary_key` adalah`ON`, dan server secara otomatis menambahkan kunci primer tak terlihat (GIPK) yang dihasilkan ke tabel apa pun yang dibuat tanpa kunci primer eksplisit. AWS DMS tidak mendukung replikasi berkelanjutan untuk tabel MySQL dengan batasan GIPK.

# Menggunakan OCI MySQL Heatwave sebagai sumber untuk AWS DMS
<a name="CHAP_Source.heatwave"></a>

Dengan AWS DMS, Anda dapat menggunakan OCI MySQL Heatwave sebagai sumber dalam banyak cara yang sama seperti yang Anda lakukan MySQL. Menggunakan OCI MySQL Heatwave sebagai sumber memerlukan beberapa perubahan konfigurasi tambahan.

Untuk informasi tentang versi OCI MySQL Heatwave AWS DMS yang mendukung sebagai sumber, lihat. [Sumber untuk AWS DMS](CHAP_Introduction.Sources.md)

## Menyiapkan OCI MySQL Heatwave untuk replikasi logis
<a name="CHAP_Source.heatwave.setup"></a>

Untuk mengonfigurasi instance OCI MySQL Heatwave Anda sebagai titik akhir sumber untuk DMS, lakukan hal berikut:

1. Masuk ke OCI Console, dan buka menu hamburger utama (≡) di sudut kiri atas.

1. Pilih **Database**, **Sistem DB**.

1. Buka menu **Konfigurasi**.

1. Pilih **Buat konfigurasi**.

1. Masukkan nama konfigurasi, seperti**dms\$1configuration**.

1. Pilih bentuk instance OCI MySQL Heatwave Anda saat ini. Anda dapat menemukan bentuk pada tab properti **konfigurasi sistem DB** instans di bawah bagian **DB system Configuration:Shape**.

1. Di bagian **Variabel pengguna**, pilih variabel `binlog_row_value_options` sistem. Nilai defaultnya adalah`PARTIAL_JSON`. Hapus nilainya.

1. Pilih tombol **Buat**.

1. Buka OCI My SQLHeatwave instance Anda, dan pilih tombol **Edit**.

1. Di bagian **Konfigurasi**, pilih tombol **Ubah konfigurasi**, dan pilih konfigurasi bentuk yang Anda buat di langkah 4.

1. Setelah perubahan diterapkan, instance Anda siap untuk replikasi logis.

# Menggunakan Google Cloud untuk MySQL sebagai sumber untuk AWS DMS
<a name="CHAP_Source.GC"></a>

Dengan AWS DMS, Anda dapat menggunakan Google Cloud untuk MySQL sebagai sumber dengan cara yang sama seperti yang Anda lakukan MySQL. 

Untuk informasi tentang versi GCP MySQL AWS DMS yang mendukung sebagai sumber, lihat. [Sumber untuk AWS DMS](CHAP_Introduction.Sources.md) 

Untuk informasi selengkapnya, lihat [Menggunakan database yang kompatibel dengan MySQL sebagai sumber AWS DMS](CHAP_Source.MySQL.md).

**catatan**  
Support untuk GCP MySQL 8.0 sebagai sumber tersedia dalam versi 3.4.6. AWS DMS   
AWS DMS tidak mendukung mode SSL `verify-full` untuk GCP untuk instance MySQL.  
`Allow only SSL connections`Pengaturan keamanan MySQL GCP tidak didukung, karena memerlukan verifikasi sertifikat server dan klien. AWS DMS hanya mendukung verifikasi sertifikat server.  
AWS DMS mendukung default GCP CloudSQL untuk nilai MySQL untuk bendera database. `CRC32` `binlog_checksum`

# Menggunakan Google Cloud untuk PostgreSQL sebagai sumber untuk AWS DMS
<a name="CHAP_Source.GCPostgres"></a>

Dengan AWS DMS, Anda dapat menggunakan Google Cloud untuk PostgreSQL sebagai sumber dengan cara yang sama seperti database PostgreSQL yang dikelola sendiri.

Untuk informasi tentang versi GCP PostgreSQL AWS DMS yang mendukung sebagai sumber, lihat. [Sumber untuk AWS DMS](CHAP_Introduction.Sources.md) 

Untuk informasi selengkapnya, lihat [Menggunakan database PostgreSQL sebagai sumber AWS DMS](CHAP_Source.PostgreSQL.md).

## Siapkan Google Cloud untuk PostgreSQL untuk replikasi logis dan decoding
<a name="CHAP_Source.GCPostgres.setup"></a>

Anda dapat menggunakan fitur replikasi dan decoding logis di Google Cloud SQL untuk PostgreSQL selama migrasi database.

Untuk decoding logis, DMS menggunakan salah satu plugin berikut:
+ `test_decoding`
+ `pglogical`

Jika `pglogical` plugin tersedia pada database PostgreSQL sumber, DMS membuat slot `pglogical` replikasi menggunakan, jika tidak plugin digunakan. `test_decoding` 

Perhatikan hal berikut tentang menggunakan decoding logis dengan: AWS DMS

1. Dengan Google Cloud SQL untuk PostgreSQL, aktifkan decoding logis dengan menyetel flag ke. `cloudsql.logical_decoding` `on`

1. Untuk mengaktifkan`pglogical`, atur `cloudsql.enable_pglogical` flag ke`on`, dan restart database.

1. Untuk menggunakan fitur decoding logis, Anda membuat pengguna PostgreSQL dengan atribut. `REPLICATION` Saat Anda menggunakan `pglogical` ekstensi, pengguna harus memiliki `cloudsqlsuperuser` peran. Untuk membuat pengguna dengan `cloudsqlsuperuser` peran, lakukan hal berikut:

   ```
   CREATE USER new_aws_dms_user WITH REPLICATION
   IN ROLE cloudsqlsuperuser LOGIN PASSWORD 'new_aws_dms_user_password';
   ```

   Untuk menyetel atribusi ini pada pengguna yang sudah ada, lakukan hal berikut:

   ```
   ALTER USER existing_user WITH REPLICATION;
   ```

1. Atur `max_replication_slots` parameter ke jumlah maksimum tugas DMS yang Anda rencanakan untuk dijalankan secara bersamaan. Di Google Cloud SQL, nilai default untuk parameter ini adalah 10. Nilai maksimum parameter ini bergantung pada memori yang tersedia dari instance PostgreSQL Anda, memungkinkan antara 2 dan 8 slot replikasi per GB memori.

Untuk informasi selengkapnya tentang replikasi logis dengan PostgreSQL, lihat topik berikut:
+ [Mengaktifkan change data capture (CDC) menggunakan replikasi logis](CHAP_Source.PostgreSQL.md#CHAP_Source.PostgreSQL.Security)
+ [Menggunakan titik awal CDC asli untuk mengatur beban CDC dari sumber PostgreSQL](CHAP_Source.PostgreSQL.md#CHAP_Source.PostgreSQL.v10)
+ [Siapkan replikasi logis dan decoding](https://cloud.google.com/sql/docs/postgres/replication/configure-logical-replication) di [Cloud SQL untuk dokumentasi PostgreSQL](https://cloud.google.com/sql/docs/postgres).

# Menggunakan database PostgreSQL sebagai sumber AWS DMS
<a name="CHAP_Source.PostgreSQL"></a>

Anda dapat memigrasikan data dari satu atau banyak database PostgreSQL menggunakan. AWS DMS Dengan database PostgreSQL sebagai sumber, Anda dapat memigrasikan data ke database PostgreSQL lain atau salah satu database lain yang didukung. 

Untuk informasi tentang versi PostgreSQL AWS DMS yang mendukung sebagai sumber, lihat. [Sumber untuk AWS DMS](CHAP_Introduction.Sources.md) 

AWS DMS mendukung PostgreSQL untuk jenis database ini: 
+ Basis data lokal
+ Basis data pada instans Amazon EC2
+ Basis data pada instans DB Amazon RDS
+ Basis data pada instans DB berdasarkan Amazon Aurora Edisi Kompatibel PostgreSQL
+ Database pada instans DB berdasarkan Amazon Aurora PostgreSQL yang kompatibel dengan Serverless Edition

**catatan**  
DMS mendukung Amazon Aurora PostgreSQL — V1 tanpa server sebagai sumber untuk Full load saja. Tetapi Anda dapat menggunakan Amazon Aurora PostgreSQL—Serverless V2 sebagai sumber untuk tugas Full load, Full load\$1CDC, dan CDC saja.

Anda dapat menggunakan Lapisan Soket Aman (SSL) untuk mengenkripsi sambungan antara titik akhir PostgreSQL Anda dan instans replikasi. Untuk informasi selengkapnya tentang penggunaan SSL dengan titik akhir PostgreSQL, lihat [Menggunakan SSL dengan AWS Database Migration Service](CHAP_Security.SSL.md).

Sebagai persyaratan keamanan tambahan saat menggunakan PostgreSQL sebagai sumber, akun pengguna yang ditentukan harus menjadi pengguna terdaftar di basis data PostgreSQL.

Untuk mengonfigurasi database PostgreSQL sebagai titik akhir sumber, lakukan hal AWS DMS berikut:
+ Buat pengguna PostgreSQL dengan izin yang sesuai untuk menyediakan AWS DMS akses ke database sumber PostgreSQL Anda.
**catatan**  
Jika basis data sumber PostgreSQL Anda dikelola sendiri, lihat[Bekerja dengan database PostgreSQL yang dikelola sendiri sebagai sumber di AWS DMS](#CHAP_Source.PostgreSQL.Prerequisites) untuk informasi lebih lanjut.
Jika basis data sumber PostgreSQL Anda dikelola oleh Amazon RDS, lihat [Bekerja dengan database PostgreSQL AWS-managed sebagai sumber DMS](#CHAP_Source.PostgreSQL.RDSPostgreSQL) untuk informasi lebih lanjut.
+ Buat titik akhir sumber PostgreSQL yang sesuai dengan konfigurasi basis data PostgreSQL yang Anda pilih.
+ Buat tugas atau serangkaian tugas untuk memigrasi tabel Anda.

  Untuk membuat full-load-only tugas, tidak diperlukan konfigurasi titik akhir lebih lanjut.

  Sebelum Anda membuat tugas untuk change data capture (tugas CDC saja atau tugas beban penuh dan CDC), lihat [Mengaktifkan CDC menggunakan database PostgreSQL yang dikelola sendiri sebagai sumber AWS DMS](#CHAP_Source.PostgreSQL.Prerequisites.CDC)atau [Mengaktifkan CDC dengan instans PostgreSQL DB AWS-managed dengan AWS DMS](#CHAP_Source.PostgreSQL.RDSPostgreSQL.CDC).

**Topics**
+ [Bekerja dengan database PostgreSQL yang dikelola sendiri sebagai sumber di AWS DMS](#CHAP_Source.PostgreSQL.Prerequisites)
+ [Bekerja dengan database PostgreSQL AWS-managed sebagai sumber DMS](#CHAP_Source.PostgreSQL.RDSPostgreSQL)
+ [Mengaktifkan change data capture (CDC) menggunakan replikasi logis](#CHAP_Source.PostgreSQL.Security)
+ [Menggunakan titik awal CDC asli untuk mengatur beban CDC dari sumber PostgreSQL](#CHAP_Source.PostgreSQL.v10)
+ [Migrasi dari PostgreSQL ke PostgreSQL menggunakan AWS DMS](#CHAP_Source.PostgreSQL.Homogeneous)
+ [Bermigrasi dari Babelfish untuk Amazon Aurora PostgreSQL menggunakan AWS DMS](#CHAP_Source.PostgreSQL.Babelfish)
+ [Menghapus AWS DMS artefak dari database sumber PostgreSQL](#CHAP_Source.PostgreSQL.CleanUp)
+ [Pengaturan konfigurasi tambahan ketika menggunakan basis data PostgreSQL sebagai sumber DMS](#CHAP_Source.PostgreSQL.Advanced)
+ [Baca replika sebagai sumber untuk PostgreSQL](#CHAP_Source.PostgreSQL.ReadReplica)
+ [Menggunakan pengaturan titik akhir `MapBooleanAsBoolean` PostgreSQL](#CHAP_Source.PostgreSQL.ConnectionAttrib.Endpointsetting)
+ [Pengaturan titik akhir dan Atribut Koneksi Ekstra (ECAs) saat menggunakan PostgreSQL sebagai sumber DMS](#CHAP_Source.PostgreSQL.ConnectionAttrib)
+ [Keterbatasan menggunakan basis data PostgreSQL sebagai sumber DMS](#CHAP_Source.PostgreSQL.Limitations)
+ [Jenis data sumber untuk PostgreSQL](#CHAP_Source-PostgreSQL-DataTypes)

## Bekerja dengan database PostgreSQL yang dikelola sendiri sebagai sumber di AWS DMS
<a name="CHAP_Source.PostgreSQL.Prerequisites"></a>

Dengan database PostgreSQL yang dikelola sendiri sebagai sumber, Anda dapat memigrasikan data ke database PostgreSQL lain, atau salah satu database target lain yang didukung oleh. AWS DMS Sumber basis data dapat berupa basis data lokal atau mesin yang dikelola sendiri yang berjalan pada instans Amazon EC2. Anda dapat menggunakan instans DB untuk baik tugas beban penuh maupun tugas chane data capture (CDC).

### Prasyarat untuk menggunakan database PostgreSQL yang dikelola sendiri sebagai sumber AWS DMS
<a name="CHAP_Source.PostgreSQL.Prerequisites.SelfManaged"></a>

Sebelum memigrasi data dari basis data sumber PostgreSQL yang dikelola sendiri, lakukan hal berikut: 
+ Pastikan Anda menggunakan database PostgreSQL yang versi 9.4.x atau lebih tinggi.
+ Untuk tugas beban penuh plus tugas CDC atau tugas CDC saja, berikan izin pengguna super untuk akun pengguna yang ditentukan untuk basis data sumber PostgreSQL. Akun pengguna membutuhkan izin pengguna super untuk mengakses fungsi khusus replikasi dalam sumber. Akun pengguna DMS membutuhkan izin SELECT pada semua kolom untuk memigrasi tabel dengan sukses. Dalam kasus izin yang hilang pada kolom, DMS membuat tabel target menggunakan pemetaan tipe data DMS biasa yang mengarah ke perbedaan metadata dan kegagalan tugas.
+ Tambahkan alamat IP server AWS DMS replikasi ke file `pg_hba.conf` konfigurasi dan aktifkan koneksi replikasi dan soket. Berikut contohnya.

  ```
              # Replication Instance
              host all all 12.3.4.56/00 md5
              # Allow replication connections from localhost, by a user with the
              # replication privilege.
              host replication dms 12.3.4.56/00 md5
  ```

  File konfigurasi `pg_hba.conf` PostgreSQL mengontrol autentikasi klien. (HBA adalah singkatan dari host-based authentication.) File secara tradisional disimpan dalam direktori data klaster basis data. 
+ Jika Anda mengonfigurasi database sebagai sumber replikasi logis menggunakan lihat AWS DMS [Mengaktifkan CDC menggunakan database PostgreSQL yang dikelola sendiri sebagai sumber AWS DMS](#CHAP_Source.PostgreSQL.Prerequisites.CDC)

**catatan**  
Beberapa AWS DMS transaksi menganggur selama beberapa waktu sebelum mesin DMS menggunakannya lagi. Dengan menggunakan parameter `idle_in_transaction_session_timeout` di PostgreSQL versi 9.6 dan yang lebih tinggi, Anda dapat menyebabkan transaksi idle habis dan gagal. Jangan mengakhiri transaksi yang diam saat Anda menggunakan AWS DMS. 

### Mengaktifkan CDC menggunakan database PostgreSQL yang dikelola sendiri sebagai sumber AWS DMS
<a name="CHAP_Source.PostgreSQL.Prerequisites.CDC"></a>

AWS DMS mendukung pengambilan data perubahan (CDC) menggunakan replikasi logis. Untuk mengaktifkan replikasi logis dari basis data sumber PostgreSQL yang dikelola sendiri, tetapkan parameter dan nilai berikut di file `postgresql.conf` konfigurasi:
+ Tetapkan `wal_level = logical`.
+ Tetapkan `max_replication_slots` untuk nilai yang lebih besar dari 1.

  Tetapkan nilai `max_replication_slots` sesuai dengan jumlah tugas yang ingin Anda jalankan. Misalnya, untuk menjalankan lima tugas Anda menetapkan minimal lima slot. Slot terbuka secara otomatis segera setelah tugas dimulai dan tetap terbuka bahkan ketika tugas tidak lagi berjalan. Pastikan Anda menghapus slot terbuka secara manual. Perhatikan bahwa DMS secara otomatis menjatuhkan slot replikasi ketika tugas dihapus, jika DMS membuat slot.
+ Atur `max_wal_senders` menjadi nilai yang lebih besar dari 1.

  Parameter`max_wal_senders` mengatur jumlah tugas bersamaan yang dapat berjalan.
+ Parameter `wal_sender_timeout` mengakhiri sambungan replikasi yang tidak aktif lebih lama dari jumlah milidetik tertentu. Default untuk database PostgreSQL lokal adalah 60000 milidetik (60 detik). Menyetel nilai ke 0 (nol) menonaktifkan mekanisme batas waktu, dan merupakan pengaturan yang valid untuk DMS.

  Saat menyetel `wal_sender_timeout` ke nilai bukan nol, tugas DMS dengan CDC membutuhkan minimal 10.000 milidetik (10 detik), dan gagal jika nilainya kurang dari 10.000. Jaga nilai kurang dari 5 menit untuk menghindari penundaan selama failover multi-AZ dari instance replikasi DMS.

Beberapa parameter bersifat statis, dan Anda hanya dapat mengaturnya pada awal server. Setiap perubahan pada entri mereka dalam file konfigurasi (untuk database yang dikelola sendiri) atau grup parameter DB (untuk RDS untuk database PostgreSQL) diabaikan sampai server dimulai ulang. Untuk informasi selengkapnya, lihat [dokumentasi PostgreSQL](https://www.postgresql.org/docs/current/intro-whatis.html).

Untuk informasi lebih lanjut tentang pengaktifan CDC, lihat [Mengaktifkan change data capture (CDC) menggunakan replikasi logis](#CHAP_Source.PostgreSQL.Security).

## Bekerja dengan database PostgreSQL AWS-managed sebagai sumber DMS
<a name="CHAP_Source.PostgreSQL.RDSPostgreSQL"></a>

Anda dapat menggunakan instance PostgreSQL DB AWS-managed sebagai sumber untuk. AWS DMS Anda dapat melakukan tugas beban penuh dan tugas change data capture (CDC) dengan menggunakan sumber PostgreSQL terkelola AWS. 

### Prasyarat untuk menggunakan database AWS PostgreSQL -managed sebagai sumber DMS
<a name="CHAP_Source.PostgreSQL.RDSPostgreSQL.Prerequisites"></a>

Sebelum memigrasikan data dari database sumber AWS PostgreSQL -managed, lakukan hal berikut:
+ Sebaiknya gunakan akun AWS pengguna dengan izin minimum yang diperlukan untuk instans PostgreSQL DB sebagai akun pengguna untuk titik akhir sumber PostgreSQL untuk. AWS DMS Menggunakan akun master tidak disarankan. Akun harus memiliki `rds_superuser` peran dan `rds_replication` peran. Peran `rds_replication` memberikan izin untuk mengelola slot logis dan mengalirkan data menggunakan slot logis.

  Pastikan untuk membuat beberapa objek dari akun pengguna master untuk akun yang Anda gunakan. Untuk informasi tentang pembuatan objek ini, lihat [Memigrasikan basis data Amazon RDS for PostgreSQL tanpa menggunakan akun pengguna utama](#CHAP_Source.PostgreSQL.RDSPostgreSQL.NonMasterUser).
+ Jika basis data sumber Anda dalam virtual private cloud (VPC), pilih grup keamanan VPC yang menyediakan akses ke instans DB di mana basis data berada. Hal ini diperlukan untuk instans replikasi DMS untuk menghubungkan berhasil ke instans DB sumber. Ketika instans replikasi basis data dan DMS dalam VPC yang sama, tambahkan grup keamanan yang sesuai untuk aturan inbound-nya sendiri.

**catatan**  
Beberapa AWS DMS transaksi menganggur selama beberapa waktu sebelum mesin DMS menggunakannya lagi. Dengan menggunakan parameter `idle_in_transaction_session_timeout` di PostgreSQL versi 9.6 dan yang lebih tinggi, Anda dapat menyebabkan transaksi idle habis dan gagal. Jangan mengakhiri transaksi yang diam saat Anda menggunakan AWS DMS.

### Mengaktifkan CDC dengan instans PostgreSQL DB AWS-managed dengan AWS DMS
<a name="CHAP_Source.PostgreSQL.RDSPostgreSQL.CDC"></a>

AWS DMS mendukung CDC pada database Amazon RDS PostgreSQL ketika instans DB dikonfigurasi untuk menggunakan replikasi logis. Tabel berikut merangkum kompatibilitas replikasi logis dari setiap versi PostgreSQL AWS-managed. 


|  Versi PostgreSQL  |  AWS DMS dukungan beban penuh   |  AWS DMS Dukungan CDC  | 
| --- | --- | --- | 
|  Aurora PostgreSQL versi 2.1 ini kompatibel dengan PostgreSQL 10.5 (atau versi di bawahnya).  |  Ya  |  Tidak  | 
|  Aurora PostgreSQL versi 2.2 dengan kompatibilitas PostgreSQL 10.6 (atau lebih tinggi)   |  Ya  |  Ya  | 
|  RDS untuk PostgreSQL dengan kompatibilitas PostgreSQL 10.21 (atau lebih tinggi)  |  Ya  |  Ya  | 

**Mengaktifkan replikasi logis untuk instans DB RDS PostgreSQL**

1. Gunakan akun pengguna AWS master untuk instance PostgreSQL DB sebagai akun pengguna untuk titik akhir sumber PostgreSQL. Akun pengguna utama memiliki peran yang diperlukan yang memungkinkan untuk mengatur CDC. 

   Jika Anda menggunakan akun selain akun pengguna utama, pastikan untuk membuat beberapa objek dari akun master untuk akun yang Anda gunakan. Untuk informasi selengkapnya, lihat [Memigrasikan basis data Amazon RDS for PostgreSQL tanpa menggunakan akun pengguna utama](#CHAP_Source.PostgreSQL.RDSPostgreSQL.NonMasterUser).

1. Atur parameter `rds.logical_replication` dalam grup parameter DB KLASTER Anda menjadi 1. Parameter statis memerlukan reboot dari instans DB agar menjadi berpengaruh. Sebagai bagian dari penerapan parameter ini, AWS DMS menetapkan parameter `wal_level`, `max_wal_senders`, `max_replication_slots`, dan `max_connections`. Perubahan parameter ini dapat meningkatkan generasi write ahead log (WAL), jadi atur `rds.logical_replication` saja ketika Anda menggunakan slot replikasi logis.

1. Parameter `wal_sender_timeout` mengakhiri sambungan replikasi yang tidak aktif lebih lama dari jumlah milidetik tertentu. Default untuk database PostgreSQL AWS-managed adalah 30000 milidetik (30 detik). Menyetel nilai ke 0 (nol) menonaktifkan mekanisme batas waktu, dan merupakan pengaturan yang valid untuk DMS.

   Saat menyetel `wal_sender_timeout` ke nilai bukan nol, tugas DMS dengan CDC membutuhkan minimal 10.000 milidetik (10 detik), dan gagal jika nilainya antara 0 dan 10000. Jaga nilai kurang dari 5 menit untuk menghindari penundaan selama failover multi-AZ dari instance replikasi DMS.

1.  Pastikan nilai `max_worker_processes` parameter dalam Grup Parameter Cluster DB Anda sama dengan, atau lebih tinggi dari total nilai gabungan`max_logical_replication_workers`,`autovacuum_max_workers`, dan`max_parallel_workers`. Sejumlah besar proses pekerja latar belakang dapat memengaruhi beban kerja aplikasi pada instance kecil. Jadi, pantau kinerja database Anda jika Anda menetapkan `max_worker_processes` lebih tinggi dari nilai default.

1.  Saat menggunakan Aurora PostgreSQL sebagai sumber dengan CDC, atur ke. `synchronous_commit` `ON`

**Untuk menggunakan PostgreSQL MultiAZ DB Cluster Read Replica untuk CDC (replikasi berkelanjutan)**

1. Atur `sync_replication_slots` parameter `rds.logical_replication` dan dalam grup parameter DB CLUSTER Anda ke 1. Parameter statis ini memerlukan reboot instance DB untuk diterapkan.

1. Jalankan perintah berikut untuk membuat `awsdms_ddl_audit` tabel pada Writer dan untuk mengganti `objects_schema` dengan nama skema yang akan digunakan:

   ```
   CREATE TABLE objects_schema.awsdms_ddl_audit
   (
     c_key    bigserial primary key,
     c_time   timestamp,    -- Informational
     c_user   varchar(64),  -- Informational: current_user
     c_txn    varchar(16),  -- Informational: current transaction
     c_tag    varchar(24),  -- Either 'CREATE TABLE' or 'ALTER TABLE' or 'DROP TABLE'
     c_oid    integer,      -- For future use - TG_OBJECTID
     c_name   varchar(64),  -- For future use - TG_OBJECTNAME
     c_schema varchar(64),  -- For future use - TG_SCHEMANAME. For now - holds current_schema
     c_ddlqry  text         -- The DDL query associated with the current DDL event
   );
   ```

1. Jalankan perintah berikut untuk membuat `awsdms_intercept_ddl` fungsi dan mengganti `objects_schema` dengan nama skema yang akan digunakan:

   ```
   CREATE OR REPLACE FUNCTION objects_schema.awsdms_intercept_ddl()
     RETURNS event_trigger
   LANGUAGE plpgsql
   SECURITY DEFINER
     AS $$
     declare _qry text;
   BEGIN
     if (tg_tag='CREATE TABLE' or tg_tag='ALTER TABLE' or tg_tag='DROP TABLE' or tg_tag = 'CREATE TABLE AS') then
            SELECT current_query() into _qry;
            insert into objects_schema.awsdms_ddl_audit
            values
            (
            default,current_timestamp,current_user,cast(TXID_CURRENT()as varchar(16)),tg_tag,0,'',current_schema,_qry
            );
            delete from objects_schema.awsdms_ddl_audit;
   end if;
   END;
   $$;
   ```

1. Jalankan perintah berikut untuk membuat pemicu `awsdms_intercept_ddl` acara:

   ```
   CREATE EVENT TRIGGER awsdms_intercept_ddl ON ddl_command_end EXECUTE PROCEDURE objects_schema.awsdms_intercept_ddl();
   ```

   Pastikan bahwa semua pengguna dan peran yang mengakses acara ini memiliki izin DDL yang diperlukan. Contoh:

   ```
   grant all on public.awsdms_ddl_audit to public;
   grant all on public.awsdms_ddl_audit_c_key_seq to public;
   ```

1. Buat slot replikasi di Writer:

   ```
   SELECT * FROM pg_create_logical_replication_slot('dms_read_replica_slot', 'test_decoding', false, true);
   ```

1. Pastikan slot replikasi tersedia di Reader:

   ```
   select * from pg_catalog.pg_replication_slots where slot_name = 'dms_read_replica_slot';
   
   slot_name            |plugin       |slot_type|datoid|database|temporary|active|active_pid|xmin|catalog_xmin|restart_lsn|confirmed_flush_lsn|wal_status|safe_wal_size|two_phase|inactive_since               |conflicting|invalidation_reason|failover|synced|
   ---------------------+-------------+---------+------+--------+---------+------+----------+----+------------+-----------+-------------------+----------+-------------+---------+-----------------------------+-----------+-------------------+--------+------+
   dms_read_replica_slot|test_decoding|logical  |     5|postgres|false    |false |          |    |3559        |0/180011B8 |0/180011F0         |reserved  |             |true     |2025-02-10 15:45:04.083 +0100|false      |                   |false   |false |
   ```

1. Buat titik akhir sumber DMS untuk Read Replica dan atur nama slot replikasi logis melalui Atribut Koneksi Ekstra:

   ```
   slotName=dms_read_replica_slot;
   ```

1. Buat dan mulai tugas CDC/FL\$1CDC.
**catatan**  
Untuk migrasi CDC/FL\$1CDC, DMS menganggap waktu mulai tugas sebagai posisi awal CDC. Semua yang lebih tua LSNs dari slot replikasi diabaikan.

### Memigrasikan basis data Amazon RDS for PostgreSQL tanpa menggunakan akun pengguna utama
<a name="CHAP_Source.PostgreSQL.RDSPostgreSQL.NonMasterUser"></a>

Dalam beberapa kasus, Anda mungkin tidak menggunakan akun pengguna utama untuk instans DB Amazon RDS PostgreSQL yang Anda gunakan sebagai sumber. Dalam kasus ini, Anda membuat beberapa objek untuk menangkap peristiwa data definition language (DDL). Anda membuat objek ini di akun selain akun utama kemudian membuat pemicu di akun pengguna utama.

**catatan**  
Jika Anda mengatur pengaturan `CaptureDdls` titik akhir ke `false` titik akhir sumber, Anda tidak perlu membuat tabel berikut dan memicu pada database sumber.

Gunakan prosedur berikut untuk membuat objek-objek ini.

**Membuat objek**

1. Pilih skema di tempat objek akan dibuat. Skema default adalah `public`. Pastikan bahwa skema ada dan dapat diakses oleh akun `OtherThanMaster`. 

1. Masuk ke instans DB PostgreSQL menggunakan akun pengguna selain akun master, berikut akun `OtherThanMaster`.

1. Buat tabel `awsdms_ddl_audit` dengan menjalankan perintah berikut, mengganti`objects_schema` dalam kode berikut dengan nama skema untuk yang digunakan.

   ```
   CREATE TABLE objects_schema.awsdms_ddl_audit
   (
     c_key    bigserial primary key,
     c_time   timestamp,    -- Informational
     c_user   varchar(64),  -- Informational: current_user
     c_txn    varchar(16),  -- Informational: current transaction
     c_tag    varchar(24),  -- Either 'CREATE TABLE' or 'ALTER TABLE' or 'DROP TABLE'
     c_oid    integer,      -- For future use - TG_OBJECTID
     c_name   varchar(64),  -- For future use - TG_OBJECTNAME
     c_schema varchar(64),  -- For future use - TG_SCHEMANAME. For now - holds current_schema
     c_ddlqry  text         -- The DDL query associated with the current DDL event
   );
   ```

1. Buat fungsi `awsdms_intercept_ddl` dengan menjalankan perintah berikut, mengganti `objects_schema` dalam kode berikut dengan nama skema untuk yang digunakan.

   ```
   CREATE OR REPLACE FUNCTION objects_schema.awsdms_intercept_ddl()
     RETURNS event_trigger
   LANGUAGE plpgsql
   SECURITY DEFINER
     AS $$
     declare _qry text;
   BEGIN
     if (tg_tag='CREATE TABLE' or tg_tag='ALTER TABLE' or tg_tag='DROP TABLE' or tg_tag = 'CREATE TABLE AS') then
            SELECT current_query() into _qry;
            insert into objects_schema.awsdms_ddl_audit
            values
            (
            default,current_timestamp,current_user,cast(TXID_CURRENT()as varchar(16)),tg_tag,0,'',current_schema,_qry
            );
            delete from objects_schema.awsdms_ddl_audit;
   end if;
   END;
   $$;
   ```

1. Keluar dari akun `OtherThanMaster` dan masuk dengan akun yang memiliki peran `rds_superuser` yang ditentukan akun itu.

1. Buat pemicu peristiwab`awsdms_intercept_ddl` dengan menjalankan perintah berikut.

   ```
   CREATE EVENT TRIGGER awsdms_intercept_ddl ON ddl_command_end 
   EXECUTE PROCEDURE objects_schema.awsdms_intercept_ddl();
   ```

1. Pastikan bahwa semua pengguna dan peran yang mengakses peristiwa ini memiliki izin DDL yang diperlukan. Contoh:

   ```
   grant all on public.awsdms_ddl_audit to public;
   grant all on public.awsdms_ddl_audit_c_key_seq to public;
   ```

Ketika Anda telah menyelesaikan prosedur sebelumnya, Anda dapat membuat titik akhir sumber AWS DMS menggunakan akun `OtherThanMaster`.

**catatan**  
Peristiwa ini dipicu oleh pernyataan `CREATE TABLE`, `ALTER TABLE`, dan `DROP TABLE`.

## Mengaktifkan change data capture (CDC) menggunakan replikasi logis
<a name="CHAP_Source.PostgreSQL.Security"></a>

Anda dapat menggunakan fitur replikasi logis asli PostgreSQL untuk mengaktifkan change data capture (CDC) selama migrasi basis data untuk sumber PostgreSQL. Anda dapat menggunakan fitur ini dengan PostgreSQL yang dikelola sendiri dan juga instans Amazon RDS for PostgreSQL SQL DB. Pendekatan ini mengurangi downtime dan membantu memastikan bahwa basis data target sinkron dengan basis data PostgreSQL sumber.

AWS DMS mendukung CDC untuk tabel PostgreSQL dengan kunci utama. Jika tabel tidak memiliki kunci utama, log write-ahead (WAL) tidak menyertakan gambar sebelumnya dari baris database. Dalam kasus ini, DMS tidak dapat memperbarui tabel. Di sini, Anda dapat menggunakan pengaturan konfigurasi tambahan dan menggunakan identitas replika tabel sebagai solusi. Namun, pendekatan ini dapat menghasilkan log tambahan. Kami merekomendasikan agar Anda menggunakan identitas replika tabel sebagai solusi hanya setelah pengujian yang cermat. Untuk informasi selengkapnya, lihat [Pengaturan konfigurasi tambahan ketika menggunakan basis data PostgreSQL sebagai sumber DMS](#CHAP_Source.PostgreSQL.Advanced).

**catatan**  
REPLICA IDENTITY FULL didukung dengan plugin decoding logis, tetapi tidak didukung dengan plugin pglogical. Untuk informasi lebih lanjut, lihat dokumentasi [pglogical](https://github.com/2ndQuadrant/pglogical#primary-key-or-replica-identity-required).

Untuk tugas beban penuh dan hanya CDC dan CDC, AWS DMS gunakan slot replikasi logis untuk menyimpan log WAL untuk replikasi hingga log diterjemahkan. Pada saat mengulang kembali (bukan saat melanjutkan) untuk tugas beban penuh dan CDC atau tugas CDC, slot replikasi akan diciptakan kembali.

**catatan**  
Untuk decoding logis, DMS menggunakan test\$1decoding atau pglogical plugin. Jika plugin pglogical tersedia pada basis data PostgreSQL sumber, DMS menciptakan slot replikasi menggunakan pglogical, jika tidak plugin test\$1decoding digunakan. [Untuk informasi selengkapnya tentang plugin test\$1decoding, lihat Dokumentasi PostgreSQL.](https://www.postgresql.org/docs/9.4/test-decoding.html)  
Jika parameter database `max_slot_wal_keep_size` diatur ke nilai non default, dan slot replikasi berada di belakang LSN saat ini lebih dari ukuran ini, tugas DMS gagal karena penghapusan file WAL yang diperlukan. `restart_lsn`

### Mengonfigurasi plugin pglogical
<a name="CHAP_Source.PostgreSQL.Security.Pglogical"></a>

Diimplementasikan sebagai ekstensi PostgreSQL, plugin pglogical adalah sistem replikasi logis dan model untuk replikasi data selektif. Tabel berikut mengidentifikasi versi basis data PostgreSQL sumber yang mendukung plugin pglogical.


|  Sumber PostgreSQL   |  Mendukung pglogical  | 
| --- | --- | 
|  PostgreSQL 9.4 atau versi yang lebih tinggi yang dikelola sendiri  |  Ya  | 
|  Amazon RDS PostgreSQL 9.5 atau versi yang lebih rendah  |  Tidak  | 
|  Amazon RDS PostgreSQL 9.6 atau versi yang lebih tinggi  |  Ya  | 
|  Aurora PostgreSQL 1.x sampai 2.5.x  |  Tidak  | 
|  Aurora PostgreSQL 2.6.x atau versi yang lebih tinggi  |  Ya  | 
|  Aurora PostgreSQL 3.3.x atau versi yang lebih tinggi  |  Ya  | 

Sebelum mengonfigurasi pglogical untuk digunakan dengan AWS DMS, pertama-tama aktifkan replikasi logis untuk pengambilan data perubahan (CDC) pada database sumber PostgreSQL Anda. 
+ Untuk informasi tentang pengaktifan replikasi logis untuk CDC pada basis data sumber PostgreSQL*yang dikelola sendiri*, lihat [Mengaktifkan CDC menggunakan database PostgreSQL yang dikelola sendiri sebagai sumber AWS DMS](#CHAP_Source.PostgreSQL.Prerequisites.CDC)
+ Untuk informasi tentang pengaktifan replikasi logis untuk CDC pada basis data sumber PostgreSQL *terkelola AWS*, lihat [Mengaktifkan CDC dengan instans PostgreSQL DB AWS-managed dengan AWS DMS](#CHAP_Source.PostgreSQL.RDSPostgreSQL.CDC).

Setelah replikasi logis diaktifkan pada basis data sumber PostgreSQL Anda, gunakan langkah-langkah berikut untuk mengonfigurasi pglogical untuk digunakan dengan DMS.

**Untuk menggunakan plugin pglogical untuk replikasi logis pada database sumber PostgreSQL dengan AWS DMS**

1. Buat ekstensi pglogical pada basis data PostgreSQL sumber Anda:

   1. Atur parameter yang benar:
      + Untuk basis data PostgreSQL yang dikelola sendiri, atur parameter basis data `shared_preload_libraries= 'pglogical'`.
      + Untuk basis data PostgreSQL pada Amazon RDS dan Amazon Aurora Edisi Kompatibel PostgreSQL, atur parameter `shared_preload_libraries` menjadi `pglogical` dalam grup parameter RDS yang sama.

   1. Mulai ulang basis data sumber PostgreSQL Anda.

   1. Pada basis data PostgreSQL, jalankan perintah, `create extension pglogical;`

1. Jalankan perintah berikut untuk melakukan verifikasi bahwa pglogical berhasil diinstal:

   `select * FROM pg_catalog.pg_extension`

Anda sekarang dapat membuat AWS DMS tugas yang melakukan perubahan pengambilan data untuk titik akhir database sumber PostgreSQL Anda.

**catatan**  
Jika Anda tidak mengaktifkan pglogical pada basis data sumber PostgreSQL Anda, AWS DMS menggunakan plugin `test_decoding` secara default. Ketika pglogical diaktifkan untuk decoding logis, AWS DMS gunakan pglogical secara default. Tapi Anda dapat mengatur atribut sambungan tambahan, `PluginName`untuk menggunakan plugin `test_decoding` sebagai gantinya.

## Menggunakan titik awal CDC asli untuk mengatur beban CDC dari sumber PostgreSQL
<a name="CHAP_Source.PostgreSQL.v10"></a>

Untuk mengaktifkan titik awal CDC asli dengan PostgreSQL sebagai sumber, atur atribut sambungan tambahan `slotName` menjadi nama slot replikasi logis yang ada ketika Anda membuat titik akhir. Slot replikasi logis ini menyimpan perubahan yang sedang berlangsung dari waktu penciptaan titik akhir, sehingga mendukung replikasi dari periode waktu sebelumnya. 

PostgreSQL menulis perubahan basis data di file WAL yang dibuang hanya setelah AWS DMS berhasil membaca perubahan dari slot replikasi logis. Menggunakan slot replikasi logis dapat melindungi perubahan yang dicatat dari penghapusan sebelum slot dikonsumsi oleh mesin replikasi. 

Namun, tergantung pada tingkat perubahan dan konsumsi, perubahan yang disimpan di slot replikasi logis dapat menyebabkan peningkatan penggunaan disk. Kami merekomendasikan agar Anda mengatur ruang penggunaan alarm dalam instans PostgreSQL sumber ketika Anda menggunakan slot replikasi logis. Untuk informasi lebih lanjut tentang pengaturan atribut sambungan tambahan `slotName`, lihat [Pengaturan titik akhir dan Atribut Koneksi Ekstra (ECAs) saat menggunakan PostgreSQL sebagai sumber DMS](#CHAP_Source.PostgreSQL.ConnectionAttrib).

Prosedur berikut melalui pendekatan ini secara lebih rinci.

**Menggunakan titik awal CDC asli untuk mengatur beban CDC dari titik akhir sumber PostgreSQL**

1. Identifikasi slot replikasi logis yang digunakan oleh tugas replikasi sebelumnya (tugas induk) yang ingin Anda gunakan sebagai titik awal. Kemudian kueri `pg_replication_slots` tampilan pada database sumber Anda untuk memastikan bahwa slot ini tidak memiliki koneksi aktif. Jika ya, selesaikan dan tutup sebelum melanjutkan.

   Untuk langkah-langkah berikut, anggaplah bahwa slot replikasi logis Anda `abc1d2efghijk_34567890_z0yx98w7_6v54_32ut_1srq_1a2b34c5d67ef`. 

1. Buat titik akhir sumber baru yang mencakup pengaturan atribut sambungan tambahan berikut.

   ```
   slotName=abc1d2efghijk_34567890_z0yx98w7_6v54_32ut_1srq_1a2b34c5d67ef;
   ```

1. Buat tugas baru khusus CDC menggunakan konsol, AWS CLI atau AWS DMS API. Misalnya, dengan menggunakan CLI Anda dapat menjalankan perintah `create-replication-task` berikut. 

   ```
   aws dms create-replication-task --replication-task-identifier postgresql-slot-name-test 
   --source-endpoint-arn arn:aws:dms:us-west-2:012345678901:endpoint:ABCD1EFGHIJK2LMNOPQRST3UV4 
   --target-endpoint-arn arn:aws:dms:us-west-2:012345678901:endpoint:ZYX9WVUTSRQONM8LKJIHGF7ED6 
   --replication-instance-arn arn:aws:dms:us-west-2:012345678901:rep:AAAAAAAAAAA5BB4CCC3DDDD2EE 
   --migration-type cdc --table-mappings "file://mappings.json" --cdc-start-position "4AF/B00000D0" 
   --replication-task-settings "file://task-pg.json"
   ```

   Dalam perintah sebelumnya, opsi berikut ditetapkan:
   + Opsi `source-endpoint-arn` diatur menjadi nilai baru yang Anda buat di langkah 2.
   + Opsi `replication-instance-arn` diatur menjadi nilai yang sama seperti untuk tugas induk dari langkah 1.
   + Opsi `table-mappings` dan `replication-task-settings` ditetapkan menjadi nilai yang sama seperti untuk tugas induk dari langkah 1.
   + Opsi `cdc-start-position` diatur menjadi nilai posisi awal. Untuk menemukan posisi awal ini, lakukan kueri tampilan `pg_replication_slots`pada basis data sumber Anda atau lihat detail konsol untuk tugas induk di langkah 1. Untuk informasi selengkapnya, lihat [Menentukan titik awal CDC asli](CHAP_Task.CDC.md#CHAP_Task.CDC.StartPoint.Native).

   Untuk mengaktifkan mode mulai CDC khusus saat membuat tugas khusus CDC baru menggunakan AWS DMS konsol, lakukan hal berikut:
   + Di bagian **Pengaturan tugas**, untuk **mode mulai CDC untuk transaksi sumber**, pilih **Aktifkan mode mulai CDC khusus**.
   + Untuk **titik awal CDC khusus untuk transaksi sumber**, pilih **Tentukan nomor urutan log**. Tentukan nomor perubahan sistem atau pilih **Tentukan pos pemeriksaan pemulihan**, dan berikan pos pemeriksaan Pemulihan.

   Ketika tugas CDC ini berjalan, AWS DMS menimbulkan kesalahan jika slot replikasi logis yang ditentukan tidak ada. Hal ini juga menimbulkan kesalahan jika tugas tidak dibuat dengan pengaturan yang valid untuk `cdc-start-position`.

Ketika menggunakan titik awal CDC asli dengan plugin pglogical dan Anda ingin menggunakan slot replikasi baru, selesaikan langkah-langkah pengaturan berikut sebelum membuat tugas CDC. 

**Menggunakan slot replikasi baru yang sebelumnya tidak dibuat sebagai bagian dari tugas DMS lain**

1. Buat slot replikasi, seperti yang ditunjukkan berikut:

   ```
   SELECT * FROM pg_create_logical_replication_slot('replication_slot_name', 'pglogical');
   ```

1. **Setelah database membuat slot replikasi, dapatkan dan catat nilai **restart\$1lsn dan confirmed\$1flush\$1lsn** untuk slot:**

   ```
   select * from pg_replication_slots where slot_name like 'replication_slot_name';
   ```

   **Perhatikan bahwa posisi Mulai CDC Asli untuk tugas CDC yang dibuat setelah slot replikasi tidak boleh lebih tua dari nilai confirmed\$1flush\$1lsn.**

   **[Untuk informasi tentang nilai **restart\$1lsn dan confirmed\$1flush\$1lsn**, lihat pg\$1replication\$1slots](https://www.postgresql.org/docs/14/view-pg-replication-slots.html)** 

1. Buat node pglogical.

   ```
   SELECT pglogical.create_node(node_name := 'node_name', dsn := 'your_dsn_name');
   ```

1. Buat dua set replikasi menggunakan `pglogical.create_replication_set` fungsi. Set replikasi pertama melacak pembaruan dan penghapusan untuk tabel yang memiliki kunci utama. Set replikasi kedua hanya menyisipkan, dan memiliki nama yang sama dengan set replikasi pertama, dengan awalan tambahan 'i'.

   ```
   SELECT pglogical.create_replication_set('replication_slot_name', false, true, true, false);
   SELECT pglogical.create_replication_set('ireplication_slot_name', true, false, false, true);
   ```

1. Tambahkan tabel pada set replikasi.

   ```
   SELECT pglogical.replication_set_add_table('replication_slot_name', 'schemaname.tablename', true);
   SELECT pglogical.replication_set_add_table('ireplication_slot_name', 'schemaname.tablename', true);
   ```

1. Atur atribut sambungan tambahan (ECA) berikut ketika Anda membuat titik akhir sumber Anda.

   ```
   PluginName=PGLOGICAL;slotName=slot_name;
   ```

Anda sekarang dapat membuat tugas CDC saja dengan titik awal asli PostgreSQL menggunakan slot replikasi baru. Untuk informasi lebih lanjut tentang plugin pglogical, lihat dokumentasi [pglogical](https://www.enterprisedb.com/docs/pgd/3.7/pglogical/) 3.7

## Migrasi dari PostgreSQL ke PostgreSQL menggunakan AWS DMS
<a name="CHAP_Source.PostgreSQL.Homogeneous"></a>

Ketika Anda bermigrasi dari mesin database selain PostgreSQL ke database PostgreSQL, hampir selalu merupakan alat migrasi terbaik untuk digunakan AWS DMS . Tapi ketika Anda bermigrasi dari basis data PostgreSQL ke basis data PostgreSQL, alat PostgreSQL bisa lebih efektif.

### Menggunakan alat asli PostgreSQL untuk memigrasi data
<a name="CHAP_Source.PostgreSQL.Homogeneous.Native"></a>

Kami menyarankan Anda untuk menggunakan alat migrasi basis data seperti `pg_dump` dalam kondisi berikut: 
+ Anda memiliki migrasi yang homogen, yaitu Anda bermigrasi dari basis data PostgreSQL sumber ke basis data PostgreSQL target. 
+ Anda memigrasi seluruh basis data.
+ Alat asli mengizinkan Anda untuk memigrasi data Anda dengan waktu downtime minimal. 

Utilitas pg\$1dump menggunakan perintah COPY untuk membuat skema dan data dump dari basis data PostgreSQL. Skrip dump yang dibuat oleh pg\$1dump memuat data ke dalam basis data dengan nama yang sama dan membuat ulang tabel, indeks, dan kunci asing. Untuk memulihkan data ke basis data dengan nama yang berbeda, gunakan perintah `pg_restore` dan parameter `-d`.

Jika Anda memigrasi data dari basis data sumber PostgreSQL yang berjalan pada EC2 ke target Amazon RDS for PostgreSQL, Anda dapat menggunakan plugin pglogical.

Untuk informasi lebih lanjut tentang impor basis data PostgreSQL ke dalam Amazon RDS for PostgreSQL atau Amazon Aurora Edisi Kompatibel PostgreSQL, lihat [https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html).

### Menggunakan DMS untuk memigrasi data dari PostgreSQL ke PostgreSQL
<a name="CHAP_Source.PostgreSQL.Homogeneous.DMS"></a>

 AWS DMS dapat memigrasikan data, misalnya, dari database PostgreSQL sumber yang ada di lokasi ke target Amazon RDS for PostgreSQL atau instance PostgreSQL Aurora. Jenis data PostgreSQL inti atau basic paling sering bermigrasi dengan berhasil.

**catatan**  
Ketika mereplikasi tabel dipartisi dari sumber PostgreSQL ke target PostgreSQL, Anda tidak perlu menyebutkan tabel induk sebagai bagian dari kriteria seleksi dalam tugas DMS. Menyebutkan tabel induk menyebabkan data diduplikasi dalam tabel anak pada target, dapat menyebabkan pelanggaran PK. Dengan memilih tabel anak saja dalam kriteria pemilihan pemetaan tabel, tabel induk secara otomatis diisi.

Tipe data yang didukung pada database sumber tetapi tidak didukung pada target mungkin tidak berhasil bermigrasi. AWS DMS mengalirkan beberapa tipe data sebagai string jika tipe data tidak diketahui. Beberapa jenis data, seperti XML dan JSON, dapat berhasil bermigrasi sebagai file kecil tetapi dapat gagal jika mereka merupakan dokumen besar. 

Saat melakukan migrasi jenis data, perhatikan hal-hal berikut:
+ Dalam beberapa kasus, tipe data PostgreSQL NUMERIC (p, s) tidak menentukan presisi dan skala apa pun. Untuk DMS versi 3.4.2 dan versi sebelumnya, DMS menggunakan presisi 28 dan skala 6 secara default, NUMERIC (28,6). Misalnya, nilai 0.611111104488373 dari sumber dikonversi menjadi 0.611111 pada target PostgreSQL.
+ Tabel dengan jenis data ARRAY harus memiliki kunci primer. Tabel dengan jenis data ARRAY yang kekurangan kunci primer akan ditangguhkan selama beban penuh.

Tabel berikut menunjukkan sumber jenis data PostgreSQL dan apakah mereka dapat berhasil dimigrasi.


| Jenis data | Berhasil bermigrasi | Bermigrasi sebagian | tidak bermigrasi | Komentar | 
| --- | --- | --- | --- | --- | 
| INTEGER | X |  |  |  | 
| SMALLINT | X |  |  |  | 
| BIGINT | X |  |  |  | 
| NUMERIC/DECIMAL(p,s) |  | X |  | Di mana 0<p<39 dan 0<s | 
| NUMERIC/DECIMAL |  | X |  | Di mana p>38 atau p=s=0 | 
| REAL | X |  |  |  | 
| DOUBLE | X |  |  |  | 
| SMALLSERIAL | X |  |  |  | 
| SERIAL | X |  |  |  | 
| BIGSERIAL | X |  |  |  | 
| MONEY | X |  |  |  | 
| CHAR |  | X |  | Tanpa presisi tertentu | 
| CHAR(N) | X |  |  |  | 
| VARCHAR |  | X |  | Tanpa presisi tertentu | 
| VARCHAR(N) | X |  |  |  | 
| TEXT | X |  |  |  | 
| BYTEA | X |  |  |  | 
| TIMESTAMP | X |  |  | Nilai tak terhingga positif dan negatif dipotong menjadi '9999-12-31 23:59:59 'dan '4713-01-01 00:00:00 BC' masing-masing. | 
| TIMESTAMP WITH TIME ZONE |  | X |  |  | 
| DATE | X |  |  |  | 
| TIME | X |  |  |  | 
| TIME WITH TIME ZONE | X |  |  |  | 
| INTERVAL |  | X |  |  | 
| BOOLEAN | X |  |  |  | 
| ENUM |  |  | X |  | 
| CIDR | X |  |  |  | 
| INET |  |  | X |  | 
| MACADDR |  |  | X |  | 
| TSVECTOR |  |  | X |  | 
| TSQUERY |  |  | X |  | 
| XML |  | X |  |  | 
| POINT | X |  |  | Jenis data spasial PostGIS | 
| LINE |  |  | X |  | 
| LSEG |  |  | X |  | 
| BOX |  |  | X |  | 
| PATH |  |  | X |  | 
| POLYGON | X |  |  | Jenis data spasial PostGIS | 
| CIRCLE |  |  | X |  | 
| JSON |  | X |  |  | 
| ARRAY | X |  |  | Memerlukan Kunci Primer | 
| COMPOSITE |  |  | X |  | 
| RANGE |  |  | X |  | 
| LINESTRING | X |  |  | Jenis data spasial PostGIS | 
| MULTIPOINT | X |  |  | Jenis data spasial PostGIS | 
| MULTILINESTRING | X |  |  | Jenis data spasial PostGIS | 
| MULTIPOLYGON | X |  |  | Jenis data spasial PostGIS | 
| GEOMETRYCOLLECTION | X |  |  | Jenis data spasial PostGIS | 

### Memigrasikan jenis data spasial PostGIS
<a name="CHAP_Source.PostgreSQL.DataTypes.Spatial"></a>

*Data spasial* mengidentifikasi informasi geometri dari suatu objek atau lokasi di ruang. Basis data relasional objek PostgreSQL mendukung jenis data spasial PostGIS. 

Sebelum memigrasi objek data spasial PostgreSQL, pastikan plugin PostGIS diaktifkan pada tingkat global. Melakukan hal ini memastikan bahwa AWS DMS menciptakan kolom data spasial sumber yang tepat untuk instance DB target PostgreSQL.

Untuk PostgreSQL ke PostgreSQL AWS DMS migrasi homogen PostgreSQL, mendukung migrasi tipe dan subtipe objek data geometris dan geografis PostGIS (koordinat geodetik) seperti berikut ini:
+  POINT 
+  LINESTRING 
+  POLYGON 
+  MULTIPOINT 
+  MULTILINESTRING 
+  MULTIPOLYGON 
+  GEOMETRYCOLLECTION 

## Bermigrasi dari Babelfish untuk Amazon Aurora PostgreSQL menggunakan AWS DMS
<a name="CHAP_Source.PostgreSQL.Babelfish"></a>

Anda dapat memigrasikan tabel sumber Babelfish untuk Aurora PostgreSQL ke titik akhir target yang didukung. AWS DMS

Saat membuat titik akhir AWS DMS sumber menggunakan konsol DMS, API, atau perintah CLI, Anda menyetel sumbernya ke **Amazon Aurora PostgreSQL**, dan nama database ke. **babelfish\$1db** Di bagian **Pengaturan Endpoint**, pastikan bahwa **DatabaseMode**diatur ke **Babelfish**, dan **BabelfishDatabaseName**diatur ke nama sumber database Babelfish T-SQL. Alih-alih menggunakan port TCP Babelfish**1433**, gunakan port Aurora PostgreSQL TCP. **5432**

Anda harus membuat tabel sebelum memigrasi data untuk memastikan bahwa DMS menggunakan tipe data dan metadata tabel yang benar. Jika Anda tidak membuat tabel pada target sebelum menjalankan migrasi, DMS dapat membuat tabel dengan tipe data dan izin yang salah.

### Menambahkan aturan transformasi ke tugas migrasi Anda
<a name="CHAP_Source.PostgreSQL.Babelfish.Transform"></a>

Saat membuat tugas migrasi untuk sumber Babelfish, Anda perlu menyertakan aturan transformasi yang memastikan bahwa DMS menggunakan tabel target yang telah dibuat sebelumnya.

Jika Anda menetapkan mode migrasi multi-database saat menentukan Babelfish untuk klaster PostgreSQL, tambahkan aturan transformasi yang mengganti nama skema ke skema T-SQL. Misalnya, jika nama skema T-SQL adalah`dbo`, dan nama skema Babelfish untuk PostgreSQL Anda, ganti nama skema menjadi menggunakan aturan transformasi. `mydb_dbo` `dbo` *Untuk menemukan nama skema PostgreSQL, lihat [Arsitektur Babelfish](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/babelfish-architecture.html) di Panduan Pengguna Amazon Aurora.* 

Jika Anda menggunakan mode database tunggal, Anda tidak perlu menggunakan aturan transformasi untuk mengganti nama skema database. Nama skema PostgreSQL memiliki pemetaan ke nama skema one-to-one dalam database T-SQL.

Contoh aturan transformasi berikut menunjukkan cara mengganti nama nama skema dari `mydb_dbo` belakang ke: `dbo`

```
{
    "rules": [
        {
            "rule-type": "transformation",
            "rule-id": "566251737",
            "rule-name": "566251737",
            "rule-target": "schema",
            "object-locator": {
                "schema-name": "mydb_dbo"
            },
            "rule-action": "rename",
            "value": "dbo",
            "old-value": null
        },
        {
            "rule-type": "selection",
            "rule-id": "566111704",
            "rule-name": "566111704",
            "object-locator": {
                "schema-name": "mydb_dbo",
                "table-name": "%"
            },
            "rule-action": "include",
            "filters": []
        }
    ]
}
```

### Batasan untuk menggunakan titik akhir sumber PostgreSQL dengan tabel Babelfish
<a name="CHAP_Source.PostgreSQL.Babelfish.Limitations"></a>

Batasan berikut berlaku saat menggunakan titik akhir sumber PostgreSQL dengan tabel Babelfish:
+ DMS hanya mendukung migrasi dari Babelfish versi 16.2/15.6 dan yang lebih baru, dan DMS versi 3.5.3 dan yang lebih baru.
+ DMS tidak mereplikasi perubahan definisi tabel Babelfish ke titik akhir target. Solusi untuk batasan ini adalah dengan terlebih dahulu menerapkan perubahan definisi tabel pada target, dan kemudian mengubah definisi tabel pada sumber Babelfish.
+ Saat Anda membuat tabel Babelfish dengan tipe data BYTEA, DMS mengonversinya menjadi tipe `varbinary(max)` data saat bermigrasi ke SQL Server sebagai target.
+ DMS tidak mendukung mode LOB Penuh untuk tipe data biner. Gunakan mode LOB terbatas untuk tipe data biner sebagai gantinya.
+ DMS tidak mendukung validasi data untuk Babelfish sebagai sumber.
+ Untuk pengaturan tugas **mode persiapan tabel Target**, gunakan hanya mode **Do nothing** atau **Truncate.** Jangan gunakan **tabel Drop pada mode target**. Saat menggunakan **tabel Drop pada target**, DMS dapat membuat tabel dengan tipe data yang salah.
+ Saat menggunakan replikasi berkelanjutan (CDC atau Full load dan CDC), atur atribut koneksi `PluginName` tambahan (ECA) ke. `TEST_DECODING`
+ DMS tidak mendukung replikasi (CDC atau Full load dan CDC) dari tabel yang dipartisi untuk Babelfish sebagai sumber.

## Menghapus AWS DMS artefak dari database sumber PostgreSQL
<a name="CHAP_Source.PostgreSQL.CleanUp"></a>

Untuk menangkap peristiwa DDL, AWS DMS membuat berbagai artefak dalam database PostgreSQL saat tugas migrasi dimulai. Saat tugas selesai, Anda mungkin ingin menghapus artefak ini.

Untuk menghapus artefak, keluarkan pernyataan berikut (dalam urutan saat muncul), di mana `{AmazonRDSMigration}` adalah skema di mana artefak dibuat. Menjatuhkan skema harus dilakukan dengan sangat hati-hati. Jangan pernah menjatuhkan skema operasional, apalagi skema publik.

```
drop event trigger awsdms_intercept_ddl;
```

Pemicu peristiwa tidak termasuk dalam skema tertentu.

```
drop function {AmazonRDSMigration}.awsdms_intercept_ddl()
drop table {AmazonRDSMigration}.awsdms_ddl_audit
drop schema {AmazonRDSMigration}
```

## Pengaturan konfigurasi tambahan ketika menggunakan basis data PostgreSQL sebagai sumber DMS
<a name="CHAP_Source.PostgreSQL.Advanced"></a>

Anda dapat menambahkan pengaturan konfigurasi tambahan ketika memigrasi data dari basis data PostgreSQL dengan dua cara:
+ Anda dapat menambahkan nilai ke atribut sambungan tambahan untuk menangkap peristiwa DDL dan menentukan skema di mana artefak basis data DL operasional dibuat. Untuk informasi selengkapnya, lihat [Pengaturan titik akhir dan Atribut Koneksi Ekstra (ECAs) saat menggunakan PostgreSQL sebagai sumber DMS](#CHAP_Source.PostgreSQL.ConnectionAttrib).
+ Anda dapat mengganti parameter string sambungan. Pilih opsi ini untuk melakukan salah satu dari berikut:
  + Tentukan AWS DMS parameter internal. Parameter tersebut jarang diperlukan sehingga tidak tampak di antarmuka pengguna.
  + Tentukan nilai pass-through (passthru) untuk klien database tertentu. AWS DMS termasuk parameter pass-through dalam sengatan koneksi yang diteruskan ke klien database.
+ Dengan menggunakan parameter tingkat tabel di `REPLICA IDENTITY` PostgreSQL versi 9.4 dan yang lebih tinggi, Anda dapat mengontrol informasi yang ditulis ke log write-ahead (). WALs Secara khusus, ia melakukannya untuk WALs mengidentifikasi baris yang diperbarui atau dihapus. `REPLICA IDENTITY FULL`mencatat nilai lama dari semua kolom di baris. Gunakan `REPLICA IDENTITY FULL` dengan hati-hati untuk setiap tabel karena `FULL` menghasilkan jumlah tambahan WALs yang mungkin tidak diperlukan. Untuk informasi lebih lanjut, lihat [ALTER TABLE-REPLICA](https://www.postgresql.org/docs/devel/sql-altertable.html) IDENTITY 

## Baca replika sebagai sumber untuk PostgreSQL
<a name="CHAP_Source.PostgreSQL.ReadReplica"></a>

Gunakan replika baca PostgreSQL sebagai sumber CDC untuk mengurangi beban basis data utama. AWS DMS Fitur ini tersedia dari PostgreSQL 16.x dan membutuhkan versi 3.6.1 atau yang lebih baru. AWS DMS Menggunakan replika baca untuk pemrosesan CDC mengurangi dampak operasional pada basis data utama Anda.

**catatan**  
Amazon RDS PostgreSQL versi 16.x memiliki keterbatasan untuk replikasi logis replika baca dalam konfigurasi tiga-AZ (TAZ). Untuk dukungan replikasi logis replika baca lengkap dalam penerapan TAZ, Anda harus menggunakan PostgreSQL versi 17.x atau yang lebih baru.

### Prasyarat
<a name="CHAP_Source.PostgreSQL.ReadReplica.prereq"></a>

Sebelum menggunakan replika baca sebagai sumber CDC AWS DMS, Anda harus mengaktifkan replikasi logis pada instance Database utama dan replika bacanya untuk membuat decoding logis pada replika baca. Lakukan tindakan berikut:
+ Aktifkan replikasi logis pada keduanya, instance database utama Anda dan replika bacanya bersama dengan parameter database lain yang diperlukan. Untuk informasi selengkapnya, lihat [Bekerja dengan database PostgreSQL AWS-managed sebagai sumber DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.RDSPostgreSQL).
+ Untuk tugas khusus CDC, buat slot replikasi pada instance utama (penulis). Untuk informasi selengkapnya, lihat [Menggunakan titik awal CDC asli untuk menyiapkan beban CDC dari sumber PostgreSQL](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.v10). Tindakan ini diperlukan karena replika baca tidak mendukung pembuatan slot replikasi.
+ Untuk PostgreSQL versi 16, slot harus dibuat secara manual pada replika baca.
+ Untuk PostgreSQL versi 17 ke atas, slot replikasi harus dibuat pada primer, dan secara otomatis disinkronkan ke replika baca.
+ Saat menggunakan tugas Full Load\$1CDC atau CDC saja, AWS DMS dapat secara otomatis mengelola slot replikasi logis pada instance utama tetapi tidak pada replika baca. Untuk PostgreSQL versi 16 baca replika, Anda harus secara manual menjatuhkan dan membuat ulang slot replikasi sebelum memulai ulang tugas (tidak melanjutkan). Melewati langkah ini dapat menyebabkan kegagalan tugas atau posisi awal CDC yang salah. Dari PostgreSQL versi 17 dan seterusnya, sinkronisasi slot logis dari instance utama mengotomatiskan proses ini.

Setelah menyelesaikan prasyarat, Anda dapat mengatur titik akhir sumber Anda dengan replikasi AWS DMS sumber replika `SlotName` baca di pengaturan titik akhir dan mengonfigurasi tugas Anda menggunakan titik awal CDC asli. AWS DMS Untuk informasi selengkapnya lihat, [pengaturan Endpoint dan Extra Connection Attributes (ECAs) saat menggunakan PostgreSQL sebagai sumber DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.ConnectionAttrib) [dan Menggunakan titik awal CDC asli untuk mengatur beban CDC dari sumber PostgreSQL](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.v10).

## Menggunakan pengaturan titik akhir `MapBooleanAsBoolean` PostgreSQL
<a name="CHAP_Source.PostgreSQL.ConnectionAttrib.Endpointsetting"></a>

Anda dapat menggunakan pengaturan titik akhir PostgreSQL untuk memetakan boolean sebagai boolean dari sumber PostgreSQL Anda ke target Amazon Redshift. Secara default, tipe BOOLEAN dimigrasikan sebagai varchar (5). Anda dapat menentukan `MapBooleanAsBoolean` untuk membiarkan PostgreSQL memigrasikan jenis boolean sebagai boolean seperti yang ditunjukkan pada contoh berikut.

```
--postgre-sql-settings '{"MapBooleanAsBoolean": true}'
```

Perhatikan bahwa Anda harus mengatur pengaturan ini pada titik akhir sumber dan target agar dapat diterapkan.

Karena MySQL tidak memiliki tipe BOOLEAN, gunakan aturan transformasi daripada pengaturan ini saat memigrasi data BOOLEAN ke MySQL.

## Pengaturan titik akhir dan Atribut Koneksi Ekstra (ECAs) saat menggunakan PostgreSQL sebagai sumber DMS
<a name="CHAP_Source.PostgreSQL.ConnectionAttrib"></a>

Anda dapat menggunakan pengaturan titik akhir dan atribut koneksi tambahan (ECAs) untuk mengonfigurasi database sumber PostgreSQL Anda. Anda menentukan pengaturan titik akhir saat membuat titik akhir sumber menggunakan AWS DMS konsol, atau dengan menggunakan `create-endpoint` perintah di [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), dengan sintaks `--postgre-sql-settings '{"EndpointSetting": "value", ...}'` JSON.

Tabel berikut menunjukkan pengaturan endpoint dan ECAs yang dapat Anda gunakan dengan PostgreSQL sebagai sumber.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.PostgreSQL.html)

## Keterbatasan menggunakan basis data PostgreSQL sebagai sumber DMS
<a name="CHAP_Source.PostgreSQL.Limitations"></a>

Keterbatasan berikut berlaku ketika menggunakan PostgreSQL sebagai sumber untuk AWS DMS:
+ AWS DMS tidak berfungsi dengan Amazon RDS untuk PostgreSQL 10.4 atau Amazon Aurora PostgreSQL 10.4 baik sebagai sumber atau target.
+ Tabel yang ditangkap harus memiliki kunci primer. Jika tabel tidak memiliki kunci utama, AWS DMS abaikan DELETE dan UPDATE operasi catatan untuk tabel tersebut. Sebagai solusinya, lihat [Mengaktifkan pengambilan data perubahan (CDC](#CHAP_Source.PostgreSQL.Security)) menggunakan replikasi logis. 

  **Catatan:** Kami tidak menyarankan migrasi tanpa Key/Unique Indeks Utama, jika tidak, batasan tambahan berlaku seperti kemampuan penerapan Batch “TIDAK”, kemampuan LOB Penuh, Validasi Data, dan ketidakmampuan untuk mereplikasi ke target Redshift secara efisien.
+ AWS DMS mengabaikan upaya untuk memperbarui segmen kunci primer. Dalam kasus ini, target mengidentifikasi pembaruan sebagai salah satu yang tidak memperbarui baris apapun. Namun, karena hasil memperbarui kunci primer di PostgreSQL tidak dapat diprediksi, tidak ada catatan yang ditulis ke tabel pengecualian.
+ AWS DMS tidak mendukung opsi **Start Process Changes from Timestamp** run.
+ AWS DMS tidak mereplikasi perubahan yang dihasilkan dari operasi partisi atau subpartisi (`ADD`,`DROP`, atau`TRUNCATE`).
+ Replikasi beberapa tabel dengan nama yang sama di mana setiap nama memiliki kasus yang berbeda (misalnya, tabel1 TABLE1, dan Tabel1) dapat menyebabkan perilaku yang tidak terduga. Karena masalah ini, AWS DMS tidak mendukung jenis replikasi ini.
+ Dalam kebanyakan kasus, AWS DMS mendukung pemrosesan perubahan pernyataan CREATE, ALTER, dan DROP DDL untuk tabel. AWS DMS tidak mendukung pemrosesan perubahan ini jika tabel disimpan dalam fungsi bagian dalam atau blok badan prosedur atau dalam konstruksi bersarang lainnya.

  Sebagai contoh, perubahan berikut tidak ditangkap.

  ```
  CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void
  LANGUAGE plpgsql
  AS $$
  BEGIN
  create table attu.distributors1(did serial PRIMARY KEY,name
  varchar(40) NOT NULL);
  END;
  $$;
  ```
+ Saat ini, jenis data `boolean` dalam sumber PostgreSQL dimigrasi ke target SQL Server sebagai jejnis data `bit` dengan nilai-nilai yang tidak konsisten. Sebagai solusinya, pra-buat tabel dengan tipe `VARCHAR(1)` data untuk kolom (atau AWS DMS buat tabel). Kemudian buatlah pemrosesan hilir memperlakukan “F” sebagai False dan “T” sebagai True.
+ AWS DMS tidak mendukung pemrosesan perubahan operasi TRUNCATE.
+ Jenis data OID LOB tidak bermigrasi ke target.
+ AWS DMS mendukung tipe data PostGIS hanya untuk migrasi homogen.
+ Jika sumber Anda adalah basis data PostgreSQL yang lokal atau pada instans Amazon EC2, pastikan bahwa plugin output test\$1decoding diinstal pada titik akhir sumber Anda. Anda dapat menemukan plugin ini di paket kontrib PostgreSQL. Untuk informasi lebih lanjut tentang plugin test-decoding, lihat [Dokumentasi PostgreSQL](https://www.postgresql.org/docs/10/static/test-decoding.html).
+ AWS DMS tidak mendukung pemrosesan perubahan untuk mengatur dan membatalkan nilai default kolom (menggunakan klausa ALTER COLUMN SET DEFAULT pada pernyataan ALTER TABLE).
+ AWS DMS tidak mendukung pemrosesan perubahan untuk mengatur nullabilitas kolom (menggunakan klausa ALTER COLUMN [SET\$1DROP] NOT NULL pada pernyataan ALTER TABLE).
+ Ketika replikasi logis diaktifkan, jumlah maksimum perubahan yang disimpan dalam memori per transaksi adalah 4 MB. Setelah itu, pengubahan dijatuhkan ke disk. Hasilnya `ReplicationSlotDiskUsage` meningkat, dan `restart_lsn` tidak maju sampai transaksi selesai atau berhenti dan rollback selesai. Karena merupakan transaksi yang panjang, itu dapat memakan waktu lama untuk rollback. Jadi, hindari transaksi yang berjalan lama atau banyak sub-transaksi saat replikasi logis diaktifkan. Sebaliknya, pisah transaksi menjadi beberapa transaksi yang lebih kecil. 

  Pada Aurora PostgreSQL versi 13 dan yang lebih baru, Anda dapat menyetel `logical_decoding_work_mem` parameter untuk mengontrol ketika DMS tumpah mengubah data ke disk. Untuk informasi selengkapnya, lihat [Menumpahkan file di Aurora PostgreSQL](CHAP_Troubleshooting_Latency_Source_PostgreSQL.md#CHAP_Troubleshooting_Latency_Source_PostgreSQL_Spill).
+ Tabel dengan jenis data ARRAY harus memiliki kunci primer. Tabel dengan jenis data ARRAY tanpa kunci primer akan ditangguhkan selama beban penuh.
+ AWS DMS [tidak mendukung migrasi metadata tabel yang terkait dengan partisi tabel atau pewarisan tabel.](https://www.postgresql.org/docs/15/ddl-inherit.html) Saat AWS DMS menemukan tabel yang dipartisi atau tabel yang menggunakan pewarisan, perilaku berikut diamati:
  + AWS DMS mengidentifikasi dan melaporkan tabel induk dan anak yang terlibat dalam partisi atau pewarisan pada database sumber.
  + **Pembuatan Tabel pada Target**: Pada database target, AWS DMS buat tabel sebagai tabel standar (tidak dipartisi, tidak diwariskan), melestarikan struktur dan properti tabel yang dipilih tetapi bukan logika partisi atau pewarisan.
  + **Rekam Diferensiasi dalam Tabel yang Diwarisi**: Untuk tabel yang menggunakan pewarisan, AWS DMS tidak membedakan catatan milik tabel anak saat mengisi tabel induk. Akibatnya, ia tidak menggunakan kueri SQL dengan sintaks seperti:. `SELECT * FROM ONLY parent_table_name`
+ Untuk mereplikasi tabel dipartisi dari sumber PostgreSQL ke target PostgreSQL, pertama-tama secara manual buatlah tabel induk dan anak pada target. Kemudian tentukan tugas terpisah untuk mereplikasi ke tabel tersebut. Dalam kasus seperti itu, atur konfigurasi tugas **Potong sebelum memuat**.
+ Jenis data `NUMERIC` PostgreSQL tidak tentu dalam hal ukuran. Saat mentransfer data yang merupakan jenis data `NUMERIC` tetapi tanpa presisi dan skala, DMS menggunakan `NUMERIC(28,6)` (presisi 28 dan skala 6) secara default. Sebagai contoh, nilai 0.611111104488373 dari sumber dikonversi menjadi 0.611111 pada target PostgreSQL.
+ AWS DMS mendukung Aurora PostgreSQL Serverless V1 sebagai sumber untuk tugas beban penuh saja. AWS DMS mendukung Aurora PostgreSQL Serverless V2 sebagai sumber untuk beban penuh, beban penuh dan CDC, dan tugas khusus CDC.
+ AWS DMS tidak mendukung replikasi tabel dengan indeks unik yang dibuat dengan fungsi coalesce.
+ Jika definisi kunci primer pada sumber dan target tidak cocok, hasil replikasi mungkin tidak dapat diprediksi.
+ Saat menggunakan fitur Parallel Load, segmentasi tabel menurut partisi atau sub-partisi tidak didukung. Untuk informasi selengkapnya tentang Beban Paralel, lihat [Menggunakan beban paralel untuk tabel, tampilan, dan koleksi yang dipilih](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.md#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.ParallelLoad) 
+ AWS DMS tidak mendukung Kendala yang Ditangguhkan.
+ AWS DMS versi 3.4.7 mendukung PostgreSQL 14.x sebagai sumber dengan keterbatasan ini:
  + AWS DMS tidak mendukung pemrosesan perubahan komit dua fase.
  + AWS DMS tidak mendukung replikasi logis untuk mengalirkan transaksi yang sedang berlangsung lama.
+ AWS DMS tidak mendukung CDC untuk Amazon RDS Proxy untuk PostgreSQL sebagai sumber.
+ Saat menggunakan [filter sumber](CHAP_Tasks.CustomizingTasks.Filters.md) yang tidak berisi kolom Kunci Utama, `DELETE` operasi tidak akan ditangkap.
+ Jika database sumber Anda juga merupakan target untuk sistem replikasi pihak ketiga lainnya, perubahan DDL mungkin tidak bermigrasi selama CDC. Karena situasi itu dapat mencegah pemicu `awsdms_intercept_ddl` peristiwa menembak. Untuk mengatasi situasi tersebut, ubah pemicu itu pada basis data sumber Anda sebagai berikut:

  ```
  alter event trigger awsdms_intercept_ddl enable always;
  ```
+ AWS DMS tidak mendukung replikasi perubahan yang dibuat untuk definisi kunci primer dalam database sumber. Jika struktur kunci primer diubah selama tugas replikasi aktif, perubahan selanjutnya pada tabel yang terpengaruh tidak direplikasi ke target.
+ Dalam replikasi DDL sebagai bagian dari skrip, jumlah maksimum perintah DDL per skrip adalah 8192 dan jumlah baris maksimum per skrip adalah 8192 baris.
+ AWS DMS tidak mendukung Tampilan Terwujud.
+ Untuk beban penuh dan tugas CDC menggunakan replika baca sebagai sumbernya, AWS DMS tidak dapat membuat slot replikasi pada replika baca.

## Jenis data sumber untuk PostgreSQL
<a name="CHAP_Source-PostgreSQL-DataTypes"></a>

Tabel berikut menunjukkan tipe data sumber PostgreSQL yang didukung saat AWS DMS menggunakan dan pemetaan default ke tipe data. AWS DMS 

Untuk informasi tentang cara melihat jenis data yang dipetakan dalam target, lihat bagian titik akhir target yang Anda gunakan.

Untuk informasi tambahan tentang tipe AWS DMS data, lihat[Tipe data untuk AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  Jenis data PostgreSQL  |  Jenis data DMS  | 
| --- | --- | 
|  INTEGER  |  INT4  | 
|  SMALLINT  |  INT2  | 
|  BIGINT  |  INT8  | 
|  NOMERIC (p,s)  |  Jika presisi adalah dari 0 sampai 38, maka gunakan NUMERIC. Jika presisi adalah 39 atau lebih besar, maka gunakan STRING.  | 
|  DECIMAL(P,S)  |  Jika presisi adalah dari 0 sampai 38, maka gunakan NUMERIC. Jika presisi adalah 39 atau lebih besar, maka gunakan STRING.  | 
|  REAL  |  REAL4  | 
|  DOUBLE  |  REAL8  | 
|  SMALLSERIAL  |  INT2  | 
|  SERIAL  |  INT4  | 
|  BIGSERIAL  |  INT8  | 
|  MONEY  |  NUMERIC(38,4) Jenis data MONEY dipetakan ke FLOAT di SQL Server.  | 
|  CHAR  |  WSTRING (1)  | 
|  CHAR(N)  |  WSTRING (n)  | 
|  VARCHAR(N)  |  WSTRING (n)  | 
|  TEXT  |  NCLOB  | 
|  CITEXT  |  NCLOB  | 
|  BYTEA  |  BLOB  | 
|  TIMESTAMP  |  DATETIME  | 
|  TIMESTAMP DENGAN ZONA WAKTU  |  DATETIME  | 
|  DATE  |  DATE  | 
|  TIME  |  TIME  | 
|  TIME WITH TIME ZONE  |  TIME  | 
|  INTERVAL  |  STRING (128)—1 TAHUN, 2 BULAN, 3 HARI, 4 JAM, 5 MENIT, 6 DETIK  | 
|  BOOLEAN  |  CHAR (5) salah atau benar  | 
|  ENUM  |  STRING (64)  | 
|  CIDR  |  STRING (50)  | 
|  INET  |  STRING (50)  | 
|  MACADDR  |  STRING (18)  | 
|  BIT (n)  |  STRING (n)  | 
|  BIT VARYING  |  STRING (n)  | 
|  UUID  |  STRING  | 
|  TSVECTOR  |  CLOB  | 
|  TSQUERY  |  CLOB  | 
|  XML  |  CLOB  | 
|  POINT  |  STRING (255) “(x,y)”  | 
|  LINE  |  STRING (255) “(x,y,z)”  | 
|  LSEG  |  STRING (255) “((x1,y1),(x2,y2))”  | 
|  BOX  |  STRING (255) “((x1,y1),(x2,y2))”  | 
|  PATH  |  CLOB “((x1,y1),(xn,yn))”  | 
|  POLYGON  |  CLOB “((x1,y1),(xn,yn))”  | 
|  CIRCLE  |  STRING (255) “(x,y),r”  | 
|  JSON  |  NCLOB  | 
|  JSONB  |  NCLOB  | 
|  ARRAY  |  NCLOB  | 
|  COMPOSITE  |  NCLOB  | 
|  HSTORE  |  NCLOB  | 
|  INT4JANGKAUAN  |  STRING (255)  | 
|  INT8JANGKAUAN  |  STRING (255)  | 
|  NUMRANGE  |  STRING (255)  | 
|  STRRANGE  |  STRING (255)  | 

### Menggunakan jenis data sumber LOB untuk PostgreSQL
<a name="CHAP_Source-PostgreSQL-DataTypes-LOBs"></a>

Ukuran kolom PostgreSQL memengaruhi konversi jenis data LOB PostgreSQL ke jenis data AWS DMS . Untuk menggunakannya, ambil langkah-langkah berikut untuk jenis data AWS DMS berikut:
+ BLOB - Atur **Batas ukuran LOB hingga** nilai **Ukuran LOB maksimum (KB)** pada saat pembuatan tugas.
+ CLOB — Replikasi menangani setiap karakter sebagai UTF8 karakter. Oleh karena itu, temukan panjang teks karakter terpanjang di kolom, yang ditunjukkan di sini sebagai`max_num_chars_text`. Gunakan panjang ini untuk menentukan nilai untuk **Batasi ukuran LOB ke**. Jika data memuat karakter 4-byte, kalikan dengan 2 untuk menentukan nilai **Batas ukuran LOB hingga**, yang dalam bentuk byte. Dalam kasus ini, **Batas ukuran LOB hingga** sama dengan`max_num_chars_text` dikalikan dengan 2.
+ NCLOB - Replikasi menangani setiap karakter sebagai karakter double-byte. Oleh karena itu, cari panjang teks karakter terpanjang di kolom (`max_num_chars_text`) dan kalikan dengan 2. Anda melakukan ini untuk menentukan nilai untuk **Batasi ukuran LOB ke**. Dalam kasus ini, **Batas ukuran LOB hingga** sama dengan`max_num_chars_text` dikalikan dengan 2. Jika data memuat karakter 4-byte, kalikan dengan 2 lagi. Dalam kasus ini, **Batas ukuran LOB hingga** sama dengan`max_num_chars_text` dikalikan dengan 4.

# Menggunakan database yang kompatibel dengan MySQL sebagai sumber AWS DMS
<a name="CHAP_Source.MySQL"></a>

Anda dapat memigrasikan data dari database yang kompatibel dengan MySQL (MySQL, MariaDB, atau Amazon Aurora MySQL) menggunakan Database Migration Service. AWS 

Untuk informasi tentang versi MySQL AWS DMS yang mendukung sebagai sumber, lihat. [Sumber untuk AWS DMS](CHAP_Introduction.Sources.md) 

Anda dapat menggunakan SSL untuk mengenkripsi koneksi antara titik akhir yang kompatibel dengan MySQL dan instans replikasi. Untuk informasi lebih lanjut tentang penggunaan SSL dengan titik akhir yang kompatibel dengan MySQL, lihat [Menggunakan SSL dengan AWS Database Migration Service](CHAP_Security.SSL.md).

Di bagian berikut, syarat “dikelola sendiri” berlaku untuk setiap basis data yang diinstal baik lokal atau di Amazon EC2. Syarat "terkelola AWS" berlaku untuk basis data apa pun di Amazon RDS, Amazon Aurora, atau Amazon S3.

Untuk detail tambahan tentang bekerja dengan database yang kompatibel dengan MySQL dan AWS DMS, lihat bagian berikut.

**Topics**
+ [Migrasi dari MySQL ke MySQL menggunakan AWS DMS](#CHAP_Source.MySQL.Homogeneous)
+ [Menggunakan database yang kompatibel dengan MySQL sebagai sumber AWS DMS](#CHAP_Source.MySQL.Prerequisites)
+ [Menggunakan database yang kompatibel dengan MySQL yang dikelola sendiri sebagai sumber AWS DMS](#CHAP_Source.MySQL.CustomerManaged)
+ [Menggunakan database yang kompatibel dengan MySQL AWS-managed sebagai sumber AWS DMS](#CHAP_Source.MySQL.AmazonManaged)
+ [Batasan dalam menggunakan database MySQL sebagai sumber AWS DMS](#CHAP_Source.MySQL.Limitations)
+ [Support untuk transaksi XA](#CHAP_Source.MySQL.XA)
+ [Pengaturan titik akhir saat menggunakan MySQL sebagai sumber AWS DMS](#CHAP_Source.MySQL.ConnectionAttrib)
+ [Jenis data sumber untuk MySQL](#CHAP_Source.MySQL.DataTypes)

**catatan**  
Saat mengonfigurasi aturan pemetaan AWS Database Migration Service (AWS DMS), penting untuk menghindari penggunaan wildcard (%) untuk nama database atau skema. Sebagai gantinya, Anda harus secara eksplisit menentukan hanya database buatan pengguna yang perlu dimigrasikan. Menggunakan karakter wildcard mencakup semua database dalam proses migrasi, termasuk database sistem yang tidak diperlukan pada instance target. Karena pengguna master MySQL Amazon RDS tidak memiliki izin yang diperlukan untuk mengimpor data ke database sistem target, upaya untuk memigrasikan database sistem ini gagal.

## Migrasi dari MySQL ke MySQL menggunakan AWS DMS
<a name="CHAP_Source.MySQL.Homogeneous"></a>

Untuk migrasi heterogen, tempat Anda bermigrasi dari mesin database selain MySQL ke database MySQL AWS DMS , hampir selalu merupakan alat migrasi terbaik untuk digunakan. Tetapi untuk migrasi homogen, di mana Anda bermigrasi dari database MySQL ke database MySQL, kami sarankan Anda menggunakan proyek migrasi migrasi data homogen. migrasi data homogen menggunakan alat database asli untuk memberikan kinerja dan akurasi migrasi data yang ditingkatkan jika dibandingkan dengan. AWS DMS

## Menggunakan database yang kompatibel dengan MySQL sebagai sumber AWS DMS
<a name="CHAP_Source.MySQL.Prerequisites"></a>

Sebelum Anda mulai bekerja dengan database MySQL sebagai sumber AWS DMS untuk, pastikan bahwa Anda memiliki prasyarat berikut. Prasyarat ini berlaku untuk sumber yang dikelola sendiri atau yang dikelola sendiri. AWS

Anda harus memiliki akun AWS DMS yang memiliki peran Admin Replikasi. Peran itu memerlukan keistimewaan berikut:
+ **REPLICATION CLIENT** — Hak istimewa ini diperlukan untuk tugas CDC saja. Dengan kata lain, full-load-only tugas tidak memerlukan hak istimewa ini. 
**catatan**  
Untuk MariaDB versi 10.5.2\$1, Anda dapat menggunakan BINLOG MONITOR - ini adalah pengganti KLIEN REPLIKASI.
+ **REPLICATION SLAVE** — Hak istimewa ini diperlukan untuk tugas CDC saja. Dengan kata lain, full-load-only tugas tidak memerlukan hak istimewa ini.
+ **SUPER** — Hak istimewa ini diperlukan hanya dalam versi MySQL sebelum 5.6.6.

 AWS DMS Pengguna juga harus memiliki hak SELECT untuk tabel sumber yang ditunjuk untuk replikasi.

Berikan hak istimewa berikut jika Anda menggunakan penilaian premi khusus MySQL:

```
grant select on mysql.user to <dms_user>;
grant select on mysql.db to <dms_user>;
grant select on mysql.tables_priv to <dms_user>;
grant select on mysql.role_edges to <dms_user>  #only for MySQL version 8.0.11 and higher
grant select on performance_schema.replication_connection_status to <dms_user>;  #Required for primary instance validation - MySQL version 5.7 and higher only
```

Jika Anda menggunakan sumber RDS dan berencana untuk menjalankan penilaian premi khusus MySQL, tambahkan izin berikut:

```
grant select on mysql.rds_configuration to <dms_user>;  #Required for binary log retention check
```

Jika parameter `BatchEnable` `true` diperlukan untuk memberikan:

```
grant create temporary tables on `<schema>`.* to <dms_user>;
```

## Menggunakan database yang kompatibel dengan MySQL yang dikelola sendiri sebagai sumber AWS DMS
<a name="CHAP_Source.MySQL.CustomerManaged"></a>

Anda dapat menggunakan basis data yang kompatibel dengan MySQL yang dikelola sendiri berikut sebagai sumber untuk AWS DMS:
+ MySQL Community Edition
+ MySQL Standard Edition
+ MySQL Enterprise Edition
+ MySQL Cluster Carrier Grade Edition
+ MariaDB Community Edition
+ MariaDB Enterprise Edition
+ MariaDB Column Store

Untuk menggunakan CDC, pastikan untuk mengaktifkan binary logging. Untuk mengaktifkan binary logging, parameter berikut harus dikonfigurasi di MySQL `my.ini` (Windows) atau file `my.cnf` (UNIX).


| Parameter | Nilai | 
| --- | --- | 
| `server_id` | Atur parameter ini supaya nilainya 1 atau lebih besar. | 
| `log-bin` | Atur jalur ke berkas log biner, seperti `log-bin=E:\MySql_Logs\BinLog`. Jangan sertakan ekstensi file. | 
| `binlog_format` | Atur parameter ini menjadi `ROW`. Kami merekomendasikan pengaturan ini selama replikasi karena dalam kasus-kasus tertentu ketika `binlog_format` diatur menjadi `STATEMENT`, inkonsistensi dapat terjadi ketika mereplikasi data ke target. Mesin basis data juga menulis data yang tidak konsisten yang mirip dengan target ketika `binlog_format` diatur menjadi `MIXED`, karena mesin basis data secara otomatis beralih ke logging berbasis `STATEMENT` yang dapat mengakibatkan penulisan data yang tidak konsisten pada basis data target. | 
| `expire_logs_days` | Atur parameter ini supaya nilainya 1 atau lebih besar. Untuk mencegah penggunaan ruang disk secara berlebihan, kami sarankan Anda tidak menggunakan nilai default 0. | 
| `binlog_checksum` | Setel parameter ini `NONE` untuk DMS versi 3.4.7 atau sebelumnya. | 
| `binlog_row_image` | Atur parameter ini menjadi `FULL`. | 
| `log_slave_updates` | Atur parameter ini menjadi `TRUE` jika Anda menggunakan MySQL atau MariaDB replika baca sebagai sumber. | 

Jika Anda menggunakan replika baca MySQL atau MariaDB sebagai sumber untuk **tugas migrasi DMS menggunakan Migrasi data yang ada dan mereplikasi mode perubahan yang sedang berlangsung, ada kemungkinan kehilangan data**. DMS tidak akan menulis transaksi selama full load atau CDC dalam kondisi berikut:
+ Transaksi telah dilakukan pada instance utama sebelum tugas DMS dimulai.
+ Transaksi belum dilakukan ke replika sampai setelah tugas DMS dimulai, karena jeda antara instance utama dan replika.

Semakin lama jeda antara instance utama dan replika, semakin besar potensi kehilangan data.

Jika sumber Anda menggunakan mesin basis data NDB (clustered), parameter berikut harus dikonfigurasi untuk mengaktifkan CDC pada tabel yang menggunakan mesin penyimpanan. Tambahkan perubahan ini di MySQL `my.ini` (Windows) atau file `my.cnf` (UNIX).


| Parameter | Nilai | 
| --- | --- | 
| `ndb_log_bin` | Atur parameter ini menjadi `ON`. Nilai ini memastikan bahwa perubahan dalam clustered tables tercatat di log biner. | 
| `ndb_log_update_as_write` | Atur parameter ini menjadi `OFF`. Nilai ini mencegah penulisan pernyataan UPDATE sebagai pernyataan INSERT dalam log biner. | 
| `ndb_log_updated_only` | Atur parameter ini menjadi `OFF`. Nilai ini memastikan bahwa log biner berisi seluruh baris dan bukan hanya kolom yang berubah. | 

## Menggunakan database yang kompatibel dengan MySQL AWS-managed sebagai sumber AWS DMS
<a name="CHAP_Source.MySQL.AmazonManaged"></a>

Anda dapat menggunakan database yang kompatibel dengan MySQL AWS-managed berikut sebagai sumber untuk: AWS DMS
+ MySQL Community Edition
+ MariaDB Community Edition
+ Edisi yang Kompatibel dengan Amazon Aurora MySQL

Saat menggunakan database yang kompatibel dengan MySQL AWS-managed sebagai sumber AWS DMS, pastikan Anda memiliki prasyarat berikut untuk CDC:
+ Untuk mengaktifkan log biner untuk RDS untuk MySQL dan untuk RDS untuk MariaDB, aktifkan backup otomatis pada tingkat instans. Untuk mengaktifkan log biner untuk cluster MySQL Aurora, ubah variabel dalam grup parameter. `binlog_format`

  Untuk informasi selengkapnya tentang menyiapkan pencadangan otomatis, lihat [Bekerja dengan pencadangan otomatis di Panduan Pengguna](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html) *Amazon* RDS.

  *Untuk informasi selengkapnya tentang menyiapkan pencatatan biner untuk database Amazon RDS for MySQL[, lihat Menyetel format logging biner di Panduan](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.MySQL.BinaryFormat.html) Pengguna Amazon RDS.* 

  Untuk informasi selengkapnya tentang menyiapkan pencatatan biner untuk klaster MySQL Aurora, lihat [Bagaimana cara mengaktifkan logging biner untuk klaster MySQL Amazon Aurora saya](https://aws.amazon.com/premiumsupport/knowledge-center/enable-binary-logging-aurora/)? . 
+ Jika Anda berencana untuk menggunakan CDC, aktifkan logging biner. *Untuk informasi selengkapnya tentang menyiapkan pencatatan biner untuk database Amazon RDS for MySQL[, lihat Menyetel format logging biner di Panduan](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.MySQL.BinaryFormat.html) Pengguna Amazon RDS.*
+ Pastikan bahwa log biner tersedia untuk AWS DMS. Karena database yang kompatibel dengan MySQL AWS-managed membersihkan log biner sesegera mungkin, Anda harus menambah lamanya waktu log tetap tersedia. Misalnya, untuk meningkatkan retensi log hingga 24 jam, jalankan perintah berikut. 

  ```
   call mysql.rds_set_configuration('binlog retention hours', 24);
  ```
+ Atur parameter `binlog_format` menjadi `"ROW"`.
**catatan**  
Di MySQL atau `binlog_format` MariaDB, adalah parameter dinamis, jadi Anda tidak perlu reboot untuk membuat nilai baru berlaku. Namun, nilai baru hanya akan berlaku untuk sesi baru. Jika Anda beralih `binlog_format` ke `ROW` untuk tujuan replikasi, database Anda masih dapat membuat log biner berikutnya menggunakan `MIXED` format, jika sesi tersebut dimulai sebelum Anda mengubah nilainya. Ini dapat AWS DMS mencegah menangkap semua perubahan pada database sumber dengan benar. Saat Anda mengubah `binlog_format` pengaturan pada database MariaDB atau MySQL, pastikan untuk memulai ulang database untuk menutup semua sesi yang ada, atau restart aplikasi apa pun yang melakukan operasi DML/Data Manipulation Language. Memaksa database Anda untuk memulai ulang semua sesi setelah mengubah `binlog_format` parameter `ROW` akan memastikan bahwa database Anda menulis semua perubahan basis data sumber berikutnya menggunakan format yang benar, sehingga AWS DMS dapat menangkap perubahan tersebut dengan benar.
+ Atur parameter `binlog_row_image` ke `"Full"`. 
+ Atur `binlog_checksum` parameter ke `"NONE"` untuk DMS versi 3.4.7 atau sebelumnya. Untuk informasi selengkapnya tentang pengaturan parameter di Amazon RDS MySQL, lihat [Menggunakan backup otomatis](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html) dalam *Panduan Pengguna Amazon RDS*.
+ Jika Anda menggunakan Amazon RDS MySQL atau Amazon RDS MariaDB baca replika sebagai sumber, aktifkan cadangan pada replika baca, dan pastikan parameter disetel ke. `log_slave_updates` `TRUE`

## Batasan dalam menggunakan database MySQL sebagai sumber AWS DMS
<a name="CHAP_Source.MySQL.Limitations"></a>

Ketika menggunakan basis data MySQL sebagai sumber, pertimbangkan hal berikut:
+  Change data capture (CDC) tidak didukung untuk Amazon RDS MySQL 5.5 atau versi yang lebih rendah. Untuk Amazon RDS MySQL, Anda harus menggunakan versi 5.6, 5.7, atau 8.0 untuk mengaktifkan CDC. CDC didukung untuk sumber MySQL 5.5 yang dikelola sendiri. 
+ Untuk CDC, `CREATE TABLE`, `ADD COLUMN`, dan `DROP COLUMN` mengubah jenis data kolom, dan `renaming a column`didukung. Namun, `DROP TABLE`, `RENAME TABLE`, dan pembaruan yang dibuat untuk atribut lainnya, seperti nilai default kolom, nullabilitas kolom, set karakter dan sebagainya, tidak didukung.
+  Untuk tabel yang dipartisi pada sumber, saat Anda mengatur **mode persiapan tabel Target** ke **Drop tabel pada target**, AWS DMS buat tabel sederhana tanpa partisi apa pun pada target MySQL. Untuk memirasi tabel yang dipartisi ke tabel yang dipartisi pada target, buatlah terlebih dahulu tabel yang dipartisi pada basis data MySQL target.
+  Menggunakan `ALTER TABLE table_name ADD COLUMN column_name` pernyataan untuk menambahkan kolom ke awal (PERTAMA) atau tengah tabel (SETELAH) tidak didukung untuk target relasional. Kolom selalu ditambahkan ke akhir tabel. Jika targetnya adalah Amazon S3 atau Amazon Kinesis Data Streams, menambahkan kolom menggunakan FIRST atau AFTER didukung.
+ CDC tidak didukung ketika nama tabel memuat huruf besar dan huruf kecil, dan mesin sumber di-host pada sistem operasi dengan nama file yang tidak peka kapital. Contohnya adalah Microsoft Windows atau OS X menggunakan HFS\$1.
+ Anda dapat menggunakan Aurora MySQL-Compatible Edition Serverless v1 untuk beban penuh, tetapi Anda tidak dapat menggunakannya untuk CDC. Ini karena Anda tidak dapat mengaktifkan prasyarat untuk MySQL. Untuk informasi lebih lanjut, lihat [Kelompok parameter dan Aurora Serverless v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.parameter-groups). 

  Aurora MySQL yang kompatibel dengan Edition Serverless v2 mendukung CDC.
+  Atribut AUTO\$1INCREMENT pada kolom tidak bermigrasi ke kolom basis data target.
+  Menangkap perubahan ketika log biner tidak disimpan di penyimpanan blok standar tidak didukung. Misalnya, CDC tidak berfungsi ketika log biner disimpan di Amazon S3.
+  AWS DMS membuat tabel target dengan mesin penyimpanan InnoDB secara default. Jika Anda perlu menggunakan mesin penyimpanan selain InnoDB, Anda harus secara manual membuat tabel dan bermigrasi ke mesin tersebut menggunakan mode [do nothing](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html).
+ **Anda tidak dapat menggunakan replika Aurora MySQL sebagai sumber AWS DMS kecuali mode tugas migrasi DMS Anda Migrasikan data yang ada —hanya memuat penuh.**
+  Jika sumber yang kompatibel dengan MySQL dihentikan selama pemuatan penuh, AWS DMS tugas tidak berhenti dengan kesalahan. Tugas berhasil berakhir, tetapi target mungkin tidak sinkron dengan sumber. Jika hal ini terjadi, ulang kembali tugas atau muat ulang tabel yang terpengaruh.
+  Indeks yang dibuat pada porsi nilai kolom tidak bermigrasi. Sebagai contoh, indeks CREATE INDEX first\$1ten\$1chars ON pelanggan (name(10)) tidak dibuat pada target.
+ Dalam beberapa kasus, tugas dikonfigurasi untuk tidak mereplikasi LOBs (SupportLobs“" salah dalam pengaturan tugas atau **kolom Jangan sertakan LOB** dipilih di konsol tugas). Dalam kasus ini, AWS DMS tidak memigrasikan kolom MEDIUMBLOB, LONGBLOB, MEDIUMTEXT, dan LONGTEXT apa pun ke target.

  Kolom BLOB, TINYBLOB, TEXT, dan TINYTEXT tidak terpengaruh dan dimigrasi ke target.
+ Tabel data temporal atau tabel sistem-versi tidak didukung pada sumber MariaDB dan basis data target.
+ Jika bermigrasi antara dua cluster MySQL Amazon RDS Aurora, titik akhir sumber MySQL RDS Aurora harus berupa instance, bukan instance replika. read/write 
+ AWS DMS saat ini tidak mendukung migrasi tampilan untuk MariaDB.
+ AWS DMS tidak mendukung perubahan DDL untuk tabel yang dipartisi untuk MySQL. Untuk melewati suspensi tabel untuk perubahan DDL partisi selama CDC, atur `skipTableSuspensionForPartitionDdl` ke. `true`
+ AWS DMS hanya mendukung transaksi XA di versi 3.5.0 dan lebih tinggi. Versi sebelumnya tidak mendukung transaksi XA. AWS DMS tidak mendukung transaksi XA di MariaDB versi 10.6 atau lebih tinggi Untuk informasi lebih lanjut, lihat berikut. [Support untuk transaksi XA](#CHAP_Source.MySQL.XA)
+ AWS DMS tidak digunakan GTIDs untuk replikasi, bahkan jika data sumber berisi mereka. 
+ AWS DMS tidak mendukung log biner yang disempurnakan Aurora MySQL.
+ AWS DMS tidak mendukung kompresi transaksi log biner.
+ AWS DMS tidak menyebarkan peristiwa ON DELETE CASCADE dan ON UPDATE CASCADE untuk database MySQL menggunakan mesin penyimpanan InnoDB. Untuk peristiwa ini, MySQL tidak menghasilkan peristiwa binlog untuk mencerminkan operasi cascaded pada tabel anak. Akibatnya, tidak AWS DMS dapat mereplikasi perubahan yang sesuai ke tabel anak. Untuk informasi selengkapnya, lihat [Indeks, Kunci Asing, atau Pembaruan atau Penghapusan Cascade Tidak Dimigrasi](CHAP_Troubleshooting.md#CHAP_Troubleshooting.MySQL.FKsAndIndexes).
+ AWS DMS tidak menangkap perubahan pada kolom yang dihitung (`VIRTUAL`dan`GENERATED ALWAYS`). Untuk mengatasi batasan ini, lakukan hal berikut:
  + Pra-buat tabel target dalam database target, dan buat AWS DMS tugas dengan `DO_NOTHING` atau pengaturan tugas `TRUNCATE_BEFORE_LOAD` beban penuh.
  + Tambahkan aturan transformasi untuk menghapus kolom yang dihitung dari cakupan tugas. Untuk informasi tentang aturan transformasi, lihat[Aturan dan tindakan transformasi](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.md).
+ Karena keterbatasan MySQL internal AWS DMS , dapat BINLOGs memproses tidak lebih besar dari ukuran 4GB. BINLOGs lebih besar dari 4GB dapat mengakibatkan kegagalan tugas DMS atau perilaku tak terduga lainnya. Anda harus mengurangi ukuran transaksi untuk menghindari BINLOGs lebih besar dari 4GB.
+ AWS DMS tidak mendukung back-ticks (```) atau tanda kutip tunggal (`'`) dalam skema, tabel, dan nama kolom.
+ AWS DMS tidak memigrasikan data dari kolom tak terlihat di database sumber Anda. Untuk menyertakan kolom ini dalam lingkup migrasi Anda, gunakan pernyataan ALTER TABLE untuk membuat kolom ini terlihat.

## Support untuk transaksi XA
<a name="CHAP_Source.MySQL.XA"></a>

Transaksi Extended Architecture (XA) adalah transaksi yang dapat digunakan untuk mengelompokkan serangkaian operasi dari beberapa sumber daya transaksional menjadi satu transaksi global yang andal. Transaksi XA menggunakan protokol komit dua fase. Secara umum, menangkap perubahan saat ada transaksi XA terbuka dapat menyebabkan hilangnya data. Jika database Anda tidak menggunakan transaksi XA, Anda dapat mengabaikan izin ini dan konfigurasi `IgnoreOpenXaTransactionsCheck` dengan menggunakan nilai tuli. `TRUE` Untuk mulai mereplikasi dari sumber yang memiliki transaksi XA, lakukan hal berikut:
+ Pastikan bahwa pengguna AWS DMS endpoint memiliki izin berikut:

  ```
  grant XA_RECOVER_ADMIN on *.* to 'userName'@'%';
  ```
+ Atur pengaturan titik akhir `IgnoreOpenXaTransactionsCheck` ke`false`.

**catatan**  
AWS DMS tidak mendukung transaksi XA pada MariaDB Source DB versi 10.6 atau lebih tinggi.

## Pengaturan titik akhir saat menggunakan MySQL sebagai sumber AWS DMS
<a name="CHAP_Source.MySQL.ConnectionAttrib"></a>

Anda dapat menggunakan pengaturan endpoint untuk mengkonfigurasi database sumber MySQL Anda mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat Anda membuat titik akhir sumber menggunakan AWS DMS konsol, atau dengan menggunakan `create-endpoint` perintah di [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), dengan sintaks `--my-sql-settings '{"EndpointSetting": "value", ...}'` JSON.

Tabel berikut menunjukkan pengaturan endpoint yang dapat Anda gunakan dengan MySQL sebagai sumber.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.MySQL.html)

## Jenis data sumber untuk MySQL
<a name="CHAP_Source.MySQL.DataTypes"></a>

Tabel berikut menunjukkan tipe data sumber database MySQL yang didukung saat AWS DMS menggunakan dan pemetaan AWS DMS default dari tipe data.

Untuk informasi tentang cara melihat jenis data yang dipetakan dalam target, lihat bagian titik akhir target yang Anda gunakan.

Untuk informasi tambahan tentang tipe AWS DMS data, lihat[Tipe data untuk AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  Tipe data MySQL  |  AWS DMS tipe data  | 
| --- | --- | 
|  INT  |  INT4  | 
|  BIGINT  |  INT8  | 
|  MEDIUMINT  |  INT4  | 
|  TINYINT  |  INT1  | 
|  SMALLINT  |  INT2  | 
|  UNSIGNED TINYINT  |  UINT1  | 
|  UNSIGNED SMALLINT  |  UINT2  | 
|  MEDIUMINT YANG TIDAK DITANDATANGANI  |  UINT4  | 
|  INT TIDAK DITANDATANGANI  |  UINT4  | 
|  UNSIGNED BIGINT  |  UINT8  | 
|  DECIMAL(10)  |  NUMERIC (10,0)  | 
|  BINARY  |  BYTES(1)  | 
|  BIT  |  BOOLEAN  | 
|  BIT(64)  |  BYTES(8)  | 
|  BLOB  |  BYTE (65535)  | 
|  LONGBLOB  |  BLOB  | 
|  MEDIUMBLOB  |  BLOB  | 
|  TINYBLOB  |  BYTES(255)  | 
|  DATE  |  DATE  | 
|  DATETIME  |  DATETIME DATETIME tanpa nilai kurung direplikasi tanpa milidetik. DATETIME dengan nilai kurung 1 sampai 5 (seperti`DATETIME(5)`) direplikasi dengan milidetik. Saat mereplikasi kolom DATETIME, waktunya tetap sama pada target. Itu tidak dikonversi ke UTC.  | 
|  TIME  |  STRING  | 
|  TIMESTAMP  |  DATETIME Saat mereplikasi kolom TIMESTAMP, waktu dikonversi ke UTC pada target.  | 
|  YEAR  |  INT2  | 
|  DOUBLE  |  REAL8  | 
|  FLOAT  |  REAL(DOUBLE) Jika nilai FLOAT tidak berada dalam kisaran berikut, gunakan transformasi untuk memetakan FLOAT ke STRING. Untuk informasi lebih lanjut tentang transformasi, lihat [Aturan dan tindakan transformasi](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.md). Rentang FLOAT yang didukung adalah -1.79E\$1308 hingga -2.23E-308, 0, dan 2.23E-308 hingga 1.79E\$1308  | 
|  VARCHAR (45)  |  WSTRING (45)  | 
|  VARCHAR (2000)  |  WSTRING (2000)  | 
|  VARCHAR (4000)  |  WSTRING (4000)  | 
|  VARBINARY (4000)  |  BYTES (4000)  | 
|  VARBINARY (2000)  |  BYTE (2000)  | 
|  CHAR  |  WSTRING  | 
|  TEXT  |  WSTRING  | 
|  LONGTEXT  |  NCLOB  | 
|  MEDIUMTEXT  |  NCLOB  | 
|  TINYTEXT  |  WSTRING (255)  | 
|  GEOMETRY  |  BLOB  | 
|  POINT  |  BLOB  | 
|  LINESTRING  |  BLOB  | 
|  POLYGON  |  BLOB  | 
|  MULTIPOINT  |  BLOB  | 
|  MULTILINESTRING  |  BLOB  | 
|  MULTIPOLYGON  |  BLOB  | 
|  GEOMETRYCOLLECTION  |  BLOB  | 
|  ENUM  |  WSTRING () *length* Di sini, *length* adalah panjang nilai terpanjang di ENUM.  | 
|  SET  |  WSTRING () *length* Di sini, *length* adalah total panjang semua nilai dalam SET, termasuk koma.  | 
|  JSON  |  CLOB  | 

**catatan**  
Dalam beberapa kasus, Anda mungkin menentukan jenis data DATETIME dan TIMESTAMP dengan nilai “nol” (yaitu 0000-00-00). Jika demikian, pastikan bahwa basis data target dalam tugas replikasi mendukung nilai-nilai “nol” untuk jenis data DATETIME dan TIMESTAMP. Jika tidak, nilai-nilai ini dicatat sebagai null pada target.

# Menggunakan database SAP ASE sebagai sumber untuk AWS DMS
<a name="CHAP_Source.SAP"></a>

Anda dapat memigrasikan data dari database SAP Adaptive Server Enterprise (ASE) — sebelumnya dikenal sebagai Sybase — menggunakan. AWS DMS Dengan database SAP ASE sebagai sumber, Anda dapat memigrasikan data ke database AWS DMS target lain yang didukung. 

Untuk informasi tentang versi SAP ASE yang AWS DMS mendukung sebagai sumber, lihat[Sumber untuk AWS DMS](CHAP_Introduction.Sources.md).

Untuk detail tambahan tentang bekerja dengan database SAP ASE dan AWS DMS, lihat bagian berikut.

**Topics**
+ [Prasyarat untuk menggunakan database SAP ASE sebagai sumber untuk AWS DMS](#CHAP_Source.SAP.Prerequisites)
+ [Keterbatasan penggunaan SAP ASE sebagai sumber AWS DMS](#CHAP_Source.SAP.Limitations)
+ [Izin diperlukan untuk menggunakan SAP ASE sebagai sumber untuk AWS DMS](#CHAP_Source.SAP.Security)
+ [Menghapus titik pemotongan](#CHAP_Source.SAP.Truncation)
+ [Pengaturan titik akhir saat menggunakan SAP ASE sebagai sumber untuk AWS DMS](#CHAP_Source.SAP.ConnectionAttrib)
+ [Jenis data sumber untuk SAP ASE](#CHAP_Source.SAP.DataTypes)

## Prasyarat untuk menggunakan database SAP ASE sebagai sumber untuk AWS DMS
<a name="CHAP_Source.SAP.Prerequisites"></a>

Agar database SAP ASE menjadi sumber AWS DMS, lakukan hal berikut:
+ Aktifkan replikasi SAP ASE untuk tabel dengan menggunakan perintah `sp_setreptable`. Untuk informasi selengkapnya, lihat [Sybase Infocenter Archive]( http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc32410_1501/html/refman/X37830.htm). 
+ Nonaktifkan `RepAgent` pada basis data SAP ASE. Untuk informasi selengkapnya, lihat [Menghentikan dan menonaktifkan RepAgent utas di database utama](http://infocenter-archive.sybase.com/help/index.jsp?topic=/com.sybase.dc20096_1260/html/mra126ag/mra126ag65.htm). 
+ Untuk mereplikasi ke SAP ASE versi 15.7 pada instans Windows EC2 yang dikonfigurasi untuk karakter non-Latin (misalnya, bahasa Mandarin), instal SAP ASE 15.7 pada komputer target. SP121

**catatan**  
Untuk replikasi change data capture (CDC) berkelanjutan, DMS menjalankan `dbcc logtransfer` dan `dbcc log`untuk membaca data dari log transaksi.

## Keterbatasan penggunaan SAP ASE sebagai sumber AWS DMS
<a name="CHAP_Source.SAP.Limitations"></a>

Keterbatasan berikut berlaku saat menggunakan basis data SAP ASE sebagai sumber untuk AWS DMS:
+ Anda hanya dapat menjalankan satu AWS DMS tugas dengan replikasi berkelanjutan atau CDC untuk setiap database SAP ASE. Anda dapat menjalankan beberapa full-load-only tugas secara paralel.
+ Anda tidak dapat mengubah nama tabel. Misalnya, perintah berikut gagal:

  ```
  sp_rename 'Sales.SalesRegion', 'SalesReg;
  ```
+ Anda tidak dapat mengubah nama kolom. Misalnya, perintah berikut gagal:

  ```
  sp_rename 'Sales.Sales.Region', 'RegID', 'COLUMN';
  ```
+ Nol nilai yang terletak di akhir string jenis data biner dipotong ketika direplikasi ke basis data target. Misalnya, `0x0000000000000000000000000100000100000000` dalam tabel sumber menjadi `0x00000000000000000000000001000001` dalam tabel target.
+ Jika default database diatur untuk tidak mengizinkan nilai NULL, AWS DMS membuat tabel target dengan kolom yang tidak mengizinkan nilai NULL. Akibatnya, jika beban penuh atau tugas replikasi CDC berisi nilai kosong, AWS DMS menimbulkan kesalahan. Anda dapat mencegah kesalahan ini dengan mengizinkan nilai-nilai NULL dalam basis data sumber dengan menggunakan perintah berikut.

  ```
  sp_dboption database_name, 'allow nulls by default', 'true'
  go
  use database_name
  CHECKPOINT
  go
  ```
+ Perintah indeks `reorg rebuild` tidak didukung.
+ AWS DMS tidak mendukung cluster atau menggunakan MSA (Multi-Site Availability) /Warm Standby sebagai sumber.
+ Saat ekspresi header transformasi `AR_H_TIMESTAMP` digunakan dalam aturan pemetaan, milidetik tidak akan ditangkap untuk kolom yang ditambahkan.
+ Menjalankan operasi Gabungan selama CDC akan menghasilkan kesalahan yang tidak dapat dipulihkan. Untuk membawa target kembali sinkron, jalankan beban penuh.
+ Peristiwa pemicu rollback tidak didukung untuk tabel yang menggunakan skema penguncian baris data.
+ AWS DMS tidak dapat melanjutkan tugas replikasi setelah menjatuhkan tabel dalam lingkup tugas dari database SAP sumber. Jika tugas replikasi DMS dihentikan dan dilakukan operasi DMLnya (INSERT, UPDATE, DELETE) diikuti dengan menjatuhkan tabel, Anda harus memulai ulang tugas replikasi.

## Izin diperlukan untuk menggunakan SAP ASE sebagai sumber untuk AWS DMS
<a name="CHAP_Source.SAP.Security"></a>

Untuk menggunakan database SAP ASE sebagai sumber dalam AWS DMS tugas, Anda perlu memberikan izin. Berikan akun pengguna yang ditentukan dalam definisi AWS DMS database izin berikut dalam database SAP ASE: 
+ sa\$1role
+ replication\$1role
+ sybase\$1ts\$1role
+ Secara default, di mana Anda perlu memiliki izin untuk menjalankan prosedur yang `sp_setreptable` disimpan, AWS DMS mengaktifkan opsi replikasi SAP ASE. Jika Anda ingin berjalan `sp_setreptable` di atas meja langsung dari endpoint database dan tidak melalui AWS DMS dirinya sendiri, Anda dapat menggunakan atribut koneksi `enableReplication` tambahan. Untuk informasi selengkapnya, lihat [Pengaturan titik akhir saat menggunakan SAP ASE sebagai sumber untuk AWS DMS](#CHAP_Source.SAP.ConnectionAttrib).

## Menghapus titik pemotongan
<a name="CHAP_Source.SAP.Truncation"></a>

Ketika tugas dimulai, AWS DMS menetapkan `$replication_truncation_point` entri dalam tampilan `syslogshold` sistem, yang menunjukkan bahwa proses replikasi sedang berlangsung. Saat AWS DMS bekerja, ia memajukan titik pemotongan replikasi secara berkala, sesuai dengan jumlah data yang telah disalin ke target.

Setelah `$replication_truncation_point` entri dibuat, jaga agar AWS DMS tugas tetap berjalan untuk mencegah log database menjadi terlalu besar. Jika Anda ingin menghentikan AWS DMS tugas secara permanen, hapus titik pemotongan replikasi dengan mengeluarkan perintah berikut:

```
dbcc settrunc('ltm','ignore')
```

Setelah titik pemotongan dihapus, Anda tidak dapat melanjutkan tugas. AWS DMS Log terus dipotong secara otomatis di pos pemeriksaan (jika pemotongan otomatis diatur).

## Pengaturan titik akhir saat menggunakan SAP ASE sebagai sumber untuk AWS DMS
<a name="CHAP_Source.SAP.ConnectionAttrib"></a>

Anda dapat menggunakan pengaturan titik akhir untuk mengonfigurasi basis data sumber SAP ASE Anda mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat Anda membuat titik akhir sumber menggunakan AWS DMS konsol, atau dengan menggunakan `create-endpoint` perintah di [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), dengan sintaks `--sybase-settings '{"EndpointSetting": "value", ...}'` JSON.

Tabel berikut menunjukkan pengaturan endpoint yang dapat Anda gunakan dengan SAP ASE sebagai sumber.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.SAP.html)

## Jenis data sumber untuk SAP ASE
<a name="CHAP_Source.SAP.DataTypes"></a>

Untuk daftar tipe data sumber SAP ASE yang didukung saat menggunakan AWS DMS dan pemetaan default dari tipe AWS DMS data, lihat tabel berikut. AWS DMS tidak mendukung tabel sumber SAP ASE dengan kolom tipe data tipe yang ditentukan pengguna (UDT). Kolom yang direplikasi dengan jenis data ini dibuat sebagai NULL. 

Untuk informasi tentang cara untuk melihat jenis data yang dipetakan dalam target, lihat bagian [Target migrasi data](CHAP_Target.md) untuk titik akhir target Anda.

Untuk informasi tambahan tentang tipe AWS DMS data, lihat[Tipe data untuk AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  Tipe data SAP ASE  |  AWS DMS tipe data  | 
| --- | --- | 
| BIGINT | INT8 | 
| UNSIGNED BIGINT | UINT8 | 
| INT | INT4 | 
| INT TIDAK DITANDATANGANI | UINT4 | 
| SMALLINT | INT2 | 
| UNSIGNED SMALLINT | UINT2 | 
| TINYINT | UINT1 | 
| DECIMAL | NUMERIC | 
| NUMERIC | NUMERIC | 
| FLOAT | REAL8 | 
| DOUBLE | REAL8 | 
| REAL | REAL4 | 
| MONEY | NUMERIC | 
| SMALLMONEY | NUMERIC | 
| DATETIME | DATETIME | 
| BIGDATETIME | TANGGAL WAKTU (6) | 
| SMALLDATETIME | DATETIME | 
| DATE | DATE | 
| TIME | TIME | 
| BIGTIME | TIME | 
| CHAR | STRING | 
| UNICHAR | WSTRING | 
| NCHAR | WSTRING | 
| VARCHAR | STRING | 
| UNIVARCHAR | WSTRING | 
| NVARCHAR | WSTRING | 
| BINARY | BYTES | 
| VARBINARY | BYTES | 
| BIT | BOOLEAN | 
| TEXT | CLOB | 
| UNITEXT | NCLOB | 
| IMAGE | BLOB | 

# Menggunakan MongoDB sebagai sumber AWS DMS
<a name="CHAP_Source.MongoDB"></a>

 Untuk informasi tentang versi MongoDB AWS DMS yang mendukung sebagai sumber, lihat. [Sumber untuk AWS DMS](CHAP_Introduction.Sources.md) 

Perhatikan hal berikut tentang dukungan versi MongoDB:
+ Versi AWS DMS 3.4.5 dan yang lebih baru mendukung MongoDB versi 4.2 dan 4.4. 
+ Versi AWS DMS 3.4.5 dan yang lebih baru dan versi MongoDB 4.2 dan yang lebih baru mendukung transaksi terdistribusi. [Untuk informasi selengkapnya tentang transaksi terdistribusi MongoDB, [lihat](https://docs.mongodb.com/manual/core/transactions/) Transaksi dalam dokumentasi MongoDB.](https://www.mongodb.com/docs/)
+ Versi AWS DMS 3.5.0 dan yang lebih baru tidak mendukung versi MongoDB sebelum 3.6.
+ Versi AWS DMS 3.5.1 dan yang lebih baru mendukung MongoDB versi 5.0.
+ Versi AWS DMS 3.5.2 dan yang lebih baru mendukung MongoDB versi 6.0.
+ Versi AWS DMS 3.5.4 dan yang lebih baru mendukung MongoDB versi 7.0 dan 8.0.



Jika Anda baru menggunakan MongoDB, ketahuilah konsep basis data MongoDB penting berikut: 
+ Catatan di MongoDB adalah *dokumen*, yang merupakan struktur data terdiri dari pasangan bidang dan nilai. Nilai bidang dapat mencakup dokumen, rangkaian, dan rangkaian dokumen lain. Dokumen kurang lebih setara dengan baris dalam tabel basis data relasional.
+ *Koleksi* di MongoDB adalah sekelompok dokumen, dan kurang lebih setara dengan tabel basis data relasional.
+ *Database* di MongoDB adalah sekumpulan koleksi, dan kira-kira setara dengan skema dalam database relasional.
+ Secara internal, dokumen MongoDB disimpan sebagai file biner JSON (BSON) dalam format terkompresi yang mencakup jenis untuk setiap bidang dalam dokumen. Setiap dokumen mempunyai ID yang unik.

AWS DMS *mendukung dua mode migrasi saat menggunakan MongoDB sebagai sumber*, mode Dokumen* atau mode Tabel.* Anda menentukan mode migrasi mana yang digunakan ketika Anda membuat titik akhir MongoDB atau dengan menetapkan parameter **Mode metadata** dari konsol AWS DMS Secara fakultatif, Anda dapat membuat kolom kedua bernama`_id` yang bertindak sebagai kunci utama dengan memilih tombol tanda centang untuk **\$1id sebagai kolom terpisah** di panel konfigurasi titik akhir. 

Pilihan mode migrasi Anda memengaruhi format yang dihasilkan dari data target, seperti yang dijelaskan berikut. 

**Mode dokumen**  
Dalam mode dokumen, dokumen MongoDB bermigrasi dengan apa adanya, artinya bahwa data dokumen dikonsolidasikan ke dalam satu kolom bernama `_doc` dalam tabel target. Mode dokumen adalah pengaturan default ketika Anda menggunakan MongoDB sebagai titik akhir sumber.  
Misalnya, pertimbangkan dokumen-dokumen berikut dalam koleksi MongoDB yang disebut MyCollection.  

```
 db.myCollection.find()
{ "_id" : ObjectId("5a94815f40bd44d1b02bdfe0"), "a" : 1, "b" : 2, "c" : 3 }
{ "_id" : ObjectId("5a94815f40bd44d1b02bdfe1"), "a" : 4, "b" : 5, "c" : 6 }
```
Setelah memigrasikan data ke tabel basis data relasional menggunakan mode dokumen, data terstruktur sebagai berikut. Bidang data dalam dokumen MongoDB dikonsolidasikan ke dalam kolom ` _doc`.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.MongoDB.html)
Anda dapat mengatur atribut sambungan tambahan secara fakultatif `extractDocID` menjadi *benar* untuk membuat kolom kedua bernama `"_id"` yang bertindak sebagai kunci utama. Jika Anda akan menggunakan CDC, atur parameter ini ke *true*.  
*Saat menggunakan CDC dengan sumber yang menghasilkan [transaksi multi-dokumen](https://www.mongodb.com/docs/manual/reference/method/Session.startTransaction/#mongodb-method-Session.startTransaction), `ExtractDocId` parameter **harus** disetel ke true.* Jika parameter ini tidak diaktifkan, AWS DMS tugas akan gagal ketika menemukan transaksi multi-dokumen.  
Dalam mode dokumen, AWS DMS mengelola pembuatan dan penggantian nama koleksi seperti ini:  
+ Jika Anda menambahkan koleksi baru ke database sumber, AWS DMS buat tabel target baru untuk koleksi dan mereplikasi dokumen apa pun. 
+ Jika Anda mengubah nama koleksi yang ada pada basis data sumber, AWS DMS tidak mengubah nama tabel target. 
Jika titik akhir target adalah Amazon DocumentDB, jalankan migrasi dalam **Mode dokumen**.

**Mode tabel**  
Dalam mode tabel, AWS DMS mengubah setiap bidang tingkat atas dalam dokumen MongoDB menjadi kolom di tabel target. Jika bidang bersarang, AWS DMS ratakan nilai bersarang menjadi satu kolom. AWS DMS kemudian menambahkan bidang kunci dan tipe data ke set kolom tabel target.   
Untuk setiap dokumen MongoDB AWS DMS , tambahkan setiap kunci dan ketik ke set kolom tabel target. Misalnya, menggunakan mode tabel, AWS DMS memigrasikan contoh sebelumnya ke dalam tabel berikut.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.MongoDB.html)
Nilai-nilai bersarang diratakan menjadi sebuah kolom yang berisi nama-nama kunci yang dipisahkan oleh titik. Kolom dinamakan penggabungan nama bidang yang diratakan yang dipisahkan oleh titik. Misalnya, AWS DMS memigrasikan dokumen JSON dengan bidang nilai bersarang seperti `{"a" : {"b" : {"c": 1}}}` ke dalam kolom bernama `a.b.c.`  
Untuk membuat kolom target, AWS DMS memindai sejumlah dokumen MongoDB tertentu dan membuat satu set semua bidang dan jenisnya. AWS DMS kemudian menggunakan set ini untuk membuat kolom dari tabel target. Jika Anda membuat atau memodifikasi titik akhir sumber MongoDB Anda menggunakan konsol, Anda dapat menentukan jumlah dokumen yang dipindai. Nilai default adalah 1000 dokumen. Jika Anda menggunakan AWS CLI, Anda dapat menggunakan atribut koneksi tambahan`docsToInvestigate`.  
Dalam mode tabel, AWS DMS mengelola dokumen dan koleksi seperti ini:  
+ Ketika Anda menambahkan dokumen ke koleksi yang ada, dokumen itu direplikasi. Jika ada bidang yang tidak ada dalam target, bidang tersebut tidak direplikasi.
+ Ketika Anda memperbarui dokumen, dokumen yang diperbarui tersebut direplikasi. Jika ada bidang yang tidak ada dalam target, bidang tersebut tidak direplikasi.
+ Menghapus dokumen sepenuhnya didukung.
+ Menambahkan koleksi baru tidak menghasilkan tabel baru pada target ketika dilakukan selama tugas CDC.
+ Pada fase Change Data Capture (CDC), AWS DMS tidak mendukung penggantian nama koleksi.

**Topics**
+ [Izin diperlukan saat menggunakan MongoDB sebagai sumber AWS DMS](#CHAP_Source.MongoDB.PrerequisitesCDC)
+ [Mengonfigurasi rangkaian replika MongoDB yang untuk CDC](#CHAP_Source.MongoDB.PrerequisitesCDC.ReplicaSet)
+ [Persyaratan keamanan saat menggunakan MongoDB sebagai sumber AWS DMS](#CHAP_Source.MongoDB.Security)
+ [Melakukan segmen koleksi MongoDB dan bermigrasi secara paralel](#CHAP_Source.MongoDB.ParallelLoad)
+ [Migrasi beberapa database saat menggunakan MongoDB sebagai sumber AWS DMS](#CHAP_Source.MongoDB.Multidatabase)
+ [Keterbatasan saat menggunakan MongoDB sebagai sumber AWS DMS](#CHAP_Source.MongoDB.Limitations)
+ [Pengaturan konfigurasi titik akhir saat menggunakan MongoDB sebagai sumber AWS DMS](#CHAP_Source.MongoDB.Configuration)
+ [Jenis data sumber untuk MongoDB](#CHAP_Source.MongoDB.DataTypes)

## Izin diperlukan saat menggunakan MongoDB sebagai sumber AWS DMS
<a name="CHAP_Source.MongoDB.PrerequisitesCDC"></a>

Untuk AWS DMS migrasi dengan sumber MongoDB, Anda dapat membuat akun pengguna dengan hak akses root, atau pengguna dengan izin hanya pada database untuk bermigrasi. 

Kode berikut membuat pengguna menjadi akun root.

```
use admin
db.createUser(
  {
    user: "root",
    pwd: "password",
    roles: [ { role: "root", db: "admin" } ]
  }
)
```

Untuk sumber MongoDB 3.x, kode berikut menciptakan pengguna dengan hak izin minimal pada basis data yang akan bermigrasi.

```
use database_to_migrate
db.createUser( 
{ 
    user: "dms-user",
    pwd: "password",
    roles: [ { role: "read", db: "local" }, "read"] 
})
```

Untuk sumber 4.x MongoDB, kode berikut membuat pengguna dengan hak izin minimal.

```
{ resource: { db: "", collection: "" }, actions: [ "find", "changeStream" ] }
```

Sebagai contoh, buatlah peran berikut dalam basis data “admin”.

```
use admin
db.createRole(
{
role: "changestreamrole",
privileges: [
{ resource: { db: "", collection: "" }, actions: [ "find","changeStream" ] }
],
roles: []
}
)
```

Dan setelah peran itu dibuat, buatlah pengguna dalam basis data yang akan bermigrasi.

```
 use test
> db.createUser( 
{ 
user: "dms-user12345",
pwd: "password",
roles: [ { role: "changestreamrole", db: "admin" }, "read"] 
})
```

## Mengonfigurasi rangkaian replika MongoDB yang untuk CDC
<a name="CHAP_Source.MongoDB.PrerequisitesCDC.ReplicaSet"></a>

Untuk menggunakan replikasi berkelanjutan atau CDC dengan MongoDB, memerlukan AWS DMS akses ke log operasi MongoDB (oplog). Untuk membuat oplog, Anda perlu men-deploy rangkaian replika jika salah satu tidak ada. Untuk informasi selengkapnya tentang penggunaan, lihat [ dokumentasi MongoDB](https://docs.mongodb.com/manual/tutorial/deploy-replica-set/) .

Anda dapat menggunakan CDC dengan node primer atau node sekunder dari rangkaian replika MongoDB sebagai titik akhir sumber.

**Mengonversi instans mandiri menjadi rangkaian replika**

1. Menggunakan baris perintah, hubungkan ke `mongo`.

   ```
   mongo localhost
   ```

1. Hentikan layanan `mongod`.

   ```
   service mongod stop
   ```

1. Mulai ulang `mongod` menggunakan perintah berikut ini:

   ```
   mongod --replSet "rs0" --auth -port port_number
   ```

1. Uji sambungan ke rangkaian replika menggunakan perintah berikut:

   ```
   mongo -u root -p password --host rs0/localhost:port_number 
     --authenticationDatabase "admin"
   ```

Jika Anda berencana untuk melakukan migrasi mode dokumen, pilih opsi `_id as a separate column` ketika Anda membuat titik akhir MongoDB. Memilih opsi ini membuat kolom kedua bernama `_id` yang bertindak sebagai kunci utama. Kolom kedua ini diperlukan oleh AWS DMS untuk mendukung operasi bahasa manipulasi data (DHTML).

**catatan**  
AWS DMS menggunakan log operasi (oplog) untuk menangkap perubahan selama replikasi yang sedang berlangsung. Jika MongoDB mengeluarkan catatan dari oplog AWS DMS sebelum membacanya, tugas Anda gagal. Kami merekomendasikan ukuran oplog untuk mempertahankan perubahan setidaknya selama 24 jam. 

## Persyaratan keamanan saat menggunakan MongoDB sebagai sumber AWS DMS
<a name="CHAP_Source.MongoDB.Security"></a>

AWS DMS mendukung dua metode otentikasi untuk MongoDB. Dua metode autentikasi digunakan untuk mengenkripsi kata sandi, sehingga mereka hanya digunakan ketika parameter `authType` diatur menjadi *PASSWORD*.

Metode autentikasi MongoDB adalah sebagai berikut:
+ **MONGODB-CR** - Untuk kompatibilitas mundur
+ **SCRAM-SHA-1** - Default saat menggunakan MongoDB versi 3.x dan 4.0

Jika metode otentikasi tidak ditentukan, AWS DMS menggunakan metode default untuk versi sumber MongoDB.

## Melakukan segmen koleksi MongoDB dan bermigrasi secara paralel
<a name="CHAP_Source.MongoDB.ParallelLoad"></a>

Untuk meningkatkan kinerja tugas migrasi, titik akhir sumber MongoDB mendukung dua opsi untuk beban penuh paralel dalam pemetaan tabel. 

Dengan kata lain, Anda dapat memigrasikan koleksi secara paralel dengan menggunakan autosegmentasi atau segmentasi rentang dengan pemetaan tabel untuk beban penuh paralel dalam pengaturan JSON. Dengan autosegmentasi, Anda dapat menentukan kriteria AWS DMS untuk secara otomatis mengelompokkan sumber Anda untuk migrasi di setiap utas. Dengan segmentasi rentang, Anda dapat memberi tahu AWS DMS rentang spesifik setiap segmen untuk DMS untuk bermigrasi di setiap utas. Untuk informasi selengkapnya tentang pengaturan, lihat [Tabel dan koleksi pengaturan aturan dan operasi](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.md).

### Migrasi database MongoDB secara paralel menggunakan rentang autosegmentasi
<a name="CHAP_Source.MongoDB.ParallelLoad.AutoPartitioned"></a>

Anda dapat memigrasikan dokumen secara paralel dengan menentukan kriteria untuk secara otomatis AWS DMS mempartisi (segmen) data Anda untuk setiap utas. Secara khusus, Anda menentukan jumlah dokumen yang akan dimigrasikan per utas. Dengan menggunakan pendekatan ini, AWS DMS upaya untuk mengoptimalkan batas segmen untuk kinerja maksimum per utas.

Anda dapat menentukan kriteria segmentasi menggunakan opsi pengaturan tabel berikut dalam pemetaan tabel.


|  Opsi tabel-pengaturan  |  Deskripsi  | 
| --- | --- | 
|  `"type"`  |  (Wajib) Setel ke `"partitions-auto"` untuk MongoDB sebagai sumber.  | 
|  `"number-of-partitions"`  |  (Opsional) Jumlah total partisi (segmen) yang digunakan untuk migrasi. Defaultnya adalah 16.  | 
|  `"collection-count-from-metadata"`  |  (Opsional) Jika opsi ini diatur ke`true`, AWS DMS menggunakan perkiraan jumlah koleksi untuk menentukan jumlah partisi. Jika opsi ini diatur ke`false`, AWS DMS gunakan jumlah koleksi yang sebenarnya. Nilai default-nya `true`.  | 
|  `"max-records-skip-per-page"`  |  (Opsional) Jumlah catatan yang harus dilewati sekaligus saat menentukan batas untuk setiap partisi. AWS DMS menggunakan pendekatan skip paginated untuk menentukan batas minimum untuk partisi. Default adalah 10.000.  Menyetel nilai yang relatif besar dapat mengakibatkan batas waktu kursor dan kegagalan tugas. Menetapkan nilai yang relatif rendah menghasilkan lebih banyak operasi per halaman dan beban penuh yang lebih lambat.   | 
|  `"batch-size"`  |  (Opsional) Membatasi jumlah dokumen yang dikembalikan dalam satu batch. Setiap batch membutuhkan perjalanan pulang pergi ke server. Jika ukuran batch nol (0), kursor menggunakan ukuran batch maksimum yang ditentukan server. Default-nya adalah 0.  | 

Contoh berikut menunjukkan pemetaan tabel untuk autosegmentasi.

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "admin",
                "table-name": "departments"
            },
            "rule-action": "include",
            "filters": []
        },
        {
            "rule-type": "table-settings",
            "rule-id": "2",
            "rule-name": "2",
            "object-locator": {
                "schema-name": "admin",
                "table-name": "departments"
            },
            "parallel-load": {
                "type": "partitions-auto",
                "number-of-partitions": 5,
                "collection-count-from-metadata": "true",
                "max-records-skip-per-page": 1000000,
                "batch-size": 50000
            }
        }
    ]
}
```

Autosegmentasi memiliki batasan berikut. Migrasi untuk setiap segmen mengambil jumlah koleksi dan minimum `_id` untuk koleksi secara terpisah. Kemudian menggunakan lompatan paginasi untuk menghitung batas minimum untuk segmen itu. 

Oleh karena itu, pastikan bahwa `_id` nilai minimum untuk setiap koleksi tetap konstan sampai semua batas segmen dalam koleksi dihitung. Jika Anda mengubah `_id` nilai minimum untuk koleksi selama perhitungan batas segmennya, itu dapat menyebabkan kehilangan data atau kesalahan baris duplikat.

### Migrasi database MongoDB secara paralel menggunakan segmentasi rentang
<a name="CHAP_Source.MongoDB.ParallelLoad.Ranges"></a>

Anda dapat memigrasikan dokumen secara paralel dengan menentukan rentang untuk setiap segmen dalam utas. Dengan menggunakan pendekatan ini, Anda memberi tahu AWS DMS dokumen tertentu untuk bermigrasi di setiap utas sesuai dengan pilihan rentang dokumen per utas.

Gambar berikut menunjukkan koleksi MongoDB yang memiliki tujuh item, `_id` dan sebagai kunci utama.

![\[Koleksi MongoDB dengan tujuh item.\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/images/datarep-docdb-collection.png)


Untuk membagi koleksi menjadi tiga segmen tertentu AWS DMS untuk bermigrasi secara paralel, Anda dapat menambahkan aturan pemetaan tabel ke tugas migrasi Anda. Pendekatan ini ditunjukkan dalam contoh JSON berikut.

```
{ // Task table mappings:
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "1",
      "object-locator": {
        "schema-name": "testdatabase",
        "table-name": "testtable"
      },
      "rule-action": "include"
    }, // "selection" :"rule-type"
    {
      "rule-type": "table-settings",
      "rule-id": "2",
      "rule-name": "2",
      "object-locator": {
        "schema-name": "testdatabase",
        "table-name": "testtable"
      },
      "parallel-load": {
        "type": "ranges",
        "columns": [
           "_id",
           "num"
        ],
        "boundaries": [
          // First segment selects documents with _id less-than-or-equal-to 5f805c97873173399a278d79
          // and num less-than-or-equal-to 2.
          [
             "5f805c97873173399a278d79",
             "2"
          ],
          // Second segment selects documents with _id > 5f805c97873173399a278d79 and
          // _id less-than-or-equal-to 5f805cc5873173399a278d7c and
          // num > 2 and num less-than-or-equal-to 5.
          [
             "5f805cc5873173399a278d7c",
             "5"
          ]                                   
          // Third segment is implied and selects documents with _id > 5f805cc5873173399a278d7c.
        ] // :"boundaries"
      } // :"parallel-load"
    } // "table-settings" :"rule-type"
  ] // :"rules"
} // :Task table mappings
```

Bahwa definisi pemetaan tabel membagi koleksi sumber menjadi tiga segmen dan bermigrasi secara paralel. Berikut ini adalah batas-batas segmentasi.

```
Data with _id less-than-or-equal-to "5f805c97873173399a278d79" and num less-than-or-equal-to 2 (2 records)
Data with _id > "5f805c97873173399a278d79" and num > 2 and _id  less-than-or-equal-to "5f805cc5873173399a278d7c" and num less-than-or-equal-to 5 (3 records)
Data with _id > "5f805cc5873173399a278d7c" and num > 5 (2 records)
```

Setelah tugas migrasi selesai, Anda dapat melakukan verifikasi dari log tugas yang dimuat tabel secara paralel, seperti yang ditunjukkan dalam contoh berikut. Anda juga dapat memverifikasi klausa `find` MongoDB yang digunakan untuk membongkar setiap segmen dari tabel sumber.

```
[TASK_MANAGER    ] I:  Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86  (replicationtask_util.c:752)

[SOURCE_UNLOAD   ] I:  Range Segmentation filter for Segment #0 is initialized.   (mongodb_unload.c:157)

[SOURCE_UNLOAD   ] I:  Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } }  (mongodb_unload.c:328)

[SOURCE_UNLOAD   ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent.

[TASK_MANAGER    ] I: Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86 (replicationtask_util.c:752)
 
[SOURCE_UNLOAD   ] I: Range Segmentation filter for Segment #0 is initialized. (mongodb_unload.c:157) 

[SOURCE_UNLOAD   ] I: Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } } (mongodb_unload.c:328)
 
[SOURCE_UNLOAD   ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent.

[TARGET_LOAD     ] I: Load finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 1 rows received. 0 rows skipped. Volume transfered 480.

[TASK_MANAGER    ] I: Load finished for segment #1 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. 2 records transferred.
```

Saat ini, AWS DMS mendukung tipe data MongoDB berikut sebagai kolom kunci segmen:
+ Dua Kali
+ String
+ ObjectId
+ 32 bit integer
+ 64 bit integer

## Migrasi beberapa database saat menggunakan MongoDB sebagai sumber AWS DMS
<a name="CHAP_Source.MongoDB.Multidatabase"></a>

AWS DMS versi 3.4.5 dan yang lebih tinggi mendukung migrasi beberapa database dalam satu tugas untuk semua versi MongoDB yang didukung. Jika Anda ingin memigrasi beberapa database, lakukan langkah-langkah berikut:

1. Saat Anda membuat titik akhir sumber MongoDB, lakukan salah satu hal berikut:
   + Pada halaman **Create endpoint** konsol DMS, pastikan **nama Database** kosong di bawah konfigurasi **Endpoint**.
   + Dengan menggunakan AWS CLI `CreateEndpoint` perintah, tetapkan nilai string kosong ke `DatabaseName` parameter di`MongoDBSettings`.

1. Untuk setiap database yang ingin Anda migrasi dari sumber MongoDB, tentukan nama database sebagai nama skema dalam pemetaan tabel untuk tugas tersebut. Anda dapat melakukan ini menggunakan input yang dipandu di konsol atau langsung di JSON. Untuk informasi lebih lanjut tentang input yang dipandu, lihat[Menentukan pemilihan tabel dan transformasi aturan dari konsol](CHAP_Tasks.CustomizingTasks.TableMapping.Console.md). Untuk informasi lebih lanjut tentang JSON, lihat[Aturan seleksi dan tindakan](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Selections.md).

Misalnya, Anda dapat menentukan JSON berikut untuk memigrasikan tiga database MongoDB.

**Example Memigrasi semua tabel dalam skema**  
JSON berikut memigrasikan semua tabel dari`Customers`,`Orders`, dan `Suppliers` database di titik akhir sumber Anda ke titik akhir target Anda.  

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "Customers",
                "table-name": "%"
            },
            "rule-action": "include",
            "filters": []
        },
        {
            "rule-type": "selection",
            "rule-id": "2",
            "rule-name": "2",
            "object-locator": {
                "schema-name": "Orders",
                "table-name": "%"
            },
            "rule-action": "include",
            "filters": []
        },
        {
            "rule-type": "selection",
            "rule-id": "3",
            "rule-name": "3",
            "object-locator": {
                "schema-name": "Inventory",
                "table-name": "%"
            },
            "rule-action": "include",
            "filters": []
        }
    ]
}
```

## Keterbatasan saat menggunakan MongoDB sebagai sumber AWS DMS
<a name="CHAP_Source.MongoDB.Limitations"></a>

Berikut ini adalah batasan saat menggunakan MongoDB sebagai sumber untuk: AWS DMS
+ Dalam mode tabel, dokumen dalam koleksi harus konsisten dalam tipe data yang mereka gunakan untuk nilai di bidang yang sama. Misalnya, jika dokumen dalam koleksi termasuk`'{ a:{ b:value ... }'`, semua dokumen dalam koleksi yang mereferensikan `value` `a.b` bidang harus menggunakan tipe data yang sama untuk`value`, di mana pun itu muncul dalam koleksi.
+ Saat opsi `_id` diatur sebagai kolom terpisah, string ID tidak dapat melebihi 200 karakter.
+ ID objek dan kunci jenis rangkaian dikonversi ke kolom yang diawali dengan `oid` dan `array` dalam mode tabel.

  Secara internal, kolom ini direferensikan dengan nama prefiks. Jika Anda menggunakan aturan transformasi dalam AWS DMS referensi kolom ini, pastikan untuk menentukan kolom awalan. Misalnya, Anda menentukan `${oid__id}` dan bukan `${_id}`, atau `${array__addresses}` dan bukan `${_addresses}`. 
+  Nama koleksi dan nama kunci tidak dapat menyertakan simbol dolar (\$1). 
+ AWS DMS tidak mendukung koleksi yang berisi bidang yang sama dengan kasus yang berbeda (atas, bawah) dalam mode tabel dengan target RDBMS. Misalnya, AWS DMS tidak mendukung memiliki dua koleksi bernama `Field1` dan`field1`. 
+ Mode tabel dan mode dokumen memiliki batasan yang dijelaskan sebelumnya.
+ Migrasi secara paralel menggunakan autosegmentasi memiliki keterbatasan yang dijelaskan sebelumnya.
+ Filter sumber tidak didukung untuk MongoDB.
+ AWS DMS tidak mendukung dokumen di mana tingkat bersarang lebih besar dari 97.
+ AWS DMS memerlukan data sumber yang dikodekan UTF-8 saat bermigrasi ke target non-DocumentDB. Untuk sumber dengan karakter non-UTF-8, konversikan ke UTF-8 sebelum migrasi atau migrasi ke Amazon DocumentDB sebagai gantinya.
+ AWS DMS tidak mendukung fitur MongoDB versi 5.0 berikut:
  + Resharding langsung
  + Enkripsi Tingkat Bidang Sisi Klien (CSFLE)
  + Migrasi koleksi Timeseries
**catatan**  
Koleksi rangkaian waktu yang dimigrasikan dalam fase pemuatan penuh akan dikonversi ke koleksi normal di Amazon DocumentDB, karena DocumentDB tidak mendukung koleksi rangkaian waktu.

## Pengaturan konfigurasi titik akhir saat menggunakan MongoDB sebagai sumber AWS DMS
<a name="CHAP_Source.MongoDB.Configuration"></a>

Saat menyiapkan titik akhir sumber MongoDB, Anda dapat menentukan beberapa pengaturan konfigurasi titik akhir menggunakan konsol. AWS DMS 

Tabel berikut menjelaskan pengaturan konfigurasi yang tersedia saat menggunakan database MongoDB sebagai sumber. AWS DMS 


| Pengaturan (atribut) | Nilai valid | Nilai default dan deskripsi | 
| --- | --- | --- | 
|  **Mode otentikasi**  |  `"none"` `"password"`  |  Nilai `"password"` meminta nama pengguna dan kata sandi. Saat `"none"` ditentukan, parameter nama pengguna dan kata sandi tidak digunakan.  | 
|  **Sumber otentikasi**  |  Sebuah nama basis data MongoDB yang valid.  |  Nama basis data MongoDB yang ingin Anda gunakan untuk melakukan validasi Anda untuk autentikasi. Nilai default-nya adalah `"admin"`.   | 
|  **Mekanisme otentikasi**  |  `"default"` `"mongodb_cr"` `"scram_sha_1"`  |  Mekanisme otentikasi. Nilai ` "default"` adalah `"scram_sha_1"`. Pengaturan ini tidak digunakan saat `authType` diatur menjadi `"no"`.  | 
|  **Modus metadata**  |  Dokumen dan tabel  |  Memilih mode dokumen atau mode tabel.   | 
|  **Jumlah dokumen yang akan dipindai** (`docsToInvestigate`)  |  Sebuah integer positif lebih besar dari `0`.  |  Gunakan opsi ini dalam mode tabel hanya untuk menentukan definisi tabel target.  | 
|  **\$1id sebagai kolom terpisah**  |  Centang tanda di kotak  |  Kotak tanda centang opsional yang membuat kolom kedua bernama `_id` yang bertindak sebagai kunci utama.  | 
|   `ExtractDocID`   |  `true` `false`  |  `false` — Gunakan atribut ini ketika `NestingLevel` diatur menjadi `"none"`.  Saat menggunakan CDC dengan sumber yang menghasilkan [transaksi multi-dokumen](https://www.mongodb.com/docs/manual/reference/method/Session.startTransaction/#mongodb-method-Session.startTransaction), `ExtractDocId` parameter **harus** diatur ke. `true` Jika parameter ini tidak diaktifkan, AWS DMS tugas akan gagal ketika menemukan transaksi multi-dokumen.  | 
|  `socketTimeoutMS`  |  Sebuah integer lebih besar dari atau sama dengan 0. Atribut Koneksi Ekstra (ECA) saja.  |  Pengaturan ini dalam satuan milidetik dan mengonfigurasi batas waktu koneksi untuk klien MongoDB. Jika nilainya kurang dari atau sama dengan nol, maka default klien MongoDB digunakan.  | 
|   `UseUpdateLookUp`   |  `true` `false`  |  Jika benar, selama peristiwa pembaruan CDC AWS DMS , salin seluruh dokumen yang diperbarui ke target. Saat disetel ke false, AWS DMS gunakan perintah pembaruan MongoDB untuk hanya memperbarui bidang yang dimodifikasi dalam dokumen pada target.  | 
|   `ReplicateShardCollections`   |  `true` `false`  |  Jika benar, AWS DMS mereplikasi data ke koleksi pecahan. AWS DMS hanya menggunakan pengaturan ini jika titik akhir target adalah cluster elastis DocumentDB. Jika pengaturan ini benar, perhatikan hal berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.MongoDB.html)  | 
|  `useTransactionVerification`  |  `true` `false`  |  Kapan`false`, menonaktifkan verifikasi antara aliran perubahan dan oplog.   Anda dapat melewatkan operasi jika terjadi perbedaan antara aliran perubahan dan entri oplog, karena perilaku DMS default adalah gagal dalam skenario tersebut. Default: `true`.   | 
|  `useOplog`  |  `true` `false`  |  Kapan`true`, aktifkan tugas DMS untuk membaca langsung dari 'oplog' daripada menggunakan aliran perubahan. Default: `false`.  | 

Jika Anda memilih **Dokumen** sebagai **Mode metadata**, opsi yang berbeda akan tersedia. 

**Jika titik akhir target adalah DocumentDB, pastikan untuk menjalankan migrasi **dalam mode Dokumen** Juga, ubah titik akhir sumber Anda dan pilih opsi \$1id sebagai kolom terpisah.** Ini adalah prasyarat wajib jika beban kerja MongoDB sumber Anda melibatkan transaksi.

## Jenis data sumber untuk MongoDB
<a name="CHAP_Source.MongoDB.DataTypes"></a>

Migrasi data yang menggunakan MongoDB sebagai sumber untuk AWS DMS mendukung sebagian besar tipe data MongoDB. Dalam tabel berikut, Anda dapat menemukan tipe data sumber MongoDB yang didukung saat AWS DMS menggunakan dan pemetaan AWS DMS default dari tipe data. Untuk informasi lebih lanjut tentang jenis data MongoDB, lihat[jenis BSON](https://docs.mongodb.com/manual/reference/bson-types) dalam dokumentasi MongoDB.

Untuk informasi tentang cara melihat jenis data yang dipetakan dalam target, lihat bagian titik akhir target yang Anda gunakan.

Untuk informasi tambahan tentang tipe AWS DMS data, lihat[Tipe data untuk AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  Jenis data MongoDB  |  AWS DMS tipe data  | 
| --- | --- | 
| Boolean | Bool | 
| Binary | BLOB | 
| Date | Date | 
| Timestamp | Date | 
| Int | INT4 | 
| Panjang | INT8 | 
| Ganda | REAL8 | 
| String (UTF-8) | CLOB | 
| Array | CLOB | 
| OID | String | 
| REGEX | CLOB | 
| CODE | CLOB | 

# Menggunakan Amazon DocumentDB (dengan kompatibilitas MongoDB) sebagai sumber AWS DMS
<a name="CHAP_Source.DocumentDB"></a>

Untuk informasi tentang versi Amazon DocumentDB (dengan kompatibilitas MongoDB) AWS DMS yang mendukung sebagai sumber, lihat. [Sumber untuk AWS DMS](CHAP_Introduction.Sources.md)

 Dengan menggunakan Amazon DocumentDB sebagai sumber, Anda dapat memigrasikan data dari satu klaster Amazon DocumentDB ke klaster Amazon DocumentDB lain. Anda juga dapat memigrasikan data dari klaster Amazon DocumentDB ke salah satu titik akhir target lain yang didukung oleh. AWS DMS

Jika Anda baru mengenal Amazon DocumentDB, perhatikan konsep penting berikut untuk database Amazon DocumentDB:
+ *Catatan di Amazon DocumentDB adalah dokumen, struktur data yang terdiri dari pasangan bidang dan nilai.* Nilai bidang dapat mencakup dokumen, rangkaian, dan rangkaian dokumen lain. Dokumen kurang lebih setara dengan baris dalam tabel basis data relasional.
+ *Koleksi* di Amazon DocumentDB adalah sekelompok dokumen, dan kira-kira setara dengan tabel database relasional.
+ *Database* di Amazon DocumentDB adalah sekumpulan koleksi, dan kira-kira setara dengan skema dalam database relasional.

AWS DMS mendukung dua mode migrasi saat menggunakan Amazon DocumentDB sebagai sumber, mode dokumen, dan mode tabel. Anda menentukan mode migrasi saat membuat titik akhir sumber Amazon DocumentDB di konsol, menggunakan AWS DMS opsi mode **Metadata** atau atribut koneksi tambahan. `nestingLevel` Berikut, Anda dapat menemukan penjelasan bagaimana pilihan mode migrasi memengaruhi format yang dihasilkan dari data target.

**Mode dokumen**  
Pada *mode dokumen, *dokumen JSON dimigrasi apa adanya. Itu artinya data dokumen dikonsolidasikan menjadi salah satu dari dua item. Saat Anda menggunakan basis data relasional sebagai target, data merupakan satu kolom bernama `_doc` dalam tabel target. Ketika Anda menggunakan basis data nonrelasional sebagai target, data merupakan dokumen JSON tunggal. Mode dokumen adalah mode default, yang kami sarankan ketika bermigrasi ke target Amazon DocumentDB.  
Misalnya, pertimbangkan dokumen-dokumen berikut dalam koleksi Amazon DocumentDB yang disebut. `myCollection`  

```
 db.myCollection.find()
{ "_id" : ObjectId("5a94815f40bd44d1b02bdfe0"), "a" : 1, "b" : 2, "c" : 3 }
{ "_id" : ObjectId("5a94815f40bd44d1b02bdfe1"), "a" : 4, "b" : 5, "c" : 6 }
```
Setelah memigrasikan data ke tabel basis data relasional menggunakan mode dokumen, data terstruktur sebagai berikut. Bidang data dalam dokumen dikonsolidasikan ke kolom ` _doc`.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.DocumentDB.html)
Anda dapat mengatur atribut sambungan tambahan `extractDocID` secara fakultatif ke `true` untuk membuat kolom kedua bernama `"_id"` yang bertindak sebagai kunci utama. Jika Anda akan menggunakan change data capture (CDC), atur parameter ini menjadi `true` kecuali saat menggunakan Amazon DocumentDB sebagai target.  
Saat menggunakan CDC dengan sumber yang menghasilkan [transaksi multi-dokumen](https://www.mongodb.com/docs/manual/reference/method/Session.startTransaction/#mongodb-method-Session.startTransaction), `ExtractDocId` parameter **harus** diatur ke. `true` Jika parameter ini tidak diaktifkan, AWS DMS tugas akan gagal ketika menemukan transaksi multi-dokumen.  
Jika Anda menambahkan koleksi baru ke database sumber, AWS DMS buat tabel target baru untuk koleksi dan mereplikasi dokumen apa pun. 

**Mode tabel**  
Dalam *mode tabel,*AWS DMS mengubah setiap bidang tingkat atas dalam dokumen Amazon DocumentDB menjadi kolom di tabel target. Jika bidang bersarang, AWS DMS ratakan nilai bersarang menjadi satu kolom. AWS DMS kemudian menambahkan bidang kunci dan tipe data ke set kolom tabel target.   
Untuk setiap dokumen Amazon DocumentDB AWS DMS , tambahkan setiap kunci dan ketik ke set kolom tabel target. Misalnya, menggunakan mode tabel, AWS DMS memigrasikan contoh sebelumnya ke dalam tabel berikut.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.DocumentDB.html)
Nilai-nilai bersarang diratakan menjadi sebuah kolom yang berisi nama-nama kunci yang dipisahkan oleh titik. Kolom dinamakan menggunakan gabungan nama bidang yang diratakan yang dipisahkan oleh titik. Misalnya, AWS DMS memigrasikan dokumen JSON dengan bidang nilai bersarang seperti `{"a" : {"b" : {"c": 1}}}` ke dalam kolom bernama `a.b.c.`  
Untuk membuat kolom target, AWS DMS memindai sejumlah dokumen Amazon DocumentDB tertentu dan membuat satu set semua bidang dan jenisnya. AWS DMS kemudian menggunakan set ini untuk membuat kolom dari tabel target. Jika Anda membuat atau memodifikasi titik akhir sumber Amazon DocumentDB menggunakan konsol, Anda dapat menentukan jumlah dokumen yang akan dipindai. Nilai default adalah 1.000 dokumen. Jika Anda menggunakan AWS CLI, Anda dapat menggunakan atribut koneksi tambahan`docsToInvestigate`.  
Dalam mode tabel, AWS DMS mengelola dokumen dan koleksi seperti ini:  
+ Ketika Anda menambahkan dokumen ke koleksi yang ada, dokumen itu direplikasi. Jika ada bidang yang tidak ada dalam target, bidang tersebut tidak direplikasi.
+ Ketika Anda memperbarui dokumen, dokumen yang diperbarui tersebut direplikasi. Jika ada bidang yang tidak ada dalam target, bidang tersebut tidak direplikasi.
+ Menghapus dokumen sepenuhnya didukung.
+ Menambahkan koleksi baru tidak menghasilkan tabel baru pada target ketika dilakukan selama tugas CDC.
+ Pada fase Change Data Capture (CDC), AWS DMS tidak mendukung penggantian nama koleksi.

**Topics**
+ [Menetapkan izin untuk menggunakan Amazon DocumentDB sebagai sumber](#CHAP_Source.DocumentDB.Permissions)
+ [Mengonfigurasi CDC untuk klaster Amazon DocumentDB](#CHAP_Source.DocumentDB.ConfigureCDC)
+ [Menghubungkan ke Amazon DocumentDB menggunakan TLS](#CHAP_Source.DocumentDB.TLS)
+ [Membuat titik akhir sumber Amazon DocumentDB](#CHAP_Source.DocumentDB.ConfigureEndpoint)
+ [Melakukan segmentasi koleksi Amazon DocumentDB dan migrasi secara paralel](#CHAP_Source.DocumentDB.ParallelLoad)
+ [Migrasi beberapa database saat menggunakan Amazon DocumentDB sebagai sumber AWS DMS](#CHAP_Source.DocumentDB.Multidatabase)
+ [Keterbatasan saat menggunakan Amazon DocumentDB sebagai sumber AWS DMS](#CHAP_Source.DocumentDB.Limitations)
+ [Menggunakan pengaturan titik akhir dengan Amazon DocumentDB sebagai sumber](#CHAP_Source.DocumentDB.ECAs)
+ [Tipe data sumber untuk Amazon DocumentDB](#CHAP_Source.DocumentDB.DataTypes)

## Menetapkan izin untuk menggunakan Amazon DocumentDB sebagai sumber
<a name="CHAP_Source.DocumentDB.Permissions"></a>

Saat menggunakan sumber Amazon DocumentDB untuk AWS DMS migrasi, Anda dapat membuat akun pengguna dengan hak akses root. Atau Anda dapat membuat pengguna dengan izin hanya untuk basis data yang akan dimigrasi. 

Kode berikut membuat pengguna sebagai akun root.

```
use admin
db.createUser(
  {
    user: "root",
    pwd: "password",
    roles: [ { role: "root", db: "admin" } ]
  })
```

Untuk Amazon DocumentDB 3.6, kode berikut membuat pengguna dengan hak istimewa minimal pada database yang akan dimigrasi.

```
use db_name
db.createUser( 
    {
        user: "dms-user",
        pwd: "password",
        roles: [{ role: "read", db: "db_name" }]
    }
)
```

Untuk Amazon DocumentDB 4.0 dan yang lebih tinggi AWS DMS , menggunakan aliran perubahan di seluruh penerapan. Di sini, kode berikut membuat pengguna dengan hak istimewa minimal.

```
db.createUser( 
{ 
    user: "dms-user",
    pwd: "password",
    roles: [ { role: "readAnyDatabase", db: "admin" }] 
})
```

## Mengonfigurasi CDC untuk klaster Amazon DocumentDB
<a name="CHAP_Source.DocumentDB.ConfigureCDC"></a>

Untuk menggunakan replikasi atau CDC yang sedang berlangsung dengan Amazon DocumentDB AWS DMS , memerlukan akses ke aliran perubahan klaster Amazon DocumentDB. Untuk deskripsi urutan yang diatur waktu dari peristiwa pembaruan di koleksi dan basis data klaster Anda, lihat [Menggunakan aliran perubahan](https://docs.aws.amazon.com/documentdb/latest/developerguide/change_streams.html) dalam *Panduan Developer Amazon DocumentDB*. 

Lakukan autentikasi klaster Amazon DocumentDB Anda menggunakan shell MongoDB. Kemudian jalankan perintah berikut untuk mengaktifkan perubahan aliran.

```
db.adminCommand({modifyChangeStreams: 1,
    database: "DB_NAME",
    collection: "", 
    enable: true});
```

Pendekatan ini memungkinkan aliran perubahan untuk semua koleksi dalam basis data Anda. Setelah aliran perubahan diaktifkan, Anda dapat membuat tugas migrasi yang memigrasi data yang ada dan sekaligus mereplikasi perubahan yang sedang berlangsung. AWS DMS terus menangkap dan menerapkan perubahan bahkan setelah data massal dimuat. Akhirnya, sumber dan target basis data menyinkronkan, meminimalkan downtime untuk migrasi.

**catatan**  
AWS DMS menggunakan log operasi (oplog) untuk menangkap perubahan selama replikasi yang sedang berlangsung. Jika Amazon DocumentDB menghapus catatan dari oplog AWS DMS sebelum membacanya, tugas Anda akan gagal. Kami merekomendasikan ukuran oplog untuk mempertahankan perubahan setidaknya selama 24 jam.

## Menghubungkan ke Amazon DocumentDB menggunakan TLS
<a name="CHAP_Source.DocumentDB.TLS"></a>

Secara default, klaster Amazon DocumentDB baru dibuat menerima sambungan aman hanya menggunakan Keamanan Lapisan Pengangkutan (TLS). Ketika TLS diaktifkan, setiap sambungan ke Amazon DocumentDB memerlukan kunci publik.

Anda dapat mengambil kunci publik untuk Amazon DocumentDB dengan mengunduh file dari bucket Amazon `rds-combined-ca-bundle.pem` S3 yang AWS di-host. Untuk informasi lebih lanjut tentang mengunduh file ini, lihat [Mengenkripsi sambungan menggunakan TLS](https://docs.aws.amazon.com/documentdb/latest/developerguide/security.encryption.ssl.html) dalam *Panduan Developer Amazon DocumentDB.* 

Setelah mengunduh `rds-combined-ca-bundle.pem` file, Anda dapat mengimpor kunci publik yang dikandungnya AWS DMS. Langkah-langkah berikut menjelaskan cara melakukannya.

**Untuk mengimpor kunci publik Anda menggunakan AWS DMS konsol**

1. Masuk ke Konsol Manajemen AWS dan pilih AWS DMS.

1. Pilih **Sertifikat** di panel navigasi.

1. Pilih **Impor sertifikat**. Laman **Impor sertifikat CA baru** akan muncul.

1. Pada bagian **Konfigurasi sertifikat**, lakukan salah satu hal berikut:
   + Untuk **Pengenal sertifikat**, masukkan nama unik untuk sertifikat tersebut, seperti `docdb-cert`.
   + Pilih **Pilih berkas**, navigasikan ke lokasi tempat Anda menyimpan `rds-combined-ca-bundle.pem`, dan pilih itu.

1. Pilih **Tambahkan sertifikat CA baru**.

Contoh AWS CLI berikut menggunakan AWS DMS `import-certificate` perintah untuk mengimpor `rds-combined-ca-bundle.pem` file kunci publik.

```
aws dms import-certificate \
    --certificate-identifier docdb-cert \
    --certificate-pem file://./rds-combined-ca-bundle.pem
```

## Membuat titik akhir sumber Amazon DocumentDB
<a name="CHAP_Source.DocumentDB.ConfigureEndpoint"></a>

Anda dapat membuat titik akhir sumber Amazon DocumentDB menggunakan konsol atau AWS CLI. Gunakan prosedur berikut dengan konsol.

**Untuk mengonfigurasi titik akhir sumber Amazon DocumentDB menggunakan konsol AWS DMS**

1. Masuk ke Konsol Manajemen AWS dan pilih AWS DMS.

1. Pilih **Titik akhir** dari panel navigasi, lalu pilih **Buat titik akhir**.

1. Untuk **Pengidentifikasi titik akhir**, berikan nama yang membantu Anda mengidentifikasinya dengan mudah, seperti `docdb-source`.

1. Untuk **Mesin sumber**, pilih **Amazon DocumentDB (dengan kompatibilitas MongoDB)**.

1. Untuk **Nama server**, masukkan nama server di lokasi titik akhir basis data Amazon DocumentDB Anda berada. Misalnya, Anda dapat memasukkan nama DNS publik dari instans Amazon EC2 Anda, seperti `democluster.cluster-cjf6q8nxfefi.us-east-2.docdb.amazonaws.com`.

1. Untuk **Port**, masukkan 27017.

1. Untuk **Mode SSL**, pilih **verifikasi penuh**. Jika Anda telah menonaktifkan SSL pada kluster Amazon DocumentDB Anda, Anda dapat melewati langkah ini.

1. Untuk **Sertifikat CA**, pilih sertifikat Amazon DocumentDB,`rds-combined-ca-bundle.pem`. Untuk petunjuk tentang cara menambahkan sertifikat ini, lihat [Menghubungkan ke Amazon DocumentDB menggunakan TLS](#CHAP_Source.DocumentDB.TLS).

1. Untuk **Nama basis data**, masukkan nama dari basis data yang akan dimigrasi.

Gunakan prosedur berikut dengan CLI.

**Untuk mengonfigurasi titik akhir sumber Amazon DocumentDB menggunakan AWS CLI**
+ Jalankan AWS DMS `create-endpoint` perintah berikut untuk mengonfigurasi titik akhir sumber Amazon DocumentDB, mengganti placeholder dengan nilai Anda sendiri.

  ```
  aws dms create-endpoint \
             --endpoint-identifier a_memorable_name \
             --endpoint-type source \
             --engine-name docdb \
             --username value \
             --password value \
             --server-name servername_where_database_endpoint_resides \
             --port 27017 \
             --database-name name_of_endpoint_database
  ```

## Melakukan segmentasi koleksi Amazon DocumentDB dan migrasi secara paralel
<a name="CHAP_Source.DocumentDB.ParallelLoad"></a>

Untuk meningkatkan kinerja tugas migrasi, titik akhir sumber Amazon DocumentDB mendukung dua opsi fitur beban penuh paralel dalam pemetaan tabel. Dengan kata lain, Anda dapat memigrasikan koleksi secara paralel dengan menggunakan opsi autosegmentasi atau segmentasi rentang pemetaan tabel untuk beban penuh paralel dalam pengaturan JSON. Opsi segmentasi otomatis memungkinkan Anda menentukan kriteria AWS DMS untuk mengelompokkan sumber migrasi secara otomatis di setiap utas. Opsi segmentasi rentang memungkinkan Anda memberi tahu AWS DMS rentang spesifik setiap segmen agar DMS dapat bermigrasi di setiap utas. Untuk informasi selengkapnya tentang pengaturan, lihat [Tabel dan koleksi pengaturan aturan dan operasi](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.md).

### Migrasi database Amazon DocumentDB secara paralel menggunakan rentang autosegmentasi
<a name="CHAP_Source.DocumentDB.ParallelLoad.AutoPartitioned"></a>

Anda dapat memigrasikan dokumen secara paralel dengan menentukan kriteria untuk secara otomatis AWS DMS mempartisi (segmen) data Anda untuk setiap utas, terutama jumlah dokumen yang akan dimigrasi per utas. Dengan menggunakan pendekatan ini, AWS DMS upaya untuk mengoptimalkan batas segmen untuk kinerja maksimum per utas.

Anda dapat menentukan kriteria segmentasi menggunakan opsi pengaturan tabel berikut dalam pemetaan tabel:


|  Opsi tabel-pengaturan  |  Deskripsi  | 
| --- | --- | 
|  `"type"`  |  (Wajib) Setel ke `"partitions-auto"` Amazon DocumentDB sebagai sumber.  | 
|  `"number-of-partitions"`  |  (Opsional) Jumlah total partisi (segmen) yang digunakan untuk migrasi. Defaultnya adalah 16.  | 
|  `"collection-count-from-metadata"`  |  (Opsional) Jika diatur ke`true`, AWS DMS menggunakan perkiraan jumlah koleksi untuk menentukan jumlah partisi. Jika disetel ke`false`, AWS DMS gunakan jumlah koleksi yang sebenarnya. Nilai default-nya `true`.  | 
|  `"max-records-skip-per-page"`  |  (Opsional) Jumlah catatan yang harus dilewati sekaligus saat menentukan batas untuk setiap partisi. AWS DMS menggunakan pendekatan skip paginated untuk menentukan batas minimum untuk partisi. Defaultnya adalah 10000. Menyetel nilai yang relatif besar dapat mengakibatkan batas waktu kurser dan kegagalan tugas. Menetapkan nilai yang relatif rendah menghasilkan lebih banyak operasi per halaman dan beban penuh yang lebih lambat.   | 
|  `"batch-size"`  |  (Opsional) Membatasi jumlah dokumen yang dikembalikan dalam satu batch. Setiap batch membutuhkan perjalanan pulang pergi ke server. Jika ukuran batch nol (0), kursor menggunakan ukuran batch maksimum yang ditentukan server. Default-nya adalah 0.  | 

Contoh berikut menunjukkan pemetaan tabel untuk autosegmentasi.

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "admin",
                "table-name": "departments"
            },
            "rule-action": "include",
            "filters": []
        },
        {
            "rule-type": "table-settings",
            "rule-id": "2",
            "rule-name": "2",
            "object-locator": {
                "schema-name": "admin",
                "table-name": "departments"
            },
            "parallel-load": {
                "type": "partitions-auto",
                "number-of-partitions": 5,
                "collection-count-from-metadata": "true",
                "max-records-skip-per-page": 1000000,
                "batch-size": 50000
            }
        }
    ]
}
```

Segmentasi otomatis memiliki batasan berikut. Migrasi untuk setiap segmen mengambil jumlah koleksi dan minimum `_id` untuk koleksi secara terpisah. Kemudian menggunakan lompatan paginasi untuk menghitung batas minimum untuk segmen itu. Oleh karena itu, pastikan bahwa `_id` nilai minimum untuk setiap koleksi tetap konstan sampai semua batas segmen dalam koleksi dihitung. Jika Anda mengubah `_id` nilai minimum untuk koleksi selama perhitungan batas segmennya, ini dapat menyebabkan kehilangan data atau kesalahan baris duplikat.

### Migrasi database Amazon DocumentDB secara paralel menggunakan rentang segmen tertentu
<a name="CHAP_Source.DocumentDB.ParallelLoad.Ranges"></a>

Contoh berikut menunjukkan koleksi Amazon DocumentDB yang memiliki tujuh item, `_id` dan sebagai kunci utama.

![\[Koleksi Amazon DocumentDB dengan tujuh item.\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/images/datarep-docdb-collection.png)


Untuk membagi koleksi menjadi tiga segmen dan bermigrasi secara paralel, Anda dapat menambahkan aturan pemetaan tabel untuk tugas migrasi Anda seperti yang ditunjukkan dalam contoh JSON berikut.

```
{ // Task table mappings:
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "1",
      "object-locator": {
        "schema-name": "testdatabase",
        "table-name": "testtable"
      },
      "rule-action": "include"
    }, // "selection" :"rule-type"
    {
      "rule-type": "table-settings",
      "rule-id": "2",
      "rule-name": "2",
      "object-locator": {
        "schema-name": "testdatabase",
        "table-name": "testtable"
      },
      "parallel-load": {
        "type": "ranges",
        "columns": [
           "_id",
           "num"
        ],
        "boundaries": [
          // First segment selects documents with _id less-than-or-equal-to 5f805c97873173399a278d79
          // and num less-than-or-equal-to 2.
          [
             "5f805c97873173399a278d79",
             "2"
          ],
          // Second segment selects documents with _id > 5f805c97873173399a278d79 and
          // _id less-than-or-equal-to 5f805cc5873173399a278d7c and
          // num > 2 and num less-than-or-equal-to 5.
          [
             "5f805cc5873173399a278d7c",
             "5"
          ]                                   
          // Third segment is implied and selects documents with _id > 5f805cc5873173399a278d7c.
        ] // :"boundaries"
      } // :"parallel-load"
    } // "table-settings" :"rule-type"
  ] // :"rules"
} // :Task table mappings
```

Bahwa definisi pemetaan tabel membagi koleksi sumber menjadi tiga segmen dan bermigrasi secara paralel. Berikut ini adalah batas-batas segmentasi.

```
Data with _id less-than-or-equal-to "5f805c97873173399a278d79" and num less-than-or-equal-to 2 (2 records)
Data with _id less-than-or-equal-to "5f805cc5873173399a278d7c" and num less-than-or-equal-to 5 and not in (_id less-than-or-equal-to  "5f805c97873173399a278d79" and num less-than-or-equal-to 2) (3 records)
Data not in (_id less-than-or-equal-to "5f805cc5873173399a278d7c" and num less-than-or-equal-to 5) (2 records)
```

Setelah tugas migrasi selesai, Anda dapat melakukan verifikasi dari log tugas yang dimuat tabel secara paralel, seperti yang ditunjukkan dalam contoh berikut. Anda juga dapat memverifikasi klausa Amazon `find` DocumentDB yang digunakan untuk membongkar setiap segmen dari tabel sumber.

```
[TASK_MANAGER    ] I:  Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86  (replicationtask_util.c:752)

[SOURCE_UNLOAD   ] I:  Range Segmentation filter for Segment #0 is initialized.   (mongodb_unload.c:157)

[SOURCE_UNLOAD   ] I:  Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } }  (mongodb_unload.c:328)

[SOURCE_UNLOAD   ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent.

[TASK_MANAGER    ] I: Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86 (replicationtask_util.c:752)
 
[SOURCE_UNLOAD   ] I: Range Segmentation filter for Segment #0 is initialized. (mongodb_unload.c:157) 

[SOURCE_UNLOAD   ] I: Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } } (mongodb_unload.c:328)
 
[SOURCE_UNLOAD   ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent.

[TARGET_LOAD     ] I: Load finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 1 rows received. 0 rows skipped. Volume transfered 480.

[TASK_MANAGER    ] I: Load finished for segment #1 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. 2 records transferred.
```

Saat ini, AWS DMS mendukung tipe data Amazon DocumentDB berikut sebagai kolom kunci segmen:
+ Dua Kali
+ String
+ ObjectId
+ 32 bit integer
+ 64 bit integer

## Migrasi beberapa database saat menggunakan Amazon DocumentDB sebagai sumber AWS DMS
<a name="CHAP_Source.DocumentDB.Multidatabase"></a>

AWS DMS versi 3.4.5 dan yang lebih tinggi mendukung migrasi beberapa database dalam satu tugas hanya untuk Amazon DocumentDB versi 4.0 dan yang lebih tinggi. Jika Anda ingin memigrasi beberapa database, lakukan hal berikut:

1. Saat Anda membuat titik akhir sumber Amazon DocumentDB:
   + Dalam Konsol Manajemen AWS for AWS DMS, biarkan **nama Database** kosong di bawah **konfigurasi Endpoint** pada halaman **Create endpoint**.
   + Dalam AWS Command Line Interface (AWS CLI), tetapkan nilai string kosong ke **DatabaseName**parameter di **Dokumen DBSettings** yang Anda tentukan untuk **CreateEndpoint**tindakan.

1. Untuk setiap database yang ingin Anda migrasi dari titik akhir sumber Amazon DocumentDB ini, tentukan nama setiap database sebagai nama skema dalam pemetaan tabel untuk tugas menggunakan input terpandu di konsol atau langsung di JSON. Untuk informasi lebih lanjut tentang input yang dipandu, lihat deskripsi[Menentukan pemilihan tabel dan transformasi aturan dari konsol](CHAP_Tasks.CustomizingTasks.TableMapping.Console.md). Untuk informasi lebih lanjut tentang JSON, lihat[Aturan seleksi dan tindakan](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Selections.md).

Misalnya, Anda dapat menentukan JSON berikut untuk memigrasikan tiga database Amazon DocumentDB.

**Example Memigrasi semua tabel dalam skema**  
JSON berikut memigrasikan semua tabel dari`Customers`,`Orders`, dan `Suppliers` database di sumber Anda enpoint ke titik akhir target Anda.  

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "Customers",
                "table-name": "%"
            },
            "object-locator": {
                "schema-name": "Orders",
                "table-name": "%"
            },
            "object-locator": {
                "schema-name": "Inventory",
                "table-name": "%"
            },
            "rule-action": "include"
        }
    ]
}
```

## Keterbatasan saat menggunakan Amazon DocumentDB sebagai sumber AWS DMS
<a name="CHAP_Source.DocumentDB.Limitations"></a>

Berikut ini adalah batasan saat menggunakan Amazon DocumentDB sebagai sumber untuk: AWS DMS
+ Saat opsi `_id` diatur sebagai kolom terpisah, string ID tidak dapat melebihi 200 karakter.
+ ID objek dan kunci jenis rangkaian dikonversi ke kolom yang diawali dengan `oid` dan `array` dalam mode tabel.

  Secara internal, kolom ini direferensikan dengan nama prefiks. Jika Anda menggunakan aturan transformasi dalam AWS DMS referensi kolom ini, pastikan untuk menentukan kolom awalan. Sebagai contoh, tentukan `${oid__id}` dan bukan `${_id}`, atau `${array__addresses}` dan bukan `${_addresses}`. 
+  Nama koleksi dan nama kunci tidak dapat menyertakan simbol dolar (\$1). 
+ Mode tabel dan mode dokumen memiliki keterbatasan seperti yang dibahas sebelumnya.
+ Migrasi secara paralel menggunakan autosegmentasi memiliki keterbatasan yang dijelaskan sebelumnya.
+ Sumber Amazon DocumentDB (kompatibel dengan MongoDB) tidak mendukung penggunaan stempel waktu tertentu sebagai posisi awal untuk pengambilan data perubahan (CDC). Tugas replikasi yang sedang berlangsung mulai menangkap perubahan terlepas dari timestamp.
+ AWS DMS tidak mendukung dokumen yang tingkat sarangnya lebih besar dari 97 untuk AWS DMS versi yang lebih rendah dari 3.5.2.
+ Filter sumber tidak didukung untuk DocumentDB.
+ AWS DMS tidak mendukung replikasi CDC (ubah pengambilan data) untuk DocumentDB sebagai sumber dalam mode cluster elastis.

## Menggunakan pengaturan titik akhir dengan Amazon DocumentDB sebagai sumber
<a name="CHAP_Source.DocumentDB.ECAs"></a>

Anda dapat menggunakan pengaturan titik akhir untuk mengonfigurasi basis data sumber Amazon DocumentDB mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat Anda membuat titik akhir sumber menggunakan AWS DMS konsol, atau dengan menggunakan `create-endpoint` perintah di [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), dengan sintaks `--doc-db-settings '{"EndpointSetting": "value", ...}'` JSON.

Tabel berikut menunjukkan pengaturan titik akhir yang dapat Anda gunakan dengan Amazon DocumentDB sebagai sumber.


| Nama atribut | Nilai valid | Nilai default dan deskripsi | 
| --- | --- | --- | 
|   `NestingLevel`   |  `"none"` `"one"`  |  `"none"` — Tentukan `"none"` untuk menggunakan mode dokumen. Tentukan `"one"` untuk menggunakan mode tabel.  | 
|   `ExtractDocID`   |  `true` `false`  |  `false` — Gunakan atribut ini ketika `NestingLevel` diatur menjadi `"none"`.  Saat menggunakan CDC dengan sumber yang menghasilkan [transaksi multi-dokumen](https://www.mongodb.com/docs/manual/reference/method/Session.startTransaction/#mongodb-method-Session.startTransaction), `ExtractDocId` parameter **harus** diatur ke. `true` Jika parameter ini tidak diaktifkan, AWS DMS tugas akan gagal ketika menemukan transaksi multi-dokumen.  | 
|   `DocsToInvestigate`   |  Sebuah integer positif lebih besar dari `0`.  |  `1000` — Gunakan atribut ini ketika `NestingLevel` diatur menjadi `"one"`.   | 
|   `ReplicateShardCollections `   |  `true` `false`  |  Jika benar, AWS DMS mereplikasi data ke koleksi pecahan. AWS DMS hanya menggunakan pengaturan ini jika titik akhir target adalah cluster elastis DocumentDB. Jika pengaturan ini benar, perhatikan hal berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.DocumentDB.html)  | 

## Tipe data sumber untuk Amazon DocumentDB
<a name="CHAP_Source.DocumentDB.DataTypes"></a>

Dalam tabel berikut, Anda dapat menemukan tipe data sumber Amazon DocumentDB yang didukung saat menggunakan. AWS DMS Anda juga dapat menemukan pemetaan default dari tipe AWS DMS data dalam tabel ini. Untuk informasi lebih lanjut tentang jenis data, lihat [Jenis BSON](https://docs.mongodb.com/manual/reference/bson-types) dalam dokumentasi MongoDB.

Untuk informasi tentang cara melihat jenis data yang dipetakan dalam target, lihat bagian titik akhir target yang Anda gunakan.

Untuk informasi tambahan tentang tipe AWS DMS data, lihat[Tipe data untuk AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  Tipe data Amazon DocumentDB  |  AWS DMS tipe data  | 
| --- | --- | 
| Boolean | Bool | 
| Binary | BLOB | 
| Date | Date | 
| Timestamp | Date | 
| Int | INT4 | 
| Panjang | INT8 | 
| Ganda | REAL8 | 
| String (UTF-8) | CLOB | 
| Array | CLOB | 
| OID | String | 

# Menggunakan Amazon S3 sebagai sumber AWS DMS
<a name="CHAP_Source.S3"></a>

Anda dapat memigrasikan data dari bucket Amazon S3 menggunakan. AWS DMS Untuk melakukan ini, berikan akses ke Amazon S3 bucket yang berisi file data satu atau lebih. Dalam bucket S3, termasuk file JSON yang menggambarkan pemetaan antara data dan tabel basis data data dalam file-file tersebut.

File data sumber harus ada dalam Amazon S3 bucket sebelum beban penuh dimulai. Anda menentukan nama bucket menggunakan parameter `bucketName`. 

File data sumber dapat dalam format berikut:
+ Nilai yang dipisahkan koma (.csv)
+ Parket (DMS versi 3.5.3 dan yang lebih baru). Untuk informasi tentang menggunakan file format Parket, lihat. [Menggunakan file format Parket di Amazon S3 sebagai sumber AWS DMS](#CHAP_Source.S3.Parquet)

Untuk file data sumber dalam format nilai dipisahkan koma (.csv), beri nama menggunakan konvensi penamaan berikut. Dalam konvensi ini, *`schemaName`* adalah skema sumber dan *`tableName`*adalah nama tabel dalam skema itu.

```
/schemaName/tableName/LOAD001.csv
/schemaName/tableName/LOAD002.csv
/schemaName/tableName/LOAD003.csv
...
```

 Misalnya, anggaplah file data Anda berada di `amzn-s3-demo-bucket`, di jalur Amazon S3 berikut.

```
s3://amzn-s3-demo-bucket/hr/employee
```

Pada waktu muat, AWS DMS mengasumsikan bahwa nama skema sumber adalah`hr`, dan bahwa nama tabel sumber adalah. `employee`

Selain `bucketName` (yang diperlukan), Anda dapat memberikan `bucketFolder` parameter opsional untuk menentukan di mana AWS DMS harus mencari file data di bucket Amazon S3. Melanjutkan contoh sebelumnya, jika Anda mengatur `bucketFolder` ke`sourcedata`, kemudian AWS DMS membaca file data di jalur berikut.

```
s3://amzn-s3-demo-bucket/sourcedata/hr/employee
```

Anda dapat menentukan pembatas kolom, baris pembatas, indikator nilai null, dan parameter lainnya menggunakan atribut sambungan tambahan. Untuk informasi selengkapnya, lihat [Pengaturan titik akhir untuk Amazon S3 sebagai sumber AWS DMS](#CHAP_Source.S3.Configuring).

Anda dapat menentukan pemilik bucket dan mencegah sniping dengan menggunakan setelan endpoint `ExpectedBucketOwner` Amazon S3, seperti yang ditunjukkan berikut ini. Kemudian, saat Anda membuat permintaan untuk menguji koneksi atau melakukan migrasi, S3 memeriksa ID akun pemilik bucket terhadap parameter yang ditentukan.

```
--s3-settings='{"ExpectedBucketOwner": "AWS_Account_ID"}'
```

**Topics**
+ [Mendefinisikan tabel eksternal untuk Amazon S3 sebagai sumber AWS DMS](#CHAP_Source.S3.ExternalTableDef)
+ [Menggunakan CDC dengan Amazon S3 sebagai sumber AWS DMS](#CHAP_Source.S3.CDC)
+ [Prasyarat saat menggunakan Amazon S3 sebagai sumber AWS DMS](#CHAP_Source.S3.Prerequisites)
+ [Keterbatasan saat menggunakan Amazon S3 sebagai sumber AWS DMS](#CHAP_Source.S3.Limitations)
+ [Pengaturan titik akhir untuk Amazon S3 sebagai sumber AWS DMS](#CHAP_Source.S3.Configuring)
+ [Jenis data sumber untuk Amazon S3](#CHAP_Source.S3.DataTypes)
+ [Menggunakan file format Parket di Amazon S3 sebagai sumber AWS DMS](#CHAP_Source.S3.Parquet)

## Mendefinisikan tabel eksternal untuk Amazon S3 sebagai sumber AWS DMS
<a name="CHAP_Source.S3.ExternalTableDef"></a>

Selain file data, Anda juga harus memberikan definisi tabel eksternal. *Definisi tabel eksternal* adalah dokumen JSON yang menjelaskan bagaimana AWS DMS seharusnya menafsirkan data dari Amazon S3. Ukuran maksimum dokumen ini adalah 2 MB. Jika Anda membuat titik akhir sumber menggunakan AWS DMS Management Console, Anda dapat memasukkan JSON langsung ke kotak pemetaan tabel. Jika Anda menggunakan AWS Command Line Interface (AWS CLI) atau AWS DMS API untuk melakukan migrasi, Anda dapat membuat file JSON untuk menentukan definisi tabel eksternal.

Misalkan Anda memiliki file data yang mencakup hal berikut.

```
101,Smith,Bob,2014-06-04,New York
102,Smith,Bob,2015-10-08,Los Angeles
103,Smith,Bob,2017-03-13,Dallas
104,Smith,Bob,2017-03-13,Dallas
```

Berikut ini adalah contoh definisi tabel eksternal untuk data ini.

```
{
    "TableCount": "1",
    "Tables": [
        {
            "TableName": "employee",
            "TablePath": "hr/employee/",
            "TableOwner": "hr",
            "TableColumns": [
                {
                    "ColumnName": "Id",
                    "ColumnType": "INT8",
                    "ColumnNullable": "false",
                    "ColumnIsPk": "true"
                },
                {
                    "ColumnName": "LastName",
                    "ColumnType": "STRING",
                    "ColumnLength": "20"
                },
                {
                    "ColumnName": "FirstName",
                    "ColumnType": "STRING",
                    "ColumnLength": "30"
                },
                {
                    "ColumnName": "HireDate",
                    "ColumnType": "DATETIME"
                },
                {
                    "ColumnName": "OfficeLocation",
                    "ColumnType": "STRING",
                    "ColumnLength": "20"
                }
            ],
            "TableColumnsTotal": "5"
        }
    ]
}
```

Unsur-unsur dalam dokumen JSON ini adalah sebagai berikut:

`TableCount` — jumlah tabel sumber. Dalam contoh ini, hanya ada satu tabel.

`Tables` — susunan yang terdiri dari satu peta JSON per tabel sumber. Dalam contoh ini, hanya ada satu peta. Setiap peta terdiri atas elemen-elemen berikut:
+ `TableName` — nama tabel sumber.
+ `TablePath` — jalur di Amazon S3 bucket Anda di mana AWS DMS dapat menemukan file beban data lengkap. Jika `bucketFolder` nilai ditentukan, nilainya ditambahkan ke jalur.
+ `TableOwner` — nama skema untuk tabel ini.
+ `TableColumns` — susunan dari satu peta atau lebih, masing-masing menggambarkan kolom dalam tabel sumber:
  + `ColumnName` — nama kolom dalam tabel sumber.
  + `ColumnType` — jenis data untuk kolom. Untuk jenis data yang valid, lihat [Jenis data sumber untuk Amazon S3](#CHAP_Source.S3.DataTypes).
  + `ColumnLength` — jumlah byte dalam kolom ini. Panjang kolom maksimum dibatasi untuk2147483647 Bytes (2.047 MegaBytes) karena sumber S3 tidak mendukung mode LOB PENUH. `ColumnLength`berlaku untuk tipe data berikut:
    + BYTE
    + STRING
  + `ColumnNullable` — nilai Boolean yang `true` jika kolom ini dapat berisi nilai-nilai NULL (default=`false`).
  + `ColumnIsPk` — nilai Boolean yang `true` jika kolom ini adalah bagian dari kunci primer (default=`false`).
  + `ColumnDateFormat`— format tanggal input untuk kolom dengan tipe DATE, TIME, dan DATETIME, dan digunakan untuk mengurai string data menjadi objek tanggal. Nilai yang mungkin termasuk:

    ```
    - YYYY-MM-dd HH:mm:ss
    - YYYY-MM-dd HH:mm:ss.F
    - YYYY/MM/dd HH:mm:ss
    - YYYY/MM/dd HH:mm:ss.F
    - MM/dd/YYYY HH:mm:ss
    - MM/dd/YYYY HH:mm:ss.F
    - YYYYMMdd HH:mm:ss
    - YYYYMMdd HH:mm:ss.F
    ```
+ `TableColumnsTotal` — jumlah total kolom. Nomor ini harus sesuai dengan jumlah elemen dalam susunan `TableColumns`.

Jika Anda tidak menentukan sebaliknya, AWS DMS asumsikan `ColumnLength` itu nol.

**catatan**  
Dalam versi yang didukung AWS DMS, data sumber S3 juga dapat berisi kolom operasi opsional sebagai kolom pertama sebelum nilai `TableName` kolom. Kolom operasi ini mengidentifikasi operasi (`INSERT`) yang digunakan untuk memigrasikan data ke titik akhir target S3 selama beban penuh.   
Jika ada, nilai kolom ini adalah karakter awal dari operasi kata kunci `INSERT` (`I`). Jika ditentukan, kolom ini umumnya menunjukkan bahwa sumber S3 dibuat oleh DMS sebagai target S3 selama migrasi sebelumnya.   
Dalam versi DMS sebelum 3.4.2, kolom ini tidak ada dalam data sumber S3 yang dibuat dari beban penuh DMS sebelumnya. Menambahkan kolom ini ke data target S3 memungkinkan format semua baris ditulis ke target S3 agar konsisten apakah mereka ditulis selama beban penuh atau selama beban CDC. Untuk informasi lebih lanjut tentang pilihan format S3 target data, lihat [Menunjukkan operasi sumber DB dalam data S3 bermigrasi](CHAP_Target.S3.md#CHAP_Target.S3.Configuring.InsertOps).

Untuk kolom dari jenis NUMERIC, tentukan presisi dan skala. *Presisi* adalah jumlah digit dalam angka, dan *skala* adalah jumlah digit di sebelah kanan titik desimal. Anda menggunakan unsur-unsur `ColumnPrecision` dan `ColumnScale` untuk ini, seperti yang ditunjukkan berikut.

```
...
    {
        "ColumnName": "HourlyRate",
        "ColumnType": "NUMERIC",
        "ColumnPrecision": "5"
        "ColumnScale": "2"
    }
...
```

Untuk kolom tipe DATETIME dengan data yang berisi detik pecahan, tentukan skala. *Skala* adalah jumlah digit untuk detik pecahan, dan dapat berkisar dari 0 hingga 9. Anda menggunakan `ColumnScale` elemen untuk ini, seperti yang ditunjukkan berikut.

```
...
{
      "ColumnName": "HireDate",
      "ColumnType": "DATETIME",
      "ColumnScale": "3"
}
...
```

Jika Anda tidak menentukan sebaliknya, AWS DMS asumsi `ColumnScale` adalah nol dan memotong detik pecahan.

## Menggunakan CDC dengan Amazon S3 sebagai sumber AWS DMS
<a name="CHAP_Source.S3.CDC"></a>

Setelah AWS DMS melakukan pemuatan data penuh, secara opsional dapat mereplikasi perubahan data ke titik akhir target. Untuk melakukan ini, Anda meng-upload file change data capture (file CDC) ke bucket Amazon S3 Anda. AWS DMS membaca file CDC ini saat Anda mengunggahnya, dan kemudian menerapkan perubahan pada titik akhir target. 

File CDC dinamakan sebagai berikut:

```
CDC00001.csv
CDC00002.csv
CDC00003.csv
...
```

**catatan**  
Untuk mereplikasi file CDC di folder data perubahan unggahlah file-file ini secara berhasil dalam urutan leksikal (sekuensial). Misalnya, unggah CDC00002 file.csv sebelum berkas.csv. CDC00003 Jika tidak, CDC00002 .csv dilewati dan tidak direplikasi jika Anda memuatnya setelah .csv. CDC00003 Tetapi CDC00004 file.csv berhasil direplikasi jika dimuat setelah.csv. CDC00003

Untuk menunjukkan di mana AWS DMS dapat menemukan file, tentukan `cdcPath` parameter. Melanjutkan contoh sebelumnya, jika Anda mengatur `cdcPath` menjadi `changedata`, maka AWS DMS membaca file CDC di jalur berikut.

```
s3://amzn-s3-demo-bucket/changedata
```

Jika Anda mengatur `cdcPath` ke `changedata` dan `bucketFolder` ke`myFolder`, maka AWS DMS membaca file CDC di jalur berikut.

```
s3://amzn-s3-demo-bucket/myFolder/changedata
```

Catatan dalam file CDC diformat sebagai berikut:
+ Operasi – perubahan yang akan dilakukan:`INSERT` atau `I`, `UPDATE` atau `U`, atau `DELETE` atau `D`. Nilai-nilai kata kunci dan karakter ini bersifat tidak peka huruf kapital.
**catatan**  
Dalam AWS DMS versi yang didukung, AWS DMS dapat mengidentifikasi operasi untuk melakukan untuk setiap catatan beban dalam dua cara. AWS DMS dapat melakukan ini dari nilai kata kunci catatan (misalnya,`INSERT`) atau dari karakter awal kata kunci (misalnya,`I`). Dalam versi sebelumnya, AWS DMS mengenali operasi beban hanya dari nilai kata kunci penuh.   
Dalam versi sebelumnya AWS DMS, nilai kata kunci lengkap ditulis untuk mencatat data CDC. Selain itu, versi sebelumnya menulis nilai operasi untuk setiap target S3 hanya menggunakan kata kunci awal.   
Mengenali kedua format memungkinkan AWS DMS untuk menangani operasi terlepas dari bagaimana kolom operasi ditulis untuk membuat data sumber S3. Pendekatan ini mendukung penggunaan data target S3 sebagai sumber untuk migrasi berikutnya. Dengan pendekatan ini, Anda tidak perlu mengubah format nilai awal kata kunci yang muncul di kolom operasi sumber S3 berikutnya.
+ Tabel nama - nama tabel sumber.
+ Skema nama - nama skema sumber.
+ Data - kolom satu atau lebih yang mewakili data yang akan diubah.

Berikut ini adalah contoh file CDC untuk tabel bernama `employee`.

```
INSERT,employee,hr,101,Smith,Bob,2014-06-04,New York
UPDATE,employee,hr,101,Smith,Bob,2015-10-08,Los Angeles
UPDATE,employee,hr,101,Smith,Bob,2017-03-13,Dallas
DELETE,employee,hr,101,Smith,Bob,2017-03-13,Dallas
```

## Prasyarat saat menggunakan Amazon S3 sebagai sumber AWS DMS
<a name="CHAP_Source.S3.Prerequisites"></a>

Untuk menggunakan Amazon S3 sebagai sumber AWS DMS, bucket S3 sumber Anda harus berada di AWS Wilayah yang sama dengan instance replikasi DMS yang memigrasikan data Anda. Selain itu, akun AWS yang Anda gunakan untuk migrasi harus memiliki akses baca ke bucket sumber. Untuk AWS DMS versi 3.4.7 dan yang lebih tinggi, DMS harus mengakses bucket sumber melalui titik akhir VPC atau rute umum. Untuk informasi tentang titik akhir VPC, lihat. [Mengkonfigurasi titik akhir VPC untuk AWS DMS](CHAP_VPC_Endpoints.md)

Peran AWS Identity and Access Management (IAM) yang ditetapkan ke akun pengguna yang digunakan untuk membuat tugas migrasi harus memiliki kumpulan izin berikut.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
       {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket*/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket*"
            ]
        }
    ]
}
```

------

Peran AWS Identity and Access Management (IAM) yang ditetapkan ke akun pengguna yang digunakan untuk membuat tugas migrasi harus memiliki kumpulan izin berikut jika pembuatan versi diaktifkan di bucket Amazon S3.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
       {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket*/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket*"
            ]
        }
    ]
}
```

------

## Keterbatasan saat menggunakan Amazon S3 sebagai sumber AWS DMS
<a name="CHAP_Source.S3.Limitations"></a>

Batasan berikut berlaku saat menggunakan Amazon S3 sebagai sumber:
+ Jangan aktifkan pembuatan versi untuk S3. Jika Anda memerlukan versi S3, gunakan kebijakan siklus hidup untuk menghapus versi lama secara aktif. Jika tidak, Anda mungkin mengalami kegagalan koneksi pengujian titik akhir karena batas waktu `list-object` panggilan S3. Untuk membuat kebijakan siklus hidup bucket S3, lihat [Mengelola siklus hidup](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) penyimpanan. Untuk menghapus versi objek S3, lihat [Menghapus versi objek dari bucket berkemampuan versi](https://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingObjectVersions.html).
+ Bucket S3 berkemampuan VPC (gateway VPC) didukung dalam versi 3.4.7 dan yang lebih tinggi.
+ MySQL mengkonversi `time` datatype ke. `string` **Untuk melihat nilai tipe `time` data di MySQL, tentukan kolom dalam tabel target `string` sebagai, dan atur pengaturan mode **persiapan tabel Target** tugas ke Truncate.**
+ AWS DMS menggunakan tipe `BYTE` data secara internal untuk data baik `BYTE` dan tipe `BYTES` data.
+ Titik akhir sumber S3 tidak mendukung fitur muat ulang tabel DMS.
+ AWS DMS tidak mendukung mode LOB Penuh dengan Amazon S3 sebagai Sumber.

Batasan berikut berlaku saat menggunakan file format Parket di Amazon S3 sebagai sumber:
+ Tanggal masuk`MMYYYYDD`, atau tidak `DDMMYYYY` didukung untuk fitur partisi tanggal Sumber Parket S3.

## Pengaturan titik akhir untuk Amazon S3 sebagai sumber AWS DMS
<a name="CHAP_Source.S3.Configuring"></a>

Anda dapat menggunakan pengaturan titik akhir untuk mengonfigurasi basis data sumber Amazon S3 mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat Anda membuat titik akhir sumber menggunakan AWS DMS konsol, atau dengan menggunakan `create-endpoint` perintah di [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), dengan sintaks `--s3-settings '{"EndpointSetting": "value", ...}'` JSON.

**catatan**  
AWS DMS default ke koneksi aman ke titik akhir Amazon S3 tanpa perlu menentukan mode atau sertifikat SSL.

Tabel berikut menunjukkan pengaturan titik akhir yang dapat Anda gunakan dengan Amazon S3 sebagai sumber.


| **Opsi** | **Deskripsi** | 
| --- | --- | 
| BucketFolder |  (Opsional) Nama folder dalam bucket S3. Jika atribut ini disediakan, file data sumber dan file CDC dibaca dari jalur `s3://amzn-s3-demo-bucket/bucketFolder/schemaName/tableName/` dan `s3://amzn-s3-demo-bucket/bucketFolder/` masing-masing. Jika atribut ini tidak ditentukan, maka jalur yang digunakan adalah `schemaName/tableName/`.  `'{"BucketFolder": "sourceData"}'`  | 
| BucketName |  Nama bucket S3. `'{"BucketName": "amzn-s3-demo-bucket"}'`  | 
| CdcPath | Lokasi file CDC. Atribut ini diperlukan jika tugas menangkap perubahan data; jika tidak, itu opsional. Jika CdcPath ada, maka AWS DMS membaca file CDC dari jalur ini dan mereplikasi perubahan data ke titik akhir target. Untuk informasi selengkapnya, lihat [Menggunakan CDC dengan Amazon S3 sebagai sumber AWS DMS](#CHAP_Source.S3.CDC). `'{"CdcPath": "changeData"}'`  | 
| CsvDelimiter |  Pembatas digunakan untuk memisahkan kolom dalam file sumber. Default adalah koma. Berikut contohnya. `'{"CsvDelimiter": ","}'`  | 
| CsvNullValue |  String yang ditentukan pengguna yang AWS DMS diperlakukan sebagai null saat membaca dari sumbernya. Default-nya adalah string kosong. Jika Anda tidak mengatur parameter ini, AWS DMS memperlakukan string kosong sebagai nilai null. Jika Anda mengatur parameter ini ke string seperti “\$1 N”, AWS DMS memperlakukan string ini sebagai nilai null, dan memperlakukan string kosong sebagai nilai string kosong.  | 
| CsvRowDelimiter |  Pembatas digunakan untuk memisahkan baris dalam file sumber. Default adalah newline (`\n`). `'{"CsvRowDelimiter": "\n"}'`  | 
| DataFormat |  Tetapkan nilai ini `Parquet` untuk membaca data dalam format Parket. `'{"DataFormat": "Parquet"}'`  | 
| IgnoreHeaderRows |  Ketika nilai ini diatur ke 1, AWS DMS mengabaikan header baris pertama dalam file.csv. Nilai 1 memungkinkan fitur tersebut, nilai 0 menonaktifkannya. Default adalah 0. `'{"IgnoreHeaderRows": 1}'`  | 
| Rfc4180 |  Ketika nilai ini diatur ke `true` atau`y`, setiap tanda kutip ganda utama harus diikuti oleh tanda kutip ganda akhir. Format ini sesuai dengan RFC 4180. Ketika nilai ini disetel ke `false` or`n`, string literal disalin ke target apa adanya. Dalam kasus ini, pembatas (baris atau kolom) menandakan akhir bidang. Dengan demikian, Anda tidak dapat menggunakan pembatas sebagai bagian dari string, karena pembatas menandakan akhir nilai. Nilai default-nya `true`. Nilai yang valid: `true`, `false`, `y`, `n` `'{"Rfc4180": false}'`  | 

## Jenis data sumber untuk Amazon S3
<a name="CHAP_Source.S3.DataTypes"></a>

Migrasi data yang menggunakan Amazon S3 sebagai sumber AWS DMS kebutuhan untuk memetakan data dari Amazon S3 AWS DMS ke tipe data. Untuk informasi selengkapnya, lihat [Mendefinisikan tabel eksternal untuk Amazon S3 sebagai sumber AWS DMS](#CHAP_Source.S3.ExternalTableDef).

Untuk informasi tentang cara melihat jenis data yang dipetakan dalam target, lihat bagian titik akhir target yang Anda gunakan.

Untuk informasi tambahan tentang tipe AWS DMS data, lihat[Tipe data untuk AWS Database Migration Service](CHAP_Reference.DataTypes.md).

Tipe AWS DMS data berikut digunakan dengan Amazon S3 sebagai sumber:
+ BYTE - Membutuhkan `ColumnLength`. Untuk informasi selengkapnya, lihat [Mendefinisikan tabel eksternal untuk Amazon S3 sebagai sumber AWS DMS](#CHAP_Source.S3.ExternalTableDef).
+ DATE
+ TIME
+ DATETIME - Untuk informasi selengkapnya dan contoh, lihat contoh tipe DATETIME di. [Mendefinisikan tabel eksternal untuk Amazon S3 sebagai sumber AWS DMS](#CHAP_Source.S3.ExternalTableDef)
+ INT1
+ INT2
+ INT4
+ INT8
+ NUMERIK — Membutuhkan `ColumnPrecision` dan`ColumnScale`. AWS DMS mendukung nilai maksimum berikut:
  + **ColumnPrecision: 38**
  + **ColumnScale: 31**

  Untuk informasi selengkapnya dan contoh, lihat contoh tipe NUMERIK di[Mendefinisikan tabel eksternal untuk Amazon S3 sebagai sumber AWS DMS](#CHAP_Source.S3.ExternalTableDef).
+ REAL4
+ REAL8
+ STRING - Membutuhkan `ColumnLength`. Untuk informasi selengkapnya, lihat [Mendefinisikan tabel eksternal untuk Amazon S3 sebagai sumber AWS DMS](#CHAP_Source.S3.ExternalTableDef).
+ UINT1
+ UINT2
+ UINT4
+ UINT8
+ BLOB
+ CLOB
+ BOOLEAN

## Menggunakan file format Parket di Amazon S3 sebagai sumber AWS DMS
<a name="CHAP_Source.S3.Parquet"></a>

Di AWS DMS versi 3.5.3 dan yang lebih baru, Anda dapat menggunakan file format Parquet di bucket S3 sebagai sumber untuk replikasi Full-Load atau CDC. 

DMS hanya mendukung file format Parket sebagai sumber yang dihasilkan DMS dengan memigrasikan data ke titik akhir target S3. Nama file harus dalam format yang didukung, atau DMS tidak akan menyertakannya dalam migrasi.

Untuk file data sumber dalam format Parket, mereka harus dalam folder dan konvensi penamaan berikut.

```
schema/table1/LOAD00001.parquet
schema/table2/LOAD00002.parquet
schema/table2/LOAD00003.parquet
```

Untuk file data sumber untuk data CDC dalam format Parket, beri nama dan simpan menggunakan folder dan konvensi penamaan berikut.

```
schema/table/20230405-094615814.parquet
schema/table/20230405-094615853.parquet
schema/table/20230405-094615922.parquet
```

Untuk mengakses file dalam format Parket, atur pengaturan titik akhir berikut:
+ Atur `DataFormat` ke `Parquet`. 
+ Jangan mengatur `cdcPath` pengaturan. Pastikan Anda membuat file format Parket di folder skema/tabel yang ditentukan. 

*Untuk informasi selengkapnya tentang setelan untuk titik akhir S3, lihat [S3Settings](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html) di Referensi API.AWS Database Migration Service *

### Jenis data yang didukung untuk file format Parket
<a name="CHAP_Source.S3.Parquet.Datatypes"></a>

AWS DMS mendukung tipe data sumber dan target berikut saat memigrasi data dari file format Parket. Pastikan tabel target Anda memiliki kolom tipe data yang benar sebelum bermigrasi.


| Jenis data sumber | Jenis data target | 
| --- | --- | 
| BYTE | BINARY | 
| DATE | DATE32 | 
| TIME | TIME32 | 
| DATETIME | TIMESTAMP | 
| INT1 | INT8 | 
| INT2 | INT16 | 
| INT4 | INT32 | 
| INT8 | INT64 | 
| NUMERIC | DECIMAL | 
| REAL4 | FLOAT | 
| REAL8 | DOUBLE | 
| STRING | STRING | 
| UINT1 | UINT8 | 
| UINT2 | UINT16 | 
| UINT4 | UINT32 | 
| UINT8 | UINT | 
| WSTRING | STRING | 
| BLOB | BINARY | 
| NCLOB | STRING | 
| CLOB | STRING | 
| BOOLEAN | BOOL | 

# Menggunakan IBM Db2 untuk Linux, Unix, Windows, dan database Amazon RDS (Db2 LUW) sebagai sumber untuk AWS DMS
<a name="CHAP_Source.DB2"></a>

Anda dapat memigrasikan data dari database IBM Db2 untuk Linux, Unix, Windows, dan Amazon RDS (Db2 LUW) ke basis data target yang didukung menggunakan (). AWS Database Migration Service AWS DMS

Untuk informasi tentang versi Db2 di Linux, Unix, Windows, dan RDS yang AWS DMS mendukung sebagai sumber, lihat. [Sumber untuk AWS DMS](CHAP_Introduction.Sources.md) 

Anda dapat menggunakan Lapisan Soket Aman (SSL) untuk mengenkripsi sambungan antara titik akhir Db2 LUW dan instans replikasi. Untuk informasi lebih lanjut tentang menggunakan SSL dengan titik akhir Db2 LUW, lihat [Menggunakan SSL dengan AWS Database Migration Service](CHAP_Security.SSL.md).

Ketika AWS DMS membaca data dari database sumber IBM Db2, ia menggunakan tingkat isolasi default CURSOR STABILITY (CS) untuk Db2 versi 9.7 dan di atasnya. Untuk informasi selengkapnya, lihat [dokumentasi IBM Db2 untuk Linux, UNIX](https://www.ibm.com/docs/en/db2/12.1.0) dan Windows.

## Prasyarat saat menggunakan Db2 LUW sebagai sumber untuk AWS DMS
<a name="CHAP_Source.DB2.Prerequisites"></a>

Prasyarat berikut diperlukan sebelum Anda dapat menggunakan basis data Db2 LUW sebagai sumber.

Untuk mengaktifkan replikasi yang sedang berlangsung, juga disebut sebagai change data capture (CDC), lakukan hal berikut:
+ Atur database agar dapat dipulihkan, yang AWS DMS membutuhkan untuk menangkap perubahan. Database dapat dipulihkan jika salah satu atau kedua parameter konfigurasi database `LOGARCHMETH1` dan `LOGARCHMETH2` diatur ke. `ON`

  Jika database Anda dapat dipulihkan, maka AWS DMS dapat mengakses `ARCHIVE LOG` Db2 jika diperlukan.
+ Pastikan bahwa log DB2 transaksi tersedia, dengan periode retensi yang cukup untuk diproses oleh AWS DMS. 
+ DB2 memerlukan `SYSADM` atau `DBADM` otorisasi untuk mengekstrak catatan log transaksi. Berikan akun pengguna izin-izin berikut:
  + `SYSADM` atau `DBADM`
  + `DATAACCESS`
**catatan**  
Untuk tugas yang hanya memuat penuh, akun pengguna DMS memerlukan izin DATAACCESS.
+ Saat menggunakan IBM DB2 untuk LUW versi 9.7 sebagai sumber, atur atribut koneksi tambahan (ECA), sebagai berikut: `CurrentLsn`

  `CurrentLsn=LSN` di mana `LSN` menentukan log sequence number (LSN) di tempat Anda inginkan replikasi dimulai. Atau, `CurrentLsn=scan`.
+ Saat menggunakan Amazon RDS untuk Db2 LUW sebagai sumber, pastikan bahwa log arsip tersedia untuk. AWS DMS Karena database Db2 yang AWS dikelola membersihkan log arsip sesegera mungkin, Anda harus menambah lamanya waktu log tetap tersedia. Misalnya, untuk meningkatkan retensi log menjadi 24 jam, jalankan perintah berikut:

  ```
  db2 "call rdsadmin.set_archive_log_retention( ?, 'TESTDB', '24')"
  ```

  *Untuk informasi selengkapnya tentang prosedur Amazon RDS untuk Db2 LUW, lihat referensi prosedur [tersimpan Amazon RDS untuk Db2 di Panduan Pengguna Layanan Amazon Relational Database Service](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-stored-procedures.html).*
+ Berikan hak istimewa berikut jika Anda menggunakan penilaian premi DB2 tertentu:

  ```
  GRANT CONNECT ON DATABASE TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBM.SYSDUMMY1 TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.ENV_INST_INFO TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.DBCFG TO USER <DMS_USER>;
  GRANT SELECT ON SYSCAT.SCHEMATA TO USER <DMS_USER>;
  GRANT SELECT ON SYSCAT.COLUMNS TO USER <DMS_USER>;
  GRANT SELECT ON SYSCAT.TABLES TO USER <DMS_USER>;
  GRANT EXECUTE ON FUNCTION SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID TO <DMS_USER>;
  GRANT EXECUTE ON PACKAGE NULLID.SYSSH200 TO USER <DMS_USER>;
  ```

## Keterbatasan saat menggunakan Db2 LUW sebagai sumber untuk AWS DMS
<a name="CHAP_Source.DB2.Limitations"></a>

AWS DMS tidak mendukung database berkerumun. Namun, Anda dapat menentukan Db2 LUW terpisah untuk setiap titik akhir klaster. Misalnya, Anda dapat membuat tugas migrasi Full Load dengan salah satu node di cluster, lalu membuat tugas terpisah dari setiap node.

AWS DMS tidak mendukung tipe `BOOLEAN` data dalam database Db2 LUW sumber Anda.

Saat menggunakan replikasi yang sedang berlangsung (CDC), keterbatasan berikut berlaku:
+ Ketika tabel dengan beberapa partisi terpotong, jumlah peristiwa DDL yang ditampilkan di AWS DMS konsol sama dengan jumlah partisi. Hal ini karena Db2 LUW mencatat DDL terpisah untuk setiap partisi.
+ Tindakan DDL berikut ini tidak didukung pada tabel yang dipartisi:
  + ALTER TABLE ADD PARTITION
  + ALTER TABLE DETACH PARTITION
  + ALTER TABLE ATTACH PARTITION
+ AWS DMS tidak mendukung migrasi replikasi yang sedang berlangsung dari instance siaga pemulihan bencana ketersediaan DB2 tinggi (HADR). Keadaan siaga tidak dapat diakses.
+ Jenis data DECFLOAT tidak didukung. Akibatnya, perubahan pada kolom DECFLOAT diabaikan selama replikasi sedang berlangsung.
+ Pernyataan RENAME COLUMN tidak didukung.
+ Saat melakukan pembaruan pada tabel Multi-Dimensional Clustering (MDC), setiap pembaruan ditampilkan di AWS DMS konsol sebagai INSERT \$1 DELETE.
+ Ketika pengaturan tugas **Sertakan kolom LOB dalam replikasi** tidak diaktifkan, setiap tabel yang memiliki kolom LOB ditangguhkan selama replikasi sedang berlangsung.
+ Untuk Db2 LUW versi 10.5 dan yang lebih tinggi, kolom string panjang variabel dengan data yang disimpan diabaikan. out-of-row Batasan ini hanya berlaku untuk tabel yang dibuat dengan ukuran baris yang diperluas untuk kolom dengan tipe data seperti VARCHAR dan VARGRAPHIC. Untuk mengatasi batasan ini, pindahkan tabel ke ruang tabel dengan ukuran halaman yang lebih tinggi. Untuk informasi selengkapnya, lihat [Apa yang dapat saya lakukan jika saya ingin mengubah ukuran halaman ruang DB2 tabel]( https://www.ibm.com/support/pages/what-can-i-do-if-i-want-change-pagesize-db2-tablespaces ).
+ Untuk replikasi yang sedang berlangsung, DMS tidak mendukung migrasi data yang dimuat di tingkat halaman oleh utilitas DB2 LOAD. Sebaliknya, gunakan utilitas IMPORT yang menggunakan sisipan SQL. Untuk informasi selengkapnya, lihat [perbedaan antara utilitas impor dan beban]( https://www.ibm.com/docs/en/db2/11.1?topic=utilities-differences-between-import-load-utility). 
+ Saat tugas replikasi sedang berjalan, DMS menangkap CREATE TABLE DDLs hanya jika tabel dibuat dengan atribut DATA CAPTURE CHANGE.
+ DMS memiliki batasan berikut saat menggunakan Db2 Database Partition Feature (DPF):
  + DMS tidak dapat mengoordinasikan transaksi di seluruh node Db2 di lingkungan DPF. Ini karena kendala dalam antarmuka IBM DB2 READLOG API. Dalam DPF, transaksi dapat menjangkau beberapa node Db2, tergantung pada bagaimana DB2 partisi data. Akibatnya, solusi DMS Anda harus menangkap transaksi dari setiap node Db2 secara independen.
  + DMS dapat menangkap transaksi lokal dari setiap node Db2 di cluster DPF dengan menyetel `connectNode` ke `1` beberapa titik akhir sumber DMS. Konfigurasi ini sesuai dengan nomor node logis yang didefinisikan dalam file konfigurasi DB2 server`db2nodes.cfg`.
  + Transaksi lokal pada node Db2 individu dapat menjadi bagian dari transaksi global yang lebih besar. DMS menerapkan setiap transaksi lokal secara independen pada target, tanpa koordinasi dengan transaksi pada node Db2 lainnya. Pemrosesan independen ini dapat menyebabkan komplikasi, terutama ketika baris dipindahkan antar partisi.
  + Ketika DMS mereplikasi dari beberapa node Db2, tidak ada jaminan urutan operasi yang benar pada target, karena DMS menerapkan operasi secara independen untuk setiap node Db2. Anda harus memastikan bahwa menangkap transaksi lokal secara independen dari setiap node Db2 berfungsi untuk kasus penggunaan spesifik Anda.
  + Saat bermigrasi dari lingkungan DPF, sebaiknya jalankan tugas Full Load terlebih dahulu tanpa peristiwa yang di-cache, lalu menjalankan tugas khusus CDC. Sebaiknya jalankan satu tugas per node Db2, mulai dari stempel waktu mulai Full Load atau LRI (pengenal catatan log) yang Anda atur menggunakan atribut koneksi tambahan titik akhir. `StartFromContext` *Untuk informasi tentang menentukan titik awal replikasi Anda, lihat [Menemukan nilai LSN atau LRI untuk permulaan replikasi di](https://www.ibm.com/support/pages/db2-finding-lsn-or-lri-value-replication-start) dokumentasi IBM Support.* 
+ Untuk replikasi berkelanjutan (CDC), jika Anda berencana untuk memulai replikasi dari stempel waktu tertentu, Anda harus menyetel atribut koneksi `StartFromContext` tambahan ke stempel waktu yang diperlukan.
+ Saat ini, DMS tidak mendukung Fitur Db2 PureScale, ekstensi DB2 LUW yang dapat Anda gunakan untuk menskalakan solusi database Anda.
+ Opsi `DATA CAPTURE CHANGES` tabel merupakan prasyarat penting untuk proses replikasi DB2 data. Mengabaikan untuk mengaktifkan opsi ini saat membuat tabel dapat menyebabkan data hilang, terutama untuk CDC (Change Data Capture) hanya tugas replikasi yang dimulai dari titik awal sebelumnya. AWS DMS akan mengaktifkan atribut ini secara default saat memulai ulang tugas CDC atau FULL\$1CDC. Namun, setiap perubahan yang dibuat dalam database sumber sebelum tugas dimulai ulang mungkin terlewatkan.

  ```
  ALTER TABLE TABLE_SCHEMA.TABLE_NAME DATA CAPTURE CHANGES INCLUDE LONGVAR COLUMNS;
  ```

## Pengaturan titik akhir saat menggunakan Db2 LUW sebagai sumber untuk AWS DMS
<a name="CHAP_Source.DB2.ConnectionSettings"></a>

Anda dapat menentukan pengaturan saat Anda membuat titik akhir sumber menggunakan AWS DMS konsol, atau dengan menggunakan `create-endpoint` perintah di [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/create-endpoint.html), dengan

`--ibm-db2-settings '{"EndpointSetting1": "value1","EndpointSetting2": "value2"}'`

Sintaks JSON.

Tabel berikut menunjukkan pengaturan endpoint yang dapat Anda gunakan dengan Db2 LUW sebagai sumber.


| Pengaturan Nama | Deskripsi | 
| --- | --- | 
|  `CurrentLsn`  |  Untuk replikasi yang sedang berlangsung (CDC), gunakan `CurrentLsn`untuk menentukan log sequence number (LSN) di tempat Anda ingin replikasi dimulai.   | 
|  `MaxKBytesPerRead`  |  Jumlah maksimum byte per baca, sebagai nilai NUMBER. Default adalah 64 KB.  | 
|  `SetDataCaptureChanges`  |  Memungkinkan replikasi yang sedang berlangsung (CDC) sebagai nilai BOOLEAN. Default adalah benar.  | 

## Atribut Koneksi Ekstra (ECAs) saat menggunakan Db2 LUW sebagai sumber untuk AWS DMS
<a name="CHAP_Source.DB2.ConnectionAttrib"></a>

Anda dapat menentukan Atribut Koneksi Ekstra (ECAs) saat membuat titik akhir sumber menggunakan AWS DMS konsol, atau dengan menggunakan `create-endpoint` perintah di [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/create-endpoint.html), dengan

`--extra-connection-attributes 'ECAname1=value1;ECAname2=value2;'`

Tabel berikut menunjukkan ECAs bahwa Anda dapat menggunakan dengan Db2 LUW sebagai sumber.


| Nama Atribut | Deskripsi | 
| --- | --- | 
|  `ConnectionTimeout`  |  Gunakan ECA ini untuk mengatur batas waktu koneksi titik akhir untuk titik akhir Db2 LUW, dalam hitungan detik. Nilai bawaannya adalah 10 detik. Contoh: `ConnectionTimeout=30;`  | 
|  `executeTimeout`  |  Atribut koneksi tambahan yang menetapkan batas waktu pernyataan (query) untuk titik akhir DB2 LUW, dalam hitungan detik. Nilai default adalah 60 detik. Contoh: `executeTimeout=120;`  | 
|  `StartFromContext`  |  Untuk replikasi berkelanjutan (CDC), gunakan `StartFromContext` untuk menentukan batas bawah log dari mana memulai replikasi. `StartFromContext`menerima berbagai bentuk nilai. Nilai yang valid meliputi: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.DB2.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.DB2.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Source.DB2.html) Untuk menentukan LRI/LSN rentang file log, jalankan `db2flsn` perintah seperti yang ditunjukkan pada contoh berikut. <pre>db2flsn -db SAMPLE -lrirange 2</pre> Output dari contoh itu mirip dengan yang berikut ini.  <pre><br />S0000002.LOG: has LRI range 00000000000000010000000000002254000000000004F9A6 to <br />000000000000000100000000000022CC000000000004FB13</pre> Dalam output itu, file log adalah S0000002.LOG dan nilai **StartFromContext**LRI adalah 34 byte di akhir rentang. <pre>0100000000000022CC000000000004FB13</pre>  | 

## Jenis data sumber untuk IBM Db2 LUW
<a name="CHAP_Source.DB2.DataTypes"></a>

Migrasi data yang menggunakan Db2 LUW sebagai sumber untuk AWS DMS mendukung sebagian besar tipe data Db2 LUW. Tabel berikut menunjukkan tipe data sumber Db2 LUW yang didukung saat menggunakan AWS DMS dan pemetaan default dari tipe data. AWS DMS Untuk informasi lebih lanjut tentang jenis data Db2 LUW, lihat[ Dokumentasi Db2 LUW](https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0008483.html).

Untuk informasi tentang cara melihat jenis data yang dipetakan dalam target, lihat bagian titik akhir target yang Anda gunakan.

Untuk informasi tambahan tentang tipe AWS DMS data, lihat[Tipe data untuk AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  Jenis data Db2 LUW  |  AWS DMS tipe data  | 
| --- | --- | 
|  INTEGER  |  INT4  | 
|  SMALLINT  |  INT2  | 
|  BIGINT  |  INT8  | 
|  DECIMAL (p,s)  |  NUMERIC (p,s)  | 
|  FLOAT  |  REAL8  | 
|  DOUBLE  |  REAL8  | 
|  REAL  |  REAL4  | 
|  DECFLOAT (p)  |  Jika presisi adalah 16, maka REAL8; jika presisi adalah 34, maka STRING  | 
|  GRAPHIC (n)  |  WSTRING, untuk string grafis yang panjangnya tetap dari karakter byte ganda dengan panjang lebih besar dari 0 dan kurang dari atau sama dengan 127  | 
|  VARGRAPHIC (n)  |  WSTRING, untuk string grafis yang panjangnya beragam dengan panjang lebih besar dari 0 dan kurang dari atau sama dengan 16.352 karakter byte ganda  | 
|  LONG VARGRAPHIC (n)  |  CLOB, untuk string grafis yang panjangnya beragam dengan panjang lebih besar dari 0 dan kurang dari atau sama dengan 16.352 karakter byte ganda  | 
|  CHARACTER (n)  |  STRING, untuk string karakter byte ganda yang panjangnya tetap dengan panjang lebih besar dari 0 dan kurang dari atau sama dengan 255  | 
|  VARCHAR (n)  |  STRING, untuk string karakter byte ganda yang panjangnya beragam dengan panjang lebih besar dari 0 dan kurang dari atau sama dengan 32.704  | 
|  LONG VARCHAR (n)  |  CLOB, untuk string karakter byte ganda yang panjangnya beragam dengan panjang lebih besar dari 0 dan kurang dari atau sama dengan 32.704  | 
|  CHAR (n) FOR BIT DATA  |  BYTES  | 
|  VARCHAR (n) FOR BIT DATA  |  BYTES  | 
|  LONG VARCHAR FOR BIT DATA  |  BYTES  | 
|  DATE  |  DATE  | 
|  TIME  |  TIME  | 
|  TIMESTAMP  |  DATETIME  | 
|  BLOB (n)  |  BLOB Panjang maksimum adalah 2.147.483.647 byte  | 
|  CLOB (n)  |  CLOB Panjang maksimum adalah 2.147.483.647 byte  | 
|  DBCLOB (n)  |  CLOB Panjang maksimum adalah 1.073.741.824 karakter byte ganda  | 
|  XML  |  CLOB  | 

# Menggunakan IBM Db2 untuk z/OS database sebagai sumber untuk AWS DMS
<a name="CHAP_Source.DB2zOS"></a>

Anda dapat memigrasikan data dari IBM untuk z/OS database ke database target yang didukung menggunakan AWS Database Migration Service ()AWS DMS. 

Untuk informasi tentang versi Db2 z/OS yang AWS DMS mendukung sebagai sumber, lihat. [Sumber untuk AWS DMS](CHAP_Introduction.Sources.md)

## Prasyarat saat menggunakan Db2 untuk sebagai sumber untuk z/OS AWS DMS
<a name="CHAP_Source.DB2zOS.Prerequisites"></a>

Untuk menggunakan IBM Db2 untuk z/OS database sebagai sumber AWS DMS, berikan hak istimewa berikut ke Db2 untuk z/OS pengguna yang ditentukan dalam pengaturan koneksi titik akhir sumber.

```
GRANT SELECT ON SYSIBM.SYSTABLES TO Db2USER;
GRANT SELECT ON SYSIBM.SYSTABLESPACE TO Db2USER;
GRANT SELECT ON SYSIBM.SYSTABLEPART TO Db2USER;                    
GRANT SELECT ON SYSIBM.SYSCOLUMNS TO Db2USER;
GRANT SELECT ON SYSIBM.SYSDATABASE TO Db2USER;
GRANT SELECT ON SYSIBM.SYSDUMMY1 TO Db2USER
```

Juga berikan tabel `user defined` sumber SELECT ON.

 AWS DMS IBM Db2 untuk titik akhir z/OS sumber bergantung pada Driver Server Data IBM untuk ODBC untuk mengakses data. Server database harus memiliki lisensi IBM ODBC Connect yang valid agar DMS dapat terhubung ke titik akhir ini.

## Keterbatasan saat menggunakan Db2 untuk z/OS sebagai sumber untuk AWS DMS
<a name="CHAP_Source.DB2zOS.Limitations"></a>

Batasan berikut berlaku saat menggunakan IBM Db2 untuk z/OS database sebagai sumber untuk: AWS DMS
+ Hanya tugas replikasi Beban Penuh yang didukung. Ubah pengambilan data (CDC) tidak didukung.
+ Beban paralel tidak didukung.
+ Validasi data tampilan tidak didukung.
+ Nama skema, tabel, dan kolom harus ditentukan dalam kasus UPPER dalam pemetaan tabel untuk transformasi Column/table level dan filter pemilihan tingkat baris.

## Tipe data sumber untuk IBM Db2 untuk z/OS
<a name="CHAP_Source.DB2zOS.DataTypes"></a>

Migrasi data yang menggunakan Db2 z/OS sebagai sumber untuk AWS DMS mendukung sebagian besar Db2 untuk tipe data. z/OS Tabel berikut menunjukkan Db2 untuk tipe data z/OS sumber yang didukung saat menggunakan AWS DMS, dan pemetaan default dari AWS DMS tipe data.

Untuk informasi selengkapnya tentang Db2 untuk tipe z/OS data, lihat [IBM Db2](https://www.ibm.com/docs/en/db2-for-zos/12?topic=elements-data-types) untuk dokumentasi. z/OS 

Untuk informasi tentang cara melihat jenis data yang dipetakan dalam target, lihat bagian titik akhir target yang Anda gunakan.

Untuk informasi tambahan tentang tipe AWS DMS data, lihat[Tipe data untuk AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  Db2 untuk tipe data z/OS   |  AWS DMS tipe data  | 
| --- | --- | 
|  INTEGER  |  INT4  | 
|  SMALLINT  |  INT2  | 
|  BIGINT  |  INT8  | 
|  DECIMAL (p,s)  |  NUMERIC (p,s) Jika titik desimal diatur ke koma (,) dalam DB2 konfigurasi, konfigurasikan Replikasi untuk mendukung pengaturan. DB2   | 
|  FLOAT  |  REAL8  | 
|  DOUBLE  |  REAL8  | 
|  REAL  |  REAL4  | 
|  DECFLOAT (p)  |  Jika presisi adalah 16, maka REAL8; jika presisi adalah 34, maka STRING  | 
|  GRAPHIC (n)  |  Jika n>=127 maka WSTRING, untuk string grafis dengan panjang tetap karakter byte ganda dengan panjang lebih besar dari 0 dan kurang dari atau sama dengan 127  | 
|  VARGRAPHIC (n)  |  WSTRING, untuk string grafis yang panjangnya beragam dengan panjang lebih besar dari 0 dan kurang dari atau sama dengan 16.352 karakter byte ganda  | 
|  LONG VARGRAPHIC (n)  |  CLOB, untuk string grafis yang panjangnya beragam dengan panjang lebih besar dari 0 dan kurang dari atau sama dengan 16.352 karakter byte ganda  | 
|  CHARACTER (n)  |  STRING, untuk string karakter byte ganda yang panjangnya tetap dengan panjang lebih besar dari 0 dan kurang dari atau sama dengan 255  | 
|  VARCHAR (n)  |  STRING, untuk string karakter byte ganda yang panjangnya beragam dengan panjang lebih besar dari 0 dan kurang dari atau sama dengan 32.704  | 
|  LONG VARCHAR (n)  |  CLOB, untuk string karakter byte ganda yang panjangnya beragam dengan panjang lebih besar dari 0 dan kurang dari atau sama dengan 32.704  | 
|  CHAR (n) FOR BIT DATA  |  BYTES  | 
|  VARCHAR (n) FOR BIT DATA  |  BYTES  | 
|  LONG VARCHAR FOR BIT DATA  |  BYTES  | 
|  DATE  |  DATE  | 
|  TIME  |  TIME  | 
|  TIMESTAMP  |  DATETIME  | 
|  BLOB (n)  |  BLOB Panjang maksimum adalah 2.147.483.647 byte  | 
|  CLOB (n)  |  CLOB Panjang maksimum adalah 2.147.483.647 byte  | 
|  DBCLOB (n)  |  CLOB Panjang maksimum adalah 1.073.741.824 karakter byte ganda  | 
|  XML  |  CLOB  | 
|  BINARY  |  BYTES  | 
|  VARBINARY  |  BYTES  | 
|  ROWID  |  BYTE. Untuk informasi lebih lanjut tentang bekerja dengan ROWID, lihat berikut.   | 
|  TIMESTAMP WITH TIME ZONE  |  Tidak didukung.  | 

Kolom ROWID dimigrasikan secara default ketika mode persiapan tabel target untuk tugas diatur ke DROP\$1AND\$1CREATE (default). Validasi data mengabaikan kolom ini karena baris tidak berarti di luar database dan tabel tertentu. Untuk mematikan migrasi kolom ini, Anda dapat melakukan salah satu langkah persiapan berikut: 
+ Buat tabel target tanpa kolom ini. Kemudian, atur mode persiapan tabel target tugas ke DO\$1NOTHING atau TRUNCATE\$1BEFORE\$1LOAD. Anda dapat menggunakan AWS Schema Conversion Tool (AWS SCT) untuk membuat tabel target tanpa kolom.
+ Tambahkan aturan pemetaan tabel ke tugas yang menyaring kolom ini sehingga diabaikan. Untuk informasi selengkapnya, lihat [Aturan dan tindakan transformasi](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.md).

## Koleksi EBCDIC di PostgreSQL untuk layanan Modernisasi Mainframe AWS
<a name="CHAP_Source.DB2zOS.EBCDIC"></a>

AWS Program Modernisasi Mainframe membantu Anda memodernisasi aplikasi mainframe Anda ke lingkungan runtime yang dikelola. AWS Ini menyediakan alat dan sumber daya yang membantu Anda merencanakan dan mengimplementasikan proyek migrasi dan modernisasi Anda. Untuk informasi selengkapnya tentang modernisasi dan migrasi mainframe, lihat Modernisasi [Mainframe](https://aws.amazon.com/mainframe/) dengan. AWS

Beberapa IBM Db2 untuk kumpulan z/OS data dikodekan dalam set karakter Extended Binary Coded Decimal Interchange (EBCDIC). Ini adalah set karakter yang dikembangkan sebelum ASCII (American Standard Code for Information Interchange) menjadi umum digunakan. *Halaman kode* memetakan setiap karakter teks ke karakter dalam satu set karakter. Halaman kode tradisional berisi informasi pemetaan antara titik kode dan ID karakter. *ID karakter* adalah string data karakter 8-byte. *Titik kode* adalah bilangan biner 8-bit yang mewakili karakter. Poin kode biasanya ditampilkan sebagai representasi heksadesimal dari nilai binernya.

Jika saat ini Anda menggunakan Micro Focus atau BluAge komponen layanan Modernisasi Mainframe, Anda harus memberi tahu AWS DMS untuk *menggeser* (menerjemahkan) titik kode tertentu. Anda dapat menggunakan pengaturan AWS DMS tugas untuk melakukan shift. Contoh berikut menunjukkan cara menggunakan AWS DMS `CharacterSetSettings` operasi untuk memetakan shift dalam pengaturan tugas DMS.

```
"CharacterSetSettings": {
        "CharacterSetSupport": null,
        "CharacterReplacements": [
{"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0178"}
            }
        ]
    }
```

Beberapa koleksi EBCDIC sudah ada untuk PostgreSQL yang memahami pergeseran yang diperlukan. Beberapa halaman kode yang berbeda didukung. Bagian berikut memberikan contoh JSON tentang apa yang harus Anda geser untuk semua halaman kode yang didukung. Anda hanya dapat JSON copy-and-past yang diperlukan yang Anda butuhkan dalam tugas DMS Anda.

### Kolasi EBCDIC spesifik Fokus Mikro
<a name="CHAP_Source.DB2zOS.EBCDIC.MicroFocus"></a>

Untuk Micro Focus, geser subset karakter sesuai kebutuhan untuk koleksi berikut.

```
 da-DK-cp1142m-x-icu
 de-DE-cp1141m-x-icu
 en-GB-cp1146m-x-icu
 en-US-cp1140m-x-icu
 es-ES-cp1145m-x-icu
 fi-FI-cp1143m-x-icu
 fr-FR-cp1147m-x-icu
 it-IT-cp1144m-x-icu
 nl-BE-cp1148m-x-icu
```

**Example Pergeseran data Fokus Mikro per pemeriksaan:**  
**en\$1us\$1cp1140m**  
Pergeseran Kode:  

```
0000    0180
00A6    0160
00B8    0161
00BC    017D
00BD    017E
00BE    0152
00A8    0153
00B4    0178
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1141m**  
Pergeseran Kode:  

```
0000    0180
00B8    0160
00BC    0161
00BD    017D
00BE    017E
00A8    0152
00B4    0153
00A6    0178
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1142m**  
Pergeseran Kode:  

```
0000    0180
00A6    0160
00B8    0161
00BC    017D
00BD    017E
00BE    0152
00A8    0153
00B4    0178
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1143m**  
Pergeseran Kode:  

```
0000    0180
00B8    0160
00BC    0161
00BD    017D
00BE    017E
00A8    0152
00B4    0153
00A6    0178
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1144m**  
Pergeseran Kode:  

```
0000    0180
00B8    0160
00BC    0161
00BD    017D
00BE    017E
00A8    0152
00B4    0153
00A6    0178
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1145m**  
Pergeseran Kode:  

```
0000    0180
00A6    0160
00B8    0161
00A8    017D
00BC    017E
00BD    0152
00BE    0153
00B4    0178
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1146m**  
Pergeseran Kode:  

```
0000    0180
00A6    0160
00B8    0161
00BC    017D
00BD    017E
00BE    0152
00A8    0153
00B4    0178
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1147m**  
Pergeseran Kode:  

```
0000    0180
00B8    0160
00A8    0161
00BC    017D
00BD    017E
00BE    0152
00B4    0153
00A6    0178
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1148m**  
Pergeseran Kode:  

```
0000    0180
00A6    0160
00B8    0161
00BC    017D
00BD    017E
00BE    0152
00A8    0153
00B4    0178
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0178"}
```

### BluAge pengumpulan EBCDIC tertentu
<a name="CHAP_Source.DB2zOS.EBCDIC.BluAge"></a>

Untuk BluAge, geser semua nilai *rendah berikut dan nilai* *tinggi* sesuai kebutuhan. Koleksi ini hanya boleh digunakan untuk mendukung layanan Migrasi Mainframe. BluAge 

```
da-DK-cp1142b-x-icu
 da-DK-cp277b-x-icu
 de-DE-cp1141b-x-icu
 de-DE-cp273b-x-icu
 en-GB-cp1146b-x-icu
 en-GB-cp285b-x-icu
 en-US-cp037b-x-icu
 en-US-cp1140b-x-icu
 es-ES-cp1145b-x-icu
 es-ES-cp284b-x-icu
 fi-FI-cp1143b-x-icu
 fi-FI-cp278b-x-icu 
 fr-FR-cp1147b-x-icu
 fr-FR-cp297b-x-icu
 it-IT-cp1144b-x-icu
 it-IT-cp280b-x-icu
 nl-BE-cp1148b-x-icu
 nl-BE-cp500b-x-icu
```

**Example BluAge Pergeseran Data:**  
**da-dk-cp277b dan **da-dk-cp1142b****  
Pergeseran Kode:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
****De-de-273b dan de-de-1141b****  
Pergeseran Kode:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
**En-GB-285b dan **en-GB-1146b****  
Pergeseran Kode:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
{"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
****en-us-037b dan en-us-1140b****  
Pergeseran Kode:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
{"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
****ES-ES-284b dan ES-ES-1145b****  
Pergeseran Kode:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
****fi\$1fi-278b dan fi-fi-1143b****  
Pergeseran Kode:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
****FR-FR-297b dan FR-FR-1147b****  
Pergeseran Kode:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
{"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
**IT-280b dan **IT-IT-1144b****  
Pergeseran Kode:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
**NL-BE-500b dan **NL-BE-1148b****  
Pergeseran Kode:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Pemetaan input yang sesuai untuk suatu AWS DMS tugas:  

```
 {"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```