برنامه نویسی

PostgreSQL در OpenBSD: ارتقاء از 12 به 13 – با استفاده از pg_dumpall

فهرست مطالب

معرفی

ارتقاء OpenBSD از 6.8 به 6.9 نیز نیازمند ارتقاء سرور PostgreSQL (از 12.6 به 13.2) است. راهنمای ارتقاء OpenBSD این را می گوید.
در این مقاله، postgresql-server به دنبال readme رسمی بسته، کاری که انجام دادم به این صورت است:

$ nvim -R /usr/local/share/doc/pkg-readmes/postgresql-server
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

روش دیگری غیر از این مقاله وجود دارد.pg_upgrade روشی است با استفاده از نیاز به نصب بسته های اضافی دارد، اما می تواند سرعت مهاجرت را بهبود بخشد.

آموزش

مطمئن شوید که سرور در حال اجرا است.

$ doas rcctl check postgresql
postgresql(ok)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

pg_dumpall اجرا کن

$ doas su _postgresql -c "cd /var/postgresql \
    && pg_dumpall -U postgres > /var/postgresql/full.sqldump.bkYYMMDD"
$ # pg superuser's password is required times of the number of tables
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توجه داشته باشید که “YYMMDD” در اینجا باید تاریخ واقعی پشتیبان گیری باشد.به عنوان مثال، اگر پوسته ماهی باشد date +"%y%m%d" می توانید تاریخ سیستم را با .

سرور را متوقف کنید.

$ doas rcctl stop postgresql
postgresql(ok)
$ # check the server is stopped
$ doas rcctl check postgresql
postgresql(failed)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بسته های سرور را ارتقا دهید.

$ doas pkg_add -ui postgresql-server
$ # updated
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

/var/postgresql/data می تواند بازسازی شود.

$ doas mv /var/postgresql/data /var/postgresql/data-12
$ doas su _postgresql -c "mkdir /var/postgresql/data"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

initdb اجرا کن

$ # `--locale` option here can be omitted
$ doas su _postgresql -c "cd /var/postgresql && \
    initdb -D /var/postgresql/data -U postgres -A scram-sha-256 -E UTF8 -W \
        --locale=xx_XX.UTF-8"
$ # pg superuser's password is required
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


در صورت لزوم سرور را پیکربندی کنید، اما نه لزوما.

$ # in case of using tls/ssl connection
$ # - set `listen_addresses` and `ssl` option
$ doas nvim "/var/postgresql/data/postgresql.conf"
$ # - add `hostssl` authentication
$ doas nvim "/var/postgresql/data/pg_hba.conf"
$ # - create certificate if not exists
$ doas su _postgresql -c \
    "cp /var/postgresql/data-12/server.{crt,key} /var/postgresql/data/"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مطالب فوق بر اساس این مقاله است.


سرور جدید را راه اندازی کنید.

$ doas rcctl start postgresql
postgresql(ok)
$ # check the server is started and running
$ doas rcctl check postgresql
postgresql(ok)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پایگاه داده ها و اشیایی مانند جداول و رکوردها را بازیابی کنید.

$ doas su _postgresql -c "cd /var/postgresql && \
    psql -U postgres < /var/postgresql/full.sqldump.bkYYMMDD"
$ # restored
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

انجام شد 🙂

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا