GNU/Linux >> Linux の 問題 >  >> Cent OS

便利な RHV エンジン PostgreSQL データベース クエリ

この投稿では、いくつかの実用的な psql コマンドについて説明し、コマンド ラインから PostgreSQL クエリを実行してエンジン データベースから有用な情報を取得する方法について説明します。

コマンド ラインから「Postgres」データベースに接続する

「Postgres」データベースに接続するには:

# su - postgres
Last login: Thu Apr 30 20:25:36 AEST 2020 on pts/1

postgres はソフトウェア コレクションから取得されるため、postgresql を有効にしてエンジン データベースに接続する必要があります:

4.2.8 の場合:

-bash-4.2$ scl enable rh-postgresql95 "psql -d engine -U postgres"
psql (9.5.14)
Type "help" for help.
engine=#

4.3.6 の場合:

-bash-4.2$ scl enable rh-postgresql10 "psql -d engine -U postgres"
psql (10.6)
Type "help" for help. 

いくつかの実用的で便利な psql コマンド

1. psql コマンドのヘルプを取得します。

使用可能なすべての psql コマンドを知るには、\?ヘルプを表示するコマンド。

engine=# \?

2. すべてのデータベースを「\l」で一覧表示します。

RHV には、engine と ovirt-engine-history という 2 つの関連データベースがあります。 RHV は、engine と呼ばれる PostgreSQL データベースを作成します。 ovirt-engine-dw パッケージをインストールすると、ovirt-engine-history と呼ばれる 2 番目のデータベースが作成されます。このデータベースには、エンジン運用データベースから毎分収集された履歴構成情報と統計メトリックが含まれます。以下の 2 つのデータベース情報を確認できます:

engine=# \l
List of databases
Name                    | Owner                | Encoding | Collate | Ctype | Access privileges
----------------------+------------------------+----------+-------------+-------------+-----------------------
engine                  | engine               | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
ovirt_engine_history    | ovirt_engine_history | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
postgres                | postgres             | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
templates               | postgres             | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +    | | | | | postgres=CTc/postgres
template1               | postgres             | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +       | | | | | postgres=CTc/postgres
(5 rows)

詳細情報には「\l+」を使用:

engine=# \l+
List of databases
Name                  | Owner | Encoding | Collate | Ctype | Access privileges | Size | Tablespace |  Description
----------------------+----------------------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------
engine                | engine | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 28 MB | pg_default |
ovirt_engine_history  | ovirt_engine_history | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 48 MB | pg_default |
postgres              | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 7288 kB | pg_default | default administrative connection database
templates             | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +| 7153 kB | pg_default | unmodifiable empty database  | | | | | postgres=CTc/postgres | | |
template1             | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +| 7288 kB | pg_default | default template for new databases | | | | | postgres=CTc/postgres | | |
(5 rows)

3. 現在のデータベース接続に関する情報を表示します。

engine=# \conninfo
You are connected to database "engine" as user "postgres" via socket in "/var/run/postgresql" at port "5432".

4. 利用可能なスキーマをリストします:

engine=# \dn+
                   List of schemas
Name      | Owner    | Access privileges    | Description
----------+----------+----------------------+------------------------
aaa_jdbc  | engine   |                      |
public    | postgres | postgres=UC/postgres+| standard public schema
          |          | =UC/postgres         |
(2 rows)

5. 「\z」を含むすべてのテーブルを一覧表示:

engine=# \z
Access privileges
Schema  | Name                                             | Type | Access privileges | Column privileges | Policies
--------+--------------------------------------------------+----------+-------------------+-------------------+----------
public  | active_migration_network_interfaces              | view | | |
public  | ad_groups                                        | table| | |
...
public  | all_disks                                        | view | | |
public  | all_disks_for_vms                                | view | | |
public  | all_disks_including_snapshots                    | view | | |
public  | all_disks_including_snapshots_and_memory         | view | | |
public  | audit_log                                        | table | | |
public  | cluster                                          | table | | |

6. 現在のエンジン データベースのテーブルを表示:

engine-# \dt
List of relations
Schema  | Name                                | Type  | Owner
--------+-------------------------------------+-------+--------
public  | ad_groups                           | table | engine
public  | cluster                             | table | engine
public  | cluster_features                    | table | engine
public  | cluster_policies                    | table | engine
public  | cluster_policy_units                | table | engine
public  | disk_lun_map                        | table | engine
public  | disk_profiles                       | table | engine
public  | disk_vm_element                     | table | engine
public  | dwh_osinfo                          | table | engine
...

