บทนำ

การจัดเก็บข้อมูลในที่เดียวมักเป็นสิ่งที่มีความเสี่ยง โดยปกติจะแนะนำให้คุณมีแผนเพื่อให้แน่ใจว่าคุณสามารถกู้คืนจากภัยพิบัติได้ทันทีที่เกิดการโจมตี.


วิธีที่ดีวิธีหนึ่งเพื่อให้มั่นใจว่าแผนการกู้คืนความเสียหายที่มีประสิทธิภาพคือการมีข้อมูลเดียวกันบนเซิร์ฟเวอร์หลายเครื่องและเพื่อให้ข้อมูลตรงกัน เซิร์ฟเวอร์ฐานข้อมูลมักจะทำงานร่วมกันเพื่อให้สามารถเข้าใช้งานได้ในกรณีที่เซิร์ฟเวอร์หลัก / เซิร์ฟเวอร์หลักล้มเหลวดังนั้นจึงสร้างความพร้อมใช้งานสูง เซิร์ฟเวอร์ฐานข้อมูลหลายแห่งอาจให้บริการข้อมูลเดียวกันในเวลาเดียวกันซึ่งเรียกว่า Load Balancing.

ในคู่มือนี้คุณ’จะเรียนรู้วิธีกำหนดค่าการจำลองข้อมูลแบบมาสเตอร์สลาฟโดยที่เซิร์ฟเวอร์ฐานข้อมูลตัวหนึ่งจะได้รับสิทธิ์ในการอ่าน – เขียนในขณะที่อีกรุ่นที่สองจะมีสิทธิ์อ่านเท่านั้น.

ก่อนที่คุณจะเริ่ม

  • 2 Ubuntu 18.04 Virtual Private Servers (VPS) หรือ Dedicated Servers ที่มีผู้ใช้ที่ไม่ใช่รูทที่มีสิทธิ์ sudo หนึ่งจะทำหน้าที่เป็นหลักในขณะที่อื่น ๆ เป็นเซิร์ฟเวอร์สแตนด์บาย / ทาส.
  • PostgreSQL ติดตั้งและกำหนดค่าบนเซิร์ฟเวอร์ทั้งสอง คุณสามารถเรียนรู้วิธีการติดตั้งเซิร์ฟเวอร์ฐานข้อมูล PostgreSQL บน Ubuntu 18.04 ได้ที่นี่

ขั้นตอน

คุณต้องเปลี่ยนฟังที่อยู่ในหน้าการกำหนดค่า PostgreSQL ก่อน เซิร์ฟเวอร์ต้องสามารถฟังพอร์ตทั้งหมดได้.

$ sudo vim /etc/postgresql/9.5/main/postgresql.conf

หมายเหตุพิเศษ: รุ่น postgresql อาจเป็นรุ่นที่แตกต่างกันและด้วยเหตุนี้เส้นทางของคุณอาจแตกต่างจากหนึ่งข้างต้น.

ค้นหาคำ Listen_addresses บนเครื่องมือแก้ไขหรือกำหนดหมายเลขแล้วเลื่อนลงไปที่บรรทัดที่ 59.

ยกเลิกหมายเหตุบรรทัดและเปลี่ยนชื่อ localhost เป็น * ซึ่งเปิดใช้งานเซิร์ฟเวอร์ฟัง IP แอดเดรสทั้งหมด มันต้องดูเป็นข้อความที่ตัดตอนมาดังต่อไปนี้.


#——————————————————————————
# การเชื่อมต่อและการตรวจสอบ
#——————————————————————————

# – การตั้งค่าการเชื่อมต่อ –

Listen_addresses = ‘*’ # ที่อยู่ IP ที่จะรับฟัง
# รายการคั่นที่อยู่ด้วยเครื่องหมายจุลภาค;
# ค่าเริ่มต้นเป็น ‘localhost’; ใช้ ‘*’ สำหรับทุกคน

ปิดโปรแกรมแก้ไขของคุณในขณะที่บันทึกการเปลี่ยนแปลงและโหลดบริการ postgresql ใหม่เพื่อรองรับการเปลี่ยนแปลงที่ทำ

$ sudo systemctl รีสตาร์ท postgresql

สร้างฐานข้อมูลตัวอย่าง

สำหรับวัตถุประสงค์ในการทดสอบการจำลองแบบสร้างตารางตัวอย่างที่เรียกว่าอักขระ.

เข้าสู่ระบบฐานข้อมูล postgres ของคุณ

$ sudo -i -u postgres psql postgres
# CREATETABLEcharacters (ข้อความชื่อ, character_id อนุกรม, datetimestamp, คำอธิบายข้อความ);

ตอนนี้แทรกข้อมูลตัวอย่างในตารางที่คุณสร้างขึ้นใหม่.

