

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

# Migrasi Db2 untuk LUW ke EC2 Amazon dengan menggunakan pengiriman log untuk mengurangi waktu pemadaman
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time"></a>

*Feng Cai, Ambarish Satarkar, dan Saurabh Sharma, Amazon Web Services*

## Ringkasan
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-summary"></a>

Ketika pelanggan memigrasikan beban kerja IBM Db2 mereka untuk LUW (Linux, UNIX, dan Windows) ke Amazon Web Services (AWS), menggunakan Amazon Elastic Compute Cloud ( EC2Amazon) dengan model Bring Your Own License (BYOL) adalah cara tercepat. Namun, memigrasikan sejumlah besar data dari Db2 lokal ke AWS dapat menjadi tantangan, terutama ketika jendela pemadaman pendek. Banyak pelanggan mencoba mengatur jendela pemadaman menjadi kurang dari 30 menit, yang menyisakan sedikit waktu untuk database itu sendiri.

Pola ini mencakup cara menyelesaikan migrasi Db2 dengan jendela pemadaman pendek dengan menggunakan pengiriman log transaksi. Pendekatan ini berlaku untuk Db2 pada platform Linux kecil.

## Prasyarat dan batasan
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Instance Db2 yang berjalan pada EC2 instance yang cocok dengan tata letak sistem file lokal
+ Bucket Amazon Simple Storage Service (Amazon S3) yang dapat diakses oleh instans EC2 
+ Kebijakan dan peran AWS Identity and Access Management (IAM) untuk melakukan panggilan terprogram ke Amazon S3
+ Zona waktu dan jam sistem yang disinkronkan di Amazon EC2 dan server lokal
+ Jaringan lokal yang terhubung ke AWS melalui AWS [ Site-to-SiteVPN atau AWS](https://aws.amazon.com/vpn/) [Direct](https://aws.amazon.com/directconnect/) Connect

**Batasan**
+ [Instans lokal Db2 dan Amazon EC2 harus berada di keluarga platform yang sama.](https://www.ibm.com/docs/en/db2/11.1?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ Beban kerja lokal Db2 harus dicatat. Untuk memblokir transaksi yang tidak tercatat, atur `blocknonlogged=yes` dalam konfigurasi database.

**Versi produk**
+ Db2 untuk LUW versi 11.5.9 dan yang lebih baru

## Arsitektur
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-architecture"></a>

**Tumpukan teknologi sumber**
+ Db2 di Linux x86\$164****

**Tumpukan teknologi target**
+ Amazon EBS
+ Amazon EC2
+ AWS Identity and Access Management (IAM)
+ Amazon S3
+ AWS Site-to-Site VPN atau Direct Connect

**Arsitektur target**

Diagram berikut menunjukkan satu instans Db2 yang berjalan di lokasi dengan koneksi jaringan pribadi virtual (VPN) ke Db2 di Amazon. EC2 Garis putus-putus mewakili terowongan VPN antara pusat data Anda dan AWS Cloud.

![\[Alur kerja untuk menyelesaikan migrasi Db2 dalam jendela pemadaman pendek menggunakan pengiriman log transaksi.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/7dec6e4a-a92e-4204-9e42-f89d7dcafbfa/images/a7e1c1d6-2ec1-4271-952d-a58260ad7c81.png)


## Alat
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-tools"></a>

**Layanan AWS**
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) adalah alat sumber terbuka yang membantu Anda berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) menautkan jaringan internal Anda ke lokasi Direct Connect melalui kabel serat optik Ethernet standar. Dengan koneksi ini, Anda dapat membuat antarmuka virtual langsung ke layanan AWS publik sambil melewati penyedia layanan internet di jalur jaringan Anda.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) menyediakan volume penyimpanan tingkat blok untuk digunakan dengan instans Amazon Elastic Compute Cloud (Amazon). EC2
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) menyediakan kapasitas komputasi yang dapat diskalakan di AWS Cloud. Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) membantu Anda meneruskan lalu lintas antar instans yang Anda luncurkan di AWS dan jaringan jarak jauh Anda sendiri.

