Mysql postgresql mariadb merupakan contoh contoh dari

Dengan menggunakan basis data PostgreSQL yang dapat dipindahkan untuk Amazon RDS, Anda dapat memindahkan basis data PostgreSQL antara dua instans DB. Ini adalah cara yang sangat cepat untuk bermigrasi database besar antara instans DB yang berbeda. Untuk menggunakan pendekatan ini, instans DB Anda harus menjalankan versi besar dari PostgreSQL.

Kemampuan ini mengharuskan Anda menginstalpg_transportekstensi baik sumber dan instans DB tujuan. Klasterpg_transportekstensi menyediakan mekanisme transportasi fisik yang memindahkan file basis data dengan pemrosesan minimal. Mekanisme ini memindahkan data jauh lebih cepat daripada proses dump dan load tradisional, dengan waktu henti yang lebih sedikit.

Basis data PostgreSQL yang dapat dipindahkan tersedia dalam RDS untuk PostgreSQL 11.5 dan yang lebih tinggi, serta RDS untuk PostgreSQL versi 10.10 dan yang lebih tinggi.

Untuk mengangkut instans PostgreSQL DB dari satu RDS untuk instans PostgreSQL DB ke instance PostgreSQL lainnya, Anda terlebih dahulu mengatur instance sumber dan tujuan seperti yang dijelaskan di Menyiapkan instans DB untuk transport. Anda kemudian dapat mengangkut database dengan menggunakan fungsi yang dijelaskan dalam Mengangkut basis data PostgreSQL.

Topik

  • Batasan untuk menggunakan basis data PostgreSQL yang dapat diangkut
  • Menyiapkan untuk mengangkut basis data PostgreSQL
  • Mengangkut database PostgreSQL ke tujuan dari sumber
  • Apa yang terjadi selama transportasi basis data
  • Referensi fungsi basis data yang dapat dipindahkan
  • Database diangkut referensi parameter

Batasan untuk menggunakan basis data PostgreSQL yang dapat diangkut

Basis data yang dapat dipindahkan memiliki batasan berikut:

  • Replika baca – Anda tidak dapat menggunakan basis data yang dapat diangkut pada replika baca atau contoh induk replika baca.

  • Jenis kolom yang tidak didukung – Anda tidak dapat menggunakan tipe data reg dalam tabel basis data apa pun yang Anda rencanakan untuk dipindahkan dengan metode ini. Jenis ini bergantung pada objek katalog sistem ID (OID), yang sering berubah selama pengangkutan.

  • Tablespace – Semua objek basis data sumber harus dalam tablespace pg_default default.

  • Kompatibilitas – Instans DB sumber dan tujuan harus menjalankan versi mayor PostgreSQL yang sama.

  • Ekstensi— Instans DB sumber hanya dapat memilikipg_transportdipasang.

  • Peran dan ACL – Informasi hak akses dan kepemilikan basis data sumber tidak dibawa ke basis data tujuan. Semua objek basis data dibuat dan dimiliki oleh pengguna tujuan transportasi lokal.

  • Transportasi yang bersamaan- Instance DB tunggal dapat mendukung hingga 32 transportasi bersamaan, termasuk impor dan ekspor, jika proses pekerja telah dikonfigurasi dengan benar.

  • Hanya PostgreSQL RDS- Database yang dapat diangkut PostgreSQL didukung pada RDS untuk instans DB PostgreSQL saja. Anda tidak dapat menggunakannya dengan database atau database lokal yang berjalan di Amazon EC2.

Menyiapkan untuk mengangkut basis data PostgreSQL

Sebelum memulai, pastikan instans DB RDS untuk PostgreSQL memenuhi persyaratan berikut:

  • Instans DB RDS untuk sumber dan tujuan harus menjalankan versi PostgreSQL yang sama.

  • DB tujuan tidak dapat memiliki database dengan nama yang sama dengan DB sumber yang ingin Anda angkut.

  • Akun yang Anda gunakan untuk menjalankan kebutuhan transportasirds_superuserhak istimewa pada sumber DB dan DB tujuan.

  • Grup keamanan untuk instans DB sumber harus mengizinkan akses masuk dari instans DB tujuan. Ini mungkin sudah terjadi jika instance DB sumber dan tujuan Anda berada di VPC. Untuk informasi lain tentang grup keamanan, lihat Mengendalikan akses dengan kelompok keamanan.

Mengangkut basis data dari instans DB ke instans DB tujuan memerlukan beberapa perubahan pada grup parameter DB yang terkait dengan setiap instans. Itu berarti Anda harus membuat grup parameter DB khusus untuk instans DB sumber dan membuat grup parameter DB khusus untuk instans DB tujuan.

Jika instans DB Anda sudah dikonfigurasi menggunakan grup parameter DB kustom, Anda dapat memulai dengan langkah 2 dalam prosedur berikut.

Untuk mengkonfigurasi parameter grup DB kustom untuk mengangkut database

Untuk langkah-langkah berikut, gunakan akun yang memilikirds_superuserHak istimewa.

  1. Jika instans DB sumber dan tujuan menggunakan grup parameter DB default, Anda perlu membuat parameter DB kustom menggunakan versi yang sesuai untuk instans Anda. Anda melakukan ini sehingga Anda dapat mengubah nilai untuk beberapa parameter. Untuk informasi selengkapnya, lihat Bekerja dengan grup parameter.

  2. Dalam grup parameter DB kustom, ubah nilai untuk parameter berikut:

    • shared_preload_libraries— Tambahkanpg_transportke daftar perpustakaan.

    • pg_transport.num_workers— Nilai default-nya adalah 3. Tingkatkan atau kurangi nilai ini sesuai kebutuhan untuk database Anda. Untuk database 200 GB, kami sarankan tidak lebih besar dari 8. Perlu diingat bahwa jika Anda meningkatkan nilai default untuk parameter ini, Anda juga harus meningkatkan nilaimax_worker_processes.

    • pg_transport.work_mem- Nilai default adalah 128 MB atau 256 MB, tergantung pada versi PostgreSQL. Pengaturan default biasanya dapat dibiarkan tidak berubah.

    • max_worker_processes- Nilai parameter ini perlu diatur menggunakan perhitungan berikut:

      3 * pg_transport.num_workers) + 9

      Nilai ini diperlukan pada tujuan untuk menangani berbagai proses pekerja latar belakang yang terlibat dalam transportasi. Untuk mempelajari lebih lanjut tentangmax_worker_processes,melihatKonsumsi sumber dayadalam dokumentasi PostgreSQL.

    Untuk informasi lebih lanjut tentangpg_transportparameter, lihatDatabase diangkut referensi parameter .

  3. Reboot sumber RDS untuk instans PostgreSQL DB dan instance tujuan sehingga pengaturan untuk parameter berlaku.

  4. Connect ke RDS Anda untuk instans DB sumber PostgreSQL.

    psql --host=source-instance.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
  5. Hapus ekstensi asing dari skema publik instans DB. Hanyapg_transportekstensi diperbolehkan selama operasi transportasi yang sebenarnya.

  6. Instalpg_transportekstensi sebagai berikut:

    postgres=> CREATE EXTENSION pg_transport;
    CREATE EXTENSION
  7. Connect ke RDS Anda untuk instans DB tujuan PostgreSQL. Hapus ekstensi asing, dan kemudian instalpg_transportekstensi.

    postgres=> CREATE EXTENSION pg_transport;
    CREATE EXTENSION

Mengangkut database PostgreSQL ke tujuan dari sumber

Setelah Anda menyelesaikan proses yang dijelaskan dalam Menyiapkan untuk mengangkut basis data PostgreSQL, Anda dapat memulai transportasi. Untuk melakukannya, jalankan fungsi transport.import_from_server pada instans DB tujuan. Dalam sintaks berikut Anda dapat menemukan parameter fungsi.

SELECT transport.import_from_server( 
   'source-db-instance-endpoint', 
    source-db-instance-port, 
   'source-db-instance-user', 
   'source-user-password', 
   'source-database-name', 
   'destination-user-password', 
   false);

Klasterfalsenilai yang ditunjukkan dalam contoh memberitahu fungsi bahwa ini bukan dry run. Untuk menguji pengaturan transport, Anda dapat menentukantrueuntukdry_runopsi ketika Anda memanggil fungsi, seperti yang ditunjukkan berikut:

postgres=> SELECT transport.import_from_server(
    'docs-lab-source-db.666666666666aws-region.rds.amazonaws.com', 5432,
    'postgres', '********', 'labdb', '******', true);
INFO:  Starting dry-run of import of database "labdb".
INFO:  Created connections to remote database        (took 0.03 seconds).
INFO:  Checked remote cluster compatibility          (took 0.05 seconds).
INFO:  Dry-run complete                         (took 0.08 seconds total).
 import_from_server
--------------------

(1 row)

Garis INFO adalah output karenapg_transport.timingparameter diatur ke nilai defaultnya,true. Aturdry_runkepadafalseketika Anda menjalankan perintah dan database sumber diimpor ke tujuan, seperti yang ditunjukkan berikut:

