PostGreSQL(1)-ソースインストール

7967 ワード

目次
  • 概要
  • 一、フォーマットディスク
  • 二、ソースコードインストールPostGreSql
  • 1. readline-devel
  • のインストール
  • 2. インストールPostGresql
  • 3. 環境変数
  • の設定
  • 三、初期化
  • 1. 実行ユーザ
  • の設定
  • 2. データベースの初期化
  • 3. リモートアクセス
  • の設定
  • 4. 共通コマンド
  • 四、自動運転
  • 1. サービス
  • に設定
  • 2. 自動起動
  • の設定
  • 五、小試牛刀
  • 簡単に述べる


    現在、ほとんどの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)
    

    これで、ソースコード全体のインストールプロセスが完了しました.