Saya memiliki server produksi saya (ubuntu 13.10) berjalan dengan postgresql 9.1.
Saya ingin menggunakan beberapa fitur 9.3, karenanya ingin memutakhirkan.
Bisakah seseorang membantu saya dengan meningkatkan dari 9,1 ke 9,3 sehingga ada downtime tidak lebih dari 30 menit. atau lebih?
Perhatian utama adalah mencegah kehilangan data atau redundansi file.
postgresql
postgresql-9.1
Ram Kumar
sumber
sumber
Jawaban:
Pada dasarnya ada tiga cara untuk meningkatkan PostgreSQL dari berbagai versi utama (mis. 9.1 hingga 9.3).
Memutakhirkan dengan pg_dump
Yang pertama, dan direkomendasikan jika mungkin, adalah melakukan dump dari versi lama (9.1) menggunakan biner dari versi yang lebih baru (9.3) dan mengembalikannya pada klaster baru yang dibuat dari versi yang lebih baru.
Pendekatan ini, umumnya, yang lebih lambat, tetapi juga yang paling layak. Salah satu tip untuk membuatnya lebih cepat, adalah menggunakan konkurensi. Untuk melakukan pekerjaan paralel, Anda dapat melakukan:
Anda harus melakukannya untuk setiap basis data yang Anda miliki, sesuaikan
--jobs=4
nilainya dengan nilai apa pun (uji beberapa nilai dari 2 hingga jumlah inti, dan lihat mana yang memberikan kecepatan lebih baik). Juga, selama fase ini, tidak ada yang harus terhubung ke database, modifikasi apa pun akan menghasilkan dump yang rusak (karena opsi yang tidak aman--no-synchronized-snapshots
).Setelah itu, Anda dapat mengembalikan dump ke instance baru menggunakan
pg_restore
:Setelah itu, disarankan untuk berjalan
ANALYZE
di database Anda:(jika Anda dapat membayar waktu, jalankan hanya
--analyze
untuk jugaVACUUM
database dan perbarui peta visibilitas)Memutakhirkan dengan pg_upgrade
Pilihan lain, adalah menggunakan contrib
pg_upgrade
. Menggunakan--link
metode ini menyediakan cara yang sangat cepat untuk memutakhirkan PostgreSQL.Sebelum menggunakan, Anda harus membuat cadangan seluruh direktori data, karena dalam
--link
mode, jika terjadi kesalahan, Anda dapat kehilangan kedua data (baru dan lama). Baca juga seluruh dokumen dan khususnya catatan di bagian bawah (ada beberapa batasan untuk pg_upgrade).UPDATE: Silakan gunakan
--check
opsi sebelum menjalankan perintah definitif. Juga, untuk basis data besar disarankan untuk menjalankan perintah ini dalam sesi layar.Tingkatkan versi menggunakan alat replikasi berbasis pemicu
Pilihan lain untuk meningkatkan versi, menggunakan alat replikasi berdasarkan pemicu. Seperti Slony, Bucardo, dan Londiste.
Ini adalah opsi yang membutuhkan waktu henti sesedikit mungkin, tetapi ini adalah yang paling sulit untuk dikerjakan.
Untuk melakukan itu Anda perlu membangun master-slave di mana master adalah versi Anda saat ini (9.1) dan slave adalah versi baru (9.3). Anda kemudian, tunggu sinkronisasi pertama (dengan sistem masih dalam produksi), setelah itu Anda menutup semua orang yang terhubung ke database (waktu henti dimulai di sini), menunggu budak untuk mengejar ketinggalan, mempromosikannya (budak) untuk dikuasai dan redirect semua klien / aplikasi ke versi baru ini. Dan kamu sudah selesai.
Dokumentasi Slony menyediakan langkah demi langkah untuk memutakhirkan PostgreSQL menggunakan Slony .
Yang mana yang harus dipilih
Yah, seperti biasa tergantung, melanjutkan:
Saya harap saya bisa membantu. Semoga berhasil.
sumber
pg_dumpall
untuk membuang semua database sekaligus.Ikuti langkah-langkah ini untuk meningkatkan postgres 9.1 ke 9.3:
Pertama buat file /etc/apt/sources.list.d/pgdg.list dengan konten berikut untuk ubuntu:
Tambahkan kunci yang berjalan berikut:
Instal alat pengembang dengan postgres:
Untuk mengonfirmasi pemasangan kami, kami akan memasukkan "sudo pg_lsclusters" dan melihat dua versi PostgreSQL kami berjalan.
Hentikan layanan Postgressql:
Hapus cluster 9.3 default yang dibuat oleh 9.3 instal.
Buat 9.3 cluster baru dari 9.1 cluster yang ada.
Konfirmasikan bahwa cluster baru dimuat dan kami menjalankan PostgreSQL 9.3.
Jika semuanya berfungsi turun ke 9.1 cluster.
untuk informasi lebih lanjut lihat tautan ini
sumber
Ini bisa sangat berguna:
https://gist.github.com/ibussieres/11262268
Ini untuk 12,04, tapi saya kira itu cukup dapat ditransfer.
sumber