PostGreSQL(1)-ソースインストール
7967 ワード
目次概要 一、フォーマットディスク 二、ソースコードインストールPostGreSql 1. readline-devel のインストール 2. インストールPostGresql 3. 環境変数 の設定
三、初期化 1. 実行ユーザ の設定 2. データベースの初期化 3. リモートアクセス の設定 4. 共通コマンド 四、自動運転 1. サービス に設定 2. 自動起動 の設定
五、小試牛刀
現在、ほとんどのLinuxリリースにはPostGreSqlのインストールソースが含まれており、yumまたはapt-getでデータベースを迅速にインストールできます.場合によっては、ソースコード方式でインストールする必要があります.例えば、リリース版のソフトウェアバージョンが私たちのニーズを満たしていないか、生産環境が外部ネットワークにソフトウェアをダウンロードできないなどです.以下では、手動ソースにPostGresをインストールする全手順を最初から最後まで説明します.参考にしてください.
一般的には、データベースに独立したディスクをマウントしてデータの保存に使用します.次の操作を参照してディスクのフォーマットを完了できます.
ディスクをマウントする必要のないスキップ可能な部分
A.ディスク情報の表示
使用するディスクは/dev/vdbです.
B.partedでパーティションを設定する
Partedツールの使用についてはこちらを参考にしてください
C.パーティションをフォーマットしてマウントする
XFSファイルシステムフォーマットを推奨し、パーティションのマウント時にnoatimeを指定し、nodiratimeオプションを使用するとパフォーマンスが向上します.
readlineを事前にインストールする必要があります.そうしないと、コンパイルプロセスがエラーを報告します.
次のコマンドを実行すると、ソースコードのダウンロード、エンコード、インストールが完了します.
--prefixはインストールのターゲットパスを示し、インストールが完了した後、そのディレクトリにアクセスして対応する実行プログラムを見つけることができます.
ここではpostgresql-10.6のバージョンを使用しており、ここから異なるバージョンにダウンロードできます.
/etc/profileファイルを編集し、最後に追加します.
再びsource/etc/profileを実行すると、環境変数の設定が完了します.次に、ダイナミックリンクライブラリのロードパス(LD_LIBRARY_PATH)を設定必要があります.そうしないとlibpqが見つからないと報告されます.so.5のエラーは次のとおりです.
リンクライブラリパスの設定
または/etc/profileを編集して、次のいずれかに追加します.
su postgres -c '...'postgresの権限でプログラムを実行することを示します.pg_ctlはpostgresが提供する制御プログラムであり、データベースプロセスの初期化、起動、停止に使用できます.
上記のコマンドを実行すると、/data/pgsql/dataディレクトリに一連のデータベースファイルが生成され、以下のようになります.
ここで、必要ないくつかのファイルについて説明します.
ファイル
説明
postmaster.pid
最初の行にはプロセスPIDが記録されています
serverlog
データベース・ログ
postgresql.conf
プライマリプロファイル(カスタマイズ可能)
pg_hba.conf
認証関連文書
PG_VERSION
現在のマスターバージョン番号
pg_の編集hba.confファイル、末尾に行を追加します.
postgresユーザーがリモートでアクセスできるように、psqlでパスワードを設定できます.
リモートアクセスをオンにするデフォルトではpostgresqlは自機のポートのみを傍受し、/webdata/pgsql/data/postgresqlを編集する必要がある.confファイルはリモートIPのアクセスを開く
ポートをカスタマイズする必要がある場合は、スクリプトを実行します.
プロセスが生存しているかどうかを確認します.
データベース・プロセスの停止
データベースは、通常、システムの起動に伴って実行されるように設定する必要があります.再起動するたびに手動でプロセスを引き出す手間を省く必要があります.
ソースディレクトリのcontrib/start-scripts/linuxスクリプトファイルを見つけ、/etc/initにコピーします.d/postgres.
修正内容は次のとおりです.
実行権限の設定
その後、以下のコマンドを実行することで、容易にサービスを停止できます.
次のコマンドを実行します.
データベースのパラメータを変更する必要がある場合は、$DATA_を編集できます.DIR/postgres.confというファイル
前の手順でデータベースのインストールと構成を完了したら、次のコマンドを入力します.
車に戻ると、次の出力が表示されます.
これで、ソースコード全体のインストールプロセスが完了しました.
簡単に述べる
現在、ほとんどのLinuxリリースにはPostGreSqlのインストールソースが含まれており、yumまたはapt-getでデータベースを迅速にインストールできます.場合によっては、ソースコード方式でインストールする必要があります.例えば、リリース版のソフトウェアバージョンが私たちのニーズを満たしていないか、生産環境が外部ネットワークにソフトウェアをダウンロードできないなどです.以下では、手動ソースにPostGresをインストールする全手順を最初から最後まで説明します.参考にしてください.
一、ディスクのフォーマット
一般的には、データベースに独立したディスクをマウントしてデータの保存に使用します.次の操作を参照してディスクのフォーマットを完了できます.
ディスクをマウントする必要のないスキップ可能な部分
A.ディスク情報の表示
kwe1000570040:~ # fdisk -l
Disk /dev/vda: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders, total 167772160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000aa73e
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 75505663 37751808 83 Linux
/dev/vda2 75505664 83886079 4190208 82 Linux swap / Solaris
Disk /dev/vdb: 322.1 GB, 322122547200 bytes
使用するディスクは/dev/vdbです.
B.partedでパーティションを設定する
// (gpt)
parted -s /dev/vdb mklabel gpt
// (1GB ) --
parted -a optimal -s /dev/vdb mkpart primary 1GB 100GB
// --
parted -a optimal -s /dev/vdb mkpart extend 100GB 100%
Partedツールの使用についてはこちらを参考にしてください
C.パーティションをフォーマットしてマウントする
XFSファイルシステムフォーマットを推奨し、パーティションのマウント時にnoatimeを指定し、nodiratimeオプションを使用するとパフォーマンスが向上します.
//XFS
mkfs.xfs -f /dev/vdb1
mkfs.xfs -f /dev/vdb2
//
mkdir -p /opt/local
mkdir -p /data
chmod -R 755 /opt/local
chmod -R 755 /data
// FSTAB
echo "/dev/vdb1 /opt/local xfs noatime,nodiratime 0 0">> "/etc/fstab"
echo "/dev/vdb2 /data xfs noatime,nodiratime 0 0">> "/etc/fstab"
//
mount -a
二、ソースコードインストールPostGreSql
1.readline-develのインストール
readlineを事前にインストールする必要があります.そうしないと、コンパイルプロセスがエラーを報告します.
wget https://ftp.gnu.org/gnu/readline/readline-6.0.tar.gz
tar -xzvf readline-6.0.tar.gz
cd readline
./configure
make && make install
2.PostGresqlのインストール
次のコマンドを実行すると、ソースコードのダウンロード、エンコード、インストールが完了します.
wget https://ftp.postgresql.org/pub/source/v10.6/postgresql-10.6.tar.gz
tar -xzvf postgresql-10.6.tar.gz
cd postgresql-10.6
./configure --prefix=/opt/local/postgres
make && make install
--prefixはインストールのターゲットパスを示し、インストールが完了した後、そのディレクトリにアクセスして対応する実行プログラムを見つけることができます.
ここではpostgresql-10.6のバージョンを使用しており、ここから異なるバージョンにダウンロードできます.
3.環境変数の設定
/etc/profileファイルを編集し、最後に追加します.
export PG_HOME=/opt/local/postgres
export PATH=$PG_HOME/bin:$PATH
再びsource/etc/profileを実行すると、環境変数の設定が完了します.次に、ダイナミックリンクライブラリのロードパス(LD_LIBRARY_PATH)を設定必要があります.そうしないとlibpqが見つからないと報告されます.so.5のエラーは次のとおりです.
./psql: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory
リンクライブラリパスの設定
sudo /sbin/ldconfig /opt/local/pgsql/lib
または/etc/profileを編集して、次のいずれかに追加します.
LD_LIBRARY_PATH=/usr/local/pgsql/lib
export LD_LIBRARY_PATH
三、初期化
1.運転ユーザの設定
groupadd postgres
useradd -G postgres postgres
passwd postgres
...
2.データベースの初期化
//
su postgres -c 'pg_ctl -D /data/pgsql/data initdb'
//
su postgres -c 'pg_ctl start -D /data/pgsql/data -l serverlog'
su postgres -c '...'postgresの権限でプログラムを実行することを示します.pg_ctlはpostgresが提供する制御プログラムであり、データベースプロセスの初期化、起動、停止に使用できます.
上記のコマンドを実行すると、/data/pgsql/dataディレクトリに一連のデータベースファイルが生成され、以下のようになります.
-rw------- 1 postgres users 3 Mar 5 17:18 PG_VERSION
drwx------ 6 postgres users 50 Mar 5 18:22 base
drwx------ 2 postgres users 4.0K Mar 5 17:50 global
drwx------ 2 postgres users 6 Mar 5 17:18 pg_commit_ts
drwx------ 2 postgres users 6 Mar 5 17:18 pg_dynshmem
-rw------- 1 postgres users 4.5K Mar 5 17:18 pg_hba.conf
-rw------- 1 postgres users 1.6K Mar 5 17:18 pg_ident.conf
drwx------ 4 postgres users 65 Mar 5 18:28 pg_logical
drwx------ 4 postgres users 34 Mar 5 17:18 pg_multixact
drwx------ 2 postgres users 17 Mar 5 17:49 pg_notify
drwx------ 2 postgres users 6 Mar 5 17:18 pg_replslot
drwx------ 2 postgres users 6 Mar 5 17:18 pg_serial
drwx------ 2 postgres users 6 Mar 5 17:18 pg_snapshots
drwx------ 2 postgres users 6 Mar 5 17:49 pg_stat
drwx------ 2 postgres users 60 Mar 7 16:06 pg_stat_tmp
drwx------ 2 postgres users 17 Mar 5 17:18 pg_subtrans
drwx------ 2 postgres users 6 Mar 5 17:18 pg_tblspc
drwx------ 2 postgres users 6 Mar 5 17:18 pg_twophase
drwx------ 3 postgres users 58 Mar 5 17:18 pg_wal
drwx------ 2 postgres users 17 Mar 5 17:18 pg_xact
-rw------- 1 postgres users 88 Mar 5 17:18 postgresql.auto.conf
-rw------- 1 postgres users 23K Mar 5 17:18 postgresql.conf
-rw------- 1 postgres users 57 Mar 5 17:49 postmaster.opts
-rw------- 1 postgres users 83 Mar 5 17:49 postmaster.pid
-rw-r--r-- 1 postgres users 1.2K Mar 5 18:22 serverlog
ここで、必要ないくつかのファイルについて説明します.
ファイル
説明
postmaster.pid
最初の行にはプロセスPIDが記録されています
serverlog
データベース・ログ
postgresql.conf
プライマリプロファイル(カスタマイズ可能)
pg_hba.conf
認証関連文書
PG_VERSION
現在のマスターバージョン番号
3.リモートアクセスの設定
pg_の編集hba.confファイル、末尾に行を追加します.
host all all 0.0.0.0/0 md5
postgresユーザーがリモートでアクセスできるように、psqlでパスワードを設定できます.
alter user postgres with password 'postgres';
リモートアクセスをオンにするデフォルトではpostgresqlは自機のポートのみを傍受し、/webdata/pgsql/data/postgresqlを編集する必要がある.confファイルはリモートIPのアクセスを開く
listen_addresses = '*'
4.共通コマンド
ポートをカスタマイズする必要がある場合は、スクリプトを実行します.
postgres -p 5430 -D /data/pgsql/data >serverlog 2>&1 &
プロセスが生存しているかどうかを確認します.
netstat -nlp |grep `head -1 /data/pgsql/data/postmaster.pid`
データベース・プロセスの停止
kill -INT `head -1 /data/pgsql/data/postmaster.pid`
四、自動運転
データベースは、通常、システムの起動に伴って実行されるように設定する必要があります.再起動するたびに手動でプロセスを引き出す手間を省く必要があります.
1.サービスへの構成
ソースディレクトリのcontrib/start-scripts/linuxスクリプトファイルを見つけ、/etc/initにコピーします.d/postgres.
修正内容は次のとおりです.
#
prefix=/opt/local/postgres
#
PGDATA="/data/pgsql/data"
#
PGUSER=postgres
#
PGLOG="$PGDATA/serverlog"
実行権限の設定
chmod +x /etc/init.d/postgres
その後、以下のコマンドを実行することで、容易にサービスを停止できます.
//
service postgres start
//
service postgres status
//
service postgres stop
2.自動起動の設定
次のコマンドを実行します.
//
chkconfig --add postgres
データベースのパラメータを変更する必要がある場合は、$DATA_を編集できます.DIR/postgres.confというファイル
五、小試牛刀
前の手順でデータベースのインストールと構成を完了したら、次のコマンドを入力します.
psql -U postgres -p 5432
> select version();
車に戻ると、次の出力が表示されます.
version
---------------------------------------------------------------------------------------------------------------------
PostgreSQL 10.6 on x86_64-pc-linux-gnu, compiled by gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973], 64-bit
(1 row)
これで、ソースコード全体のインストールプロセスが完了しました.