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

Failover &Failback untuk PostgreSQL di Microsoft Azure

Cukup umum menggunakan cloud untuk menyimpan data Anda atau sebagai opsi failover jika terjadi kegagalan master. Ada beberapa penyedia cloud yang memungkinkan Anda untuk menyimpan, mengelola, mengambil, dan memanipulasi data melalui platform cloud; dapat diakses melalui internet. Setiap penyedia cloud memiliki penawaran produk dan fitur uniknya sendiri, masing-masing dengan model biaya yang berbeda.

Microsoft Azure adalah salah satu penyedia kaleng ini. Di blog ini, kita akan melihat fitur apa saja yang ditawarkan Microsoft Azure untuk penyimpanan utama, sebagai situs pemulihan bencana, dan secara khusus melihat bagaimana menangani lingkungan database campuran PostgreSQL.

Menerapkan Instance Database PostgreSQL di Microsoft Azure

Sebelum melakukan tugas ini, Anda perlu memutuskan bagaimana Anda akan menggunakan instans ini dan produk Azure mana yang terbaik untuk Anda. Ada dua cara dasar untuk menerapkan instans PostgreSQL di Microsoft Azure.

  1. Database Azure untuk PostgreSQL :Adalah layanan terkelola yang dapat Anda gunakan untuk menjalankan, mengelola, dan menskalakan database PostgreSQL yang sangat tersedia di cloud. Ini tersedia dalam dua opsi penerapan:Server Tunggal dan Skala Besar.
  2. Mesin Virtual :Menyediakan infrastruktur tervirtualisasi sesuai permintaan, skala tinggi, aman. Ini memiliki dukungan untuk Server Ubuntu, RedHat Enterprise Linux, SUSE Linux Enterprise Server, CentOS, Debian, dan Windows Server dan memungkinkan Anda untuk mengembangkan, menguji, menjalankan aplikasi, dan memperluas pusat data Anda hanya dalam beberapa detik.

Untuk blog ini kita akan melihat bagaimana kita dapat membuat Database Azure untuk PostgreSQL dan menggunakan Mesin Virtual Azure dari Portal Microsoft Azure.

Menyebarkan Database Azure untuk PostgreSQL

Jika Anda membuka Portal Azure -> Buat Sumber Daya -> Basis Data -> Basis Data Azure untuk PostgreSQL, Anda dapat memilih antara Server Tunggal atau Skala Besar. Untuk blog ini, kami akan menggunakan Server Tunggal, karena opsi Hyperscale sedang dalam pratinjau dan belum menawarkan SLA.

Di sini Anda perlu menambahkan beberapa informasi tentang instance PostgreSQL baru Anda; seperti langganan, nama server, kredensial pengguna, dan lokasi. Anda juga dapat memilih versi PostgreSQL yang akan digunakan (versi 9.5, 9.6, 10 atau 11 saat ini tersedia) dan perangkat keras virtual untuk menjalankannya (Compute + Storage).

Saat Anda menentukan perangkat keras, Anda akan melihat perkiraan harga secara nyata -waktu. Ini sangat berguna untuk menghindari kejutan besar di bulan depan. Setelah langkah ini, Anda hanya perlu mengonfirmasi konfigurasi sumber daya dan menunggu beberapa menit hingga Azure menyelesaikan pekerjaan pembuatan.

Setelah sumber daya baru dibuat, Anda dapat membuka Semua Sumber Daya untuk melihat opsi sumber daya yang tersedia.

Dalam opsi sumber daya yang dibuat, Anda dapat membuka Replication untuk mengaktifkannya dan mereplikasi dari server master hingga lima replika. Anda juga harus memeriksa bagian Keamanan Koneksi untuk mengaktifkan atau menonaktifkan akses eksternal. Untuk mengetahui informasi akses, Anda harus mengunjungi bagian sumber daya ikhtisar.

$ psql -h pg1blog.postgres.database.azure.com -U [email protected] postgres

Password for user [email protected]:

psql (11.5, server 11.4)

SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)

Type "help" for help.

postgres=>

Kegagalan pada Database Azure untuk PostgreSQL

Sayangnya, failover otomatis antara server master dan replika tidak tersedia. Namun, jika Anda menghapus instans master, Azure akan melakukan proses failover untuk mempromosikan replika secara otomatis.

Ada opsi untuk melakukan tugas failover ini secara manual, yang mengharuskan Anda untuk hentikan replika dan konfigurasikan titik akhir baru ke dalam aplikasi Anda untuk menunjuk ke master baru. Replika akan dipromosikan dan dihapus dari master. Tidak ada cara untuk menautkan kembali replika ini ke master Anda lagi.

Menyebarkan PostgreSQL di Mesin Virtual Azure

