วิธีที่ดีที่สุดในการสำรองฐานข้อมูล Postgres บน Linux โดยอัตโนมัติทุกวันคืออะไร?
วิธีที่ดีที่สุดในการสำรองฐานข้อมูล Postgres บน Linux โดยอัตโนมัติทุกวันคืออะไร?
คำตอบ:
คุณสามารถใช้pg_dump
สิ่งนี้:
$ pg_dump -h db_host -U user_name db_name > dump_file.sql
โปรดคิดก่อนตั้งค่า.pgpass
ไฟล์ที่มีรหัสผ่านที่จะใช้หากการเชื่อมต่อต้องใช้รหัสผ่าน ไฟล์นี้ควรมีบรรทัดของรูปแบบต่อไปนี้:
hostname:port:database:username:password
และเขตข้อมูลสี่แห่งแรกแต่ละแห่งอาจเป็นค่าตัวอักษรหรือ * ซึ่งตรงกับทุกอย่าง ตัวอย่างเช่น*:*:*:postgres:pg_password
.
.pgpass
ไฟล์นี้จะต้องอยู่ในโฮมไดเร็กตอรี่ ~ / และสิทธิ์ในการใช้งานจะต้องไม่อนุญาตการเข้าถึงโลกหรือกลุ่ม chmod 0600 ~/.pgpass
บรรลุนี้โดยคำสั่ง
เรียกใช้ pg_dumpall จาก cron
ลองAutoPostgreSQLBackup มันเป็นไฟล์สคริปต์เดียวสามารถกำหนดค่าได้อย่างง่ายดายตามความต้องการของคุณไม่ว่าจะเป็นรายวันรายสัปดาห์และรายเดือนบันทึกต่ออีเมลไฟล์บันทึกหรือ stdout ฯลฯ
หากเป็นฐานข้อมูลขนาดเล็กและความต้องการต่ำในการสำรองข้อมูลเพียงวันละครั้งเพียงรัน pg_dump จาก cron เพื่อถ่ายโอนไปยังไฟล์โลคัลจากนั้นใช้สิ่งที่คุณต้องสำรองไฟล์บนเครื่องเพื่อเก็บถาวร .
pg_rmanเป็นเครื่องมือใหม่ที่ให้การสำรองข้อมูลเพิ่มเติมซึ่งทำงานกับ PostgreSQL 8.4 หรือใหม่กว่า
ลองastrails ปลอดภัย มันรู้วิธีสำรอง mysql (mysqldump), postgres (pg_dump) หรือเพียงแค่ไฟล์ธรรมดา (tar) ที่มีการเข้ารหัส (gnupg) และอัปโหลดไปยัง S3 / Sftp
pg_dump เป็นทางออกที่ดี แต่ถ้าคุณพยายามสำรองข้อมูลจำนวนมากบางทีนี่อาจช่วยได้:
http://www.postgresql.org/docs/8.1/static/backup-online.html
ซึ่งอันที่จริงแล้วเป็นชนิดของการบันทึก 'ดิบ' แต่อาจมีประโยชน์ในฐานะวิธีสำรองข้อมูลเพิ่มเติม ...
นี่คือสคริปต์ที่จะสำรองข้อมูลแต่ละฐานข้อมูลเช่นเดียวกับ PostgreSQL GLOBALS และข้อมูลการเข้าสู่ระบบของผู้ใช้ที่สำคัญ แต่มักจะลืม
ความสำคัญของสิ่งนี้คือการใช้ประโยชน์จากการบีบอัดที่ pg_dumpall ไม่ได้จัดเตรียมไว้และข้อมูลที่ลืมที่ pg_dump ข้ามไป
สิ่งนี้จะต้องใช้ pgpass หรือการตั้งค่าที่คล้ายกันตามที่อธิบายไว้ที่นี่http://wiki.postgresql.org/wiki/Pgpass
นี่คือการตั้งค่าสำหรับ OSX แต่เพียงเปลี่ยนเส้นทางของโปรแกรมและมันจะทำงานได้ดี
สำรองข้อมูล / sqlbackups สคริปต์จะส่งคืนขนาดไดเรกทอรี / และมีจุดพักที่จะส่งกลับสถานะที่ไม่ใช่ศูนย์ถ้ามันล้มเหลว ฉันใช้ร่วมกับ pgAgent เพื่อสำรองข้อมูลรายวัน
สคริปต์แก้ไขแล้วขอโทษที่ :(
ชำระทำไมลงด้วยการสำรองข้อมูลทุกวันเมื่อคุณสามารถมีการกู้คืนจุดในเวลาที่มีบาร์เทนเด ?
ตามที่คนอื่นพูด: pg_dumpall
นอกจากนี้ดูที่บันทึกการจัดส่ง จากนั้นคุณจะได้รับการสำรองข้อมูล ณ เวลาที่มากขึ้นซึ่งคุณสามารถเล่นได้: http://www.postgresql.org/docs/8.3/static/runtime-config-wal.html
หรือวิธีการเกี่ยวกับการสำรองข้อมูลในคู่มือ: