C.6. Полезные функции и таблицы

C.6.1. Как посмотреть, какие таблицы и последовательности являются распределёнными?

Ниже перечислены некоторые полезные внутренние таблицы Shardman.

  • shardman.sequence — список глобальных последовательностей

  • shardman.sharded_tables — список сегментированных таблиц

  • shardman.global_tables — список глобальных таблиц

Например:

postgres=# select * from shardman.sequence;
 seqns  | seqname | seqmin |       seqmax        | seqblk 
--------+---------+--------+---------------------+--------
 public | s       |      1 | 9223372036854775807 |  65536
(1 row)

postgres=# select * from shardman.sharded_tables;
  rel  | nparts | colocated_with | relname | nspname 
-------+--------+----------------+---------+---------
 16648 |     20 |                | d       | public
 16741 |     20 |          16648 | c       | public
(2 rows)

postgres=# select * from shardman.global_tables; 
 relid | main_rgid | relname | nspname 
-------+-----------+---------+---------
 16636 |           | g       | public
(1 row)
    

C.6.2. Как мне выполнить SQL-команду на всех узлах в кластере?

Для этого используйте функцию shardman.broadcast_all_sql и параметр shardmanctl forall. Например:

postgres$ shardmanctl forall --sql "select name,setting from pg_settings where name = 'max_connections'"
SQL: select name,setting from pg_settings where name = 'max_connections'
Node 1 says:
[max_connections 90]
Node 2 says:
[max_connections 90]
    

C.6.3. Как получить параметры конфигурации Shardman на выбранном узле?

Стандартную команду SHOW можно использовать для получения уникальных параметров Shardman, которые перечислены в section.

Кроме того, можно использовать команду shardmanctl config get для получения конфигурации кластера из etcd. Можно ознакомиться с параметрами этой команды, но настраивать их рекомендуется только после консультации с инженерами Posgres Pro.

C.6.4. Как обновить параметры конфигурации Shardman?

Можно использовать функцию shardmanctl config update, см. пример.