Jika Anda membuka Portal Azure -> Buat Sumber Daya -> Hitung -> Mesin Virtual, Anda akan membuka bagian Buat mesin virtual tempat Anda dapat menentukan konfigurasi berbeda untuk Mesin Virtual Azure baru Anda .

Di tab dasar, Anda harus menentukan langganan Azure, Wilayah, Ketersediaan opsi, Sistem Operasi, Ukuran Server, kredensial akses (nama pengguna/kata sandi atau Kunci SSH), dan aturan firewall masuk.

Di tab disk, Anda harus menentukan penyimpanan (jenis dan ukuran) untuk mesin virtual baru Anda. Jenis disk dapat berupa HDD Standar, SSD Standar, atau SSD Premium. Yang terakhir direkomendasikan untuk beban kerja IOPS tinggi.

Di tab jaringan, Anda dapat menentukan jaringan virtual, alamat IP publik , dan port masuk yang diizinkan. Anda juga dapat menambahkan mesin virtual baru ini di balik solusi penyeimbangan beban Azure yang sudah ada.

Di tab berikutnya, kami memiliki beberapa opsi pengelolaan, seperti pemantauan dan pencadangan .

Dan terakhir, di tab lanjutan, kita dapat menambahkan ekstensi, cloud- init, atau grup host.

Setelah meninjau opsi sebelumnya dan mengonfirmasinya, mesin virtual baru Anda akan dibuat dan dapat diakses dari Portal Azure. Di bagian Resource -> Overview, Anda dapat melihat informasi akses mesin virtual (Alamat IP Publik/Pribadi).

Sekarang, Anda dapat mengaksesnya melalui SSH dan menginstal database PostgreSQL menggunakan ClusterControl .

$ ssh 23.102.177.27

Last login: Mon Sep 23 21:33:27 2019

[[email protected] ~]$

Anda dapat memeriksa tautan ini untuk melihat langkah-langkah melakukan penerapan PostgreSQL dengan ClusterControl.

Kegagalan PostgreSQL di Mesin Virtual Azure

Pemulihan bencana adalah fitur Mesin Virtual di bawah bagian Operasi yang memungkinkan Anda untuk mereplikasi lingkungan Anda di wilayah Azure lain. Untuk mengaktifkannya, Anda harus memilih wilayah target. Di tab lanjutan, Anda dapat mengubah detail target tertentu; seperti jaringan virtual, pengaturan penyimpanan, dan pengaturan replikasi.

Bila pemulihan bencana diaktifkan, Anda dapat memeriksa status replikasi, uji proses failover, atau failover secara manual.

Mengaktifkan ini memungkinkan Anda memiliki opsi failover jika terjadi kegagalan. Namun, ini akan menjadi failover untuk seluruh lingkungan dan bukan hanya layanan database.

Proses Failover PostgreSQL yang Ditingkatkan untuk Microsoft Azure

Karena Anda memiliki akses SSH, Anda dapat meningkatkan proses failover ini dengan mengimpor mesin virtual (atau bahkan menggunakan database PostgreSQL) dengan ClusterControl.

Jika Anda mengelola node database dengan ClusterControl (dan jika opsi "Pemulihan Otomatis" AKTIF) dalam kasus kegagalan master, ClusterControl akan mempromosikan slave paling canggih (jika tidak masuk daftar hitam ) untuk menguasai serta memberi tahu Anda tentang masalahnya. Itu juga secara otomatis gagal untuk mereplikasi budak lainnya dari master baru.

Dengan ClusterControl, Anda bahkan juga menerapkan lingkungan campuran dengan beberapa node di cloud dan node lain di tempat. Anda juga dapat menambahkan penyeimbang beban ke topologi Anda untuk meningkatkan lingkungan ketersediaan tinggi kami. Anda dapat menemukan informasi lebih lanjut tentang topik ini di sini.

Kesimpulan

Azure memiliki banyak fitur dan produk untuk menawarkan solusi tingkat perusahaan. Namun, selama pengujian ini, masalah utama yang saya temukan adalah waktu pembuatan dan failover terlalu lama untuk sebagian besar kebutuhan aplikasi.

Jika Anda memerlukan failover dan pemulihan yang cepat, Anda harus meningkatkan ketersediaan lingkungan dengan menggunakan penyeimbang beban, atau sistem eksternal seperti ClusterControl, untuk mengurangi waktu henti. Untuk informasi lebih rinci tentang menjalankan PostgreSQL di Microsoft Azure, Anda dapat melihat blog mendalam kami.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara melihat kode CREATE VIEW untuk tampilan di PostgreSQL?

  2. Cara membuat pilih dengan array berisi klausa nilai di psql

  3. django.db.utils.OperationalError Tidak dapat terhubung ke server

  4. Memasukkan array menggunakan permata Sekuel di PostgreSQL

  5. Menyetel Operasi Input/Output (I/O) untuk PostgreSQL