PostgreSQLのデータベースの管理 - 第1章インストールと設定

PostgreSQLのデータベース管理

第1章インストールと設定

アウトライン

PostgreSQLは、クライアント/サーバーリレーショナルデータベース管理システム(RDBMS)のための非常に強力な、オープンソースコードです。(そのようなJSONとJSONB型、配列型など)のデータ型は、豊かでカスタムタイプをサポートしています。デフォルトのページ・サイズPostgreSQLのメモリは、8kBのです。

 

PostgreSQLは、次の主要な機能を備えています。

1つのグッドSQL言語のサポート、サポート ACID 、準整合性、データベーストランザクション、Unicodeの多言語を。

2高同時読み取りと書き込みを設計し、詰まらないでください

3つのサポートするデータベースモデルの種類の数(例えばJSONとJSONB型、配列型など)リレーショナル、文書タイプ、キー/値のタイプ。

1インストールのPostgreSQL

    1. LinuxのRPMの下にインストールPostgreSQLのパケット

1つのインストールリポジトリのRPM:

ヤムhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpmをインストール

RPMパッケージには、サーバーをインストール2

yumのリストpostgresql11-server.x86_64

 3クライアントパッケージをインストールします。

yumのリストpostgresql11.x86_64 

図4は、データベースを初期化し、自動起動を可能にします。

/ usr / pgsqlの-11 / binに/のpostgresql-11-セットアップinitdbを
systemctlのpostgresql-11有効
systemctl開始にpostgresql-11を

 

ソースパッケージのPostgreSQLの1.2 Linuxのインストール

1システム環境を確立するために、

GCC、バイソン、GCC-C ++、readlineの、readlineの-develの、ZLIB、ZLIB-develの

yumをインストール* GCC * -y

[ルート@ Redhat7〜]#yumをインストール*バイソン* -y

[ルート@ Redhat7〜]#yumをインストール* readlineの* -y

[ルート@ Redhat7〜]#yumをインストール* zlibの* -y  

2およびLinuxシステムの最適化

ulimitの機能:リソース・シェル・プログラムの制御

Linuxアプリケーションの展開以下の時間では、時々、ソケットファイルに遭遇/:質問に非常に多くのファイルを開くことができません。また、同時サーバーの最大数に影響します。この値は、実際には、Linuxのファイルハンドルの制限が、Linuxのデフォルトはあり本番サーバと、通常は1024、非常に高くはない、実際にこの数に到達するのは非常に簡単です。その下には、正のソリューション構成することにより、システムのデフォルトを修正する方法です。

/etc/security/limits.confを

ソフトNPROC:シングルユーザーに利用可能なプロセスの最大数(警告以上)。

ハードNPROC:シングルユーザ(与えられているよりも多くの)で使用可能なプロセスの最大数。

ソフトNOFILE:最大数(警告以上)ファイルディスクリプタをオープンします。

ハードNOFILE:オープンファイル記述子の最大数(与えられているよりも多く)

f11eの#終わり

*ソフトnof1le 1024000

*ハードNOFILE 1024000

*ソフトNPROC 1024000

*ハードNPROC 1024000

 

[ルート@ Redhat7〜]#猫/etc/security/limits.d/20-nproc.conf

防ぐために、ユーザのプロセス数のための#デフォルトの制限

#偶発フォーク爆弾。

#参照は、推論のための#432903をrhbz。

 

*ソフトNPROC 4096

ルートソフトNPROC無制限

に変更されました

 

*ソフトNPROC 1024000

*ハードNPROC 1024000

ルートソフトNPROC無制限

 

 

 

3 postgresユーザを作成し、インストールディレクトリを作成します

[ルート@ Redhat7〜]#useraddのpostgresの

[ルート@ Redhat7〜]#ます。mkdir /opt/pgsql11.4ホームディレクトリを作成PG

[ルート@ Redhat7〜]#ます。mkdir / PGDBデータディレクトリのPGを作成します

[ルート@ Redhat7〜]#chownコマンド-Rのpostgres:postgresの/opt/pgsql11.4/

[ルート@ Redhat7〜]#chownコマンド-Rのpostgres:postgresの/ PGDB

 

PostgreSQLのインストール4

[ルート@ Redhat7 pgsql11.4]#タール-zxvfのpostgresql-11.4.tar.gz

[ルート@ Redhat7のpostgresql-11.4]#は./configure --prefix =は/ opt / pgsql11.4

メイク

make installを

PostgreSQLのインストールが完了しました。

ポート接頭辞= PREFIX - インストール最も頻繁に変更パス

口with-ブロックサイズ= BLOCKSIZE - データベースのブロック、デフォルトの8キロバイト

この値でのOLAPシーンがOLAPのパフォーマンスを向上させるためには、32kBのに大きくすることができ、OLTPシナリオで8kBのデフォルトを使用することをお勧めします。

-SEGSIZE = SEGSIZEポート - セグメント・テーブル・ファイルのサイズ、デフォルトの1ギガバイト

口で、LLVM - ベースのJITコンパイラIVMを使用します

ポート--with-WAL-ブロックサイズ= BLOCKSIZE:WALファイルのブロックサイズを指定し、デフォルトは8kBのです。

ポート--with-WAL-SEGSIZE = SEGSIZE:WALは、単一のファイルサイズを指定するデフォルトは16メガバイトです。

5設定環境変数

比較的広いです

我々/home/postgres/.bash_profile

コンテンツの追加:

輸出PGPORT = 8432

輸出PGHOME =は/ usr / pgsqlの-11

輸出PGDATA = / mntに/ DB1 / PGDATA / pgsqlの

輸出PATH = $ PGHOME / binに:$ PATHに

輸出MANPATH = $ PGHOME / share / manを:$ MANPATH

輸出LANG = EN_US.UTF-8

エクスポートDATE = '日付+ "%Yの%mの%D%H%M"'

輸出LD_LIBRARY_PATH = $ PGHOME / libに:$ LD_LIBRARY_PATH

輸出PGHOST = $ PGDATA

輸出PGUSER = postgresの

使用することができます

PGHOME =は/ opt / pgsql11.4

輸出PGHOME

PGD​​ATA = / PGDB

輸出PGDATA

輸出PATH = $ PGHOME / binに:$ PATHに

輸出PATH

図6は、データベースを初期化します

initdbを使用したデータベースクラスタを初期化するコマンド

-D:データベースクラスタのホームディレクトリ

--E:データベースの文字エンコーディング

--wal-SEGSIZE:WALログファイルのサイズ

- -U:スーパーユーザを指定します

 

initdbを-D / PGDB /

[RHCE7〜@のpostgres] $ initdbは-D / PGDB /

このデータベースシステムに属するファイルは、ユーザー「のpostgres」によって所有されます。

このユーザーは、サーバープロセスを所有する必要があります。

 

データベースクラスタは、ロケール「zh_CN.UTF-8」で初期化されます。

デフォルトのデータベースのエンコーディングは、それに応じて、「UTF8」に設定されています。

initdbを:ロケールに適したテキスト検索設定を見つけることができなかった「zh_CN.UTF-8」

デフォルトのテキスト検索設定は、「シンプル」に設定されます。

 

データ・ページのチェックサムが無効になっています。

 

OK ...既存のディレクトリ/ PGDBのパーミッションを固定

サブディレクトリを作成... [OK]

デフォルトMAX_CONNECTIONS ... 100を選択します

デフォルトのshared_buffers ... 128メガバイトを選択

デフォルトのタイムゾーンを選択... PRCを

動的共有メモリの実装を選択し... POSIX

設定ファイルを作成... [OK]

ブートストラップスクリプトを実行している... [OK]

ポストブートストラップ初期化を行って... [OK]

ディスクにデータを同期... [OK]

 

警告:ローカル接続のための「信頼」の認証を有効にします

あなたはpg_hba.confの編集やオプション-Aを使用して、これを変更したり、することができます

--auth-ローカルおよび--auth-ホスト、次回はあなたがinitdbを実行します。

 

成功。これで、使用してデータベース・サーバを起動することができます:

 

    pg_ctl -D / PGDB / -lログファイルを開始

 

[postgresの@ RHCE7〜] $にpg_ctl -D / PGDB / -lログファイル開始

サーバが起動するのを待っている....行われ

サーバー開始

起動時に7

 

[ルート@ RHCE7〜]#vimの/usr/lib/systemd/system/postgresql-11.service

 

[単位]

説明= PostgreSQLデータベースサーバ

= network.target後

 

[サービス]

タイプ=フォーク

 

ユーザー= postgresの

当社グループは、postgresのを=

 

リッスンするサーバーのポート番号#

環境= PGPORT = 5432

 

#データベースディレクトリの場所

環境= PGDATA = / PGDB /

 

#どこ伐採前に(サーバからの早期立ち上げメッセージを送信すること

postgresql.confのテイク効果の#オプション)

#これは通常にsystemdによってグローバルなデフォルト設定によって制御されます

#StandardOutput =シスログ

 

#ポストマスターに無効にOOMキル

OOMScoreAdjust = -1000

 

#ExecStartPre =は/ opt / pgsql11.4 / binに/のpostgresql-チェック-DB-dirは$ {} PGDATA

ExecStart =は/ opt / pgsql11.4 / binに/にpg_ctl -D $ {PGDATA} -s -oを開始する "-p $ {PGPORT}" -w -t 300

ExecStop =は/ opt / pgsql11.4 / binに/にpg_ctl停止-D $ {PGDATA} -s -m速いです

ExecReload = / OPT / pgsql11.4 / binに/にpg_ctlリロード-D $ {PGDATA} -s

 

#起動するサーバに対して妥当な時間を与える/シャットダウン

TimeoutSec = 300

 

[インストール]

WantedBy = multi-user.target

 

 

[ルートRHCE7〜@]#は/usr/lib/systemd/system/postgresql-11.serviceを有効systemctl

6再起動テストの初期化

 

[ルート@ RHCE7〜]#systemctlの状態にpostgresql-11.service

●PostgreSQLの-11.service - PostgreSQLデータベースサーバ

   ロード:ロード(/usr/lib/systemd/system/postgresql-11.service;有効;ベンダーのプリセット:無効)

   アクティブ:アクティブ(ランニング)日2019年9月15日夜12時37分04秒CST以来。3分前47S

  プロセス:936 ExecStart = / OPT / pgsql11.4 / binに/にpg_ctl開始-D $ {PGDATA} -s -o -p $ {PGPORT} -w -t 300(コード=終了し、ステータス= 0 / SUCCESS)

1.3PostgreSQLリモートアクセス(Linuxバージョン)

PostgreSQLのデフォルトのLinuxのバージョンは、直接自分のリモート・データベースがゆえのリモートアクセスのためのPostgreSQLデータベースの設定を変更する必要があるアクセスすることはできません。

次のように具体的な動作は、次の修飾のpostgresql.confの

パラメータを追加するには、エンドユーザーで:

listen_address =「*」、コメントアウトされないように注意してください

パスワード認証を有効にします

#Password_encryption = MD5 password_encryption = md5のように修正

 

pg_hba.confファイルの内容を変更します。

ユーザーがIPセグメントにアクセスすることができます

追加したファイルの末尾には:ホストすべてすべて0.0.0.0/0信頼

また、すべてのすべてのすべての信頼をホストすることができます

 

再起動PostgreSQLデータベース:正常に起動した後、リモートを接続

 

公開された37元の記事 ウォンの賞賛0 ビュー2400

おすすめ

転載: blog.csdn.net/syjhct/article/details/100867439