**Alat-alat lainnya**
+ [db2cli adalah perintah CLI interaktif](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) Db2.

## Praktik terbaik
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-best-practices"></a>
+ Pada database target, gunakan [titik akhir gateway untuk Amazon](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) S3 untuk mengakses gambar cadangan database dan file log di Amazon S3.
+ Pada database sumber, gunakan [AWS PrivateLink untuk Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) untuk mengirim gambar cadangan database dan file log ke Amazon S3.

## Epik
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-epics"></a>

### Tetapkan variabel lingkungan
<a name="set-environment-variables"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tetapkan variabel lingkungan. | Pola ini menggunakan nama-nama berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Anda dapat mengubahnya agar sesuai dengan lingkungan Anda. | DBA | 

### Konfigurasikan server Db2 lokal
<a name="configure-the-on-premises-db2-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Atur AWS CLI. | Untuk mengunduh dan menginstal AWS CLI versi terbaru, jalankan perintah berikut:<pre>$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />sudo ./aws/install</pre> | Administrator Linux | 
| Siapkan tujuan lokal untuk log arsip Db2. | Agar database target EC2 di Amazon tetap sinkron dengan database sumber lokal, log transaksi terbaru harus diambil dari sumbernya.Dalam pengaturan ini, `/db2logs` diatur oleh `LOGARCHMETH2` pada sumber sebagai area pementasan. Log yang diarsipkan di direktori ini akan disinkronkan ke Amazon S3 dan diakses oleh Db2 di Amazon. EC2 Pola yang digunakan `LOGARCHMETH2` karena `LOGARCHMETH1` mungkin telah dikonfigurasi untuk menggunakan alat vendor pihak ketiga yang tidak dapat diakses oleh perintah AWS CLI. Untuk mengambil log, jalankan perintah berikut: <pre>db2 connect to sample<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs</pre> | DBA | 
| Jalankan backup database online. | Jalankan backup database online, dan simpan ke sistem file backup lokal: <pre>db2 backup db sample online to /backup </pre> | DBA | 

