Postgres:pg_basebackup物理备份与还原
2017-10-27 12:50
1176 查看
vim $PGDAT/postgresql.conf
将wal_level = archive(or hot_standby);
开启archive mode,archive_mode = on
设置archive_command, 例如:
下面给出一个本地备份异地还原的例子
psql -h 127.0.0.1 -U postgres 成功的话(注意防火墙的设置,清空先。如果连不通注意pg_hba的配置)
pg_basebackup -h 127.0.0.1 -U postgres -F t -z -D /var/lib/pgsql/test/bk_20171024/ -P(压缩率高 -P显示进度)
之后会在/var/lib/pgsql/test/bk_20171024/ 生成db的backup,其中base是$pgdata目录的备份
将备份完的db:/var/lib/pgsql/test/bk_20171024/拷贝到另一台服务器/var/lib/pgsql/bk_20171025
将archive拷贝到另一台服务器的:地址是/var/lib/pgsql/9.2/archive1024
在另一台服务器上: 将原先的data内的目录全部mv到别的路径下
在另一台服务器上:将recovery.conf中的restore_command设置成cp /var/lib/pgsql/9.2/archive1024/%f %p
关于db目录,因在本例中,数据文件~/9.2/data/pg_tblspc中被软连接到了另一个地址,如图,所以需要将备份的数据文件解压到相应的目录下。解压代码如下
最后启动 /etc/init.d/postgresql-9.2 start
将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
下面给出一个本地备份异地还原的例子
psql -h 127.0.0.1 -U postgres 成功的话(注意防火墙的设置,清空先。如果连不通注意pg_hba的配置)
pg_basebackup -h 127.0.0.1 -U postgres -F t -z -D /var/lib/pgsql/test/bk_20171024/ -P(压缩率高 -P显示进度)
之后会在/var/lib/pgsql/test/bk_20171024/ 生成db的backup,其中base是$pgdata目录的备份
将备份完的db:/var/lib/pgsql/test/bk_20171024/拷贝到另一台服务器/var/lib/pgsql/bk_20171025
将archive拷贝到另一台服务器的:地址是/var/lib/pgsql/9.2/archive1024
在另一台服务器上: 将原先的data内的目录全部mv到别的路径下
在另一台服务器上:将recovery.conf中的restore_command设置成cp /var/lib/pgsql/9.2/archive1024/%f %p
关于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
相关文章推荐
- postgresql物理备份之pg_basebackup
- 【Postgres】dump数据库备份与还原
- linux 平台下 postgres 使用 (安装 启动 关闭 数据备份 还原)
- Postgres 数据库安装、配置、备份还原及存储过程
- postgres物理备份与恢复
- Postgresql备份与还原命令pg_dump
- pg_basebackup 不备份哪些文件
- PgSql备份pg_dump与还原手记pg_restore(转)
- PostgresXC:从源码编译、安装、配置数据库集群以及用pg_basebackup配置Datanode的热备份
- postgres单机热备---物理备份
- PgSql备份pg_dump与还原手记pg_restore(转)
- postgres 备份所有数据库并还原
- linux 平台下 postgres 使用 (安装 启动 关闭 数据备份 还原)
- PostgreSQL备份之pg_basebackup
- PgSql备份pg_dump与还原手记pg_restore(转)可以直接跳转至最后面的示例进行查看
- PgSql备份pg_dump与还原手记pg_restore(转)
- linux 平台下 postgres 使用 (安装 启动 关闭 数据备份 还原)
- PgSql备份pg_dump与还原手记pg_restore
- PgSql备份pg_dump与还原手记pg_restore(转)
- Postgres 数据库安装、配置、备份还原及存储过程