NAME
PGObject::Util::Replication::Slot - Manage and Monitor Replication Slots
VERSION
Version v0.20.0
SYNOPSIS
This module provides a low-level interface for monitoring and managing replication slots. It is intended to be used by other management modules and therefore requires read and write operations to pass in a database handle.
Slots here represent values and should be treated as read-only once instantiated. This is to improve utility when it comes to monitoring and logging.
use PGObject::Util::Replication::Slot;
my @slots = PGObject::Util::Replication::Slot->all($dbh);
my $slot = PGObject::Util::Replication::Slot->get($dbh, 'slotname');
# can also create and delete
my $slot = PGObject::Util::Replication::Slot->create($dbh, 'slotname');
my $success = PGObject::Util::Replication::Slot->delete($dbh, 'slotname');
SLOT PROPERTIES
Properties are set from the database. Tthey are not intended to be set by develoers.
slot_name
Name of slot.
slot_type
logical or physical
active
boolean
restart_lsn
Last log serial number sent
full_data
A json object of the whole pg_replication_slots entry. You can use this to get data not supported by base versions, such as last confirmed wal flush on Postgres 9.6. Note that the format here varies from version to version.
query_time
The return value of the now() command at the time the query was run.
pg_current_xlog_location
The current transaction log/wal lsn for the current system. We will not change this field here even when running on PostgreSQL 10
current_lag_bytes
The byte offset between the current xlog logation and the last restart lsn for the slot. This means basically the number of bytes that have not yet been confirmed as read by the slot compared to our current WAL.
METHODS
all($dbh, [$prefix])
Returns a list of objects fo this type filtered on the prefix specified/
get($dbh, $name)
Gets the slot specified by name
create($dbh, $name, [$type])
Creates a new slot, by default a physical one, with the specified name.
delete($dbh, $name)
Deletes the slot with the given name. Note that this will allow wal segments that are pending to be archived and thus may prevent the replica from being able to gatch up through normal means.
AUTHOR
Chris Travers, <chris.travers at adjust.com>
BUGS
Please report any bugs or feature requests to bug-pgobject-util-replication-slot at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=PGObject-Util-Replication-Slot. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc PGObject::Util::Replication::Slot
You can also look for information at:
RT: CPAN's request tracker (report bugs here)
http://rt.cpan.org/NoAuth/Bugs.html?Dist=PGObject-Util-Replication-Slot
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
http://cpanratings.perl.org/d/PGObject-Util-Replication-Slot
Search CPAN
ACKNOWLEDGEMENTS
LICENSE AND COPYRIGHT
Copyright 2017 Adjust.com
This program is distributed under the (Revised) BSD License: http://www.opensource.org/licenses/BSD-3-Clause
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of Adjust.com nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.