INFO:  Starting import of database "labdb".
INFO:  Created connections to remote database        (took 0.02 seconds).
INFO:  Marked remote database as read only           (took 0.13 seconds).
INFO:  Checked remote cluster compatibility          (took 0.03 seconds).
INFO:  Signaled creation of PITR blackout window     (took 2.01 seconds).
INFO:  Applied remote database schema pre-data       (took 0.50 seconds).
INFO:  Created connections to local cluster          (took 0.01 seconds).
INFO:  Locked down destination database              (took 0.00 seconds).
INFO:  Completed transfer of database files          (took 0.24 seconds).
INFO:  Completed clean up                            (took 1.02 seconds).
INFO:  Physical transport complete              (took 3.97 seconds total).
import_from_server
--------------------
(1 row)

Fungsi ini mengharuskan Anda memberikan kata sandi pengguna basis data. Oleh karena itu, kami menyarankan Anda untuk mengubah kata sandi dari peran pengguna yang Anda gunakan setelah transportasi selesai. Atau, Anda dapat menggunakan variabel SQL bind untuk membuat peran pengguna sementara. Gunakan peran sementara ini untuk transportasi, lalu buang peran tersebut setelahnya.

Jika transportasi Anda tidak berhasil, Anda mungkin melihat pesan kesalahan yang serupa dengan berikut ini:

pg_transport.num_workers=8 25% of files transported failed to download file data

Pesan galat “gagal mengunduh data file” menunjukkan bahwa jumlah proses pekerja tidak diatur dengan benar untuk ukuran database. Anda mungkin perlu menambah atau mengurangi nilai yang ditetapkanpg_transport.num_workers. Setiap kegagalan melaporkan persentase penyelesaian, sehingga Anda dapat melihat dampak perubahan Anda. Misalnya, mengubah pengaturan dari 8 menjadi 4 dalam satu kasus menghasilkan hal berikut:

pg_transport.num_workers=4 75% of files transported failed to download file data

Perlu diingat bahwamax_worker_processesparameter juga diperhitungkan selama proses transportasi. Dengan kata lain, Anda mungkin perlu memodifikasi keduanyapg_transport.num_workersdanmax_worker_processesuntuk berhasil mengangkut database. Contoh yang ditampilkan akhirnya bekerja ketikapg_transport.num_workersditetapkan ke 2:

pg_transport.num_workers=2 100% of files transported

Untuk informasi lebih lanjut tentangtransport.import_from_serverfungsi dan parameternya, lihatReferensi fungsi basis data yang dapat dipindahkan.

Apa yang terjadi selama transportasi basis data

Fitur basis data PostgreSQL yang dapat diangkut menggunakan model tarik untuk mengimpor basis data dari instans DB ke tujuan. Fungsi transport.import_from_server membuat basis data dalam transit pada instans DB tujuan. Basis data dalam transit tidak dapat diakses pada instans DB tujuan untuk durasi transportasi.

Ketika transportasi dimulai, semua sesi saat ini pada basis data sumber berakhir. Setiap basis data selain basis data sumber pada instans DB sumber tidak terpengaruh oleh transportasi.

Basis data sumber dimasukkan ke mode hanya-baca khusus. Saat berada dalam mode ini, Anda dapat terhubung ke basis data sumber dan menjalankan kueri baca saja. Namun, kueri yang mengaktifkan tulis dan beberapa jenis perintah lain diblokir. Hanya basis data sumber spesifik yang diangkut yang terpengaruh oleh pembatasan ini.

Selama transportasi, Anda tidak dapat memulihkan instans DB tujuan ke suatu titik waktu. Ini karena transportasi tersebut tidak bersifat transaksional dan tidak menggunakan log tulis di muka PostgreSQL untuk mencatat perubahan. Jika instans tujuan DB memiliki pencadangan otomatis yang diaktifkan, pencadangan otomatis diambil setelah pengiriman selesai. Point-in-time mengembalikan yang tersedia untuk kalisetelahcadangan selesai.

Jika transportasi gagal, ekstensi pg_transport berupaya untuk membatalkan semua perubahan ke instans DB sumber dan tujuan. Ini termasuk menghapus basis data yang diangkut sebagian di tujuan. Bergantung pada jenis kegagalan, basis data sumber dapat terus menolak kueri yang mengaktifkan tulis. Jika ini terjadi, gunakan perintah berikut untuk memungkinkan kueri yang mengaktifkan tulis.

ALTER DATABASE db-name SET default_transaction_read_only = false;

