RHEL系最新OSにPostgreSQL9.2を入れて運用した話
PostgreSQLのサーバのレプリカが必要になり同期元を確認したらまさかのバージョン9.2(リリース2012年)だったのでOSだけでも最新が良いなぁと最新のAlmaLinuxにPostgreSQL9.2.24を入れて稼働するところまでのメモ
環境
- AlmaLinux 9.5
- PostgreSQL 9.2.24
- PROJ 4.9.3
- PostGIS 2.0.7
geo系のテーブルがあるからpostgis必要でした
前提
前提インストール
dnf install -y gcc-c++ glibc-devel zlib-devel libtool libxml2-devel geos-devel readline-devel make autoconf
ベースリポジトリだけでいけたと思うけどどうだろ
以降パス等は任意で書き換えて
PostgreSQLインストール
本体のインストール
ソースを取得して展開
cd /usr/local/src
wget https://ftp.postgresql.org/pub/source/v9.2.24/postgresql-9.2.24.tar.gz
tar zxf postgresql-9.2.24.tar.gz
本体をmake
cd postgresql-9.2.24
./configure --prefix=/usr/local/pgsql
make && make install
contrib(必要であれば)
cd contrib
make && make install
任意で~/.bashrc
などでPATHを通す
export PATH=$PATH:/usr/local/pgsql/bin
ユーザ作成 + PGDATA作成
useradd --home-dir=/var/lib/pgsql postgres
su - postgres
mkdir data
chmod 0700 data
cd data
initdb -D ./
その他ライブラリ
PostGISを使用
PROJインストール
PostGISの前提としてPROJが必要
まずは本体の取得
cd /usr/local/src
wget https://download.osgeo.org/proj/proj-4.9.3.tar.gz
tar zxf proj-4.9.3.tar.gz
makeする
cd proj-4.9.3
mkdir -p /usr/local/proj4
./configure --prefix=/usr/local/proj4
make && make install
ldconfigでライブラリを登録しとくと良い
echo -n '/usr/local/proj4/lib' > /etc/ld.so.conf.d/proj4.conf
ldconfig
PostGIS
前提入れたのでPostGIS本体のインストール
本体の取得
cd /usr/local/src
wget http://download.osgeo.org/postgis/source/postgis-2.0.7.tar.gz
tar zxf postgis-2.0.7.tar.gz
PostgreSQLのpg_config
のパスと先に入れたPROJのディレクトリを指定してmake
cd postgis-2.0.7
./configure --with-pgconfig=/usr/local/pgsql/bin/pg_config --with-projdir=/usr/local/proj4 --without-raster
make && make install
Unitファイル作成
systemdで管理させれば楽
systemctl edit --full --force postgresql-server.service
[Unit]
Description=PostgreSQL database server
Documentation=man:postgres(1)
[Service]
Type=forking
User=postgres
ExecStart=/usr/local/pgsql/bin/pg_ctl start -D /var/lib/pgsql/data
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=0
[Install]
WantedBy=multi-user.target
起動
systemctl start postgresql-server.service
SQLの実行など
起動後はPATHを設定してればその他のバージョン同様psql
がそのまま使える
psql -U postgres -h localhost
ここまで書いといてだけど大人しくPostgreSQLのバージョン上げた方が良いと思う
9.2から上げていくの結構大変だけど