1. Trang chủ
  2. » Công Nghệ Thông Tin

PostreSQL 10 administration cookbook over 165 effective recipes for database management and maintenance in PostreSQL 10

1K 645 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 1.009
Dung lượng 4,38 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

How it works…There's more… Planning a new database Getting ready How to do it… There's more… Adding an external module to PostgreSQL Getting ready How to do i

Trang 2

PostgreSQL 10 Administration Cookbook

Over 165 effective recipes for database management and maintenance in PostgreSQL 10

Simon Riggs

Gianni Ciolli

Trang 3

BIRMINGHAM - MUMBAI

Trang 5

PostgreSQL 10 Administration Cookbook

Copyright © 2018 Packt Publishing

All rights reserved No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented However, the information contained in this book is sold without warranty, either express or implied Neither the author(s), nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused

or alleged to have been caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals However, Packt Publishing cannot guarantee the accuracy of this information.

Commissioning Editor: Amey Varangaonkar

Acquisition Editor: Namrata Patil

Content Development Editor: Amrita Noronha

Technical Editor: Sneha Hanchate

Copy Editor: Safis

Project Coordinator: Shweta Birwatkar

Proofreader: Safis Editing

Indexer: Pratik Shirodkar

Graphics: Jisha Chirayil

Production Coordinator: Shraddha Falebhai

First published: April 2017

Trang 6

Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well asindustry leading tools to help you plan your personal development and advance your career For moreinformation, please visit our website

Trang 7

Why subscribe?

Spend less time learning and more time coding with practical eBooks and Videos from over4,000 industry professionals

Improve your learning with Skill Plans built especially for you

Get a free eBook or video every month

Mapt is fully searchable

Copy and paste, print, and bookmark content

Trang 8

Did you know that Packt offers eBook versions of every book published, with PDF and ePub filesavailable? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, youare entitled to a discount on the eBook copy Get in touch with us at service@packtpub.com for more

details

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of freenewsletters, and receive exclusive discounts and offers on Packt books and eBooks

Trang 9

Contributors

Trang 10

About the authors

Simon Riggs is the CTO of 2ndQuadrant, having contributed to PostgreSQL as a major developer and

committer for 14 years He has written and designed features for replication, performance,

BI, management, and security Under his guidance, 2ndQuadrant is now a leading developer of opensource PostgreSQL, serving hundreds of clients in USA, Europe, and worldwide Simon is a frequentspeaker at many conferences on PostgreSQL Futures He has worked as a database architect for 30years

Gianni Ciolli is the head of professional services at 2ndQuadrant PostgreSQL consultant, trainer, and

speaker at many PostgreSQL conferences in Europe and abroad since the last 10 years He has a PhD

in Mathematics from the University of Florence He has worked with free and open source softwaresince the 1990s and is active in the community (Prato Linux User Group and Italian PostgreSQL UsersGroup) He lives in London with his son His other interests include music, drama, poetry, and

athletics

Trang 11

About the reviewer

Sheldon Strauch is a 23-year veteran of software consulting at IBM, Sears, Ernst & Young, and Kraft

Foods Having a bachelor's degree in business administration, he leverages his technical skills toimprove business' self-awareness He is interested in data gathering, management, and mining; mapsand mapping; business intelligence; and application of data analysis He is currently focusing on thedevelopment of data management and mining at Enova International at Chicago At his leisure, heenjoys performing arts, music, and traveling with his wife, Marilyn

Trang 12

Packt is searching for authors like you

If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today

We have worked with thousands of developers and tech professionals, just like you, to help themshare their insight with the global tech community You can make a general application, apply for aspecific hot topic that we are recruiting an author for, or submit your own idea

Trang 13

Table of Contents

Title Page

Copyright and Credits

PostgreSQL 10 Administration Cookbook

Packt Upsell

Why subscribe?

PacktPub.com

Contributors

About the authors

About the reviewer

Packt is searching for authors like you

Preface

Who this book is for

What this book covers

To get the most out of this book

Download the example code files Download the color images Conventions used

Sections

Getting ready How to do it…

How it works…

There's more…

See also Get in touch

Reviews

1 First Steps

Introduction

Introducing PostgreSQL 10 What makes PostgreSQL different? Robustness