Referensi fungsi basis data yang dapat dipindahkan

Fungsi transport.import_from_server memindahkan basis data PostgreSQL dengan mengimpornya dari sumber instans DB ke instans DB tujuan. Ini dilakukan dengan menggunakan mekanisme transportasi koneksi basis data fisik.

Sebelum memulai transport, fungsi ini memverifikasi bahwa sumber dan instans DB tujuan adalah versi yang sama dan kompatibel untuk migrasi. Hal ini juga menegaskan bahwa instans DB tujuan memiliki cukup ruang untuk sumber.

Sintaks

transport.import_from_server(
   host text,
   port int,
   username text,
   password text,
   database text,
   local_password text,
   dry_run bool
)

Nilai Pengembalian

Tidak ada.

Parameter

Anda dapat menemukan deskripsi parameter fungsi transport.import_from_server dalam tabel berikut.

ParameterDeskripsi
host

Titik akhir instans DB sumber.

port Suatu bilangan bulat mewakili port instans DB sumber.

Instans DB PostgreSQL sering menggunakan port 5432.

username

Pengguna instans DB sumber. Pengguna ini harus menjadi anggota peran rds_superuser.

password

Kata sandi pengguna instans DB sumber.

database

Nama basis data dalam instans DB sumber untuk dikirim.

local_password

Kata sandi lokal pengguna saat ini untuk instans DB tujuan. Pengguna ini harus menjadi anggota peran rds_superuser.

dry_run

Nilai Boolean opsional yang menetapkan apakah akan melakukan dry run. Default-nya adalah false, yang berarti transportasi berlanjut.

Untuk mengonfirmasi kompatibilitas antara instans DB sumber dan tujuan tanpa melakukan pengangkutan sebenarnya, tetapkan dry_run ke true.

Contoh

Sebagai contoh, lihat Mengangkut database PostgreSQL ke tujuan dari sumber.

Database diangkut referensi parameter

Beberapa parameter mengendalikan perilakupg_transportekstensi. Selanjutnya, Anda dapat menemukan deskripsi parameter ini.

pg_transport.num_workers

Jumlah pekerja yang akan digunakan untuk proses transportasi. Default-nya adalah 3. Nilai yang valid adalah 1–32. Bahkan pengangkutan basis data terbesar biasanya membutuhkan kurang dari 8 pekerja. Nilai pengaturan ini pada instans DB tujuan digunakan oleh tujuan dan sumber selama transportasi.

pg_transport.timing

Menentukan apakah akan melaporkan informasi waktu selama transportasi. Default-nya adalahtrue, yang berarti bahwa informasi waktu dilaporkan. Kami menyarankan agar Anda membiarkan parameter ini diatur ketruesehingga Anda dapat memantau kemajuan. Misalnya output, lihat Mengangkut database PostgreSQL ke tujuan dari sumber.

pg_transport.work_mem

Jumlah maksimum memori untuk dialokasikan untuk setiap pekerja. Standarnya adalah 131072 kilobyte (KB) atau 262144 KB (256 MB), tergantung pada versi PostgreSQL. Nilai minimumnya adalah 64 megabyte (65536 KB). Nilai yang valid dalam kilobyte (KBs) sebagai unit basis-2 biner, yaitu 1 KB = 1024 byte.

Transportasi mungkin menggunakan lebih sedikit memori dari yang ditentukan dalam parameter ini. Bahkan pengangkutan basis data besar biasanya membutuhkan kurang dari 256 MB (262144 KB) memori per pekerja.

Apa itu MariaDB dan MySQL?

MariaDB merupakan salah satu software pengelolaan database yang dilengkapi dengan fitur yang mumpuni serta mengutamakan kompatibilitas dengan MySQL. Sedangkan MySQL sendiri merupakan sistem pengelolaan database relasional yang bisa dipakai untuk mengelola database kompleks.

Apa saja contoh database engine?

Contoh Database Terpopuler di Dunia.
Oracle. ... .
MySQL. ... .
Microsoft SQL Server. ... .
PostgreSQL. ... .
MongoDB. ... .
6. IBM DB2. ... .
7. Redis. ... .
8. ElasticSearch..

MySQL menggunakan model database jenis apa?

Database relasional merupakan tipe database yang paling populer dan sering digunakan. Beberapa produk yang biasa digunakan adalah Oracle, SQL Server, MySQL, IBM DB2, dan SQLite.

1 Berikan contoh apa saja yang termasuk rdbms?

Contoh RDBMS antara lain: MySQL. PostgreSQL. Oracle DB.