Workshop 10
Dalibo & Contributors
Ancienne numérotation exprimée sur 3 nombres :
9 . 6 . 3
Majeure1 . Majeure2 . Mineure
Nouvelle numérotation exprimée sur 2 nombres uniquement :
10 . 2
Majeure . Mineure
pg_xlog -> pg_walpg_clog -> pg_xactxlog -> wallocation -> lsnxlog -> walpg_classpg_partitioned_tableCréer une table partitionnée :
CREATE TABLE t1(c1 integer, c2 text) PARTITION BY LIST (c1);
Ajouter une partition :
CREATE TABLE t1_a PARTITION OF t1 FOR VALUES IN (1, 2, 3);
Détacher la partition :
ALTER TABLE t1 DETACH PARTITION t1_a;
Attacher la partition :
ALTER TABLE t1 ATTACH PARTITION t1_a FOR VALUES IN (1, 2, 3);
Créer une table partitionnée :
CREATE TABLE t2(c1 integer, c2 text) PARTITION BY RANGE (c1);
Ajouter une partition :
CREATE TABLE t2_1 PARTITION OF t2 FOR VALUES FROM (1) TO (100);
Détacher une partition :
ALTER TABLE t2 DETACH PARTITION t2_1;
Clé sur plusieurs colonnes acceptée
Créer une table partitionnée avec une clé multi-colonnes :
CREATE TABLE t1(c1 integer, c2 text, c3 date) PARTITION BY RANGE (c1, c3);
Ajouter une partition :
CREATE TABLE t1_a PARTITION of t1 FOR VALUES FROM (1,'2017-08-10') TO (100, '2017-08-11');
Table non partitionnée
INSERT INTO t1 SELECT i, 'toto'
FROM generate_series(0, 9999999) i;
Time: 10097.098 ms (00:10.097)
Nouveau partitionnement
INSERT INTO t2 SELECT i, 'toto'
FROM generate_series(0, 9999999) i;
Time: 11448.867 ms (00:11.449)
Ancien partitionnement
INSERT INTO t3 SELECT i, 'toto'
FROM generate_series(0, 9999999) i;
Time: 125351.918 ms (02:05.352)
CHECK identiqueUPDATE et DELETEDéfinir wal_level à logical
Initialiser une base de données et sauvegarder son schéma
Créer une publication pour toutes les tables
CREATE PUBLICATION ma_publication FOR ALL TABLES;
Créer une publication pour une table
CREATE PUBLICATION ma_publication FOR TABLE t1;
pg_stat_replication pour l’état de la réplicationpg_replication_slots pour la définition des slots de réplicationpg_publication pour la définition des publicationspg_publication_tables pour la liste des tables publiées par publicationpg_subscription pour la définition des abonnementspg_replication_origin_status pour l’état de la réplicationSort Method: external mergeCREATE STATISTICS
Index Scan et Index Only Scan)Merge Join)Gather Merge)min_parallel_table_scan_size : taille minimale d’une table (8 Mo)min_parallel_index_scan_size : taille minimale d’un index (512 ko)min_parallel_relation_size
max_parallel_workers : nombre maximum de workers que le système peut supporter pour le besoin des requêtes parallèlesSCRAM-SHA-256pg_hba_file_rulesCREATE POLICY
PERMISSIVE : politiques d’une table reliées par des ORRESTRICTIVE : politiques d’une table reliées par des ANDPERMISSIVE par défautbackend_typepsql --dbname="postgresql://127.0.0.1:5432,127.0.0.1:5433/ma_db?target_session_attrs=any"
file_fdw
postgres_fdw
FULL JOIN) sur le serveur distantTous :
synchronous_standby_names = (s1, s2, s3, s4)
Certains par ordre de priorité :
synchronous_standby_names = [FIRST] 3 (s1, s2, s3, s4)
Certains sur la base d’un quorum :
synchronous_standby_names = [ANY] 3 (s1, s2, s3, s4)
-xnone : pas de récupération des WALfetch : récupération des WAL à la fin de la copie des donnéesstream : streaming (par défaut)pg_receivewal
json et jsonbts_headline() et to_tsvector()REFERENCING OLD TABLEREFERENCING NEW TABLECREATE TRIGGER tr1
AFTER DELETE ON t1
REFERENCING OLD TABLE AS oldtable
FOR EACH STATEMENT
EXECUTE PROCEDURE log_delete();pg_sequence et pg_sequencesCREATE SEQUENCE AS type_donneepg_ctl attend désormais que l’instance soit démarrée avant de rendre la main (identique au comportement à l’arrêt)floating point timestamptsearch2pg_dumpUNENCRYPTED pour les mots de passeLes outils Dalibo sont à présent compatibles :
| Outil | Compatibilité avec PostgreSQL 10 |
|---|---|
| pgBadger | Oui |
| pgCluu | Oui, depuis 2.6 |
| ora2Pg | Oui (support du partitionnement déclaratif) |
| pg_stat_kcache | Oui, depuis 2.0.3 |
| ldap2pg | Oui |
SELECT * FROM questions;
À présent, place à l’atelier…