PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menggunakan Otomatisasi untuk Mempercepat Tes Rilis di PostgreSQL

Memiliki lingkungan pengujian adalah suatu keharusan di semua perusahaan. Mungkin diperlukan untuk menguji perubahan atau rilis baru aplikasi, atau bahkan untuk menguji aplikasi Anda yang sudah ada dengan versi PostgreSQL baru. Bagian tersulit dari ini adalah, pertama, cara menerapkan lingkungan pengujian yang semirip mungkin dengan lingkungan produksi, dan cara mempertahankan lingkungan tersebut tanpa membuat ulang semuanya dari awal.

Di blog ini, kita akan melihat cara menerapkan lingkungan pengujian dengan berbagai cara menggunakan ClusterControl, yang akan membantu Anda mengotomatiskan proses dan menghindari tugas manual yang memakan waktu.

Replikasi Cluster-to-Cluster

Sejak ClusterControl 1.7.4 ada fitur yang disebut Replikasi Cluster-to-Cluster. Ini memungkinkan Anda menjalankan replikasi di antara dua kluster otonom.

Kita akan melihat cara menggunakan fitur ini untuk cluster PostgreSQL yang ada. Untuk tugas ini, kami akan menganggap Anda telah menginstal ClusterControl dan Cluster Utama telah digunakan menggunakannya.

Membuat Replikasi Cluster-to-Cluster

Untuk membuat Replikasi Cluster-to-Cluster baru dari UI ClusterControl, buka ClusterControl -> Pilih PostgreSQL Cluster -> Cluster Actions -> Create Slave Cluster.

Kluster Budak akan dibuat dengan mengalirkan data dari Kluster Utama saat ini.

Anda harus menentukan kredensial dan port SSH, nama untuk Slave Cluster Anda, dan jika Anda ingin ClusterControl menginstal perangkat lunak dan konfigurasi yang sesuai untuk Anda.

Setelah menyiapkan informasi akses SSH, Anda harus menentukan versi database, datadir, port, dan kredensial admin. Karena akan menggunakan replikasi streaming, pastikan Anda menggunakan versi database yang sama, dan kredensial harus sama dengan yang digunakan oleh Klaster Utama.

Pada langkah ini, Anda perlu menambahkan server ke Slave Cluster baru. Untuk tugas ini, Anda dapat memasukkan Alamat IP atau Nama Host dari node database.

Anda dapat memantau status pekerjaan di monitor aktivitas ClusterControl. Setelah tugas selesai, Anda dapat melihat cluster di layar utama ClusterControl.

ClusterControl CLI

ClusterControl CLI, juga dikenal sebagai s9s, adalah alat baris perintah yang diperkenalkan di ClusterControl versi 1.4.1 untuk berinteraksi, mengontrol, dan mengelola cluster database menggunakan sistem ClusterControl. ClusterControl CLI membuka pintu baru untuk otomatisasi cluster di mana Anda dapat dengan mudah mengintegrasikannya dengan alat otomatisasi penyebaran yang ada seperti Ansible, Puppet, Chef, dll. Anda juga dapat menggunakan alat ClusterControl ini untuk membuat Slave Cluster. Mari kita lihat contohnya:

$ s9s cluster --create --cluster-name=PostgreSQL1rep --cluster-type=postgresql --provider-version=13 --nodes="192.168.100.133"  --os-user=root --os-key-file=/root/.ssh/id_rsa --db-admin=admin --db-admin-passwd=********* --vendor=postgres --remote-cluster-id=14 --log

Sekarang, mari kita lihat parameter yang digunakan lebih detail:

  • Cluster:Untuk membuat daftar dan memanipulasi cluster.

  • Buat:Buat dan instal cluster baru.

  • Nama-Cluster:Nama Cluster Budak yang baru.

  • Cluster-type:Jenis cluster yang akan dipasang.

  • Versi penyedia:Versi perangkat lunak.

  • Node:Daftar node baru di Slave Cluster.

  • Os-user:Nama pengguna untuk perintah SSH.

  • Os-key-file:File kunci yang digunakan untuk koneksi SSH.

  • Db-admin:Nama pengguna admin database.

  • Db-admin-passwd:Kata sandi untuk admin database.

  • Remote-cluster-id:ID Cluster Master untuk Replikasi Cluster-to-Cluster.

  • Log:Tunggu dan pantau pesan pekerjaan.

Mengelola Replikasi Cluster-to-Cluster

Sekarang Anda memiliki dan menjalankan Replikasi Cluster-to-Cluster, ada beberapa tindakan yang harus dilakukan pada topologi ini menggunakan ClusterControl dari UI dan CLI.

Membangun Kembali Cluster Budak

Untuk membangun kembali Cluster Slave, buka ClusterControl -> Pilih Slave Cluster -> Nodes -> Pilih Node -> Node Actions -> Rebuild Replication Slave.

ClusterControl akan melakukan langkah-langkah berikut:

  • Hentikan Server PostgreSQL

  • Hapus konten dari datadirnya

  • Streaming cadangan dari Master ke Slave menggunakan pg_basebackup

  • Mulai Budak

Anda juga dapat membangun kembali Cluster Slave menggunakan perintah berikut dari server ClusterControl:

$ s9s replication --stage --master="192.168.100.125" --slave="192.168.100.133" --cluster-id=15 --remote-cluster-id=14 --log

Parameternya adalah:

  • Replikasi:Untuk memantau dan mengontrol replikasi data.

  • Tahap:Panggung/Bangun Ulang Budak Replikasi.

  • Master:Master replikasi di cluster master.

  • Slave:Slave replikasi di cluster slave.

  • Cluster-id:ID Cluster Slave.

  • Remote-cluster-id:ID Cluster Master.

  • Log:Tunggu dan pantau pesan pekerjaan.

Buat Cluster dari Cadangan

Cara lain untuk membuat lingkungan pengujian adalah dengan membuat kluster baru dari cadangan Kluster Utama Anda. Untuk ini, buka ClusterControl -> Pilih cluster PostgreSQL Anda -> Backup. Di sana, pilih cadangan yang akan dipulihkan dari daftar.

Sekarang, Anda dapat memulihkan cadangan ini di database Anda saat ini, di node terpisah, atau membuat cluster baru dari cadangan ini.

Opsi “Buat Cluster Dari Cadangan” akan membuat Cluster PostgreSQL baru dari cadangan yang dipilih.

Anda perlu menambahkan kredensial OS dan database serta informasi untuk menerapkan cluster baru. Saat tugas ini selesai, Anda akan melihat cluster baru di UI ClusterControl.

Pulihkan Cadangan di Host Mandiri

Di bagian Cadangan yang sama, Anda dapat memilih opsi “Pulihkan dan verifikasi pada host mandiri” untuk memulihkan cadangan di node terpisah.

Di sini Anda dapat menentukan apakah Anda ingin ClusterControl menginstal perangkat lunak di node baru, dan menonaktifkan firewall atau AppArmor/SELinux (tergantung pada OS). Anda dapat membuat node tetap aktif dan berjalan, atau ClusterControl dapat mematikan layanan database hingga pekerjaan pemulihan berikutnya. Setelah selesai, Anda akan melihat cadangan yang dipulihkan/diverifikasi dalam daftar cadangan yang ditandai dengan tanda centang.

Jika Anda tidak ingin melakukan tugas ini secara manual, Anda dapat menjadwalkan proses ini menggunakan Fitur Verifikasi Cadangan, untuk mengulangi tugas ini secara berkala di Tugas Cadangan.

Verifikasi Cadangan ClusterControl Otomatis

Di ClusterControl -> Pilih Cluster PostgreSQL Anda -> Cadangan -> Buat Cadangan.

Fitur verifikasi cadangan otomatis tersedia untuk pencadangan terjadwal. Saat menjadwalkan pencadangan, selain memilih opsi umum seperti metode atau penyimpanan, Anda juga perlu menentukan jadwal/frekuensi.

Menggunakan ClusterControl, Anda dapat memilih metode pencadangan yang berbeda, tergantung pada teknologi basis data, dan, di bagian yang sama, Anda dapat memilih server untuk mengambil cadangan, tempat Anda ingin menyimpan cadangan , dan jika Anda ingin mengunggah cadangan ke cloud (AWS, Azure, atau Google Cloud). Anda juga dapat mengompresi dan mengenkripsi cadangan Anda, dan menentukan periode penyimpanan.

Untuk menggunakan Fitur Verifikasi Cadangan, Anda memerlukan host (atau VM) khusus yang bukan bagian dari cluster. ClusterControl akan menginstal perangkat lunak dan akan memulihkan cadangan di host ini setiap kali pekerjaan berjalan.

Setelah restore, anda bisa melihat icon verifikasi di bagian ClusterControl Backup, sama seperti yang anda lakukan dengan melakukan verifikasi dengan cara manual ClusterControl, bedanya anda tidak perlu khawatir tentang tugas restorasi. ClusterControl akan mengembalikan cadangan setiap saat secara otomatis.

Kesimpulan

Menerapkan lingkungan pengujian setiap kali Anda membutuhkan dapat menjadi tugas yang memakan waktu, dan sulit untuk mempertahankannya agar tetap mutakhir. Akibatnya, terkadang perusahaan tidak menguji rilis baru atau pengujiannya salah, misalnya, menggunakan lingkungan yang berbeda dari lingkungan produksi.

Seperti yang Anda lihat, ClusterControl memungkinkan Anda menerapkan lingkungan yang sama dengan yang Anda gunakan dalam produksi hanya dengan beberapa klik, atau bahkan mengotomatiskan proses untuk menghindari tugas manual apa pun.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails:FATAL - Otentikasi rekan gagal untuk pengguna (PG::Error)

  2. Bagaimana saya bisa mengimpor data dari ASCII (ISO/IEC 8859-1) ke database Rails/PGSQL saya?

  3. Cara Mengaktifkan Log Kueri Lambat di PostgreSQL

  4. Tidak dapat INSERT:ERROR:nilai array harus dimulai dengan { atau informasi dimensi

  5. Bagaimana Atan2() Bekerja di PostgreSQL