# INSERTINTOcharacters (ชื่อ, วันที่, คำอธิบาย) ค่า (‘Griffin’, current_date, ‘นี่คือตัวอย่างอักขระ’);
INSERT01

การกำหนดค่าเซิร์ฟเวอร์หลัก

PostgreSQL ต้องการบทบาท / ผู้ใช้ที่มีสิทธิ์พิเศษสำหรับวัตถุประสงค์ในการจำลองแบบ.

$ sudo -u postgres createuser -U postgres การจำลองแบบ -P -c 5 –replication

หมายเหตุพิเศษ: คุณสามารถเรียนรู้เกี่ยวกับตัวเลือกคำสั่ง createuser ได้ที่นี่ ตรวจสอบให้แน่ใจในสภาพแวดล้อมการใช้งานด้วยรหัสผ่านของตัวจำลองข้อมูลนั้นมีความแข็งแกร่งเพื่อหลีกเลี่ยงเหตุการณ์ต่าง ๆ เช่นการเดรัจฉานหรือการคาดเดารหัสผ่านอย่างง่าย.

จากนั้นคุณต้องสร้างไดเรกทอรีเก็บถาวรซึ่งจะเป็นไดเรกทอรีย่อยของคลัสเตอร์’ไดเรกทอรีหลักเริ่มต้น.

$ sudo mkdir -p /var/lib/postgresql/9.5/main/mnt/server/archivedir

กำหนดค่า pg_hba.ไฟล์ conf

$ sudo vim /etc/postgresql/9.5/main/pg_hba.conf

ค้นหาส่วนการจำลองแบบจากนั้นเพิ่มรายการต่อไปนี้ในผู้ใช้การจำลองแบบเพื่อดูดังนี้ อย่าลืมเปลี่ยนที่อยู่ IP เซิร์ฟเวอร์ทาสของคุณ.

# อนุญาตการเชื่อมต่อการจำลองแบบ
โฮสต์การจำลองแบบจำลองแบบ 192.168.56.20/24 md5

ออกขณะบันทึกการเปลี่ยนแปลง.

แก้ไข PostgreSQL.conffile

$ sudo vim /etc/postgresql/9.5/main/postgresql.conf

แก้ไขการตั้งค่าต่อไปนี้ อย่าลืมใส่เครื่องหมายข้อคิดเห็นในแต่ละการตั้งค่าที่คุณแก้ไข.

Listen_addresses = ‘*’
wal_level = hot_standby
archive_mode = เปิด
Archive_commend = ‘ทดสอบ! -f mnt / server / archivedir /% f && cp% p mnt / เซิร์ฟเวอร์ / เก็บถาวร /% f ‘
max_wal_senders = 3

ออกขณะบันทึกการเปลี่ยนแปลงและเริ่มบริการ postgresql ใหม่

$ sudo systemctl รีสตาร์ท postgresql

กำหนดค่าเซิร์ฟเวอร์ Slave

ก่อนอื่นให้หยุดบริการ postgresql บนเซิร์ฟเวอร์ทาสของคุณ.

$ sudo systemctl หยุด postgresql

เปลี่ยนชื่อหลักในไดเรกทอรี postgresql เป็นอย่างอื่นนับตั้งแต่การสำรองข้อมูลชนะ’t แทนที่ไฟล์ที่มีอยู่ในโฟลเดอร์เดียวกัน.

$ sudo mv /var/lib/postgresql/9.3/main /var/lib/postgresql/9.3/main_old

รันยูทิลิตี pg_basebackup แทนที่ ip ด้วยที่อยู่ ip ของเซิร์ฟเวอร์หลักของคุณ.

$ sudo -u postgres pg_basebackup -h 192.168.56.20 -D /var/lib/postgresql/9.5/main -U replicationuser -v -P –xlog-method = stream

ป้อนรหัสผ่านเรพลิเคชันผู้ใช้ที่คุณตั้งค่าบนเซิร์ฟเวอร์หลักของคุณเมื่อได้รับพร้อมต์.

แก้ไข PostgreSQL.ไฟล์ conf

$ sudo vim /etc/postgresql/9.5/main/postgresql.conf

ค้นหาตัวเลือกการตั้งค่า hot_standby และเปลี่ยนเป็น บน.

ออกขณะบันทึกการเปลี่ยนแปลง.

ตอนนี้คุณต้องระบุการตั้งค่าการกู้คืนซึ่งจะใช้ในกรณีของการกู้คืนข้อมูล.

$ sudo cp -avr /usr/share/postgresql/9.5/recovery.conf.sample /var/lib/postgresql/9.5/main/recovery.conf

แก้ไขไฟล์กู้คืน

$ sudo vim /var/lib/postgresql/9.5/main/recovery.conf

