PostgreSQL central stream replication unlinked use (scp, cp, pg_basebackup ...)

前面介绍了集中式PITR备份的架构.

http://blog.163.com/digoal@126/blog/static/163877040201451711013770/

本文介绍一下不使用虚拟机的情况下, 稍微细节的东西, 即创建基础数据时规避文件夹冲突问题.

创建基础备份的方法比较多, 例如scp, cp或者pg_basebackup , 下面分别介绍一下.

1. 使用scp

     -r      Recursively copy entire directories.  Note that scp follows symbolic links encountered in the tree

             traversal.

格式

scp -r $PGDATA $user@$dest_ip:$dir

用法

psql

# select pg_startup_backup(now()::text);

scp -r $PGDATA $user@$dest_ip:$dir

# select pg_stop_backup();

已经将表空间等在$PGDATA下使用软链接的都去除软链接了.

删除隐藏的sock文件.

后面的事情就是配置流复制了.

2. 使用cp

       -R, -r, --recursive

              copy directories recursively

       -L, --dereference

              always follow symbolic links in SOURCE

cp -rL $PGDATA/* $dir/*

软链接将被去除, 直接使用本地文件夹替代.

删除隐藏的sock文件.

后面的事情就是配置流复制了.

3. 使用pg_basebackup

因为直接使用pg_basebackup的plain格式的话, 会创建表空间对应的目录, 所以不建议直接使用.

建议使用tar模式, 这种模式的话会创建base.tar以及表空间.tar.

到目的地解压, 分类即可.

例如 : 

mkdir ~/testbase

chmod 700 ~/testbase

cd ~/testbase

pg_basebackup -D ~/testbase -F t -x -h 127.0.0.1

pg93@db-172-16-3-150-> pwd

/home/pg93/testbase

pg93@db-172-16-3-150-> ll

total 3.1G

-rw-rw-r-- 1 pg93 pg93 483K Jun 17 13:44 20270.tar

-rw-rw-r-- 1 pg93 pg93 3.1G Jun 17 13:44 base.tar

将base解压到当前目录

pg93@db-172-16-3-150-> tar -xvf base.tar

删除表空间软链接

pg93@db-172-16-3-150-> cd pg_tblspc/

pg93@db-172-16-3-150-> ll

total 0

lrwxrwxrwx 1 pg93 pg93 19 Jun 17 13:45 20270 -> /ssd4/pg93/tbs_test

pg93@db-172-16-3-150-> rm -rf 20270

pg93@db-172-16-3-150-> mkdir 20270

pg93@db-172-16-3-150-> chmod 700 20270

pg93@db-172-16-3-150-> cd 20270/

pg93@db-172-16-3-150-> tar -xvf ../../20270.tar 

PG_9.3_201306121/

PG_9.3_201306121/16393/

PG_9.3_201306121/16393/20271

PG_9.3_201306121/16393/20271_fsm

pg93@db-172-16-3-150-> ll

total 4.0K

drwx------ 3 pg93 pg93 4.0K Jun 17 11:53 PG_9.3_201306121

删除tar文件

pg93@db-172-16-3-150-> rm -f ~/testbase/20270.tar ~/testbase/base.tar

删除隐藏的sock文件.

后面的事情就是配置流复制了.

如果pg_basebackup可以增加一个选项, follow link的话 , (像cp和scp), 用起来就更方便了.

[参考]
1. http://blog.163.com/digoal@126/blog/static/163877040201451711013770/

时间: 2024-09-19 14:31:33

PostgreSQL central stream replication unlinked use (scp, cp, pg_basebackup ...)的相关文章

PostgreSQL HOT STANDBY using Stream replication

案例解析二.PostgreSQL HOT STANDBY by stream replication 测试:一.准备硬件1. 主节点硬件配置DISK : 146GB*6MEM : 14GBCPU : 2.83GHz*82. standby节点硬件配置DISK : 146GB*4MEM : 8GBCPU : 2.0GHz*8 二.准备环境1. 系统Red Hat Enterprise Linux Server release 5.5 (Tikanga) x642. 时钟同步8 * * * * /u

pgpool find primary node in master/slave stream replication mode

今天一位群里的兄弟遇到的pgpool的问题, pgpool的后端是两个数据库, 分别是master和standby. (用stream replication搭建好的两个数据库). pgpool 和主库放在同一个服务器上. pgpool 的几个关键配置摘录一下 : listen_addresses = '*' port = 9999 socket_dir = '/tmp' pcp_timeout = 1000 pcp_port = 9898 pcp_socket_dir = '/tmp' bac

Oracle Stream Replication技术简介

Stream 是Oracle 的消息队列(也叫Oracle Advanced Queue)技术的一种扩展应用. Oracle 的消息队列是通过发布/订阅的方式来解决事件管理.流复制(Stream replication)只是基于它的一个数据共享技术,也可以被用作一个可灵活定制的高可用性方案. 它可以实现两个数据库之间数据库级,schema级,Table级的数据同步,并且这种同步可以是双向的. Oracle Stream也是通过数据冗余来提高可用性,这一点和Data Guard 类型. Oracl

PostgreSQL client's startup packet different between logical and normal stream replication

我们知道PostgreSQL 9.4新增了逻辑流复制的功能, 在客户端连接数据库服务器时, 通过发送给数据库的startup packet来判断是否要数据库启动wal sender, 并且如何来识别是逻辑复制还是普通的流复制. 数据库处理启动包的代码9.3和9.4的区别 :  PostgreSQL 9.4的 ProcessStartupPacket@src/backend/postmaster/postmaster.c /* * Read a client's startup packet an

PostgreSQL 9.4 BDR(Bi-Directional Replication), LLSR(Logical Log Stream Replication)

非常感谢2ND团队的辛勤付出, PostgreSQL 9.4的逻辑流复制模块BDR已经小有所成, 本文将演示一下bdr的使用. bi-directional replication顾名思义, 就是互相复制的意思(也称为逻辑流复制), 同样需要利用WAL, 目前为单进程, 以后可能会改进到多进程, 不过即使单进程, 也比目前的其他第三方复制快很多(如slony-I, londiste3).  目前BDR逻辑流复制的最小粒度为数据库级别, 而PG9.0以来的物理流复制是整个集群级别的. 注意目前BD

PostgreSQL fail-back able stream replication configuration

几天前测试过一个PostgreSQL 的fail-back补丁, 发现fail-back未成功,  http://blog.163.com/digoal@126/blog/static/16387704020137551911457/ 这个bug实际上是另一个补丁引起的. http://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=91c3613d3748d881706c3e60d8221ea92833ac1a Fix assert

PostgreSQL 9.3 beta2 stream replication primary standby switchover bug?

[更新] 已有patch. 请参见. PostgreSQL 9.1,9.2,9.3 clean switchover Primary and Standby Patch.  http://blog.163.com/digoal@126/blog/static/16387704020136197354054/ 打补丁前的测试 :  PostgreSQL 9.3 beta2 无法完成正常的主备角色切换. Primary : psql checkpont; pg_controldata  pg_con

PostgreSQL 数据库初体验

  10月15日,由山东华鲁科技咨询顾问高强老师在"DBA+济南群"进行了一次关于PostgreSQL数据库初体验的线上主题分享.小编特别整理出其中精华内容,供大家学习交流.   嘉宾简介    高强,"DBA+济南群"联合发起人.现就职于山东华鲁科技发展股份有限公司.擅长Oracle.AIX.Linux.PostgreSQL和DB2等产品的实施.运维和故障处理.曾是一名存储工程师,负责实施存储.双机和备份等产品,在接触到数据库产品后,一发不可收拾的投入了DBA的浩

PostgreSQL HOT STANDBY using log shipping

PostgreSQL HOT STANDBY by log shipping 测试:一.准备硬件1. 主节点硬件配置DISK : 146GB*6MEM : 14GBCPU : 2.83GHz*82. standby节点硬件配置DISK : 146GB*4MEM : 8GBCPU : 2.0GHz*8 二.准备环境1. 系统Red Hat Enterprise Linux Server release 5.5 (Tikanga) x642. 时钟同步8 * * * * /usr/sbin/ntpd