Search icon
Subscription
0
Cart icon
Close icon
You have no products in your basket yet
Save more on your purchases!
Savings automatically calculated. No voucher code required
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
PostgreSQL Administration Cookbook, 9.5/9.6 Edition - Third Edition

You're reading from  PostgreSQL Administration Cookbook, 9.5/9.6 Edition - Third Edition

Product type Book
Published in Apr 2017
Publisher
ISBN-13 9781785883187
Pages 556 pages
Edition 3rd Edition
Languages

Table of Contents (13) Chapters

Preface 1. First Steps 2. Exploring the Database 3. Configuration 4. Server Control 5. Tables and Data 6. Security 7. Database Administration 8. Monitoring and Diagnosis 9. Regular Maintenance 10. Performance and Concurrency 11. Backup and Recovery 12. Replication and Upgrades

Detecting an in-doubt prepared transaction

While using two-phase commit (2PC), you may end up in a situation where you have something locked but cannot find a backend that holds the locks. This recipe describes how to detect such a case.

How to do it...

You need to look up the pg_locks table for those entries with an empty pid value. Run this query:

SELECT t.schemaname || '.' || t.relname AS tablename,
l.pid, l.granted
FROM pg_locks l JOIN pg_stat_user_tables t
ON l.relation = t.relid;

The output will be something similar to the following:

tablename | pid | granted

-----------+-------+---------
db.x | | t
db.x | 27289 | f
(2 rows)

The preceding example shows a lock on the db.x...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}