Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ FreeBSD and Nix ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Обновление postgresql с 9.4 до 9.6 на FreeBSD с помощью pg_upgrade


 

Обновление postgresql с 9.4 до 9.6 на FreeBSD с помощью pg_upgrade


Задача:
Обновить postgresql сервер с 9.4 до 9.6

Сложность:
В 9.6 пользователь pgsql заменен на postgres

Решение:
Будем инициализировать 9.6 из под pgsql

 


=== 1. Установка старого PostgreSQL


pkg search postgresql

pkg install postgresql94-client postgresql94-server

echo 'postgresql_enable="YES"' >> /etc/rc.conf
echo 'postgresql_data="/pgdata/db"' >> /etc/rc.conf

mkdir -p /pgdata/db

chown -R pgsql:pgsql /pgdata
chmod -R 0700 /pgdata


/usr/local/etc/rc.d/postgresql initdb -D /pgdata/db


/usr/local/etc/rc.d/postgresql start
/usr/local/etc/rc.d/postgresql status


Тестовый данные
su pgsql

psql -d template1

create database testdb;
\c testdb;
create table testtable (id serial, data text);
insert into testtable select nextval('testtable_id_seq'::regclass), md5(generate_series(1,1000)::text);
\q
exit


На всякий случай
su pgsql -c 'pg_dumpall -c | bzip2' > /usr/tmp/pgdump.sql.bz2
 

 
=== 2. Установка нового PostgreSQL
 
 
Сделать временную тюрьму
bsdinstall jail /usr/tmp/pg_upgrade

Установите более старую postgresql в тюрьму
pkg -c /usr/tmp/pg_upgrade install postgresql94-server

Остановить процесс postgres
/usr/local/etc/rc.d/postgresql stop

Удаление старого postgresql
pkg delete -x postgresql

Установите новый postgresql
pkg install postgresql96-server postgresql96-contrib

Переименуйте старый каталог данных
mv /pgdata/db /pgdata/db94

Запустите pg_upgrade как пользователь pgsql
mkdir -p /pgdata/db

chown -R pgsql:pgsql /pgdata
chmod -R 0700 /pgdata

echo 'postgresql_user="pgsql"' >> /etc/rc.conf

/usr/local/etc/rc.d/postgresql initdb -D /pgdata/db

/usr/local/etc/rc.d/postgresql start
/usr/local/etc/rc.d/postgresql status
/usr/local/etc/rc.d/postgresql stop

 


=== 3. Обновление PostgreSQL

su -l pgsql -c "pg_upgrade -b /usr/tmp/pg_upgrade/usr/local/bin -B /usr/local/bin -d /pgdata/db94 -D /pgdata/db -j 16 -k --check"
su -l pgsql -c "pg_upgrade -b /usr/tmp/pg_upgrade/usr/local/bin -B /usr/local/bin -d /pgdata/db94 -D /pgdata/db -j 16 -k"


Запустить новый сервер postgresql
/usr/local/etc/rc.d/postgresql start


su pgsql

Анализ
/usr/local/pgsql/analyze_new_cluster.sh
"/usr/local/bin/vacuumdb" --all


psql -d template1
\l
\c testdb;
select * from testtable;
\q
exit

 

Удалить старый каталог данных (только если все ок и уверены)
su pgsql
/usr/local/pgsql/delete_old_cluster.sh


Удалить временную тюрьму (первая команда от ошибки: rm Operation not permitted)
chflags -R noschg /usr/tmp/pg_upgrade
rm -rf /usr/tmp/pg_upgrade

 

Вот еще пара статей:
https://gregoryo.wordpress.com/2016/08/24/freebsd-and-pg_upgrade/
http://kreynolds.com/post/113982719240/freebsd-and-pgupgrade

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект