NAME

qadmin - Easy to use admin console to examine and administer PgQ queues.

SYNOPSIS

qadmin [options]

DESCRIPTION

This is a psql-like console for queue administration.

The console offers a large number of commands to setup, control and manage PgQ queueing system.

It also offers a non-interactive mode to run one or more commands.

qadmin keeps its history file in the home of the user (~/.qadmin_history).

GENERAL OPTIONS

--help

Help screen.

--version

Print version.

CONNECTION OPTIONS

-h host

Specify host to connect to (default: localhost via unix socket).

-p port

Specify port.

-U user

Specify user name.

-d dbname

Database name.

-Q queuename

Queue name, it is used as the default queue if it is provided.

SPECIFIC OPTIONS

-c cmd_string

Execute console command.

-f execfile

Execute file containing console commands.

CONNECTION COMMANDS

qadmin offers to connect to other databases or queues from the console itself.

connect <connstring> [queue=<qname>];

Connect the console with the specified connection string, optional parameter to set the default queue on connection.

connect [queue=<qname>] [node=<node>];

Connect the console to the specified queue and/or node.

MANAGEMENT COMMANDS

install pgq | londiste;

Install PgQ or Londiste to the connected database.

create queue <qname>;

Create the specified queue.

alter queue <qname | *> set param =<foo=1>,<bar=2>;

Set one or more parameters on one or all queues at once.

drop queue <qname>;

Drop the named queue.

register consumer <consumer> [on <qname> | at <tick_id> | copy <consumer>];

Register a consumer on a queue, or at a specified tick or based on another consumer.

unregister consumer <consumer | *> [from <qname>];

Unregister one or all consumers, if the console is not connected to a queue, its name must be provided.

register subconsumer <subconsumer> for <consumer> [on <qname>];

Register a subconsumer to a consumer, if the console is not connected to a queue, its name must be provided.

unregister subconsumer <subconsumer | *> for <consumer> [from <qname>] [close [batch]];

Unregister one or all subconsumers from a consumer, if the console is not connected to a queue, its name must be provided. Current batch can be aborted if the close batch subcommand is provided.

SHOW COMMANDS

show help;

Show all the console commands.

show queue [ <qname | *> ];

Show details of one or all queues.

show table <tbl>;

Show DDL for the specified table.

show sequence <seq>;

Show DDL for the specified sequence.

show consumer [ <consumer | *> [on <qname>] ];

Show details of one or all consumers on one or all queues.

show node [ <node | *> [on <qname>] ];

Show details of one or all nodes on one or all queues.

show batch <batch_id>;

Show details of the batch, default queue must be set (see connect queue)

show batch <consumer>;

Show details of the current batch for the specified consumer, default queue must be set (see connect queue)

LONDISTE COMMANDS

All these commands are applied on the node where the console is connected to.

londiste add table <tbl> [with … ]

with no_triggers

Skip trigger creation.

with skip_truncate

Does not truncate the table on the destination.

with expect_sync

Set table state to ok.

with tgflags=IUDBAQLS

Trigger creation flags, see below for details.

with backup

Put urlencoded contents of old row to ev_extra2.

with skip

Create skip trigger. Same as S flag.

with when=expr

If expr returns false, do not insert event.

with ev_XX=EXPR

Overwrite default ev_* columns (see below).

Trigger creation flags (default: AIUDL):

  • I - ON INSERT

  • U - ON UPDATE

  • D - ON DELETE

  • Q - use pgq.sqltriga() as trigger function

  • L - use pgq.logutriga() as trigger function

  • B - BEFORE

  • A - AFTER

  • S - SKIP

Queue event fields:

  • ev_type - I/U/D

  • ev_data - partial SQL statement

  • ev_extra1 - table name

  • ev_extra2 - optional urlencoded backup

londiste add sequence <seq>;

Add the specified sequence to Londiste replication.

londiste remove table <tbl> [,tbl];

Remove the specified table(s) from the Londiste replication.

londiste remove sequence <seq> [,seq];

Remove the specified sequence(s) from the Londiste replication.

londiste tables;

List registered tables and informations about them:

  • table_name - fully-qualified table name

  • local - does events needs to be applied to local table

  • merge_state - show phase of initial copy

  • custom_snapshot - remote snapshot of COPY transaction

  • table_attrs - urlencoded dict of table attributes

  • dropped_ddl - partition combining: temp place to put DDL

  • copy_role - partition combining: how to handle copy

  • copy_pos - position in parallel copy working order

copy_role = lead

On copy start, drop indexes and store in dropped_ddl.

On copy finish change state to catching-up, then wait until copy_role turns to NULL.

Catching-up: if dropped_ddl is not NULL, restore them.

copy_role = wait-copy

On copy start, wait until role changes (to wait-replay).

copy_role = wait-replay

On copy finish, tag as catching-up.

Wait until copy_role is NULL, then proceed.

londiste seqs;

List registered sequences on this node and their last value.

londiste missing;

On Master, list tables not registered on set.

On Slave, list tables on set but not registered locally.

OTHER COMMANDS

exit;

Quit program.

^D

Quit program.

^C

Clear current buffer.

EXIT STATUS

0

Successful program execution.

ENVIRONMENT

PostgreSQL environment variables can be used.

NOT IMPLEMENTED COMMANDS

TODO : is it up-to-date ?

  • create <root | branch | leaf> node <node> location <loc> [on <qname>];

  • alter node <name> provider <new>;

  • alter node <name> takeover <oldnow> with all;

  • alter node <name> rename <new>;

  • alter node <name> [location=<loc>]

  • drop node <name> [on <qname>];

  • takeover <oldnode>;

  • show cascade;

  • show_queue_stats <q>;

  • status