This document provides an overview of PostgreSQL backup and recovery methods, including pg_dump, pg_dumpall, psql, pg_restore, and point-in-time recovery (PITR). It discusses the options and usage of each tool and provides examples.
The document discusses PostgreSQL backup and recovery options including:
- pg_dump and pg_dumpall for creating database and cluster backups respectively.
- pg_restore for restoring backups in various formats.
- Point-in-time recovery (PITR) which allows restoring the database to a previous state by restoring a base backup and replaying write-ahead log (WAL) segments up to a specific point in time.
- The process for enabling and performing PITR including configuring WAL archiving, taking base backups, and restoring from backups while replaying WAL segments.
PostgreSQL - backup and recovery with large databasesFederico Campoli
Life on a rollercoaster, backup and recovery with large databases
Dealing with large databases is always a challenge.
The backups and the HA procedures evolve meanwhile the database installation grow up over the time.
The talk will cover the problems solved by the DBA in four years of working with large databases, which size increased from 1.7 TB single cluster, up to 40 TB in a multi shard environment.
The talk will cover either the disaster recovery with pg_dump and the high availability with the log shipping/streaming replication.
The presentation is based on a real story. The names are changed in order to protect the innocents.
The paperback version is available on lulu.com there http://goo.gl/fraa8o
This is the first volume of the postgresql database administration book. The book covers the steps for installing, configuring and administering a PostgreSQL 9.3 on Linux debian. The book covers the logical and physical aspect of PostgreSQL. Two chapters are dedicated to the backup/restore topic.
This presentation covers all aspects of PostgreSQL administration, including installation, security, file structure, configuration, reporting, backup, daily maintenance, monitoring activity, disk space computations, and disaster recovery. It shows how to control host connectivity, configure the server, find the query being run by each session, and find the disk space used by each database.
This document provides an introduction and overview of PostgreSQL, including its history, features, installation, usage and SQL capabilities. It describes how to create and manipulate databases, tables, views, and how to insert, query, update and delete data. It also covers transaction management, functions, constraints and other advanced topics.
PostgreSQL is designed to be easily extensible. For this reason, extensions loaded into the database can function just like features that are built in. In this session, we will learn more about PostgreSQL extension framework, how are they built, look at some popular extensions, management of these extensions in your deployments.
The document discusses the Performance Schema in MySQL. It provides an overview of what the Performance Schema is and how it can be used to monitor events within a MySQL server. It also describes how to configure the Performance Schema by setting up actors, objects, instruments, consumers and threads to control what is monitored. Finally, it explains how to initialize the Performance Schema by truncating existing summary tables before collecting new performance data.
Devrim Gunduz gives a presentation on Write-Ahead Logging (WAL) in PostgreSQL. WAL logs all transactions to files called write-ahead logs (WAL files) before changes are written to data files. This allows for crash recovery by replaying WAL files. WAL files are used for replication, backup, and point-in-time recovery (PITR) by replaying WAL files to restore the database to a previous state. Checkpoints write all dirty shared buffers to disk and update the pg_control file with the checkpoint location.
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015PostgreSQL-Consulting
This document discusses how PostgreSQL works with disks and provides recommendations for disk subsystem monitoring, hardware selection, and configuration tuning to optimize performance. It explains that PostgreSQL relies on disk I/O for reading pages, writing the write-ahead log (WAL), and checkpointing. It recommends monitoring disk utilization, IOPS, latency, and I/O wait. The document also provides tips for choosing hardware like SSDs or RAID configurations and configuring the operating system, file systems, and PostgreSQL to improve performance.
In 40 minutes the audience will learn a variety of ways to make postgresql database suddenly go out of memory on a box with half a terabyte of RAM.
Developer's and DBA's best practices for preventing this will also be discussed, as well as a bit of Postgres and Linux memory management internals.
This document discusses advanced Postgres monitoring. It begins with an introduction of the speaker and an agenda for the discussion. It then covers selection criteria for monitoring solutions, compares open source and SAAS monitoring options, and provides examples of collecting specific Postgres metrics using CollectD. It also discusses alerting, handling monitoring changes, and being prepared to respond to incidents outside of normal hours.
This document provides an overview of Postgresql, including its history, capabilities, advantages over other databases, best practices, and references for further learning. Postgresql is an open source relational database management system that has been in development for over 30 years. It offers rich SQL support, high performance, ACID transactions, and extensive extensibility through features like JSON, XML, and programming languages.
PostgreSQL Replication High Availability MethodsMydbops
This slides illustrates the need for replication in PostgreSQL, why do you need a replication DB topology, terminologies, replication nodes and many more.
This document provides an agenda and background information for a presentation on PostgreSQL. The agenda includes topics such as practical use of PostgreSQL, features, replication, and how to get started. The background section discusses the history and development of PostgreSQL, including its origins from INGRES and POSTGRES projects. It also introduces the PostgreSQL Global Development Team.
This document summarizes a presentation on Multi Version Concurrency Control (MVCC) in PostgreSQL. It begins with definitions and history of MVCC, describing how it allows transactions to read and write without blocking each other. It then discusses two approaches to MVCC - storing old versions in the main database (PostgreSQL) vs a separate area (Oracle). The rest of the document does a deep dive on how MVCC is implemented in PostgreSQL specifically, showing how tuple headers track transaction IDs and pointers to maintain multiple versions of rows.
This document discusses streaming replication in PostgreSQL. It covers how streaming replication works, including the write-ahead log and replication processes. It also discusses setting up replication between a primary and standby server, including configuring the servers and verifying replication is working properly. Monitoring replication is discussed along with views and functions for checking replication status. Maintenance tasks like adding or removing standbys and pausing replication are also mentioned.
The latest version of my PostgreSQL introduction for IL-TechTalks, a free service to introduce the Israeli hi-tech community to new and interesting technologies. In this talk, I describe the history and licensing of PostgreSQL, its built-in capabilities, and some of the new things that were added in the 9.1 and 9.2 releases which make it an attractive option for many applications.
A look at what HA is and what PostgreSQL has to offer for building an open source HA solution. Covers various aspects in terms of Recovery Point Objective and Recovery Time Objective. Includes backup and restore, PITR (point in time recovery) and streaming replication concepts.
This document discusses PostgreSQL replication. It provides an overview of replication, including its history and features. Replication allows data to be copied from a primary database to one or more standby databases. This allows for high availability, load balancing, and read scaling. The document describes asynchronous and synchronous replication modes.
High availability is critical for PostgreSQL database systems, especially for organizations that depend on their databases to support their operations. In this presentation, we will explore the different options available for achieving high availability in PostgreSQL.
This document discusses PostgreSQL statistics and how to use them effectively. It provides an overview of various PostgreSQL statistics sources like views, functions and third-party tools. It then demonstrates how to analyze specific statistics like those for databases, tables, indexes, replication and query activity to identify anomalies, optimize performance and troubleshoot issues.
This document provides an overview of advanced PostgreSQL administration topics covered in a presentation, including installation, initialization, configuration, starting and stopping the Postmaster, connections, authentication, security, data directories, shared memory sizing, the write-ahead log, and vacuum settings. The document includes configuration examples from postgresql.conf and discusses parameters for tuning memory usage, connections, authentication and security.
En savoir plus sur www.opensourceschool.fr
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR) Attribution - Partage dans les Mêmes Conditions 3.0 France
Plan :
1. Introduction
2. Installation
3. The psql client
4. Authentication and privileges
5. Backup and restoration
6. Internal Architecture
7. Performance optimization
8. Stats and monitoring
9. Logs
10. Replication
This document summarizes a presentation about optimizing performance between PostgreSQL and JDBC.
The presenter discusses several strategies for improving query performance such as using prepared statements, avoiding closing statements, setting fetch sizes appropriately, and using batch inserts with COPY for large amounts of data. Some potential issues that can cause performance degradation are also covered, such as parameter type changes invalidating prepared statements and unexpected plan changes after repeated executions.
The presentation includes examples and benchmarks demonstrating the performance impact of different approaches. The overall message is that prepared statements are very important for performance but must be used carefully due to edge cases that can still cause issues.
The Security-Enhanced PostgreSQL - "system wide" consistency in access controlKohei KaiGai
The Security-Enhanced PostgreSQL (SE-PostgreSQL) provides system-wide consistency in access controls between the operating system and database management system through a single unified security policy. It implements fine-grained mandatory access controls, including column- and row-level access controls. The goal of SE-PostgreSQL is to allow the database to be part of data flow control schemes and prevent information leakage or manipulation by malicious actors.
This talk will cover experiences from writing a FDW for Informix and will discuss differences between 9.1 and 9.2, as well as the new writable API with the upcoming 9.3 release, additionally data type mapping and conversion, optimizer support and performance related topics.
The talk tries to give the attendees an overall idea behind the techniques and pitfalls they may experience when they want to write their own.
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015PostgreSQL-Consulting
This document discusses how PostgreSQL works with disks and provides recommendations for disk subsystem monitoring, hardware selection, and configuration tuning to optimize performance. It explains that PostgreSQL relies on disk I/O for reading pages, writing the write-ahead log (WAL), and checkpointing. It recommends monitoring disk utilization, IOPS, latency, and I/O wait. The document also provides tips for choosing hardware like SSDs or RAID configurations and configuring the operating system, file systems, and PostgreSQL to improve performance.
In 40 minutes the audience will learn a variety of ways to make postgresql database suddenly go out of memory on a box with half a terabyte of RAM.
Developer's and DBA's best practices for preventing this will also be discussed, as well as a bit of Postgres and Linux memory management internals.
This document discusses advanced Postgres monitoring. It begins with an introduction of the speaker and an agenda for the discussion. It then covers selection criteria for monitoring solutions, compares open source and SAAS monitoring options, and provides examples of collecting specific Postgres metrics using CollectD. It also discusses alerting, handling monitoring changes, and being prepared to respond to incidents outside of normal hours.
This document provides an overview of Postgresql, including its history, capabilities, advantages over other databases, best practices, and references for further learning. Postgresql is an open source relational database management system that has been in development for over 30 years. It offers rich SQL support, high performance, ACID transactions, and extensive extensibility through features like JSON, XML, and programming languages.
PostgreSQL Replication High Availability MethodsMydbops
This slides illustrates the need for replication in PostgreSQL, why do you need a replication DB topology, terminologies, replication nodes and many more.
This document provides an agenda and background information for a presentation on PostgreSQL. The agenda includes topics such as practical use of PostgreSQL, features, replication, and how to get started. The background section discusses the history and development of PostgreSQL, including its origins from INGRES and POSTGRES projects. It also introduces the PostgreSQL Global Development Team.
This document summarizes a presentation on Multi Version Concurrency Control (MVCC) in PostgreSQL. It begins with definitions and history of MVCC, describing how it allows transactions to read and write without blocking each other. It then discusses two approaches to MVCC - storing old versions in the main database (PostgreSQL) vs a separate area (Oracle). The rest of the document does a deep dive on how MVCC is implemented in PostgreSQL specifically, showing how tuple headers track transaction IDs and pointers to maintain multiple versions of rows.
This document discusses streaming replication in PostgreSQL. It covers how streaming replication works, including the write-ahead log and replication processes. It also discusses setting up replication between a primary and standby server, including configuring the servers and verifying replication is working properly. Monitoring replication is discussed along with views and functions for checking replication status. Maintenance tasks like adding or removing standbys and pausing replication are also mentioned.
The latest version of my PostgreSQL introduction for IL-TechTalks, a free service to introduce the Israeli hi-tech community to new and interesting technologies. In this talk, I describe the history and licensing of PostgreSQL, its built-in capabilities, and some of the new things that were added in the 9.1 and 9.2 releases which make it an attractive option for many applications.
A look at what HA is and what PostgreSQL has to offer for building an open source HA solution. Covers various aspects in terms of Recovery Point Objective and Recovery Time Objective. Includes backup and restore, PITR (point in time recovery) and streaming replication concepts.
This document discusses PostgreSQL replication. It provides an overview of replication, including its history and features. Replication allows data to be copied from a primary database to one or more standby databases. This allows for high availability, load balancing, and read scaling. The document describes asynchronous and synchronous replication modes.
High availability is critical for PostgreSQL database systems, especially for organizations that depend on their databases to support their operations. In this presentation, we will explore the different options available for achieving high availability in PostgreSQL.
This document discusses PostgreSQL statistics and how to use them effectively. It provides an overview of various PostgreSQL statistics sources like views, functions and third-party tools. It then demonstrates how to analyze specific statistics like those for databases, tables, indexes, replication and query activity to identify anomalies, optimize performance and troubleshoot issues.
This document provides an overview of advanced PostgreSQL administration topics covered in a presentation, including installation, initialization, configuration, starting and stopping the Postmaster, connections, authentication, security, data directories, shared memory sizing, the write-ahead log, and vacuum settings. The document includes configuration examples from postgresql.conf and discusses parameters for tuning memory usage, connections, authentication and security.
En savoir plus sur www.opensourceschool.fr
Ce support est diffusé sous licence Creative Commons (CC BY-SA 3.0 FR) Attribution - Partage dans les Mêmes Conditions 3.0 France
Plan :
1. Introduction
2. Installation
3. The psql client
4. Authentication and privileges
5. Backup and restoration
6. Internal Architecture
7. Performance optimization
8. Stats and monitoring
9. Logs
10. Replication
This document summarizes a presentation about optimizing performance between PostgreSQL and JDBC.
The presenter discusses several strategies for improving query performance such as using prepared statements, avoiding closing statements, setting fetch sizes appropriately, and using batch inserts with COPY for large amounts of data. Some potential issues that can cause performance degradation are also covered, such as parameter type changes invalidating prepared statements and unexpected plan changes after repeated executions.
The presentation includes examples and benchmarks demonstrating the performance impact of different approaches. The overall message is that prepared statements are very important for performance but must be used carefully due to edge cases that can still cause issues.
The Security-Enhanced PostgreSQL - "system wide" consistency in access controlKohei KaiGai
The Security-Enhanced PostgreSQL (SE-PostgreSQL) provides system-wide consistency in access controls between the operating system and database management system through a single unified security policy. It implements fine-grained mandatory access controls, including column- and row-level access controls. The goal of SE-PostgreSQL is to allow the database to be part of data flow control schemes and prevent information leakage or manipulation by malicious actors.
This talk will cover experiences from writing a FDW for Informix and will discuss differences between 9.1 and 9.2, as well as the new writable API with the upcoming 9.3 release, additionally data type mapping and conversion, optimizer support and performance related topics.
The talk tries to give the attendees an overall idea behind the techniques and pitfalls they may experience when they want to write their own.
This document discusses PostgreSQL streaming replication and switchover/switchback capabilities. It covers limitations in earlier PostgreSQL versions, timelines, new features in version 9.3 that enable switchover/switchback without needing fresh backups, and things to know like using clean shutdown and the recovery.conf file. A demo of these features is promised at the end.
This document discusses data encryption in PostgreSQL databases. It describes different layers where encryption can occur, including at the application level, database level and storage level. It provides details on using the pgcrypto extension for encryption and decryption functions. It also covers network encryption methods like using SSL and SSH tunnels. Benchmark results show around a 20% performance overhead for TPC-B tests when encrypting and decrypting column data during transactions.
PostgresOpen 2013 A Comparison of PostgreSQL Encryption OptionsFaisal Akber
Are you looking to encrypt your data within PostgreSQL? We will review the various options available for encrypting data with PostgreSQL. We will also look at various options available to employ encryption and review various configuration and performance for using encryption.
There are a number of options available when encrypting data with PostgreSQL. When determining the mechanisms to use, it is important to understand the data, the application and how it is being used. We will compare different methods of encrypting data in their feature-sets and performance.
We will try to answer the following questions: Where do I enable the encryption? Where is my data safe and where is it exposed? Why should I use the various encryption modules available?
This document provides an introduction to recovery and backups for beginners. It discusses having both a backup strategy and a recovery strategy. It also covers key concepts like RTO, RPO, recovery models, and how to match the appropriate recovery model to your backup strategy based on your business needs and data. The document emphasizes that having backups without a recovery plan is inadequate and concludes with an invitation for questions.
The document discusses achieving PCI compliance when using PostgreSQL for databases. It provides an overview of PCI requirements, how they apply to databases, and how PostgreSQL features like encryption, access control, and logging can help fulfill the requirements. Specific examples are given for how to implement encryption of cardholder data, restrict access according to the principle of least privilege, and maintain regularly updated software in PostgreSQL.
Security Best Practices for your Postgres DeploymentPGConf APAC
These slides were used by Sameer Kumar of Ashnik for presenting his topic at pgDay Asia 2016. He took audience through some of the security best practices for deploying and hardening PostgreSQL
The document discusses backup and recovery strategies in PostgreSQL. It describes logical backups using pg_dump, which takes a snapshot of the database and outputs SQL scripts or custom files. It also describes physical backups using write-ahead logging (WAL) archiving and point-in-time recovery (PITR). With WAL archiving enabled, PostgreSQL archives WAL files, allowing recovery to any point between backups by restoring the backup files and replaying the WAL logs. The document provides steps for performing PITR backups, including starting the backup, copying files, stopping the backup, and recovery by restoring files and using a recovery.conf file.
This document discusses PostgreSQL backup and recovery. It covers various backup options like pg_dump and pg_dumpall, restore options using pg_restore and psql, point-in-time recovery (PITR) involving archiving WAL segments, taking base backups, and restoring to a past transaction. Warm standby replication is also briefly mentioned.
Tutorial all pp_pg_admin_backup_restoreGanesh Sawant
This document provides instructions for backing up and restoring Postgres Plus databases using pgAdmin. It describes:
- Three backup file formats: plain text, custom archive, and tar archive
- How to select database objects for backup/restore and options like schema only or data only
- Steps to create a plain text backup of an entire database, including connecting to the server, selecting the database, and using the Backup Database dialog box to specify the backup file path and format
- How restored objects can be assigned to a new or existing database with the same or different ownership
There are multiple reasons to restore a database from a backup. Under rare circumstances, this might even become necessary in a production environment. In that case, the business will probably require you to restore to the latest point in time, known to hold valid data.
This presentation examines specific scenarios to achieve minimal or no data loss using point-in-time recovery (PITR) to an exact date and time, a particular transaction, and a savepoint.
Target Audience: This presentation is intended for solution architects and DBAs, who are responsible for designing and supporting Postgres database environments.
During this webinar, we are going to take a look at the difference between a backup (using tools like BART, Barman or pgBackRest) and a dump (using tools like pg_dump). We will review the advantages and disadvantages, key considerations, and tools available for both methods.
Ilya Kosmodemiansky - An ultimate guide to upgrading your PostgreSQL installa...PostgreSQL-Consulting
Even an experienced PostgreSQL DBA can not always say that upgrading between major versions of Postgres is an easy task, especially if there are some special requirements, such as downtime limitations or if something goes wrong. For less experienced DBAs anything more complex than dump/restore can be frustrating.
In this talk I will describe why we need a special procedure to upgrade between major versions, how that can be achieved and what sort of problems can occur. I will review all possible ways to upgrade your cluster from classical pg_upgrade to old-school slony or modern methods like logical replication. For all approaches, I will give a brief explanation how it works (limited by the scope of this talk of course), examples how to perform upgrade and some advice on potentially problematic steps. Besides I will touch upon such topics as integration of upgrade tools and procedures with other software — connection brokers, operating system package managers, automation tools, etc. This talk would not be complete if I do not cover cases when something goes wrong and how to deal with such cases.
Pg_upgrade allows data to be transferred between major Postgres versions without a costly dump/restore. This occurs by transferring the user data and version-dependent data separately. This presentation explains the internal workings of pg_upgrade and includes a pg_upgrade demonstration.
To listen to the recording please visit www.EnterpriseDB.com > Resources > Webcasts > On-demand webcasts
For more information about Postgres Plus Advanced Server you can email [email protected]
Pg_Upgrade allows migration between major releases of Postgres without a data dump and reload. It works by installing the new Postgres system tables while using the data files from the previous version. Pg_Upgrade freezes rows in the new cluster, copies over the clog and transaction id from the old one, restores the old schema, and links or copies over the user data files. This allows for much faster upgrades than traditional dump and restore methods.
The document discusses various strategies for backing up and recovering PostgreSQL databases. It begins by introducing the speaker and their background. It then covers the objectives of business continuity planning. The main types of backups discussed are logical backups using pg_dump and physical/file-system level backups. Advantages and disadvantages of each approach are provided. Validation of backups through continuous testing of restores is emphasized. Automating the backup process through scripting and configuration management tools is presented as a best practice. Specific tools discussed include pg_basebackup, ZFS snapshots for file-system level backups, Barman and WAL-E for third party managed backups, and examples of custom in-house solutions.
This document discusses PostgreSQL backups and disaster recovery. It covers the need for different types of backups like logical and physical backups. It discusses how to store backups and automate the backup process. The document also covers how to validate backups are working properly and tools that can be used. It emphasizes that both logical and physical backups are important to have for different recovery scenarios. Automation is recommended to manage the complex backup processes.
The document discusses PostgreSQL storage architecture, authentication, permissions, and commands. It provides details on:
- The PostgreSQL data directory structure and how tables and indexes are stored as separate files across multiple file segments.
- Authentication configuration using pg_hba.conf for host-based authentication and pg_ident.conf for user identification mapping. Authentication methods include trust, reject, ident, password, md5, and pam.
- SQL commands for managing users, databases, tables, permissions, and database maintenance like vacuuming and reindexing.
- Backup methods including SQL dumps, file system backups, and continuous archiving.
This document provides an overview and introduction to PostgreSQL for new users. It covers getting started with PostgreSQL, including installing it, configuring authentication and logging, upgrading to new versions, routine maintenance tasks, hardware recommendations, availability and scalability options, and query tuning and optimization. The document is presented as a slide deck with different sections labeled by letters (e.g. K-0, S-0, U-0).
The LIST command displays information about backups and datafile copies in the recovery catalog. It can list backups by backup, file, summary, expired backups, and recoverable backups. The REPORT command performs more complex analysis than LIST. It can report backups needed under the retention policy, obsolete backups, the database schema, and unrecoverable files. Both commands have many options to customize the output based on dates, redundancy levels, and other criteria.
With any database system, backup is one of the most important tool. PostgreSQL, The most Advanced Open Source database facilitates various backup and recovery options:
* Logical Backup
* Physical Backup
* Archive Logging
* Point in Time Recovery
The key points covered during the presentation were:
• An overview of PostgreSQL and Advanced Server
• EnterpriseDB’s support of community PostgreSQL including add-ons & support
• A high-level feature comparison of PostgreSQL and Advanced Server
• Working with Oracle and Advanced Server
• Summary characteristics for choosing one database or the other
If you have any questions please email [email protected].
Fábio Telles Rodriguez is a consultant and DBA with over 15 years of experience with Oracle and PostgreSQL. The document provides an overview of the history and development of PostgreSQL from its early versions in the 1970s-1990s to its modern features and widespread adoption today. It highlights key milestones like the introduction of procedural languages, data types, extensions, and replication capabilities. The open development process and large ecosystem of forks and extensions are also summarized.
This document outlines an advanced administration training course for PostgreSQL. The agenda covers topics such as installation, configuration, database management, security, backups and recovery, performance tuning, replication, and monitoring. It introduces PostgreSQL and its features, community support resources, architecture including processes, memory, and disk structures, and provides objectives for individual training modules.
This document provides information on using Perl to interact with and manipulate databases. It discusses:
- Using the DBI module to connect to databases in a vendor-independent way
- Installing Perl modules like DBI and DBD drivers to connect to specific databases like Postgres
- Preparing the Postgres database environment, including initializing and starting the database
- Using the DBI handler and statements to connect to and execute queries on the database
- Retrieving and manipulating database records through functions like SELECT, adding new records, etc.
The document provides code examples for connecting to Postgres with Perl, executing queries to retrieve data, and manipulating the database through operations like inserting new records. It focuses on
Learning postgresql, Chapter 1: Getting started with postgresql
Remarks
This section provides an overview of what postgresql is, and why a developer might want to use it.
It should also mention any large subjects within postgresql, and link out to the related topics. Since
the Documentation for postgresql is new, you may need to create initial versions of those related
topics.
Rapid Upgrades With Pg_Upgrade, Bruce MomjianFuenteovejuna
Pg_Upgrade allows migration between major releases of Postgres without dumping and reloading data. It works by installing the new Postgres system tables while continuing to use the data files from the previous version. Pg_Upgrade freezes all rows in the new cluster, copies over transaction logs and IDs from the old cluster, restores the database schema, and finally copies over user data files. This process allows for much faster upgrades than traditional dump and restore methods.
Bruce Momjian - Inside PostgreSQL Shared Memory @ Postgres OpenPostgresOpen
PostgreSQL uses shared memory structures to coordinate access to data across multiple database processes. The main shared memory structures include shared buffers for caching data pages, a proc array for tracking server processes, lightweight locks for synchronizing access to shared resources, and lock hashes for coordinating locks on database objects. Other shared structures store information for multi-version concurrency control, two-phase commit, subtransactions, the write-ahead log, and background worker synchronization.
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Post...PostgresOpen
Postgres is an open source relational database management system that provides developers and managers with several advantages over commercial RDBMSs. For developers, Postgres is highly reliable, secure, and extensible due to its liberal license, wide range of built-in features, and support for custom data types and functions. For managers, Postgres offers zero acquisition costs due to its free license, lower maintenance costs compared to commercial databases, and support from many consulting vendors.
Keith Fiske - When PostgreSQL Can't, You Can @ Postgres OpenPostgresOpen
This document summarizes several PostgreSQL extensions developed by Keith Fiske at OmniTI to add capabilities not natively available in PostgreSQL. The extensions discussed include PG Extractor for selective database dumps, PG Job Monitor for monitoring long-running functions, Mimeo for logical replication of individual tables, and PG Partition Manager for automated partitioning of tables. Links are provided for GitHub repositories containing code for each extension.
David Keeney - SQL Database Server Requests from the Browser @ Postgres OpenPostgresOpen
This document describes a universal web application backend called RdbHost that allows writing SQL directly in browser-side JavaScript code. It provides various methods for making database queries from the client-side using JavaScript, including authentication options and ways to whitelist queries for security. The service aims to remove layers from the traditional web stack by handling data access and business logic directly in browser-side code.
Keith Paskett - Postgres on ZFS @ Postgres OpenPostgresOpen
The document discusses using ZFS as a storage solution for PostgreSQL databases. ZFS provides advantages like low-impact snapshots, cloning snapshots for testing and validation, replication of snapshots, and continuous integrity checking and automatic repair. It presents ZFS as a way to help protect against common "human" disasters with databases like dropped tables or deleted data. The document outlines the benefits of ZFS and provides examples of how to use ZFS snapshots for tasks like testing upgrades, rolling back changes, and accessing historical data.
Kevin Kempter - PostgreSQL Backup and Recovery Methods @ Postgres OpenPostgresOpen
This document provides an overview of PostgreSQL backup and recovery methods, including pg_dump, pg_dumpall, psql, pg_restore, and point-in-time recovery (PITR). It discusses the options and usage of each tool and provides examples.
Craig Kerstiens - Scalable Uniques in Postgres @ Postgres OpenPostgresOpen
This document discusses using HyperLogLog in PostgreSQL to estimate cardinality or unique counts within a small memory footprint. It introduces HyperLogLog concepts like KMV, bit patterns, and stochastic averaging. It then demonstrates creating a PostgreSQL extension, inserting data into an HLL column, and using HLL functions to estimate unique counts across rows and tables. It also covers tuning HLL parameters and best practices like batching updates. The document presents HLL as a way to estimate large unique counts with only 1280 bytes and a few percent error rate.
Henrietta Dombrovskaya - A New Approach to Resolve Object-Relational Impedanc...PostgresOpen
The document discusses object-relational impedance mismatch that occurs when object-oriented programming languages are used to interact with relational databases. It provides examples from a Ruby on Rails application that uses an ORM called ActiveRecord to show how straightforward object mapping can lead to many database queries being executed to retrieve related data. The document argues this performance issue could be avoided by better integrating database operations directly into objects and methods.
Steve Singer - Managing PostgreSQL with Puppet @ Postgres OpenPostgresOpen
This document discusses how to manage PostgreSQL databases with Puppet. It describes using Puppet to deploy PostgreSQL binaries, configure files like postgresql.conf and pg_hba.conf, manage users and permissions, handle database initialization, configure backups with cron jobs, manage replication with Slony, and more. Templates, Hiera, and custom defined resources are used to configure PostgreSQL instances in a consistent and automated way.
John Melesky - Federating Queries Using Postgres FDW @ Postgres OpenPostgresOpen
This document discusses federating queries across PostgreSQL databases using foreign data wrappers (FDWs). It begins by introducing the author and their background. It then covers using FDWs to partition tables across multiple nodes for queries, the benefits over traditional views, and demonstrates counting rows across nodes. It notes limitations like network overhead, lack of keys/constraints, and single-threaded execution. Finally, it discusses strategies like using many small nodes, node-level partitioning, distributed processing, and multi-headed setups to optimize federated querying.
This document outlines the configuration and management of Postgres-XC clusters using the pgxc_ctl tool. It provides details on:
- Configuring Postgres-XC components like GTM, coordinators, and datanodes in a configuration file for pgxc_ctl.
- Using pgxc_ctl commands to initialize, start, stop, failover, and dynamically add or remove nodes from the cluster.
- Key Postgres-XC components that must be configured including the GTM master, coordinator masters and slaves, and datanode masters.
- Configuration parameters that can be specified for each component like the server, port, directories and extra configuration files.
Selena Deckelmann - Sane Schema Management with Alembic and SQLAlchemy @ Pos...PostgresOpen
Alembic is a schema migration tool that integrates with SQLAlchemy to help developers and database administrators (DBAs) safely manage schema changes in a controlled and repeatable way. It is important for DBAs to work with developers on schema changes to communicate the changes and process. When choosing a migration tool, it is important to consider how often the schema changes and if the tool allows changes to be tested before production. Alembic helps solve problems by enabling disciplined database and code review processes for schema changes and allowing changes to be rolled back if needed.
Robert Bernier - Recovering From A Damaged PostgreSQL Cluster @ Postgres OpenPostgresOpen
The document discusses recovering from a damaged PostgreSQL cluster. It provides examples of dropping and recreating indexes and sequences when files are corrupted. It also describes using single-user mode to rebuild system catalogs and vacuuming and reindexing tables in a database. Recreating the entire data cluster on another machine is recommended when significant damage occurs.
Michael Paquier - Taking advantage of custom bgworkers @ Postgres OpenPostgresOpen
This document discusses background workers (bgworkers) in PostgreSQL. It provides an introduction and overview of bgworkers, including how they are implemented as child processes of the postmaster that can run customized code. The document covers the development APIs for bgworkers and gives examples of creating a "Hello World" bgworker. It also discusses best practices, limitations, and examples of what types of tasks are suitable for bgworkers.
Michael Bayer Introduction to SQLAlchemy @ Postgres OpenPostgresOpen
This document provides an introduction to SQLAlchemy and object relational mapping (ORM). It discusses how SQLAlchemy provides tools and components to assist with database development at every level, including an ORM that allows mapping Python objects to database tables. The document covers the core components of SQLAlchemy, including the Engine for database connectivity, metadata for representing database structure in Python, and the ORM for persisting objects. It also discusses how SQLAlchemy builds on the Python DBAPI for low-level database access.
Robert Haas Query Planning Gone Wrong Presentation @ Postgres OpenPostgresOpen
The document summarizes the results of analyzing hundreds of email threads about query performance problems in PostgreSQL over two years. It found that the most common issues were:
1) Planner errors in row count or cost estimation, particularly underestimating the selectivity of correlated filter conditions and incorrectly estimating the performance of index scans with ordering and limits.
2) Settings like cost constants, work_mem, and statistics targets that could be optimized.
3) Queries that are inherently slow due to processing large amounts of data or disk access versus memory.
4) Areas where the planner is limited like not generating certain plan types or parameterization.
Ryan Jarvinen Open Shift Talk @ Postgres Open 2013PostgresOpen
The document discusses writing portable PostgreSQL applications for the open cloud. It covers open cloud platforms like OpenStack that avoid lock-in, and platforms like OpenShift that provide portable PostgreSQL applications using cartridges and scaling hooks. Examples are given of simple applications like a TODO app using Flask, SQLAlchemy and PostgreSQL that can be easily deployed to OpenShift.
Andrew Dunstan 9.3 JSON Presentation @ Postgres Open 2013PostgresOpen
This document discusses PostgreSQL's support for JSON, including:
- An overview of new features in versions 9.2 and 9.3 for JSON production, processing, and extraction.
- Explanations of JSON data types, operators, and functions added in 9.3 for converting between JSON and other PostgreSQL types.
- Examples of using the new JSON operators and functions to extract, transform, and produce JSON.
- Details on leveraging the new JSON C API to build custom JSON functions and transformations.
- Discussions of future work, like a possible binary JSON representation, to further improve PostgreSQL's JSON support.
Enabling BIM / GIS integrations with Other Systems with FMESafe Software
Jacobs has successfully utilized FME to tackle the complexities of integrating diverse data sources in a confidential $1 billion campus improvement project. The project aimed to create a comprehensive digital twin by merging Building Information Modeling (BIM) data, Construction Operations Building Information Exchange (COBie) data, and various other data sources into a unified Geographic Information System (GIS) platform. The challenge lay in the disparate nature of these data sources, which were siloed and incompatible with each other, hindering efficient data management and decision-making processes.
To address this, Jacobs leveraged FME to automate the extraction, transformation, and loading (ETL) of data between ArcGIS Indoors and IBM Maximo. This process ensured accurate transfer of maintainable asset and work order data, creating a comprehensive 2D and 3D representation of the campus for Facility Management. FME's server capabilities enabled real-time updates and synchronization between ArcGIS Indoors and Maximo, facilitating automatic updates of asset information and work orders. Additionally, Survey123 forms allowed field personnel to capture and submit data directly from their mobile devices, triggering FME workflows via webhooks for real-time data updates. This seamless integration has significantly enhanced data management, improved decision-making processes, and ensured data consistency across the project lifecycle.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2025/06/state-space-models-vs-transformers-for-ultra-low-power-edge-ai-a-presentation-from-brainchip/
Tony Lewis, Chief Technology Officer at BrainChip, presents the “State-space Models vs. Transformers for Ultra-low-power Edge AI” tutorial at the May 2025 Embedded Vision Summit.
At the embedded edge, choices of language model architectures have profound implications on the ability to meet demanding performance, latency and energy efficiency requirements. In this presentation, Lewis contrasts state-space models (SSMs) with transformers for use in this constrained regime. While transformers rely on a read-write key-value cache, SSMs can be constructed as read-only architectures, enabling the use of novel memory types and reducing power consumption. Furthermore, SSMs require significantly fewer multiply-accumulate units—drastically reducing compute energy and chip area.
New techniques enable distillation-based migration from transformer models such as Llama to SSMs without major performance loss. In latency-sensitive applications, techniques such as precomputing input sequences allow SSMs to achieve sub-100 ms time-to-first-token, enabling real-time interactivity. Lewis presents a detailed side-by-side comparison of these architectures, outlining their trade-offs and opportunities at the extreme edge.
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOMAnchore
Over 70% of any given software application consumes open source software (most likely not even from the original source) and only 15% of organizations feel confident in their risk management practices.
With the newly announced Anchore SBOM feature, teams can start safely consuming OSS while mitigating security and compliance risks. Learn how to import SBOMs in industry-standard formats (SPDX, CycloneDX, Syft), validate their integrity, and proactively address vulnerabilities within your software ecosystem.
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...Anish Kumar
Presented by: Anish Kumar
LinkedIn: https://www.linkedin.com/in/anishkumar/
This lightning talk dives into real-world GenAI projects that scaled from prototype to production using Databricks’ fully managed tools. Facing cost and time constraints, we leveraged four key Databricks features—Workflows, Model Serving, Serverless Compute, and Notebooks—to build an AI inference pipeline processing millions of documents (text and audiobooks).
This approach enables rapid experimentation, easy tuning of GenAI prompts and compute settings, seamless data iteration and efficient quality testing—allowing Data Scientists and Engineers to collaborate effectively. Learn how to design modular, parameterized notebooks that run concurrently, manage dependencies and accelerate AI-driven insights.
Whether you're optimizing AI inference, automating complex data workflows or architecting next-gen serverless AI systems, this session delivers actionable strategies to maximize performance while keeping costs low.
Down the Rabbit Hole – Solving 5 Training RoadblocksRustici Software
Feeling stuck in the Matrix of your training technologies? You’re not alone. Managing your training catalog, wrangling LMSs and delivering content across different tools and audiences can feel like dodging digital bullets. At some point, you hit a fork in the road: Keep patching things up as issues pop up… or follow the rabbit hole to the root of the problems.
Good news, we’ve already been down that rabbit hole. Peter Overton and Cameron Gray of Rustici Software are here to share what we found. In this webinar, we’ll break down 5 training roadblocks in delivery and management and show you how they’re easier to fix than you might think.
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfällepanagenda
Webinar Recording: https://www.panagenda.com/webinars/domino-iq-was-sie-erwartet-erste-schritte-und-anwendungsfalle/
HCL Domino iQ Server – Vom Ideenportal zur implementierten Funktion. Entdecken Sie, was es ist, was es nicht ist, und erkunden Sie die Chancen und Herausforderungen, die es bietet.
Wichtige Erkenntnisse
- Was sind Large Language Models (LLMs) und wie stehen sie im Zusammenhang mit Domino iQ
- Wesentliche Voraussetzungen für die Bereitstellung des Domino iQ Servers
- Schritt-für-Schritt-Anleitung zur Einrichtung Ihres Domino iQ Servers
- Teilen und diskutieren Sie Gedanken und Ideen, um das Potenzial von Domino iQ zu maximieren
מכונות CNC קידוח אנכיות הן הבחירה הנכונה והטובה ביותר לקידוח ארונות וארגזים לייצור רהיטים. החלק נוסע לאורך ציר ה-x באמצעות ציר דיגיטלי מדויק, ותפוס ע"י צבת מכנית, כך שאין צורך לבצע setup (התאמות) לגדלים שונים של חלקים.
Mastering AI Workflows with FME - Peak of Data & AI 2025Safe Software
Harness the full potential of AI with FME: From creating high-quality training data to optimizing models and utilizing results, FME supports every step of your AI workflow. Seamlessly integrate a wide range of models, including those for data enhancement, forecasting, image and object recognition, and large language models. Customize AI models to meet your exact needs with FME’s powerful tools for training, optimization, and seamless integration
Domino IQ – What to Expect, First Steps and Use Casespanagenda
Webinar Recording: https://www.panagenda.com/webinars/domino-iq-what-to-expect-first-steps-and-use-cases/
HCL Domino iQ Server – From Ideas Portal to implemented Feature. Discover what it is, what it isn’t, and explore the opportunities and challenges it presents.
Key Takeaways
- What are Large Language Models (LLMs) and how do they relate to Domino iQ
- Essential prerequisites for deploying Domino iQ Server
- Step-by-step instructions on setting up your Domino iQ Server
- Share and discuss thoughts and ideas to maximize the potential of Domino iQ
Artificial Intelligence in the Nonprofit Boardroom.pdfOnBoard
OnBoard recently partnered with Microsoft Tech for Social Impact on the AI in the Nonprofit Boardroom Survey, an initiative designed to uncover the current and future role of artificial intelligence in nonprofit governance.
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven InfrastructureSafe Software
When projects depend on fast, reliable spatial data, every minute counts.
AI Clearing needed a faster way to handle complex spatial data from drone surveys, CAD designs and 3D project models across construction sites. With FME Form, they built no-code workflows to clean, convert, integrate, and validate dozens of data formats – cutting analysis time from 5 hours to just 30 minutes.
Join us, our partner Globema, and customer AI Clearing to see how they:
-Automate processing of 2D, 3D, drone, spatial, and non-spatial data
-Analyze construction progress 10x faster and with fewer errors
-Handle diverse formats like DWG, KML, SHP, and PDF with ease
-Scale their workflows for international projects in solar, roads, and pipelines
If you work with complex data, join us to learn how to optimize your own processes and transform your results with FME.
Floods in Valencia: Two FME-Powered Stories of Data ResilienceSafe Software
In October 2024, the Spanish region of Valencia faced severe flooding that underscored the critical need for accessible and actionable data. This presentation will explore two innovative use cases where FME facilitated data integration and availability during the crisis. The first case demonstrates how FME was used to process and convert satellite imagery and other geospatial data into formats tailored for rapid analysis by emergency teams. The second case delves into making human mobility data—collected from mobile phone signals—accessible as source-destination matrices, offering key insights into population movements during and after the flooding. These stories highlight how FME's powerful capabilities can bridge the gap between raw data and decision-making, fostering resilience and preparedness in the face of natural disasters. Attendees will gain practical insights into how FME can support crisis management and urban planning in a changing climate.
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdfAlkin Tezuysal
As the demand for vector databases and Generative AI continues to rise, integrating vector storage and search capabilities into traditional databases has become increasingly important. This session introduces the *MyVector Plugin*, a project that brings native vector storage and similarity search to MySQL. Unlike PostgreSQL, which offers interfaces for adding new data types and index methods, MySQL lacks such extensibility. However, by utilizing MySQL's server component plugin and UDF, the *MyVector Plugin* successfully adds a fully functional vector search feature within the existing MySQL + InnoDB infrastructure, eliminating the need for a separate vector database. The session explains the technical aspects of integrating vector support into MySQL, the challenges posed by its architecture, and real-world use cases that showcase the advantages of combining vector search with MySQL's robust features. Attendees will leave with practical insights on how to add vector search capabilities to their MySQL systems.
Presentation given at the LangChain community meetup London
https://lu.ma/9d5fntgj
Coveres
Agentic AI: Beyond the Buzz
Introduction to AI Agent and Agentic AI
Agent Use case and stats
Introduction to LangGraph
Build agent with LangGraph Studio V2
This OrionX's 14th semi-annual report on the state of the cryptocurrency mining market. The report focuses on Proof-of-Work cryptocurrencies since those use substantial supercomputer power to mint new coins and encode transactions on their blockchains. Only two make the cut this time, Bitcoin with $18 billion of annual economic value produced and Dogecoin with $1 billion. Bitcoin has now reached the Zettascale with typical hash rates of 0.9 Zettahashes per second. Bitcoin is powered by the world's largest decentralized supercomputer in a continuous winner take all lottery incentive network.
Your startup on AWS - How to architect and maintain a Lean and Mean account J...angelo60207
Prevent infrastructure costs from becoming a significant line item on your startup’s budget! Serial entrepreneur and software architect Angelo Mandato will share his experience with AWS Activate (startup credits from AWS) and knowledge on how to architect a lean and mean AWS account ideal for budget minded and bootstrapped startups. In this session you will learn how to manage a production ready AWS account capable of scaling as your startup grows for less than $100/month before credits. We will discuss AWS Budgets, Cost Explorer, architect priorities, and the importance of having flexible, optimized Infrastructure as Code. We will wrap everything up discussing opportunities where to save with AWS services such as S3, EC2, Load Balancers, Lambda Functions, RDS, and many others.
Creating an Accessible Future-How AI-powered Accessibility Testing is Shaping...Impelsys Inc.
Web accessibility is a fundamental principle that strives to make the internet inclusive for all. According to the World Health Organization, over a billion people worldwide live with some form of disability. These individuals face significant challenges when navigating the digital landscape, making the quest for accessible web content more critical than ever.
Enter Artificial Intelligence (AI), a technological marvel with the potential to reshape the way we approach web accessibility. AI offers innovative solutions that can automate processes, enhance user experiences, and ultimately revolutionize web accessibility. In this blog post, we’ll explore how AI is making waves in the world of web accessibility.
4. Overview
• Multiple backup methods
• Multiple backup file formats
• Many recovery choices / options if a
pg_restore compatible format is used
• PITR
• PITR is the base construct for WAL
shipping (Warm Standby)
4
Wednesday, September 18, 13
6. pg_dump
✓ Utility to dump a snapshot of a single
database
✓ Multiple output options
✓ Non-blocking
✓ Creates a “Consistent” backup - even if the
database is in use
6
Wednesday, September 18, 13
8. pg_dump - Common Options
• -s [--schema-only]
• Dump schema (DDL) only, no data
• -a [--data-only]
• Dump data only - no DDL
• -c [--clean]
• Generate drop statements for all created objects
• -C [--create]
• Generate a “CREATE DATABASE” statement
• -n schema [--schema=schema]
• Only dump the specified schema, wildcard characters are allowed, also multiple -n’s are
allowed
8
Wednesday, September 18, 13
9. pg_dump - Common Options (continued)
• -N schema [--exclude-schema=schema]
• Exclude specified schema
• -F format [--format=format]
• Output format
• p (Plain) plain sql file #default
• c (Custom) custom binary format
• t (tar) tar format
• d (directory) Creates a directory with one file per table/blob, plus a TOC file in a binary
format that pg_restore can read
• -o [--oids]
• Dump table OID’s
• -O [--no-owner]
• Do not generate ownership commands
9
Wednesday, September 18, 13
10. pg_dump - Common Options (continued)
• -t table [--table=table]
• Only dump the specified table, wildcard characters are allowed, also multiple -t’s are
allowed, over-rides -n and -N options
• -x [--no-privileges] [--no-acl]
• Do not dump access privileges
• --inserts
• Generate INSERT statements
• --disable-triggers
• disable triggers during restore (for a data only restore) when doing a data-only dump
• --lock-wait-timeout=timeout
• fail if shared lock on an object cannot be acquired within timeout time
10
Wednesday, September 18, 13
11. pg_dump - Common Options (continued)
• -Z 0..9 [--compress=0..9]
• Specify compression level for custom format or plain format (not supported for tar
format)
• -v [--verbose]
• -V [--version]
11
Wednesday, September 18, 13
12. pg_dump - Examples
$ pg_dump -C --inserts prod1_db > prod1_db.sql
Creates a dump of insert statements including a create database statement
$ pg_dump --data-only --table=customer -Fc prod1_db > prod1_db.cust.fc.dmp
Dump the customer table data (data only) in a custom format from the prod1_db database
$ pg_dump -s prod1_db > prod1_db.ddl_only.sql
Creates a DDL only dump of the prod1_db database
$ pg_dump --schema=gold -Ft prod1_db > prod1_db.gold_schema.dmp
Creates a dump of the gold schema in the prod1_db database in a tar format
12
Wednesday, September 18, 13
14. pg_dumpall
✓ Utility to dump a snapshot of a full
database cluster (or cluster-wide
constructs)
✓ Dumps only to plain sql format
✓ Non-blocking
✓ Creates a “Consistent” backup - even
if the database is in use
14
Wednesday, September 18, 13
16. pg_dumpall - Common Options
• -s [--schema-only]
• Dump schema (DDL) only, no data
• -a [--data-only]
• Dump data only - no DDL
• -c [--clean]
• Generate drop statements for all created objects
• -o [--oids]
• Dump table OID’s
• -O [--no-owner]
• Do not generate ownership commands
16
Wednesday, September 18, 13
17. pg_dumpall - Common Options (continued)
• -r [--roles-only]
• Dump only CREATE ROLE data
• -t [--tablespaces-only]
• Dump only CREATE TABLESPACE data
• -g [--globals-only]
• Dump Global Structures (Roles and Tablespaces)
• --no-tablespaces
• Do NOT dump CREATE TABLESPACE Data
• --inserts
• Generate INSERT statements
17
Wednesday, September 18, 13
18. pg_dumpall - Common Options (continued)
• --disable-triggers
• disable triggers during restore (for a data only restore) when doing a data-only dump
• --lock-wait-timeout=timeout
• fail if shared lock on an object cannot be acquired within timeout time
• -v [--verbose]
• -V [--version]
18
Wednesday, September 18, 13
19. pg_dumpall - Examples
$ pg_dumpall -g > prod1_db_cluster.global_structures.sql
Creates a cluster dump containing only the cluster global structures
$ pg_dumpall --tablespaces-only > prod1_db_cluster.tablespaces.sql
Dump the cluster tablespaces
$ pg_dumpall --no-tablespaces > prod1_db_cluster.no_tablespaces.sql
Creates a dump of the cluster without any tablespace references
$ pg_dumpall -a > prod1_db_cluster.data_only.sql
Creates a dump of the cluster - data only
19
Wednesday, September 18, 13
25. pg_restore - Common Options
• -d dbname [--dbname=dbname]
• -C [--create]
• Create the specified database before restore
• -c [--clean]
• Generate drop statements for all created objects
• -s [--schema-only]
• Dump schema (DDL) only, no data
• -a [--data-only]
• Dump data only - no DDL
25
Wednesday, September 18, 13
26. pg_restore - Common Options (continued)
• -n namespace [--schema=schema]
• Restore only objects in the specified schema
• -O [--no-owner]
• Do not restore ownership of objects
• -I index [--index=index]
• Restore specified index only
• -P function-name(argtype [, ...]) [ --function=function-name(argtype [, ...]) ]
• Restore specified function only
• -T trigger [--trigger=trigger]
• Restore specified trigger only
26
Wednesday, September 18, 13
27. pg_restore - Common Options (continued)
• -t table [--table=table]
• Restore specified table only
• --no-tablespaces
• Do not restore any TABLESPACES
• -F format [--format=format]
• Output format
• c (Custom) custom binary format
• t (tar) tar format
• d (directory)
27
Wednesday, September 18, 13
28. pg_restore - Common Options (continued)
• -t table [--table=table]
• Restore specified table only
• --no-tablespaces
• Do not restore any TABLESPACES
• -j number-of-jobs [--jobs=number-of-jobs]
• Use parallel jobs to perform the restore
• --disable-triggers
• Disable triggers during the restore (for a data only restore)
• -e [--exit-on-error]
• Exits upon any error
28
Wednesday, September 18, 13
29. pg_restore - Common Options (continued)
• -l [--list]
• Create a list (TOC) file
• -L list-file [--use-list=list-file]
• Restore based on the specified list file
• -V [--version]
• -v [--verbose]
29
Wednesday, September 18, 13
30. pg_restore - Examples
$ pg_restore -a -Fc -d prod2_db prod1_db.fc.dmp
Restores data only from a custom formatted file into database prod2_db
$ pg_restore -c --schema=gold_partners -v -Ft -d prod2_db prod.tar.dmp
Cleans (removes data & structures first) then restores the gold_partners
schema from a tar formatted file into the prod2_db database (with verbose
output)
$ pg_restore --schema-only -d qa1_db -Fc -j 10 prod1_db.fc.dmp
Restores the schema only (DDL) from a custom formatted file
into the qa1_db database using 10 parallel streams to do the restore
30
Wednesday, September 18, 13
31. Restoring
via a list file
• pg_restore can create a list file
from a pg_dump file
• List file will contain one line per
needed operation such as:
• CREATE TABLE
• COPY
• CREATE INDEX
• List file can be modified as desired
to create a custom restore
31
Wednesday, September 18, 13
32. Create a list file from the pg_dump file
$ pg_dump -Ft db1 > db1.fc.dmp
$ pg_restore -Ft -l db1.dmp > db1.lst
32
Wednesday, September 18, 13
33. Sample list file header
;
; Archive created at Tue Sep 10 09:42:24 2013
; dbname: testdb
; TOC Entries: 34
; Compression: -1
; Dump Version: 1.12-0
; Format: CUSTOM
; Integer: 4 bytes
; Offset: 8 bytes
; Dumped from database version: 9.2.4
; Dumped by pg_dump version: 9.2.4
;
;
33
Wednesday, September 18, 13
34. Sample list file contents
; Selected TOC Entries:
;
1981; 1262 16386 DATABASE - testdb_old postgres
6; 2615 2200 SCHEMA - public postgres
1982; 0 0 COMMENT - SCHEMA public postgres
1983; 0 0 ACL - public postgres
181; 3079 11730 EXTENSION - plpgsql
1984; 0 0 COMMENT - EXTENSION plpgsql
168; 1259 16411 TABLE public testdb_jasper_metrics_tables postgres
169; 1259 16414 TABLE public testdb_jasper_metrics_tables_tmp1 postgres
170; 1259 16417 TABLE public testdb_metrics_activity postgres
171; 1259 16423 TABLE public testdb_metrics_database postgres
172; 1259 16426 TABLE public testdb_postgres_metrics_bgwriter postgres
173; 1259 16429 TABLE public testdb_postgres_metricsio_user_tables postgres
174; 1259 16432 TABLE public testdb_testdb_gf_metrics_tables postgres
175; 1259 16435 TABLE public testdb_testdb_transition_metrics_tables postgres
176; 1259 16438 TABLE public testdb_testdb_transition_metrics_tables_tmp1 postgres
177; 1259 16441 TABLE public testdb_testdb_transition_metrics_tables_tmp2 postgres
34
Wednesday, September 18, 13
35. Sample list file contents (cont)
178; 1259 16444 TABLE public idle_conn_metrics postgres
179; 1259 16447 TABLE public total_conn_metrics postgres
180; 1259 16450 TABLE public waiting_conn_metrics postgres
1964; 0 16411 TABLE DATA public testdb_jasper_metrics_tables postgres
1965; 0 16414 TABLE DATA public testdb_jasper_metrics_tables_tmp1 postgres
1966; 0 16417 TABLE DATA public testdb_metrics_activity postgres
1967; 0 16423 TABLE DATA public testdb_metrics_database postgres
1968; 0 16426 TABLE DATA public testdb_postgres_metrics_bgwriter postgres
1969; 0 16429 TABLE DATA public testdb_postgres_metricsio_user_tables postgres
1970; 0 16432 TABLE DATA public testdb_testdb_gf_metrics_tables postgres
1971; 0 16435 TABLE DATA public testdb_testdb_transition_metrics_tables postgres
1972; 0 16438 TABLE DATA public testdb_testdb_transition_metrics_tables_tmp1 postgres
1973; 0 16441 TABLE DATA public testdb_testdb_transition_metrics_tables_tmp2 postgres
1974; 0 16444 TABLE DATA public idle_conn_metrics postgres
1975; 0 16447 TABLE DATA public total_conn_metrics postgres
1976; 0 16450 TABLE DATA public waiting_conn_metrics postgres
35
Wednesday, September 18, 13
36. Restore via list file - example
$ pg_dump -Ft prod_db > prod_db.fc.dmp
$ pg_restore -Ft -l prod_db.dmp > prod_db.lst
$ createdb qadb3
Edit prod_db.lst as needed / desired
$ pg_restore -L prod_db.lst -Ft -d qadb3 prod_db.dmp
36
Wednesday, September 18, 13
39. PITR Overview
• PITR Backups
• Archiving the WAL segments
• Making Base Backups
• PITR Recovery
• Restore the last Base Backup
• Prepare the recovered system data directory
• Create a recovery.conf file
• Start the postmaster
39
Wednesday, September 18, 13
40. PITR Setup
• Enable / set the following parameters in the
postgresql.conf file:
• wal_level = archive (or hot_standby)
• archive_mode = on
• archive_command = 'valid archive command'
Can be any valid shell command (including scripts)
• archive_timeout = [timeout]
• Special archive_command (and recovery.conf file) tags
• %p = full path (absolute path) and the file name of the WAL
segment to be archived
• %f = only the file name of the WAL segment
• %% = insert a % character in the command string.
40
Wednesday, September 18, 13
41. PITR Example
• Enable / set the following parameters in the postgresql.conf file:
• wal_level = archive
• archive_mode = on
• archive_command = 'cp %p /stage/wal/%f'
Can be any valid shell command (including scripts)
• archive_timeout = 0
• mkdir /stage/wal
• chown postgres:postgres /stage/wal
• Re-start the Server
41
Wednesday, September 18, 13
42. PITR Example - create transactions
• Execute SQL commands / transactions
• Enable access, turn on applications, etc
• This should force the creation of multiple archived WAL
files in the /stage/wal directory
• WAL segments are copied when:
• The WAL segment is full (see checkpoint_segments)
• Number of seconds specified in archive_timeout has passed
42
Wednesday, September 18, 13
43. PITR Example - create base backup
• Execute pg_start_backup
$ psql pitr_test
# select pg_start_backup ('tag') ;
• Archive the cluster data directory (and any related
tablespaces)
$ tar -czvf /backups/pitr/<date>.data.tar.gz ./data
rsync
other copy methods
• Execute pg_stop_backup
$ psql pitr_test
# select pg_stop_backup () ;
43
Wednesday, September 18, 13
44. PITR Example - create more transactions
• Execute SQL commands / transactions
• The application, user connections, etc will continue to
generate transactions (and archived WAL segments)
• Verify the creation of additional archived WAL files in
the /stage/wal directory
44
Wednesday, September 18, 13
45. PITR - recovery.conf file (common options)
Recovery settings are placed in the file 'recovery.conf'
• restore_command (string)
must return nonzero
• restore_command = 'cp /stage/wal/%f %p'
• restore_command = '/usr/local/bin/restore_shell.sh %p %f'
45
Wednesday, September 18, 13
46. PITR - recovery.conf file (common options)
recovery_target_time (timestamp)
• specifies the time stamp up to which recovery will proceed.
• recovery_target_time and recovery_target_xid are mutually
exclusive
• The default is to recover to the end of the WAL log.
46
Wednesday, September 18, 13
47. PITR Recovery
(1) If available copy the original cluster data directory to an
alternate location
if space is an issue at least copy the old pg_xlog dir it may contain
additional unarchived WAL segments
(2) Ensure the postmaster is not running
47
Wednesday, September 18, 13
48. PITR Recovery
If your backup was an rsync to a second server then skip steps 3 & 4
(3) Remove the cluster data directory and any tablespace
directories
(4) Restore your last system backup
• make sure permissions are retained
• If you're using tablespaces then verify that the symbolic links in
pg_tblspc/ were restored
48
Wednesday, September 18, 13
49. PITR Recovery
(5) Remove any wal segments from the pg_xlog dir that were
restored from the backup
If you didn't backup pg_xlog then create it, make sure you
re-establish it as a symbolic link if needed
If needed also re-create the pg_xlog/archive_status directory
(6) Copy the files from the original pg_xlog dir (if available) into
the new pg_xlog dir
do a copy as opposed to a move in case you need to start over
49
Wednesday, September 18, 13
50. PITR Recovery
(7) Create a recovery command (recovery.conf) in the cluster
data directory.
(8) [Optional] Temporarily modify pg_hba.conf to prevent
ordinary users from connecting until the recovery is complete
(9) Start the server.
The server will go into recovery mode via the recovery.conf file.
Once the recovery is complete then the server will become available and
rename the recovery.conf file to recovery.done
If an error interrupts the recovery (or stops the server) then simply
re-starting the server will restart the recovery
50
Wednesday, September 18, 13
51. PITR Recovery
(10) Verify the recovery.
If the database was not recovered properly (or to a state that you desire) then go
back to step 1
(11) restore the pg_hba.conf to its original state and run a
pg_ctl reload (if it was modified for the recovery)
51
Wednesday, September 18, 13