Security Ease of use Extensibility Performance and concurrency Scalability

SQL and NoSQL Popularity Commercial support Research and development funding Getting PostgreSQL

Trang 14

How it works…

There's more…

See also Enabling access for network/remote users How to do it…

How it works…

There's more…

See also Using graphical administration tools How to do it…

How it works…

OmniDB

See also Using the psql query and scripting tool Getting ready

How to do it…

How it works…

There's more…

See also Changing your password securely

How to do it…

How it works…

Avoiding hardcoding your password

Getting ready How to do it…

Getting ready How to do it

How it works

There's more…

Locating the database server's message log

Trang 15

Getting ready How to do it

How it works

There's more

Locating the database's system identifier

Getting ready How to do it…

Getting ready How to do it…

How it works…

There's more…

Understanding object dependencies

Getting ready How to do it…

Trang 16

How it works…

There's more…

Planning a new database

Getting ready How to do it…

There's more…

Adding an external module to PostgreSQL

Getting ready How to do it…

Installing modules using a software installer Installing modules from PGXN

Installing modules from a manually downloaded package Installing modules from source code

How it works

Using an installed module

Getting ready How to do it…

Trang 17

Starting the database server manually

Trang 18

Getting ready How to do it…

There's more…

5 Tables and Data

Choosing good names for database objects

Getting ready How to do it…

There's more…

Handling objects with quoted names

Getting ready How to do it

How it works…

There's more…

Enforcing the same name and definition for columns

Getting ready How to do it

How it works…

There's more…

Identifying and removing duplicates

Getting ready How to do it…

How it works…

There's more…

Preventing duplicate rows

Getting ready How to do it…

How it works…

There's more

Duplicate indexes Uniqueness without indexes Real-world example – IP address range allocation Real-world example – range of time

Real-world example – prefix ranges Finding a unique key for a set of data

Getting ready How to do it…

How to do it…

How it works

Loading data from a spreadsheet

Getting ready How to do it

How it works

Trang 19

There's more

Loading data from flat files

Getting ready How to do it

Revoking user access to a table

Getting ready How to do it…

How it works…

There's more…

Database creation scripts Default search path Securing views Granting user access to a table

Getting ready How to do it…

How it works

There's more…

Access to the schema Granting access to a table through a group role Granting access to all objects in a schema Granting user access to specific columns

Getting ready How to do it…

How it works…

There's more…

Granting user access to specific rows

Getting ready How to do it…

How it works…

There's more

Creating a new user

Getting ready How to do it

How it works…

There's more…

Temporarily preventing a user from connecting

Getting ready

Trang 20

Writing a debugging_info function for developers

Auditing database access

Getting ready

Auditing SQL

Auditing table access

Managing the audit log

Auditing data changes

Always knowing which user is logged in

Getting ready

How to do it…

How it works…

There's more…

Not inheriting user attributes

Integrating with LDAP

Getting ready

How to do it…

How it works…

There's more…

Setting up the client to use LDAP

Replacement for the User Name Map feature

Getting the SSL key and certificate

Setting up a client to use SSL

Checking server authenticity

Using SSL certificates to authenticate

Getting ready

How to do it…

How it works…

Trang 21

How it works…

There's more…

Encrypting sensitive data

Getting ready How to do it…

How it works…

There's more…

Using psql variables

Getting ready How to do it…

How it works…

There’s more…

Placing query output into psql variables

Getting ready How to do it…

How it works…

There’s more…

Writing a conditional psql script

Getting ready How to do it…

How it works…

There’s more…

Investigating a psql error

Getting ready How to do it…

There's more…

Performing actions on many tables

Trang 22

Using schema-level privileges

Moving objects between schemas

Trang 23

There's more…

Updatable views

Getting ready How to do it…

How it works…

There's more…

Using materialized views

Getting ready How to do it…

How it works…

There's more…

8 Monitoring and Diagnosis

Providing PostgreSQL information to monitoring tools

Finding more information about generic monitoring tools Real-time viewing using pgAdmin or OmniDB

Getting ready How to do it… (with pgAdmin) How to do it… (with OmniDB) Checking whether a user is connected

Getting ready How to do it…

How it works…

There's more…

No need for the = true part

Do we catch all queries waiting on locks?

