Sistem Pangkalan Data PostgreSQL
PostgreSQL adalah sumber terbuka Sistem Pengurusan Pangkalan Data Objek (atau ORDBMS). Ia merupakan sistem pangkalan data yang boleh dipanjangkan dan sangat berskala, yang bermaksud ia dapat menangani beban dari aplikasi mesin tunggal ke perkhidmatan web perusahaan dengan banyak pengguna serentak. PostgreSQL adalah transaksional dan mematuhi ACID (Atomicity, Consistency, Isolation, Durability).
Ia menyokong sebahagian besar standard SQL, dan menawarkan banyak ciri termasuk:
- Pertanyaan kompleks
- Kunci asing
- Punca
- Pemandangan yang diperbaharui
- Integriti transaksi
- Kawalan kesegeraan multiversi
Seperti yang dinyatakan sebelum ini, sistem pangkalan data PostgreSQL boleh dilanjutkan oleh penggunanya. Terdapat pelbagai cara untuk melakukan ini, seperti menambah fungsi baru, pengendali, jenis data, kaedah indeks, bahasa prosedur, Dll
Ia dibangunkan oleh Kumpulan Pembangunan Global PostgreSQL dan dibebaskan di bawah terma Lesen PostgreSQL.
PostgreSQL menyediakan banyak cara untuk meniru pangkalan data. dalam tutorial ini kita akan mengkonfigurasi replikasi Master / Slave, yang merupakan proses penyegerakan data antara dua pangkalan data dengan menyalin dari pangkalan data pada pelayan (tuan) kepada pelayan lain (hamba).
Konfigurasi ini akan dilakukan pada pelayan yang menjalankan Ubuntu 16.04.
Prasyarat
PostgreSQL 9.6 dipasang pada Pelayan Ubuntu 16.04
Konfigurasi UFW
UFW (atau Firewall Uncomplicated) adalah alat untuk menguruskan firewall berasaskan iptables pada sistem Ubuntu. Pasangnya (pada kedua-dua pelayan) Melalui apt
dengan melaksanakan:
# apt-get install -y ufw
Seterusnya, tambahkan perkhidmatan PostgreSQL dan SSH ke firewall. Untuk melakukan ini, jalankan:
# ufw membenarkan ssh # ufw membenarkan postgresql
Dayakan firewall:
# ufw membolehkan
Konfigurasi Server Master PostgreSQL
Server induk akan mempunyai kebenaran membaca dan menulis ke pangkalan data, dan akan menjadi yang mampu melakukan aliran data ke pelayan pelayan.
Dengan editor teks, edit fail konfigurasi utama PostgreSQL, iaitu /etc/postgresql/9.6/main/postgresql.conf
:
# $ EDITOR /etc/postgresql/9.6/main/postgresql.conf
Uncomment the listen_addresses
baris dan edit menambah alamat IP pelayan induk:
listen_addresses = 'master_server_IP_address'
Seterusnya, laporkan wal_level
talian menukar nilainya:
wal_level = hot_standby
Untuk menggunakan penyegerakan setempat untuk tahap penyegerakan, uncomment dan edit baris berikut:
synchronous_commit = tempatan
Kami menggunakan dua pelayan, jadi jangan komen dan edit kedua-dua baris seperti berikut:
max_wal_senders = 2 wal_keep_segments = 10
Simpan dan tutup fail.
Edit pg_hba.conf
fail untuk konfigurasi pengesahan.
# $ EDITOR /etc/postgresql/9.6/main/pg_hba.conf
Tampalkan konfigurasi berikut: # Replikasi hos tempatanhost replika 127.0.0.1 / 32 md5 # PostgreSQL alamat induk IP host replikasi master_IP_address / 32 md5 # PostgreSQL alamat IP alamat replikasi hos replika slave_IP_address / 32 md5
Simpan, keluar dan mulakan semula PostgreSQL:
# systemctl restart postgresql
Buat Pengguna untuk Replikasi
Buat pengguna PostgreSQL yang baru untuk proses replikasi. Log masuk ke postgres pengguna dan mulakan shell PostgreSQL:
# su - postgres $ psql
Buat pengguna baru:
postgres = # CREATE USER membalas LOG LAMPIRAN LATIHAN ENCRYPTED 'usr_strong_pwd';
Tutup cangkerang.
Ini menyimpulkan konfigurasi pelayan induk.
Mengkonfigurasi Server Hamba
Pelayan hamba tidak akan mempunyai keizinan menulis ke pangkalan data, kerana fungsi satu-satunya ialah menerima aliran daripada tuan. Jadi ia hanya akan mempunyai READ kebenaran.
Pertama, hentikan perkhidmatan PostgreSQL:
# systemctl stop postgresql
Edit fail konfigurasi utama PostgreSQL:
# $ EDITOR /etc/postgresql/9.6/main/postgresql.conf
Dalam fail ini, jangan baca komen listen_addresses
talian dan menukar nilainya:.
listen_addresses = 'slave_IP_address'
Seterusnya, laporkan wal_level
garis dan perubahan seperti berikut:
wal_level = hot_standby
Seperti dalam tetapan induk, jangan baca komen synchronous_commit
garis untuk menggunakan penyegerakan tempatan.
synchronous_commit = tempatan
Juga seperti dalam tuan, uncomment dan edit dua baris berikut:
max_wal_senders = 2 wal_keep_segments = 10
enable hot_standby untuk pelayan pelayan dengan tidak mengkaji baris berikut dan menukar nilainya:
hot_standby = on
Simpan dan keluar.
Salin Data Dari Master ke Hamba
Untuk menyegerakkan dari tuan kepada pelayan hamba, direktori utama PostgreSQL pada hamba mesti digantikan dengan direktori utama dari tuan. Dalam pelayan hamba, log masuk ke postgres pengguna:
# su - postgres
Buat sandaran direktori data sebenar:
$ cd/var/lib/postgresql/9.6/
$ mv main main_bak
Buat yang baru utama direktori:
$ mkdir main /
Tukar keizinan:
$ chmod 700 utama
Pada ketika ini, salin direktori utama dari tuan kepada pelayan hamba dengan menggunakan pg_basebackup
:
# pg_basebackup -h master_IP_address -U replika -D / var / lib / postgresql / 9.6 / main -P --xlog
Setelah pemindahan selesai, pada utama direktori membuat yang baru recovery.conf
fail, dan tampal kandungan berikut:
standby_mode = 'on' primary_conninfo = 'host = 10.0.15.10 port = 5432 user = replica password = usr_strong_pwd' trigger_file = '/tmp/postgresql.trigger.5432'
Simpan, keluar dan ubah kebenaran ke fail ini:
# chmod 600 recovery.conf
Mula PostgreSQL:
# systemctl start postgresql
Ini menyimpulkan konfigurasi pelayan hamba.
Kesimpulan
Kami telah melihat cara mengkonfigurasi replikasi tuan / hamba PostgreSQL, dengan menggunakan dua pelayan yang menjalankan Ubuntu 16.04. Ini hanyalah satu daripada banyak kemampuan replikasi yang disediakan oleh sistem pangkalan data lanjutan dan sepenuhnya terbuka ini.
Jawatan Sistem Pangkalan Data: Replikasi PostgreSQL pada Ubuntu 16.04 muncul pertama pada Unixmen.