Dokumen ini adalah bagian dari rangkaian yang memberikan informasi dan panduan penting terkait perencanaan dan pelaksanaan migrasi database Oracle® 11g/12c ke Cloud SQL untuk PostgreSQL versi 12. Selain bagian penyiapan pendahuluan, rangkaian ini meliputi bagian berikut:
- Memigrasikan pengguna Oracle ke Cloud SQL untuk PostgreSQL: Terminologi dan fungsi
- Memigrasikan pengguna Oracle ke Cloud SQL untuk PostgreSQL: Jenis data, pengguna, dan tabel
- Memigrasikan pengguna Oracle ke Cloud SQL untuk PostgreSQL: Kueri, prosedur tersimpan, fungsi, dan pemicu
- Memigrasikan pengguna Oracle ke Cloud SQL untuk PostgreSQL: Keamanan, operasi, pemantauan, dan logging (dokumen ini)
- Memigrasikan pengguna dan skema Oracle Database ke Cloud SQL untuk PostgreSQL
Keamanan
Bagian ini memberikan panduan tentang enkripsi, pengauditan, dan kontrol akses.
Enkripsi
Oracle dan Cloud SQL untuk PostgreSQL menawarkan mekanisme enkripsi data untuk menambahkan lapisan perlindungan tambahan di luar autentikasi pengguna dasar dan pengelolaan hak istimewa pengguna.
Enkripsi dalam penyimpanan
Data yang tidak bergerak melalui jaringan (disimpan) dikenal sebagai "data dalam penyimpanan". Oracle menawarkan mekanisme TDE (Transparent Data Encryption) untuk menambahkan lapisan enkripsi pada level sistem operasi. Di Cloud SQL, data dienkripsi menggunakan Advanced Encryption Standard (AES-256) 256 bit, atau yang lebih baik. Kunci data ini dienkripsi menggunakan kunci master yang disimpan dalam keystore yang aman dan diubah secara rutin. Untuk mengetahui informasi selengkapnya tentang enkripsi saat nonaktif, lihat Enkripsi dalam penyimpanan di Google Cloud.
Enkripsi saat transit
Oracle menawarkan Keamanan Lanjutan untuk menangani enkripsi data melalui jaringan. Cloud SQL mengenkripsi dan mengautentikasi semua data dalam pengiriman di satu atau beberapa lapisan jaringan saat data bergerak ke luar batas fisik yang tidak dikontrol oleh Google atau atas nama Google. Data dalam pengiriman di dalam batas fisik yang dikontrol oleh atau atas nama Google umumnya diautentikasi, tetapi mungkin tidak dienkripsi secara default. Anda dapat memilih tindakan keamanan tambahan mana yang akan diterapkan berdasarkan model ancaman Anda. Misalnya, Anda dapat mengonfigurasi SSL untuk koneksi intrazona ke Cloud SQL. Untuk mengetahui informasi tentang enkripsi dalam pengiriman, lihat Enkripsi data dalam pengiriman di Google Cloud.
Pengauditan
Oracle menyediakan beberapa metode untuk audit (misalnya, pengauditan standar dan terperinci). Sebaliknya, audit di Cloud SQL untuk PostgreSQL dapat dilakukan dengan cara berikut:
- Ekstensi pgAudit. Merekam dan melacak operasi SQL yang dilakukan terhadap instance database tertentu.
- Cloud Audit Logs. Mengaudit operasi administratif dan pemeliharaan yang dilakukan di instance Cloud SQL untuk PostgreSQL.
Kontrol akses
Pengguna dapat terhubung ke instance Cloud SQL untuk PostgreSQL menggunakan klien PostgreSQL dengan alamat IP statis yang diotorisasi atau menggunakan Proxy Cloud SQL, seperti koneksi database lainnya. Untuk sumber koneksi lainnya seperti App Engine atau Compute Engine, pengguna memiliki beberapa opsi seperti menggunakan Proxy Cloud SQL. Untuk mengetahui informasi selengkapnya mengenai opsi ini, lihat kontrol akses instance.
Cloud SQL untuk PostgreSQL terintegrasi dengan Identity and Access Management (IAM) dan menyediakan sekumpulan peran yang telah ditetapkan yang dirancang untuk membantu Anda mengontrol akses ke resource Cloud SQL. Peran ini memungkinkan pengguna IAM memulai berbagai operasi administratif seperti mulai ulang instance, pencadangan, dan failover. Lihat kontrol akses project untuk mengetahui informasi selengkapnya.
Operasi
Bagian ini memberikan panduan tentang operasi ekspor dan impor, pencadangan dan pemulihan tingkat instance, serta instance standby untuk operasi hanya baca dan implementasi pemulihan dari bencana (disaster recovery).
Mengekspor dan mengimpor
Metode utama Oracle untuk menjalankan operasi ekspor dan impor logis adalah utilitas Data Pump, menggunakan perintah EXPDP
/IMPDP
(versi lama fungsi ekspor/impor Oracle
menyertakan perintah exp
/imp
). Perintah
yang setara dengan Cloud SQL untuk PostgreSQL adalah utilitas pg_dump
dan
pg_restore
, yang menghasilkan file dump lalu mengimpornya pada tingkat database
atau objek (termasuk mengekspor dan mengimpor metadata saja).
Tidak ada solusi Cloud SQL untuk PostgreSQL langsung yang setara untuk utilitas DBMS_DATAPUMP
Oracle (metode Oracle untuk menerapkan fungsi EXPDP
/IMPDP
berinteraksi langsung dengan paket DBMS_DATAPUMP
). Untuk melakukan konversi
dari kode PL/SQL DBMS_DATAPUMP
Oracle, gunakan kode alternatif (misalnya, Bash
dan Python) untuk menerapkan elemen logika dan program Cloud SQL untuk PostgreSQL,
pg_dump
dan pg_restore
untuk menjalankan operasi ekspor/impor.
Oracle SQL*Loader dapat digunakan untuk memuat file eksternal ke dalam tabel database. SQL*Loader dapat menggunakan file konfigurasi (disebut file kontrol), yang menyimpan metadata yang digunakan oleh SQL*Loader untuk menentukan cara data diurai dan dimuat ke dalam database Oracle. SQL*Loader mendukung file sumber tetap dan variabel.
Utilitas pg_dump
dan pg_restore
berjalan di tingkat klien dan terhubung dari jarak jauh ke instance Cloud SQL untuk PostgreSQL. File dump dibuat di sisi klien. Untuk memuat file eksternal ke Cloud SQL untuk PostgreSQL, gunakan perintah COPY
dari antarmuka klien psql, atau gunakan Dataflow atau Dataproc. Bagian ini terutama berfokus pada
perintah COPY
Cloud SQL untuk PostgreSQL, yang merupakan padanan langsung
dengan utilitas SQL*Loader Oracle.
Untuk pemuatan data yang lebih kompleks ke database Cloud SQL untuk PostgreSQL, pertimbangkan untuk menggunakan Dataflow atau Dataproc, yang melibatkan pembuatan proses ETL.
Untuk mengetahui informasi selengkapnya tentang Dataflow, baca Dokumentasi Dataflow, dan untuk mengetahui informasi lebih lanjut tentang Dataproc, lihat Dokumentasi Dataproc.
pg_dump
Utilitas klien
pg_dump
melakukan pencadangan dan output yang konsisten dalam format file
skrip atau arsip. Dump skrip adalah sekumpulan pernyataan SQL yang dapat dieksekusi untuk
mereproduksi definisi objek database dan data tabel asli. Pernyataan SQL ini dapat dimasukkan ke klien PostgreSQL mana pun untuk dipulihkan. Cadangan dalam format file
arsip harus digunakan dengan pg_restore
selama operasi pemulihan, tetapi
cadangan memungkinkan objek selektif dipulihkan dan dirancang agar portabel di seluruh arsitektur.
Penggunaan:
-- Single database backup & specific tables backup # pg_dump database_name > outputfile.sql # pg_dump -t table_name database_name > outputfile.sql -- Dump all tables in a given schema with a prefix and ignore a given table # pg_dump -t 'schema_name.table_prefixvar>*' -T schema_name.ignore_table database_name > outputfile.sql -- Backup metadata only - Schema only # pg_dump -s database_name > metadata.sql -- Backup in custom-format archive pg_dump -Fc database_name > outputfile.dump
pg_restore
Program klien
pg_restore
memulihkan database PostgreSQL dari arsip yang dibuat oleh
pg_dump
. Jika nama database tidak ditentukan, pg_restore
akan meng-output skrip
yang berisi perintah SQL yang diperlukan untuk membuat ulang database yang mirip dengan
pg_dump
.
Penggunaan:
-- Connect to an existing database and restore the backup archive
pg_restore -d database_name outputfile.dump
-- Create and restore the database from the backup archive
pg_restore -C -d database_name outputfile.dump
Perintah COPY
psql
psql adalah antarmuka klien command line ke Cloud SQL untuk PostgreSQL. Dengan
perintah
COPY
, psql membaca file yang ditentukan dalam argumen perintah dan merutekan
data antara server dan sistem file lokal.
Penggunaan:
-- Connect to an existing database and restore the backup archive psql -p 5432 -U username -h cloud_sql_instance_ip -d database_name -c "\copy emps from '/opt/files/inputfile.csv' WITH csv;" -W
Ekspor/impor Cloud SQL untuk PostgreSQL:
Link dokumentasi berikut menggambarkan cara menggunakan gsutil
dan Google Cloud CLI untuk berinteraksi dengan instance Cloud SQL dan
Cloud Storage untuk menerapkan operasi
Ekspor
dan
Impor.
Pencadangan dan pemulihan tingkat instance
Di Cloud SQL, tugas pencadangan dan pemulihan ditangani melalui pencadangan database otomatis dan on demand.
Dengan cadangan, Anda dapat memulihkan instance Cloud SQL untuk memulihkan data yang hilang atau memulihkan data dari masalah instance. Sebaiknya aktifkan pencadangan otomatis untuk instance apa pun yang berisi data yang perlu dilindungi dari kehilangan atau kerusakan.
Anda dapat membuat cadangan kapan saja. Hal ini berguna jika Anda akan melakukan operasi yang berisiko pada database, atau jika Anda memerlukan cadangan dan tidak ingin menunggu periode pencadangan. Anda dapat membuat cadangan sesuai permintaan untuk instance apa pun, baik instance tersebut telah mengaktifkan pencadangan otomatis atau belum.
Pencadangan sesuai permintaan tidak dihapus secara otomatis seperti pencadangan otomatis. Pesan akan tetap ada sampai Anda menghapusnya atau sampai instance-nya dihapus. Karena tidak dihapus secara otomatis, pencadangan sesuai permintaan dapat berdampak jangka panjang pada biaya tagihan jika Anda tidak menghapusnya
Saat mengaktifkan pencadangan otomatis, Anda menentukan periode pencadangan 4 jam. Pencadangan dimulai selama periode ini. Jika memungkinkan, jadwalkan pencadangan saat instance Anda memiliki aktivitas paling sedikit. Jika data Anda belum berubah sejak pencadangan terakhir, tidak ada cadangan yang diambil.
Cloud SQL menyimpan hingga 7 cadangan otomatis untuk setiap instance. Penyimpanan yang digunakan oleh cadangan dikenai biaya yang lebih rendah, bergantung pada region tempat cadangan disimpan. Untuk mengetahui daftar harga selengkapnya, lihat Harga Cloud SQL untuk PostgreSQL.
Anda dapat menggunakan pemulihan instance database Cloud SQL untuk PostgreSQL guna memulihkan ke instance yang sama, menimpa data yang ada, atau memulihkan ke instance lain. Dengan Cloud SQL untuk PostgreSQL, Anda juga dapat memulihkan database PostgreSQL ke titik waktu tertentu dengan mengaktifkan opsi pencadangan otomatis.
Untuk mengetahui informasi selengkapnya tentang cara membuat atau mengelola pencadangan on demand dan otomatis, lihat Membuat dan mengelola pencadangan on demand dan otomatis.
Tabel berikut mencantumkan operasi pencadangan dan pemulihan umum di Oracle dan padanannya di Cloud SQL untuk PostgreSQL:
Deskripsi | Oracle (Pengelola Pemulihan - RMAN ) |
Cloud SQL untuk PostgreSQL |
---|---|---|
Pencadangan otomatis terjadwal | Buat tugas DBMS_SCHEDULER yang akan menjalankan skrip RMAN Anda secara terjadwal. |
gcloud sql instances patch INSTANCE_NAME --backup-start-time HH:MM
|
Pencadangan database lengkap secara manual | BACKUP DATABASE PLUS ARCHIVELOG;
|
gcloud sql backups create --async --instance INSTANCE_NAME
|
Memulihkan database | RUN
|
gcloud sql backups list --instance INSTANCE_NAME
|
Diferensial inkremental | BACKUP INCREMENTAL LEVEL 0 DATABASE;
|
Semua pencadangan dilakukan secara inkremental, tanpa opsi untuk memilih jenis inkremental. |
Kumulatif inkremental | BACKUP INCREMENTAL LEVEL 0 CUMULATIVE DATABASE;
|
Semua pencadangan dilakukan secara inkremental, tanpa opsi untuk memilih jenis inkremental. |
Memulihkan database ke titik waktu tertentu | RUN
|
gcloud sql instances clone SOURCE_INSTANCE_NAME NEW_INSTANCE_NAME \
|
Log arsip database cadangan | BACKUP ARCHIVELOG ALL;
|
Tidak didukung. |
Instance standby untuk implementasi operasi hanya baca dan pemulihan dari bencana
Oracle Active Data Guard memungkinkan instance standby berfungsi sebagai endpoint hanya baca, sementara data baru masih diterapkan melalui log arsip dan pengulangan. Anda juga dapat menggunakan Oracle GoldenGate guna mengaktifkan instance tambahan untuk tujuan pembacaan sementara modifikasi data diterapkan secara real time, yang berfungsi sebagai solusi Change Data Capture (CDC).
Cloud SQL untuk PostgreSQL menggunakan instance standby untuk ketersediaan tinggi. Instance ini tetap disinkronkan dengan instance utama melalui replikasi tingkat disk. Tidak seperti Active Data Guard, layanan ini tidak terbuka untuk pembacaan atau penulisan. Saat jaringan utama mati atau tidak responsif selama sekitar 60 detik, sistem utama akan otomatis beralih ke instance standby. Dalam beberapa detik, pertukaran peran dan jabatan utama yang baru mengambil alih.
Cloud SQL untuk PostgreSQL juga menawarkan replika baca untuk menskalakan permintaan baca. Instance ini dirancang untuk melimpahkan operasi baca dari instance utama, bukan sebagai instance standby untuk pemulihan dari bencana. Tidak seperti instance standby, replika baca tetap sinkron dengan replika baca utama secara asinkron. Ini dapat berada di zona yang berbeda dari zona utama dan juga di region yang berbeda. Anda dapat membuat replika baca menggunakan Google Cloud Console atau gcloud CLI. Perhatikan bahwa beberapa operasi memerlukan reboot instance (misalnya, menambahkan ketersediaan tinggi ke instance utama yang ada).
Logging dan pemantauan
File log pemberitahuan Oracle adalah sumber utama untuk mengidentifikasi peristiwa sistem umum dan peristiwa error agar dapat memahami siklus proses instance database Oracle apa pun (terutama memecahkan masalah peristiwa kegagalan dan peristiwa error).
Log pemberitahuan Oracle menampilkan informasi mengenai hal berikut:
- Peringatan dan error instance database Oracle (
ORA-
+ angka error). - Peristiwa startup dan penonaktifan instance database Oracle.
- Masalah terkait jaringan dan koneksi.
- Database mengulang peristiwa pengalihan log.
- File rekaman aktivitas Oracle mungkin disebutkan dengan link untuk detail tambahan terkait peristiwa database tertentu.
Oracle menyediakan file log khusus untuk berbagai layanan seperti LISTENER, ASM, dan Enterprise Manager (OEM), yang tidak memiliki komponen yang setara di Cloud SQL untuk PostgreSQL.
Melihat log operasi Cloud SQL untuk PostgreSQL
Cloud Logging adalah platform utama untuk melihat semua entri log di postgres.log
(setara dengan alert.log
di Oracle). Anda dapat memfilter menurut tingkat peristiwa log (misalnya,
Penting, Error, atau Peringatan). Jangka waktu peristiwa dan pemfilteran teks bebas juga
tersedia.
Pemantauan instance database Cloud SQL untuk PostgreSQL
Dasbor pemantauan UI utama Oracle merupakan bagian dari produk OEM dan Grid/Cloud Control (misalnya, Grafik Aktivitas Teratas) dan berguna untuk pemantauan instance database secara real-time di tingkat sesi atau pernyataan SQL. Cloud SQL untuk PostgreSQL memberikan kemampuan pemantauan serupa menggunakan Konsol Google Cloud. Anda dapat melihat informasi ringkas tentang instance database Cloud SQL untuk PostgreSQL dengan beberapa metrik pemantauan seperti pemakaian CPU, penggunaan penyimpanan, penggunaan memori, operasi baca/tulis, byte masuk/keluar, koneksi aktif, dan lainnya.
Cloud Logging mendukung metrik pemantauan tambahan untuk Cloud SQL untuk PostgreSQL. Screenshot berikut menunjukkan grafik kueri Cloud SQL untuk PostgreSQL selama 12 jam terakhir.
Pemantauan replika baca Cloud SQL untuk PostgreSQL
Anda dapat memantau replika baca dengan cara yang sama seperti Anda memantau instance utama, menggunakan metrik pemantauan konsol Google Cloud (seperti yang dijelaskan sebelumnya). Selain itu, ada metrik pemantauan khusus untuk memantau penundaan replikasi, yaitu menentukan jeda antara instance utama ke instance replika baca dalam byte (dapat dipantau dari tab ringkasan instance replika-baca) di konsol Google Cloud).
Anda dapat menggunakan gcloud CLI untuk mengambil status replikasi:
gcloud sql instances describe REPLICA_NAME
Anda juga dapat melakukan pemantauan replikasi menggunakan perintah dari klien PostgreSQL, yang menyediakan status database utama dan standby.
Anda dapat menggunakan pernyataan SQL berikut untuk memverifikasi status replika baca:
postgres=> select * from pg_stat_replication;
Pemantauan Cloud SQL untuk PostgreSQL
Bagian ini menjelaskan metode pemantauan Cloud SQL untuk PostgreSQL dasar yang dianggap sebagai tugas rutin yang dilakukan oleh administrator database (DBA) seperti Oracle atau Cloud SQL untuk PostgreSQL.
Pemantauan sesi
Pemantauan sesi Oracle dilakukan dengan membuat kueri tampilan performa dinamis
yang dikenal sebagai tampilan "V$". Tampilan V$SESSION
dan V$PROCESS
biasanya digunakan untuk mendapatkan insight real-time tentang aktivitas database saat ini dengan menggunakan pernyataan SQL. Anda dapat memantau aktivitas sesi dengan membuat kueri
tampilan dinamis
pg_stat_activity
:
postgres=> select * from pg_stat_activity;
Pemantauan transaksi yang panjang
Anda dapat mengidentifikasi kueri yang berjalan lama dengan menerapkan filter yang sesuai pada
kolom seperti query_start
dan state
dalam
tampilan dinamis
pg_stat_activity
.
Pemantauan kunci
Anda dapat memantau penguncian database menggunakan
tampilan dinamis
pg_locks
, yang memberikan informasi real-time tentang kemunculan kunci yang
dapat menyebabkan masalah performa.
Langkah selanjutnya
- Pelajari akun pengguna Cloud SQL untuk PostgreSQL lebih lanjut.
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.