Knowing who is blocking a query

Getting ready How to do it…

How it works…

Trang 24

Killing a specific session

How to do it…

How it works…

There's more…

Try to cancel the query first

What if the backend won't terminate?

Using statement_timeout to clean up queries that take too long to run Killing idle in transaction queries

Killing the backend from the command line

Detecting an in-doubt prepared transaction

The quick-and-dirty way

Collecting daily usage statistics

Knowing when a table was last used

Finding out whether a temporary file is in use any more

Logging temporary file usage

Understanding why queries slow down

Getting ready

How to do it…

How it works…

There's more…

Do the queries return significantly more data than they did earlier?

Do the queries also run slowly when they are run alone?

Is the second run of the same query also slow?

Table and index bloat

Trang 25

Analyzing the real-time performance of your queries Getting ready

How it works…

There's more…

See also Avoiding auto-freezing and page corruptions

How to do it…

Removing issues that cause bloat

Getting ready How to do it…

How it works…

There's more…

Removing old prepared transactions

Getting ready How to do it…

How it works…

There's more…

Maintaining indexes

Getting ready How to do it…

Trang 26

Getting ready How to do it…

How it works…

There's more…

Collect regular statistics from pg_stat* views

Getting ready How to do it…

There's more…

Not enough CPU power or disk I/O capacity for the current load Locking problems

EXPLAIN options See also

Reducing the number of rows returned

How to do it…

There's more…

See also Simplifying complex SQL queries

Getting ready How to do it…

There's more…

Using materialized views (long-living, temporary tables) Using set-returning functions for some parts of queries Speeding up queries without rewriting them

How to do it…

Increasing work_mem More ideas with indexes There's more…

Time Series Partitioning Using a TABLESAMPLE view

In case of many updates, set fillfactor on the table Rewriting the schema – a more radical approach Discovering why a query is not using an index

Getting ready How to do it…

Trang 27

How it works…

There's more…

Forcing a query to use an index

Getting ready How to do it…

How to do it…

How it works…

See also Backups of database object definitions How to do it…

How to do it…

How it works…

Recovery of all databases

Trang 28

Getting ready

How to do it…

Logical – from custom dump taken with pg_dump -F c Logical – from the script dump created by pg_dump -F p Logical – from the script dump created by pg_dumpall Physical

Logical - from custom dump taken with pg_dump -F c

Logical – from the script dump

Logical – from the custom dump -F c

Logical – from the script dump created by pg_dump Logical – from the script dump created by pg_dumpall Physical

Improving performance of backup/recovery

Trang 29

12 Replication and Upgrades

Replication concepts

Topics Basic concepts History and scope Practical aspects Data loss

Single-master replication Multinode architectures Clustered or massively parallel databases Multimaster replication

Scalability tools Other approaches to replication Replication best practices

Getting ready How to do it…

Getting ready How to do it…

How it works…

There's more…

Setting up streaming replication security

Getting ready How to do it…

How it works…

There's more…

Hot Standby and read scalability

Getting ready How to do it…

How it works…

Managing streaming replication

Getting ready How to do it…

There's more…

See also Using repmgr

Getting ready How to do it…

How it works…

There's more…

Using replication slots

Trang 30

Other Books You May Enjoy

Leave a review - let other readers know what you think

Trang 31

community Most of all, it just works!

One of the clearest benefits of PostgreSQL is that it is open source, meaning that you have a verypermissive license to install, use, and distribute PostgreSQL without paying anyone any fees or

royalties On top of that, PostgreSQL is well-known as a database that stays up for long periods, andrequires little or no maintenance in many cases Overall, PostgreSQL provides a very low total cost

of ownership

PostgreSQL Administration Cookbook offers the information you need to manage your live

production databases on PostgreSQL The book contains insights direct from the main author of thePostgreSQL replication and recovery features and the rest of the team at 2ndQuadrant This hands-onguide will assist developers working on live databases, supporting web or enterprise software

applications using Java, Python, Ruby, and Net from any development framework It's easy to manageyour database when you've got PostgreSQL 10 Administration Cookbook at hand

This practical guide gives you quick answers to common questions and problems, building on theauthor's experience as trainers, users, and core developers of the PostgreSQL database server

