Postgres:pg_basebackup物理备份与还原

简介: vim $PGDAT/postgresql.conf 将wal_level = archive(or hot_standby);开启archive mode,archive_mode =...
  • vim $PGDAT/postgresql.conf
    • 将wal_level = archive(or hot_standby);
    • 开启archive mode,archive_mode = on
    • 设置archive_command, 例如:
archive_command =  'tar czf /mnt/pgbackup/dbs1backup/"%p".tar.gz "%p"' 或者
archive_command = 'DATE=`date +%Y%m%d`;DIR="/var/lib/pgsql/test/$DATE";(test -d $DIR || mkdir -p $DIR)&&cp %p $DIR/%f' 

    执行该语句后会在/var/lib/pgsql/test/$DATE生成归档文件,注意文件的所有者是否是postgres
    %p 表示xlog文件名$PGDAT的相对路径,如pg_xlog/000000000007D
    %f表示xlog文件名,如0000000000007D

下面给出一个本地备份异地还原的例子

  1. psql -h 127.0.0.1 -U postgres 成功的话(注意防火墙的设置,清空先。如果连不通注意pg_hba的配置)
  2. pg_basebackup -h 127.0.0.1 -U postgres -F t -z -D /var/lib/pgsql/test/bk_20171024/ -P(压缩率高 -P显示进度)
  3. 之后会在/var/lib/pgsql/test/bk_20171024/ 生成db的backup,其中base是$pgdata目录的备份
  4. 将备份完的db:/var/lib/pgsql/test/bk_20171024/拷贝到另一台服务器/var/lib/pgsql/bk_20171025
  5. 将archive拷贝到另一台服务器的:地址是/var/lib/pgsql/9.2/archive1024
  6. 在另一台服务器上: 将原先的data内的目录全部mv到别的路径下
  7. 在另一台服务器上:将recovery.conf中的restore_command设置成cp /var/lib/pgsql/9.2/archive1024/%f %p
  8. 关于db目录,因在本例中,数据文件~/9.2/data/pg_tblspc中被软连接到了另一个地址,如图,所以需要将备份的数据文件解压到相应的目录下。解压代码如下

这里写图片描述

#!/bin/bash


# Restore tablespaces
for tblspcoid in $(ls /var/lib/pgsql/9.2/data/pg_tblspc/)
do
    rdest=$(readlink /var/lib/pgsql/9.2/data/pg_tblspc/$tblspcoid)
    echo "Extracting $basedir/$tblspcoid.tar.gz to $rdest/ ..."
        if [ ! -d $rdest ];then
            echo "rdest is not exist, creating ..."
            `mkdir -p $rdest`
        fi
        chown postgres:postgres $rdest
    tar -xzf /var/lib/pgsql/bk_20171025/$tblspcoid.tar.gz -C $rdest/

done

最后启动 /etc/init.d/postgresql-9.2 start

目录
相关文章
|
4月前
|
关系型数据库 数据库 PostgreSQL
postgresql|【基于pg_basebackup命令的归档备份和恢复---热备冷恢复方式】
postgresql|【基于pg_basebackup命令的归档备份和恢复---热备冷恢复方式】
50 0
|
4月前
|
关系型数据库 数据库 PostgreSQL
postgresql|数据库|恢复备份的时候报错:pg_restore: implied data-only restore的处理方案
postgresql|数据库|恢复备份的时候报错:pg_restore: implied data-only restore的处理方案
63 0
|
6月前
|
关系型数据库 MySQL 数据库
阿里云Mysql数据库物理全备文件恢复到自建数据库Mysql报错:InnoDB: Log file ./...xtrabacku
阿里云Mysql数据库物理全备文件恢复到自建数据库Mysql报错:InnoDB: Log file ./...xtrabacku
|
9月前
|
存储 SQL JSON
PG备份恢复工具pg_probackup
PG备份恢复工具pg_probackup
83 0
|
关系型数据库
备份工具pg_dump的使用《postgres》
备份工具pg_dump的使用《postgres》
293 0
|
关系型数据库 数据库 PostgreSQL
PG 数据文件
每个索引和表都是一个单独的文件,page页/段,默认1G,大于1G的page会被分割
257 0
|
监控 关系型数据库 MySQL
XtraBackup物理备份 阿里云的Mysql备份方式
 XtraBackup物理备份 阿里云的Mysql备份方式 XtraBackup物理备份 Percona XtraBackup是世界上唯一的开源,免费的MySQL热备份软件,为InnoDB和XtraDB 数据库执行非阻塞备份。
2157 0
|
SQL 数据库
【DG】怎么使用Data Pump备份物理备库
先决条件: 我们都知道数据泵(Data Pump)不能直接在物理备用数据库上执行,这由于执行数据泵时数据泵会创建和维护一个表,还要求数据库必须是READ WRITE模式,因此我们必须从其他数据库使用NETWORK_LINK备份物理备用数据库。
1074 0