เมื่อเผชิญกับสถานการณ์ เราจำเป็นต้องรวมอินสแตนซ์ postgres ขนาดเล็กสองสามรายการให้เป็นอินสแตนซ์ที่ใหญ่กว่า
ไม่สามารถหาวิธีทำซ้ำข้อมูลใหม่ "เก่า" db เป็น "ใหม่" db เมื่อมีการแทนที่
ฉันจะพยายามทำให้มันง่าย:
ชื่ออินสแตนซ์ db เก่าคือ X
อินสแตนซ์ db ใหม่คือ Y
X มีข้อมูล 10 GB และใช้เวลา 15~ นาทีในการดัมพ์และกู้คืน
ในขณะเดียวกัน X ก็รับข้อมูลมากขึ้น (1-2 MB)
** ฉันจะทำให้ X ทำซ้ำข้อมูลเป็น Y ได้อย่างไร เพื่อให้ข้อมูลนี้ไม่สูญหาย ? **
ฉันมีสคริปต์ขนาดเล็กนี้สำหรับถ่ายโอนข้อมูลและกู้คืน
## ฐานข้อมูลระยะไกลไปยังฐานข้อมูลระยะไกล
PGPASSWORD=$source_pass pg_dump -h $source_host -d $source_db_name -U $source_user -p $source_port > test.sql
psql postgres://$dest_user:$dest_pass@$dest_host:$dest_port/postgres -c "สร้างฐานข้อมูล ${source_db_name}" \
-c "สร้างผู้ใช้ ${source_user} ด้วยรหัสผ่าน '${source_pass}'" \
-c "เปลี่ยนผู้ใช้ "${source_user}" ด้วย CREATEDB" \
|| echo "มีฐานข้อมูลอยู่แล้ว"
psql postgres://$dest_user:$dest_pass@$dest_host:$dest_port/$source_db_name < test.sql \
&& echo "โหลดข้อมูลเรียบร้อยแล้ว !" || echo "โหลดข้อมูลไม่ได้"