Each technical aspect is broken down into short recipes that demonstrate solutions with workingcode, and then explain why and how that works The book is intended to be a desk reference for bothnew users and technical experts

The book covers all the latest features available in PostgreSQL 10 Soon you will be running a

smooth database with ease!

Trang 32

Who this book is for

This book is for system administrators, database administrators, architects, developers, and anyonewith an interest in planning for or running live production databases This book is most suited to thosewho have some technical experience

Trang 33

What this book covers

Chapter 1, First Steps, covers topics such as an introduction to PostgreSQL 10, downloading and

installing PostgreSQL 10, connecting to a PostgreSQL server, enabling server access to

network/remote users, using graphical administration tools, using psql query and scripting tools,

changing your password securely, avoiding hardcoding your password, using a connection servicefile, and troubleshooting a failed connection

Chapter 2, Exploring the Database, helps you identify the version of the database server you are

using and also the server uptime It helps you locate the database server files, database server

message log, and database's system identifier It lets you list a database on the database server,

contains recipes that let you know the number of tables in your database, how much disk space is used

by the database and tables, which are the biggest tables, how many rows a table has, how to estimaterows in a table, and how to understand object dependencies

Chapter 3, Configuration, covers topics such as reading the fine manual (RTFM), planning a new

database, changing parameters in your programs, the current configuration settings, parameters thatare at non-default settings, updating the parameter file, setting parameters for particular groups ofusers, basic server configuration checklist, adding an external module into the PostgreSQL server,and running the server in power saving mode

Chapter 4, Server Control, provides information about starting the database server manually,

stopping the server quickly and safely, stopping the server in an emergency, reloading the server

configuration files, restarting the server quickly, preventing new connections, restricting users to justone session each, and pushing users off the system It contains recipes that help you decide on a

design for multi-tenancy, how to use multiple schemas, giving users their own private database,

running multiple database servers on one system, and setting up a connection pool

Chapter 5, Tables and Data, guides you through the process of choosing good names for database

objects, handling objects with quoted names, enforcing same name, same definition for columns,

identifying and removing duplicate rows, preventing duplicate rows, finding a unique key for a set ofdata, generating test data, randomly sampling data, loading data from a spreadsheet, and loading datafrom flat files

Chapter 6, Security, provides recipes on revoking user access to a table, granting user access to a

table, creating a new user, temporarily preventing a user from connecting, removing a user withoutdropping their data, checking whether all users have a secure password, giving limited super userpowers to specific users, auditing DDL changes, auditing data changes, integrating with LDAP,

connecting using SSL, and encrypting sensitive data

Chapter 7, Database Administration, provides recipes on useful topics such as writing a script

wherein either all succeed or all fail, writing a psql script that exits on the first error, performingactions on many tables, adding/removing columns on tables, changing the data type of a column,

Trang 34

adding/removing schemas, moving objects between schemas, adding/removing tablespaces, movingobjects between tablespaces, accessing objects in other PostgreSQL databases, and making

views updateable

Chapter 8, Monitoring and Diagnosis, provides recipes that answer questions such as is the user

connected?, what are they running?, are they active or blocked?, who is blocking them?, is anybodyusing a specific table?, when did anybody last use it?, how much disk space is used by temporarydata?, and why are my queries slowing down? It also helps you in investigating and reporting a bug,producing a daily summary report of logfile errors, killing a specific session, and resolving an in-doubt prepared transaction

Chapter 9, Regular Maintenance, provides useful recipes on controlling automatic database

maintenance, avoiding auto freezing and page corruptions, avoiding transaction wraparound,

removing old prepared transactions, actions for heavy users of temporary tables, identifying and

fixing bloated tables and indexes, maintaining indexes, finding unused indexes, carefully removingunwanted indexes, and planning maintenance

Chapter 10, Performance and Concurrency, covers topics such as finding slow SQL statements,

collecting regular statistics from pg_stat* views, finding what makes SQL slow, reducing the number

of rows returned, simplifying complex SQL, speeding up queries without rewriting them, why is myquery not using an index?, how do I force a query to use an index?, using optimistic locking, and

reporting performance problems And of course, the new parallel query features

Chapter 11, Backup and Recovery, insists that backups are essential, though they also devote only a

