[ PostgreSQL](https://cloud.tencent.com/product/postgresql?from=10680)は、強力なオープンソースデータベースシステムです。 15年以上の積極的な開発と継続的な改善の結果、PostgreSQLは信頼性、安定性、データの一貫性で業界で高い評価を得ています。現在、PostgreSQLは、Linux、Unix(AIX、BSD、HP-UX、SGI IRIX、Mac OS X、Solaris、Tru64)、Windowsを含むすべての主流オペレーティングシステムで実行できます。 PostgreSQLは完全にトランザクションセーフなデータベースであり、外部キー、ユニオン、ビュー、トリガー、およびストアドプロシージャを完全にサポートします(また、複数の言語でのストアドプロシージャの開発をサポートします)。整数、数値、ブール値、バイト、文字、日付、時間間隔、時刻など、ほとんどのSQL:2008標準データタイプをサポートします。また、大きなバイナリオブジェクトの保存もサポートします。 、写真、音声、ビデオを含みます。 PostgreSQLには、C / C ++、Java、.Net、Perl、Python、Ruby、Tcl、ODBC、その他の言語などの多くの高レベル開発言語や、さまざまなドキュメント用のネイティブプログラミングインターフェイスがあります。
エンタープライズレベルのデータベースとして、PostgreSQLは、マルチバージョン同時実行制御(MVCC)、ポイントインタイムリカバリ(PITR)、テーブルスペース、非同期レプリケーション、ネストされたトランザクション、オンラインホットバックアップなど、さまざまな高度な機能を誇っています。 、複雑なクエリの計画と最適化、および障害耐性のための先読みログ。国際文字セット、マルチバイトエンコーディングをサポートし、並べ替え、大文字と小文字の処理、ローカル言語でのフォーマットなどの操作をサポートします。また、管理できる大量のデータと、多数のユーザーに許可される同時アクセス時間により、完全にスケーラブルです。現在、多くのPostgreSQLシステムは、実際の実稼働環境で4TBを超えるデータを管理しています。一部のPostgreSQLシステムの制限値を次の表に示します。
制限値: | |
---|---|
単一データベースの最大サイズ | 無制限 |
最大データシートサイズ | 32 TB |
最大単一レコード | 1.6TB |
最大許容単一フィールド | 1GB |
1つのテーブルで許可されるレコードの最大数 | 無制限 |
1つのテーブル内のフィールドの最大数 | 250-1600(フィールドタイプによって異なります) |
1つのテーブル内のインデックスの最大数 | 無制限 |
PostgreSQLの優れたパフォーマンスにより、Linux New Mediaの最優秀データベース賞やLinuxジャーナル編集者によって5回選ばれた最優秀データベース賞など、エンドユーザーや業界から多くの賞を受賞しています。 |
PostgreSQLはSQL標準との互換性が高く、実装する機能はANSI-SQL:2008標準に完全に準拠しています。現在、サブクエリ(FROMのサブクエリを含む)、許可された読み取り、およびシリアル化可能なトランザクション分離レベルが完全にサポートされています。同時に、PostgreSQLには完全なリレーショナルデータベースシステムカタログ機能もあり、単一データベースのマルチモード機能をサポートし、SQL標準で定義されている辞書情報モードを介して各カタログにアクセスできます。
データ統合機能には、(複合)プライマリキー、厳密な制約またはカスケード更新および削除機能を持つ外部キー、エントリチェック制約、一意の制約、およびnull以外の制約が含まれます。
PostgreSQLには、多くの拡張モジュールとより高度な機能もあります。その中には、便宜上シーケンスによって実現される自動インクリメントフィールド、部分的なレコードセットを返すことができるLIMIT / OFFSETオプション、複合、一意、部分的および機能的なインデックス、インデックスがあり、B-Tree、R-Tree、Hash、またはGiSTストレージ方式。
GiST(Universal Search Tree)インデックスは、さまざまな並べ替えアルゴリズムをBツリー、B +ツリー、Rツリー、部分要約ツリー、加重B +ツリー、およびその他の多くの検索ロジックと組み合わせた高度なシステムアルゴリズムです。同時に、ユーザーデータタイプと拡張クエリメソッドの作成を可能にするインターフェイスも提供します。このように、GiSTは、ストレージを指定し、クエリの新しいメソッドを定義する柔軟性をユーザーに提供します。これは、標準のBツリー、Rツリー、およびその他の一般的な検索ロジックによって提供される機能を大幅に上回ります。
GiSTは現在、OpenFTSやPostGISプロジェクトなど、PostgreSQLを使用する他の多くの公開プロジェクトの基盤となっています。 OpenFTS(オープンソースフルテキスト検索エンジン)プロジェクトは、オンラインインデックス作成とデータベース検索にかなりの重みスコアを提供します。 PostGISプロジェクトは、地理情報管理機能をPostgreSQLに追加し、ユーザーがPostgreSQLをGIS空間地理情報データベースとして使用できるようにします。これは、プロのESRIのSDEシステムおよびOracleの空間地理拡張モジュールと同じです。
その他の高度な機能には、テーブルの継承、ルール、およびデータベースインシデント対応機能が含まれます。テーブル継承関数は、元のテーブルに基づく関係を持つ新しいテーブルを作成できます。これにより、データベース設計者はテーブルをベーステーブルとして使用し、ベーステーブルから新しいテーブルを派生させることができます。また、PostgreSQLはこのメソッドを使用して、シングルレベルまたはマルチレベルの継承を実装することもできます。
ルール関数は、クエリの再計算関数を呼び出すために使用されます。これにより、データベース設計者は、さまざまなテーブルまたはビューに基づいてルールを作成し、データベースの元の操作を新しい操作に動的に変更する機能を実現できます。
イベント応答機能は、ユーザーが使用したLISTENおよびNOTIFY命令の後にシステム情報またはイベントを送信する内部通信機能であり、指定されたデータベースイベントの簡単なポイントツーポイント通信または固定ポイント通信を可能にします。トリガーまたはストアドプロシージャから情報を送信できるため、PostgreSQLユーザーは、更新、追加、削除などのデータベースイベントを監視できます。
PostgreSQLのストアドプロシージャの開発では、Java、Perl、Python、Ruby、Tcl、C / C ++および独自のPL / pgSQLを含む多くのプログラミング言語を使用できます。PL/ pgSQLはOracleのPL / SQLと非常によく似ており、組み込みです。基本的な算術計算や文字列処理から暗号化された論理計算に至るまで、Oracleとの互換性が高い数百の関数。トリガーとストアドプロシージャは、C言語を使用して開発でき、内部ライブラリファイルとしてデータベースにロードできます。開発の柔軟性が高いため、データベースの機能が拡張されます。これに対応して、PostgreSQLには、開発者が関数で使用できる独自のデータタイプを定義および作成したり、オペレーターの新しい処理方法を定義したりできるフレームワークも含まれています。このような機能により、PostgreSQLにはさまざまな機能があります。幾何学的図形、空間地理、ネットワークアドレス、さらにはISBN / ISSN(国際標準ブック番号/国際標準シリアル番号)を含む高度なデータタイプをすべてシステムに追加できます。
使用できるストアドプロシージャ言語が多数あるため、多くのライブラリインターフェイスも生成されます。これにより、Java(JDBC)、ODBC、Perl、Python、Rubyなどのさまざまなコンパイル済みまたは解釈済みの言語をPostgreSQLで使用できます。 C、C ++、PHP、Lisp、Scheme、Qtなど。
最も重要な点は、PostgreSQLのソースコードを自由に入手できることです。その承認は非常に無料のオープンソースライセンスの下にあります。この承認により、ユーザーはさまざまなオープンソースまたはクローズドソースプロジェクトでPostgreSQLのソースコードを使用、変更、およびリリースできます。ユーザーは、必要に応じてソースコードに変更や改善を加えることができます。したがって、PostgreSQLは、強力なエンタープライズレベルのデータベースシステムであるだけでなく、ユーザーがプライベート、ネットワーク、および商用のソフトウェア製品を開発できるデータベース開発プラットフォームでもあります。
アドレス:[https://yum.postgresql.org/repopackages.php](https://yum.postgresql.org/repopackages.php)
yum install pgdg-centos10-10-2.noarch.rpm
yum list postgres*
yum install postgresql10-server.x86_64
postgresではなく、インストールされているサービスを最初に見つけて、チェックします
[ root@d2-test-2 init.d]# ls /etc/init.d/| grep post
postfix
postgresql-10
udev-post
service postgresql-10 initdb
service postgresql-10 start
service postgresql status
service postgresql restart
デフォルトでは、rootは接続できません。ユーザーpostgresに切り替える必要があります
$ sudo su - postgres
- bash-4.1$ psql
psql(8.4.20)
Type "help"for help.
postgres=#
(1) すべてのデータベースを一覧表示
mysql: show databases
psql: \lまたは\list
(2) データベースの切り替え
mysql: use dbname
psql: \c dbname
(3) 現在のデータベースの下にデータテーブルを一覧表示します
mysql: show tables
psql: \d
(4) 指定されたテーブルのすべてのフィールドを一覧表示します
mysql: show columns from table name
psql: \d tablename
(5) 指定されたテーブルの基本的な状況を表示します
mysql: describe tablename
psql: \d+ tablename
(6) サインアウト
mysql:終了または\q
psql:\q
(7) pgslバージョンを表示
pg_ctl --version
(8) コマンドラインログインデータベース
psql -h 192.168.2.125-p 5432<dbname><username>
(9) パスワードを変更する
psqlログイン
その後、\password postgres
データベースはデフォルトで次のようにインストールされます: / var / lib / pgsql / 10 / data
データディレクトリに入った後、 postgresql.conf
を編集します
*に変更して、すべてを許可します
# listen_addresses ='*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost','*'= all
# ( change requires restart)
# port =5432 # (change requires restart)
リブート
service postgresql-10 restart
デフォルトでは、ローカルユーザーのみがアクセスできるため、IPの変更に加えて、アクセス許可を変更する必要があります。
pg_hba.conf
を変更します
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# " local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 md5
# IPv6 local connections:
host all all ::1/128 trust
ポイントは
host all all 192.168.1.0/24 md5
これは、ネットワークセグメント192.168.1.0上のすべてのホストが、すべての有効なデータベースユーザー名を使用してデータベースにアクセスし、暗号化されたパスワード認証を提供できることを意味します。
その中で、24はサブネットマスクです。これは、ホスト192.168.1.0〜192.168.1.255がアクセスを許可されていることを意味します。
Recommended Posts