### Siapkan bucket S3 dan kebijakan IAM
<a name="set-up-the-s3-bucket-and-iam-policy"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | Buat bucket S3 untuk server lokal untuk mengirim image Db2 cadangan dan file log ke AWS. Bucket juga akan diakses oleh Amazon EC2:<pre>aws s3api create-bucket --bucket logshipmig-db2 --region us-east-1 </pre> | Administrator sistem AWS | 
|  Buat kebijakan IAM. | `db2bucket.json`File berisi kebijakan IAM untuk mengakses bucket Amazon S3:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "kms:GenerateDataKey",<br />                "kms:Decrypt",<br />                "s3:PutObject",<br />                "s3:GetObject",<br />                "s3:AbortMultipartUpload",<br />                "s3:ListBucket",<br />                "s3:DeleteObject",<br />                "s3:GetObjectVersion",<br />                "s3:ListMultipartUploadParts"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::logshipmig-db2/*",<br />                "arn:aws:s3:::logshipmig-db2"<br />            ]<br />        }<br />    ]<br />}</pre>Untuk membuat kebijakan, gunakan perintah AWS CLI berikut:<pre>aws iam create-policy \<br />      --policy-name db2s3policy \<br />      --policy-document file://db2bucket.json </pre> Output JSON menunjukkan Nama Sumber Daya Amazon (ARN) untuk kebijakan, yang mewakili ID `aws_account_id` akun Anda:<pre>"Arn": "arn:aws:iam::aws_account_id:policy/db2s3policy"</pre> | Administrator AWS, administrator sistem AWS | 
| Lampirkan kebijakan IAM ke peran IAM yang digunakan oleh instance. EC2  | Di sebagian besar lingkungan AWS, EC2 instans yang sedang berjalan memiliki Peran IAM yang ditetapkan oleh administrator sistem Anda. Jika peran IAM tidak disetel, buat peran dan pilih **Ubah peran IAM** di EC2 konsol untuk mengaitkan peran dengan EC2 instance yang menghosting database Db2. Lampirkan kebijakan IAM ke peran IAM dengan kebijakan ARN:<pre>aws iam attach-role-policy \<br />    --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3policy"  \<br />    --role-name db2s3role  </pre>Setelah kebijakan dilampirkan, EC2 instance apa pun yang terkait dengan peran IAM dapat mengakses bucket S3. | Administrator AWS, administrator sistem AWS | 

### Kirim gambar cadangan database sumber dan file log ke Amazon S3
<a name="send-the-source-database-backup-image-and-log-files-to-amazon-s3"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan AWS CLI di server Db2 lokal. | Konfigurasikan AWS CLI dengan `Access Key ID` dan `Secret Access Key` dihasilkan pada langkah sebelumnya:<pre>$ aws configure <br />AWS Access Key ID [None]: *************<br />AWS Secret Access Key [None]: ***************************<br />Default region name [None]: us-east-1<br />Default output format [None]: json</pre>  | Administrator AWS, administrator sistem AWS | 
| Kirim gambar cadangan ke Amazon S3. | Sebelumnya, cadangan database online disimpan ke direktori `/backup` lokal. Untuk mengirim gambar cadangan itu ke bucket S3, jalankan perintah berikut:<pre>aws s3 sync /backup s3://logshipmig-db2/SAMPLE_backup</pre> | Administrator AWS, Insinyur migrasi | 
| Kirim log arsip Db2 ke Amazon S3. | Sinkronkan log arsip Db2 lokal dengan bucket S3 yang dapat diakses oleh instans Db2 target di Amazon: EC2<pre>aws s3 sync /db2logs s3://logshipmig-db2/SAMPLE_LOG</pre>Jalankan perintah ini secara berkala dengan menggunakan cron atau alat penjadwalan lainnya. Frekuensi tergantung pada seberapa sering database sumber mengarsipkan file log transaksi.  | Administrator AWS, Insinyur migrasi | 

### Connect Db2 di Amazon EC2 ke Amazon S3 dan mulai sinkronisasi database
<a name="connect-db2-on-amazon-ec2-to-amazon-s3-and-start-the-database-sync"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat PKCS12 keystore. | Db2 menggunakan keystore enkripsi Public-Key Cryptography Standards (PKCS) untuk menjaga kunci akses AWS tetap aman. Buat keystore dan konfigurasikan instance sumber Db2 untuk menggunakannya:<pre>gsk8capicmd_64 -keydb -create -db "/home/db2inst1/.keystore/db2s3.p12" -pw "<password>" -type pkcs12 -stash <br /> <br />db2 "update dbm cfg using keystore_location /home/db2inst1/.keystore/db2s3.p12 keystore_type pkcs12"</pre> | DBA | 
| Buat alias akses penyimpanan Db2. | Untuk membuat [alias akses penyimpanan](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access), gunakan sintaks skrip berikut:`db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"`Misalnya, skrip Anda mungkin terlihat seperti berikut: `db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'logshipmig-db2'" ` | DBA | 
| Atur area pementasan. | Secara default, Db2 digunakan `DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH` sebagai area pementasan untuk mengunggah dan mengunduh file ke dan dari Amazon S3. Jalur default berada `sqllib/tmp/RemoteStorage.xxxx` di bawah direktori home instance, dengan `xxxx` mengacu pada nomor partisi Db2. Perhatikan bahwa area pementasan harus memiliki kapasitas yang cukup untuk menyimpan gambar cadangan dan file log. Anda dapat menggunakan registri untuk mengarahkan area pementasan ke direktori yang berbeda.Kami juga merekomendasikan penggunaan`DB2_ENABLE_COS_SDK=ON`,`DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore`, dan tautan ke `awssdk` perpustakaan untuk melewati area pementasan Amazon S3 untuk pencadangan dan pemulihan basis data:<pre>#By root:<br />cp -rp /home/db2inst1/sqllib/lib64/awssdk/RHEL/7.6/* /home/db2inst1/sqllib/lib64/<br /><br />#By db2 instance owner:<br />db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage<br />db2set DB2_ENABLE_COS_SDK=ON<br />Db2set DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore<br />db2stop<br />db2start</pre> | DBA | 
| Kembalikan database dari gambar cadangan. | Kembalikan database target di Amazon EC2 dari gambar cadangan di bucket S3:<pre>db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup replace existing</pre> | DBA | 
| Gulung ke depan database. | Setelah pemulihan selesai, database target akan dimasukkan ke status tertunda rollforward. Konfigurasikan `LOGARCHMETH1` dan `LOGARCHMETH2` agar Db2 tahu di mana mendapatkan file log transaksi:<pre>db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/'<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 OFF</pre>Mulai rollforward database:<pre>db2 ROLLFORWARD DATABASE sample to END OF LOGS</pre>Perintah ini memproses semua file log yang telah ditransfer ke bucket S3. Jalankan secara berkala berdasarkan frekuensi `s3 sync` perintah di server Db2 lokal. Misalnya, jika `s3 sync` berjalan pada setiap jam, dan dibutuhkan 10 menit untuk menyinkronkan semua file log, atur perintah untuk berjalan pada 10 menit setelah setiap jam.  | DBA | 

### Bawa Db2 di Amazon EC2 online selama jendela cutover
<a name="bring-db2-on-amazon-ec2-online-during-the-cutover-window"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bawa database target secara online. | Selama jendela cutover, lakukan salah satu hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Setelah log transaksi terakhir disinkronkan ke Amazon S3, jalankan perintah untuk `ROLLFORWARD` terakhir kalinya:<pre>db2 rollforward DB sample to END OF LOGS<br />db2 rollforward DB sample complete<br /><br />                                 Rollforward Status<br />....<br /> Rollforward status                     = not pending<br />....<br />DB20000I  The ROLLFORWARD command completed successfully.<br /><br />db2 activate db sample<br />DB20000I  The ACTIVATE DATABASE command completed successfully.</pre>Bawa database target online, dan arahkan koneksi aplikasi ke Db2 di Amazon. EC2 | DBA | 

## Pemecahan masalah
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Jika beberapa database memiliki nama instance dan nama database yang sama pada host yang berbeda (DEV, QA, PROD), backup dan log mungkin masuk ke subdirektori yang sama. | Gunakan bucket S3 yang berbeda untuk DEV, QA, dan PROD, dan tambahkan nama host sebagai awalan subdirektori untuk menghindari kebingungan. | 
| Jika ada beberapa gambar cadangan di lokasi yang sama, Anda akan mendapatkan kesalahan berikut saat memulihkan:`SQL2522N More than one backup file matches the time stamp value provided for the backed up database image.` | Dalam `restore` perintah, tambahkan stempel waktu cadangan:`db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup taken at 20230628164042 replace existing` | 

## Sumber daya terkait
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-resources"></a>
+ [Operasi pencadangan dan pemulihan Db2 antara sistem operasi dan platform perangkat keras yang berbeda](https://www.ibm.com/docs/en/db2/11.5?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ [Mengatur Db2 STORAGE ACCESS ALIAS dan REMOTE DB2](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access)
+ [Perintah Db2 ROLLFORWARD](https://www.ibm.com/docs/en/db2/11.5?topic=commands-rollforward-database)
+ [Metode arsip log sekunder Db2](https://www.ibm.com/docs/en/db2/11.5?topic=parameters-logarchmeth2-secondary-log-archive-method)