GNU/Linux >> Tutoriels Linux >  >> Cent OS

Requêtes utiles sur la base de données PostgreSQL du moteur RHV

Cet article expliquera certaines commandes psql pratiques et décrira comment exécuter les requêtes PostgreSQL à partir de la ligne de commande pour obtenir des informations utiles à partir de la base de données du moteur.

Se connecter à la base de données "Postgres" à partir de la ligne de commande

Pour se connecter à la base de données "Postgres" :

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

Comme postgres provient de collections de logiciels, vous devez activer postgresql pour connecter la base de données du moteur :

Pour 4.2.8 :

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

Pour 4.3.6 :

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

Quelques commandes psql pratiques et utiles

1. Obtenez de l'aide sur les commandes psql.

Pour connaître toutes les commandes psql disponibles, vous utilisez le \? commande pour obtenir de l'aide.

engine=# \?

2. Listez toutes les bases de données avec ‘\l’.

RHV a deux bases de données liées :engine et ovirt-engine-history. RHV crée une base de données PostgreSQL appelée engine. Lors de l'installation du package ovirt-engine-dwh, une deuxième base de données appelée ovirt-engine-history est créée, qui contient des informations de configuration historiques et des mesures statistiques collectées chaque minute au fil du temps à partir de la base de données opérationnelle du moteur. Vous pouvez voir les informations des deux bases de données ci-dessous :

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)

Utilisez ‘\l+’ pour des informations détaillées :

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. Afficher les informations sur la connexion actuelle à la base de données.

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

4. Lister les schémas disponibles :

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. Listez toutes les tables avec ‘\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. Afficher les tables dans la base de données actuelle du moteur :

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. Décrivez un tableau :

engine-# \d table_name

Par exemple :

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

Exécutez la requête SQL à partir des tables du moteur pour obtenir des informations

Voici quelques exemples de requêtes :

1. Pour récupérer tous les utilisateurs dans la base de données du moteur PostgreSQL :

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

2. Pour obtenir tout votre réseau :

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. Pour obtenir des informations sur les hôtes 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. Pour vérifier le nombre maximum de connexions client autorisées :

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

5. Pour vérifier la quantité de mémoire à utiliser par les opérations de tri internes et les tables de hachage avant d'écrire dans les fichiers temporaires du disque :

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. Pour vérifier les tampons partagés sur la quantité de mémoire dédiée à l'utilisation de PostgreSQL pour la mise en cache des données :

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

7. Pour vérifier une estimation de l'utilisation maximale de la 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)

Autres

1. Rechargez les fichiers de configuration en utilisant select pg_reload_config() :

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

2. Affichez l'historique des commandes, vous utilisez la commande \s.

engine=# \s

3. Pour quitter psql, vous utilisez la commande \q et appuyez sur entrée pour quitter psql.

engine=# \q


Cent OS
  1. Comment installer l'extension de base de données PostGIS PostgreSQL sur CentOS 8

  2. Comment installer PostgreSQL sur CentOS 7 / RHEL 7

  3. Serveur de base de données PostgreSQL

  4. Virtualisation RedHat (RHV) – Options de configuration du moteur

  5. Comment changer le mot de passe de la base de données du moteur pour le moteur RHVM

Comment installer le serveur de base de données PostgreSQL CentOS 8

Comment installer PostgreSQL 14 dans RHEL 8 Linux

Comment installer PostgreSQL sur Debian 10 Buster

Comment créer une base de données PostgreSQL ?

15 commandes pratiques d'administration de base de données PostgreSQL

Comment réinitialiser une machine virtuelle inconnue dans la base de données du moteur RHV