very small amount of time to thinking about the topic So, this chapter provides useful informationabout backup and recovery of your PostgreSQL database through recipes on understanding and

controlling crash recovery, planning backups, hot logical backup of one database, hot logical backup

of all databases, hot logical backup of all tables in a tablespace, backup of database object

definitions, standalone hot physical database backup, hot physical backup and continuous archiving Italso includes topics such as recovery of all databases, recovery to a point in time, recovery of a

dropped/damaged table, recovery of a dropped/damaged database, recovery of a dropped/damagedtablespace, improving performance of backup/recovery, and incremental/differential backup

and restore

Chapter 12, Replication and Upgrades, explains that replication isn't magic, though it can be pretty

cool It's even cooler when it works, and that's what this chapter is all about This chapter coversreplication concepts, replication best practices, setting up file-based log shipping replication, setting

up streaming log replication, managing log shipping replication, managing Hot Standby, synchronousreplication, upgrading to a new minor release, in-place major upgrades, major upgrades online, pluslogical replication and Postgres-BDR

Trang 35

To get the most out of this book

In order for this book to be useful, you need at least access to a PostgreSQL client that is allowed toexecute queries on a server Ideally, you'll also be the server administrator Full client and serverpackages for PostgreSQL are available for most popular operating systems at http://www.postgresql.org/d ownload/ All the examples here are executed at a Command Prompt, usually running the psql program.This makes them applicable to most platforms It's straightforward to do many of these operationsinstead using a GUI tool for PostgreSQL, such as pgAdmin or OmniDB

Trang 36

Download the example code files

You can download the example code files for this book from your account at www.packtpub.com If youpurchased this book elsewhere, you can visit www.packtpub.com/support and register to have the filesemailed directly to you

You can download the code files by following these steps:

1 Log in or register at www.packtpub.com

2 Select the SUPPORT tab

3 Click on Code Downloads & Errata

4 Enter the name of the book in the Search box and follow the onscreen instructions

Once the file is downloaded, please make sure that you unzip or extract the folder using the latestversion of:

WinRAR/7-Zip for Windows

Zipeg/iZip/UnRarX for Mac

7-Zip/PeaZip for Linux

The code bundle for the book is also hosted on GitHub at Administration-Cookbook In case there's an update to the code, it will be updated on the existing GitHubrepository

https://github.com/PacktPublishing/PostgreSQL-10-We also have other code bundles from our rich catalog of books and videos available at https://github com/PacktPublishing/ Check them out!

Trang 37

Download the color images

We also provide a PDF file that has color images of the screenshots/diagrams used in this book Youcan download it here: http://www.packtpub.com/sites/default/files/downloads/PostgreSQL10AdministrationCookbook_ ColorImages.pdf

Trang 38

Conventions used

There are a number of text conventions used throughout this book

CodeInText: Indicates code words in text, database table names, folder names, filenames, file

extensions, pathnames, dummy URLs, user input, and Twitter handles Here is an example: "Mount thedownloaded WebStorm-10*.dmg disk image file as another disk in your system."

A block of code is set as follows:

CREATE USER repuser

SUPERUSER

LOGIN

CONNECTION LIMIT 1

ENCRYPTED PASSWORD 'changeme';

When we wish to draw your attention to a particular part of a code block, the relevant lines or itemsare set in bold:

SELECT *FROM mytable

WHERE (col1, col2, … ,colN) IN

(SELECT col1, col2, … ,colN

FROM mytable

GROUP BY col1, col2, … ,colN

HAVING count(*) > 1);

Any command-line input or output is written as follows:

$ postgres single -D /full/path/to/datadir postgres

Bold: Indicates a new term, an important word, or words that you see onscreen For example, words

in menus or dialog boxes appear in the text like this Here is an example: "Select System info from theAdministration panel."

Warnings or important notes appear like this.

Tips and tricks appear like this.

Trang 39

In this book, you will find several headings that appear frequently (Getting ready, How to do it ,

How it works , There's more , and See also).

To give clear instructions on how to complete a recipe, use these sections as follows:

Trang 40

Getting ready

This section tells you what to expect in the recipe and describes how to set up any software or anypreliminary settings required for the recipe

Ngày đăng: 04/03/2019, 14:10

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w