ค้นหาโหมด standby_mode และเปลี่ยนตัวเลือกเป็น บน เพื่อเปิดใช้งานเซิร์ฟเวอร์ให้อยู่ในโหมดสแตนด์บาย.

ค้นหา primary_conninfo และเพิ่มรายละเอียดเซิร์ฟเวอร์หลัก

primary_conninfo = ‘host = 192.168.56.20 พอร์ต = 5432 ผู้ใช้ = replicationuser [email protected]%’

ออกขณะบันทึกการเปลี่ยนแปลง.

เริ่มบริการ postgresql บนเซิร์ฟเวอร์ทาสของคุณ

$ sudo systemctl เริ่ม postgresql

ทดสอบการจำลองแบบ

ไปที่เซิร์ฟเวอร์หลักของคุณในตารางที่คุณสร้าง เพิ่มรายการใหม่.

$ sudo -u postgres psql postgres

# INSERTINTOcharacter (ชื่อ, วันที่, คำอธิบาย) ค่า (‘Sanchez’, current_date, ‘นี่คือตัวละครครอบครัว’);
INSERT01

กลับไปที่เซิร์ฟเวอร์ทาสของคุณในฐานข้อมูล Postgres และดูข้อมูล

$ sudo -u postgres psql postgres
# SELECT * FROMcharacter
fname | character_id | วันที่ | ลักษณะ
———+————–+———————+—————————-
กริฟฟิน 1 | 2018-10-22 00:00:00 | นี่คือตัวอย่างอักขระ
Sanchez | 2 | 2018-10-2200: 00: 00 | ตัวละคร Rick และ Morty
(2 แถว)

ข้อสรุป

หากคุณสามารถดูข้อมูลบนเซิร์ฟเวอร์ Slave ของคุณได้หลังจากใส่ลงในเซิร์ฟเวอร์หลักหมายความว่าคุณได้ตั้งค่าการจำลองแบบ Master-slave ของ PostgreSQL เรียบร้อยแล้ว.

มีสองวิธีในการเรียกใช้ failover เมื่อเซิร์ฟเวอร์หลักหยุดทำงานทันที คุณสามารถใช้คำสั่ง pg_ctl หรือคุณอาจตั้งค่าตำแหน่งไฟล์ทริกเกอร์ในเซิร์ฟเวอร์ทาสของคุณ’s /etc/postgresql/9.5/main/postgresql.conf ไฟล์ ในไฟล์ให้ค้นหาและยกเลิกการคอมเม้นต์ trigger_file = ‘/tmp/postgresql.trigger.5432’line.

ลองดูบริการบนเว็บโฮสติ้งที่ดีที่สุด 3 อันดับแรก

FastComet

ราคาเริ่มต้น:
$ 2.95


ความเชื่อถือได้
9.7


การตั้งราคา
9.5


เป็นมิตรกับผู้ใช้
9.7


สนับสนุน
9.7


คุณสมบัติ
9.6

อ่านความคิดเห็น

เยี่ยมชม FastComet

A2 โฮสติ้ง

ราคาเริ่มต้น:
$ 3.92


ความเชื่อถือได้
9.3


การตั้งราคา
9.0


เป็นมิตรกับผู้ใช้
9.3


สนับสนุน
9.3


คุณสมบัติ
9.3

อ่านความคิดเห็น

เยี่ยมชม A2 Hosting

ChemiCloud

ราคาเริ่มต้น:
$ 2.76


ความเชื่อถือได้
10


การตั้งราคา
9.9


เป็นมิตรกับผู้ใช้
9.9


สนับสนุน
10


คุณสมบัติ
9.9

อ่านความคิดเห็น

เยี่ยมชม ChemiCloud

บทความเชิงปฏิบัติที่เกี่ยวข้อง

  • วิธีการสร้างความพร้อมใช้งานสูงด้วยการจำลองแบบ MySQL บน Ubuntu 18.04 VPS หรือเซิร์ฟเวอร์เฉพาะ
    สื่อกลาง
  • วิธีการรักษาความปลอดภัย phpMyAdmin บน Ubuntu 18.04 VPS หรือเซิร์ฟเวอร์เฉพาะ
    สื่อกลาง
  • วิธีการติดตั้ง MYSQL 8.0 และสร้างฐานข้อมูลบน Ubuntu 18.04 Linux VPS
    สื่อกลาง
  • วิธีการสำรองฐานข้อมูล MySQL ของคุณบน Ubuntu 18.04 VPS หรือเซิร์ฟเวอร์เฉพาะ
    สื่อกลาง
  • วิธีการติดตั้ง LLMP Stack บน Ubuntu 18.04 VPS Server หรือเซิร์ฟเวอร์เฉพาะ
    สื่อกลาง
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me