プロジェクト

全般

プロフィール

PostgreSQLのバージョンアップ » 履歴 » リビジョン 2

リビジョン 1 (白林檎 美和, 2021/09/23 22:59) → リビジョン 2/5 (白林檎 美和, 2021/09/23 23:07)

# PostgreSQLのバージョンアップ 

 1. 現バージョンを停止,バックアップ,削除。 

     ``` 
 # service postgresql stop 
 $ pkg create postgresql<現>-server postgresql<現>-contrib 
 $ mkdir /tmp/pg-upgrade 
 $ tar xvf postgresql<現>-server-<バージョン番号>.txz -C /tmp/pg-upgrade 
 $ tar xvf postgresql<現>-contrib-<バージョン番号>.txz -C /tmp/pg-upgrade 
 # pkg delete -f postgresql<現>-server postgresql<現>-contrib postgresql<現>-client 
 ``` 
 1. 新バージョンをインストール。 
     ``` 
 # make -C /usr/ports/databases/postgresql<新>-server config-recursive 
 # make -C /usr/ports/databases/postgresql<新>-server install clean 
 # make -C /usr/ports/databases/postgresql<新>-contrib config-recursive 
 # make -C /usr/ports/databases/postgresql<新>-contrib install clean 
 ``` 
 1. データを移行。*データ置場* は,デフォルトだと `/var/db/postgres`。 
     ``` 
 $ su -l postgres -c "/usr/local/bin/initdb --encoding=utf-8 --lc-collate=C -D <データ置場>/data<新> -U postgres" 
 $ su -l postgres -c "pg_upgrade -b /tmp/pg-upgrade/usr/local/bin -d <データ置場>/data<旧> -B /usr/local/bin -D <データ置場>/data<新> -U postgres" 
 ``` 
 1. 新バージョンを起動。 
     ``` 
 # service postgresql start 
 ``` 
 1. 新バージョンが走っているのを確かめ,バックアップした旧バージョンを削除。 
     ``` 
 # service postgresql status 
 pg_ctl: server is running (PID: <プロセス番号>) 
 /usr/local/bin/postgres "-D" "<データ置場>/data<新>" 
 $ rm -fr /tmp/pg-upgrade postgresql<旧>-server-<バージョン番号>.txz postgresql<旧>-contrib-<バージョン番号>.txz 
 ``` 
 1. postgresqlに依存するぱっけぇぢを,再インストール。 
     ``` 
 # pkg check -dna 
 Checking all packages: 100% 
 rubygem-pg has a missing dependency: postgresql<旧>-client 
 # portupgrade -f rubygem-pg 
 ```