public  | vds_static                          | table | engine
public  | vds_statistics                      | table | engine
public  | vfs_config_labels                   | table | engine
public  | vfs_config_networks                 | table | engine
public  | vm_device                           | table | engine

7. テーブルの説明:

engine-# \d table_name

例:

engine-# \d vds_static
                                Table "public.vds_static"
Column                         | Type                     | Modifiers
-------------------------------+--------------------------+----------------------------------------------------
vds_id                         | uuid                     | not null
vds_name                       | character varying(255)   | not null
vds_unique_id                  | character varying(128)   |
host_name                      | character varying(255)   | not null
...
kernel_cmdline                 | text                     |
last_stored_kernel_cmdline     | text                     |
reinstall_required             | boolean                  | not null default false

エンジン テーブルから SQL クエリを実行して情報を取得する

クエリの例を次に示します:

1. PostgreSQL エンジン データベース内のすべてのユーザーを取得するには:

engine=# select user_id, name, username from users;

2. すべてのネットワークを取得するには:

engine=# select id,name,description,storage_pool_id,vdsm_name from network;
                   id                 | name      | description        |           storage_pool_id            | vdsm_name
--------------------------------------+-----------+--------------------+--------------------------------------+-----------
              <network id>            | ovirtmgmt | Management Network |          <storage_pool_id>           | ovirtmgmt
              <network id>            | vm_pub    | vm network         |          <storage_pool_id>           | vm_pub

3. KVM ホスト情報を取得するには:

engine=# select vds_name, vds_unique_id, port,cluster_id ,_create_date from vds_static;
vds_name                  |          vds_unique_id               | port  |            cluster_id                | _create_date
--------------------------+--------------------------------------+-------+--------------------------------------+-------------------------------
xxx.xxx.xxx.xxx           |                       | 54321 |                          | 
(1 row)

4. 許可されているクライアント接続の最大数を確認するには:

engine=# select setting::bigint from pg_settings where name='max_connections';
setting
---------
150
(1 row)

5. 一時ディスク ファイルに書き込む前に、内部ソート操作とハッシュ テーブルで使用されるメモリ量を確認するには:

engine=# select name, setting, unit, source from pg_settings where name = 'work_mem';
name | setting | unit | source
----------+---------+------+--------------------
work_mem | 8192 | kB | configuration file
(1 row)

6. PostgreSQL がデータのキャッシュに使用する専用のメモリ量について共有バッファを確認するには:

engine=# select setting::bigint from pg_settings where name='shared_buffers';
setting
---------
16384
(1 row)

7. 推定最大 RAM 使用量を確認するには:

engine=# select pg_size_pretty(shared_buffers::bigint*block_size + max_connections*work_mem*1024 + autovacuum_max_workers*(case when autovacuum_work_mem=-1 then maintenance_work_mem else autovacuum_work_mem end)*1024) as estimated_max_ram_usage from ( select (select setting::bigint from pg_settings where name='block_size') as block_size, (select setting::bigint from pg_settings where name='shared_buffers') as shared_buffers, (select setting::bigint from pg_settings where name='max_connections') as max_connections,(select setting::bigint from pg_settings where name='work_mem') as work_mem, (select setting::bigint from pg_settings where name='autovacuum_max_workers') as autovacuum_max_workers,(select setting::bigint from pg_settings where name='autovacuum_work_mem') as autovacuum_work_mem,(select setting::bigint from pg_settings where name='maintenance_work_mem') as maintenance_work_mem)as _ ;
estimated_max_ram_usage
-------------------------
1712 MB
(1 row)

その他

1. select pg_reload_config() を使用して設定ファイルをリロードします:

engine=# select pg_reload_conf();
pg_reload_conf
----------------
t
(1 row)

2. コマンド履歴を表示するには、\s コマンドを使用します。

engine=# \s

3. psql を終了するには、\q コマンドを使用し、Enter キーを押して psql を終了します。

engine=# \q


Cent OS
  1. CentOS8にPostGISPostgreSQLデータベースエクステンダーをインストールする方法

  2. RedHat Virtualization (RHV) – エンジン構成オプション

  3. RedHat Virtualization (RHV) での Live Merge について

  1. CentOS 7 /RHEL7にPostgreSQLをインストールする方法

  2. PostgreSQLデータベースサーバー

  3. RHVM エンジンのエンジンデータベースパスワードを変更する方法

  1. 例を含むPostgreSQLドロップデータベース

  2. PostgreSQLでデータベースを作成する方法

  3. Ubuntu20.04にPostgreSQLをインストールする方法