CentOS 7ソースインストールPostgreSQL 12

7148 ワード

PostgreSQL 12ソースコードのインストール


Table of Contents

  • 1. ダウンロード
  • 2. 準備環境
  • 3. コンパイルインストール
  • 4. 環境変数
  • の設定
  • 5. データベースの初期化
  • 6. パラメータファイルの設定
  • 6.1. postgresql.conf
  • 6.2. pg_hba.conf

  • 7. データベースの起動と停止
  • 7.1. 手動
  • 7.2. 起動自動起動

  • 1ダウンロード


    公式サイトでは、ソースコードとプリインストールのバージョンが提供されています.ソースコードはインストールをコンパイルし、依存パッケージなどの問題を解決する必要がありますが、プリインストールのバージョンは簡単です.解凍をダウンロードしてデータベースを初期化するだけです.
    この例はソースコードのインストールを例にとります:公式サイトにソースコードをダウンロードしてください.
    本例ではPG 12が実装.にあるhttps://www.postgresql.org/ftp/source/v12.0/を含む解析順序を選択します.tar.bz2
    必要に応じて自分の必要なバージョンを選んでください.
    プリインストールバージョンは、公式サイトでダウンロードしてください.

    2環境の準備


    この手順はrootユーザーで実行します.postgresqlのインストールパッケージを/optパスに配置します.
    #       
    groupadd postgre
    useradd -g postgre -G postgre -d /home/postgresql postgre
    passwd postgre
    #      
    yum install -y bzip2 readline-devel zlib-devel
    #       /opt       
    cd /opt/
    bunzip2 postgresql-12.0.tar.bz2
    tar -xvf ./postgresql-12.0.tar
    

    3コンパイルインストール


    この手順はpostgreユーザーで行います.
    cd /opt/postgresql-12.0
    ./configure --prefix=/home/postgresql/dbhome
    make && make install
    

    インストール後、実行可能ファイル、ライブラリファイルなどは/home/postgresql/dbhomeにインストールされます.
    [postgre@boss20 dbhome]$ ls /home/postgresql/dbhome
    bin  include  lib  share
    

    4環境変数の設定


    postgreユーザの環境変数ファイルに以下の2行を追加する.bash_プロファイルが有効になります.
    export LD_LBRARY_PATH=$HOME/dbhome/lib:$LD_LIBRARY_PATH
    export PATH=$HOME/dbhome/bin:$PATH
    

    環境変数ファイルの有効化方法:
    . .bash_profile
      
    source .bash_profile
    

    5データベースの初期化


    この手順はpostgreユーザーで実行します.
  • データ格納パスの作成
    mkdir $HOME/data
    

    postgresqlデータベースのプロファイル、データファイルなどはこのパスの下に格納されます.
  • データベースの初期化
    initdb --locale=C -E UNICODE -D $HOME/data/
    

    例は、
      The files belonging to this database system will be owned by user "postgre".
    This user must also own the server process.
    
    The database cluster will be initialized with locale "C".
    The default text search configuration will be set to "english".
    
    Data page checksums are disabled.
    
    fixing permissions on existing directory /home/postgresql/data ... ok
    creating subdirectories ... ok
    selecting dynamic shared memory implementation ... posix
    selecting default max_connections ... 100
    selecting default shared_buffers ... 128MB
    selecting default time zone ... America/New_York
    creating configuration files ... ok
    running bootstrap script ... ok
    performing post-bootstrap initialization ... ok
    syncing data to disk ... ok
    
    initdb: warning: enabling "trust" authentication for local connections
    You can change this by editing pg_hba.conf or using the option -A, or
    --auth-local and --auth-host, the next time you run initdb.
    
    Success. You can now start the database server using:
    
        pg_ctl -D /home/postgresql/data/ -l logfile start
    
  • 初期化が完了すると、最後の行でデータベースを起動する方法が提示されます.$HOME/dataパスの内容を確認します.
    [postgre@boss20 data]$ ls
    base    pg_commit_ts  pg_hba.conf    pg_logical    pg_notify    pg_serial     pg_stat      pg_subtrans  pg_twophase  pg_wal   postgresql.auto.conf
    global  pg_dynshmem   pg_ident.conf  pg_multixact  pg_replslot  pg_snapshots  pg_stat_tmp  pg_tblspc    PG_VERSION   pg_xact  postgresql.conf
    

    これらの経路はそれぞれどのような用途があるのか、後で理解します.

    6構成パラメータファイル


    私たちは主にpostgresqlを構成します.confとpg_hba.confの2つ.
  • postgresql.confのインスタンスに対する構成
  • pg_hba.confデータベースへのアクセス制御
  • 6.1 postgresql.conf


    ポートとlistenerの検索addressという2つのパラメータ.この2つのパラメータは隣接しています.
    #listen_addresses = 'localhost'               # what IP address(es) to listen on;
                                            # comma-separated list of addresses;
                                            # defaults to 'localhost'; use '*' for all
                                            # (change requires restart)
    #port = 5432                             # (change requires restart)
    max_connections = 100                  # (change requires restart)
    

    2行の先頭の#を削除し、localhostを現在のサーバのIPに変更します.デフォルトのリスニングポートは5432で、別のポート番号を自分で指定できます.*デフォルトのポート番号を優先的に使用しない*です.ついでにmax_を修正しますconnectionsでしょう.最大の接続数は、100が少し少ないです.特にビジネスシステムです.1000以上に調整できます.

    6.2 pg_hba.conf


    次の行を文末に追加します.
    host    all             all             10.10.100.0/24          trust
    

    10.10.100セグメントのIPがこのサーバ上のPGに接続できるようにすることを意味する.すべてのIPがこのサーバに接続できるようにするには以下のように構成することができる.
    host    all             all             0.0.0.0/0          trust
    

    7データベースの起動と停止


     

    7.1手動


    データベースの手動起動と停止はpgを実行します.ctlコマンド.実行時には、次の形式でデータパスを指定する必要があります.
    pg_ctl -D  [ stop | start ]
    

    例は次のとおりです.
    [postgre@boss20 data]$ pg_ctl -D /home/postgresql/data/ -l logfile start
    waiting for server to start.... done
    server started
    [postgre@boss20 data]$ pg_ctl -D $HOME/data stop
    waiting for server to shut down.... done
    server stopped
    

    7.2起動自動起動


    この手順ではrootユーザー操作が必要です.postgresqlのインストールパッケージには、データベースの起動と停止のスクリプトが用意されており、操作を簡素化したり、起動のスクリプトやservice/systemctl制御サービスのスクリプトとして使用したりすることができます.スクリプトは次の場所にあります.
    /postgresql-12.0/contrib/start-scripts/
         :
    /opt/postgresql-12.0/contrib/start-scripts/
    

    起動の設定:
    cp /opt/postgresql-12.0/contrib/start-scripts/linux /etc/init.d/postgresql
    chkconfig --add postgresql
    chmod 755 /etc/init.d/postgresql
    

    設定を調整します.主にスクリプトの3つの変数の値です.
    prefix="/home/postgresql/dbhome"
    PGDATA="/home/postgresql/data"
    PGUSER=postgre
    
  • prefixはソフトウェアのインストールパス
  • である.
  • PGDATAは、データ格納経路
  • である.
  • PGUSERはpostgresqlサービスを開始するユーザ
  • である.
    後で電源を入れて起動し、サービスコマンドで起動と停止を制御できます.
    [root@boss20 init.d]# service postgresql start
    Starting PostgreSQL: ok
    [root@boss20 init.d]# service postgresql stop
    Stopping PostgreSQL: ok
    

    Author: halberd.lee
    Created: 2019-10-18 Fri 18:05
    Validate