PPAS上运行pg_dump经过

简介:

目前我有两台机器,

分别已经安装了PPAS9.1,安装后建立了OS系统用户enterprisedb和数据库用户enterprisedb。

机器1:master  192.168.10.88

机器2: slave 192.168.10.99

为了可以在机器1和机器2之间方便进行访问,设置pg_hba.conf如下:

机器1和机器2都如此设置:

复制代码
[root@master ~]# su - enterprisedb
-bash-3.2$ pwd
/opt/PostgresPlus/9.1AS
-bash-3.2$ cd data
-bash-3.2$ cat pg_hba.conf
# PostgreSQL Client Authentication Configuration File
# ===================================================.

......


# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
#local   all             all                                     md5
local    all             all                                    trust
# IPv4 local connections:
#host    all             all             127.0.0.1/32            md5
host    all             all             0.0.0.0/0               trust
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     enterprisedb                                md5
#host    replication     enterprisedb        127.0.0.1/32            md5
#host    replication     enterprisedb        ::1/128                 md5
-bash-3.2$ 
复制代码

然后分别建立数据库:

机器1:

[root@master ~]# su - enterprisedb
-bash-3.2$ pwd
/opt/PostgresPlus/9.1AS
-bash-3.2$ cd bin
-bash-3.2$ ./createdb -d masterdb --owner=enterprisedb

机器2:

[root@slave ~]# su - enterprisedb
-bash-3.2$ pwd
/opt/PostgresPlus/9.1AS
-bash-3.2$ cd bin
-bash-3.2$ ./createdb -d slavedb --owner=enterprisedb

然后,在机器1上准备数据:

复制代码
[root@master ~]# su - enterprisedb
-bash-3.2$ cd bin
-bash-3.2$ ./psql -d masterdb
psql (9.1.2.2)
Type "help" for help.

masterdb=# begin;
BEGIN
masterdb=# create table tab01(id integer);
CREATE TABLE
masterdb=# insert into tab01 values(1);
INSERT 0 1
masterdb=# create table tab02(id integer);
CREATE TABLE
masterdb=# insert into tab02 values(2);
INSERT 0 1
masterdb=# end;
COMMIT
masterdb=# \q
复制代码

然后再在机器1上,建立一个执行中的事务,不提交:

复制代码
-bash-3.2$ ./psql -d masterdb
psql (9.1.2.2)
Type "help" for help.

masterdb=# begin;
BEGIN
masterdb=# create table tab03(id integer);
CREATE TABLE
masterdb=# insert into tab03 values(3);
INSERT 0 1
masterdb=# 
复制代码

然后开始pg_dump 动作:

我从机器2上发起命令:在此把pg_dump的输出,重定向到psql,直接完成restore的任务:

复制代码
[root@slave ~]# su - enterprisedb
-bash-3.2$ cd bin
-bash-3.2$ ./pg_dump -h 192.168.10.88 -s masterdb | ./psql -h 192.168.10.99 slavedb
SET
SET
SET
SET
SET
CREATE EXTENSION
COMMENT
CREATE EXTENSION
COMMENT
CREATE EXTENSION
COMMENT
SET
SET
SET
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
REVOKE
REVOKE
GRANT
GRANT
-bash-3.2$ 
复制代码

在机器2上检验效果:

复制代码
-bash-3.2$ ./psql -d slavedb
psql (9.1.2.2)
Type "help" for help.

slavedb=# \dt
                     List of relations
 Schema |           Name            | Type  |    Owner     
--------+---------------------------+-------+--------------
 public | tab01                     | table | enterprisedb
 public | tab02                     | table | enterprisedb
 sys    | dual                      | table | enterprisedb
 sys    | edb$session_wait_history  | table | enterprisedb
 sys    | edb$session_waits         | table | enterprisedb
 sys    | edb$snap                  | table | enterprisedb
 sys    | edb$stat_all_indexes      | table | enterprisedb
 sys    | edb$stat_all_tables       | table | enterprisedb
 sys    | edb$stat_database         | table | enterprisedb
 sys    | edb$statio_all_indexes    | table | enterprisedb
 sys    | edb$statio_all_tables     | table | enterprisedb
 sys    | edb$system_waits          | table | enterprisedb
 sys    | plsql_profiler_rawdata    | table | enterprisedb
 sys    | plsql_profiler_runs       | table | enterprisedb
 sys    | plsql_profiler_units      | table | enterprisedb
 sys    | product_component_version | table | enterprisedb
(16 rows)

slavedb=# select * from tab01;
 id 
----
(0 rows)

slavedb=# select * from tab02;
 id 
----
(0 rows)

slavedb=# 
复制代码




目录
相关文章
|
3月前
|
SQL 关系型数据库 数据库连接
`pg_dump` 和 `pg_restore`
`pg_dump` 和 `pg_restore`
27 4
|
9月前
|
NoSQL Redis
DUMP
DUMP
48 0
|
10月前
|
监控 关系型数据库 数据库
监控复制:PG_STAT_REPLICATION
监控复制:PG_STAT_REPLICATION
98 0
|
关系型数据库
备份工具pg_dump的使用《postgres》
备份工具pg_dump的使用《postgres》
293 0
|
SQL 安全 关系型数据库
pg_dump
备份PostgreSQL数据库的工具,它甚至可以在数据库正在并发使用时进行完整一致的备份,而不会阻塞其它用户对数据库的访问。该工具生成的转储格式可以分为两种,脚本和归档文件。
161 0
|
SQL 数据库 关系型数据库
pg_dump 详解/使用举例
pg_dump是一个用于备份PostgreSQL数据库的实用工具。即使当前数据库正在使用,也能够生成一致性的备份,且不会阻塞其他用户访问数据库(包括读、写) pg_dump只能备份一个数据库。如果要备份Cluster中数据库共有的全局对象,例如角色和表空间,需要使用pg_dumpall。
11126 0
|
关系型数据库 数据库 PostgreSQL
PG异常无法启动的问题:could not read file "pg_logical/replorigin_checkpoint": Success
问题描述 新安装不久的PostgreSQL数据库,断电后重启,查看日志如下 2019-01-08 08:44:19.989 UTC [7493] LOG: database system was interrupted; last known up at 2018-12-24 10:56:28 UTC 2019-01-08 08:44:19.
3243 0
|
SQL 弹性计算 关系型数据库
为什么pg_basebackup或pg_start_backup好像hang住确没有开始拷贝文件 - checkpoint 的几种调度(checkpoint_completion_target)
标签 PostgreSQL , checkpoint , 调度 , lazy , immediate , pg_start_backup , pg_basebackup 背景 PostgreSQL支持在线全量备份与增量归档备份。在线全量备份实际上就是拷贝文件,增量备份则分为两种,一种是基于BLOCK lsn变化的BLOCK即增量备份,另一种是基于WAL的持续归档文件备份。 全量备份通常
1529 0
|
关系型数据库 数据库 PostgreSQL
Postgresql pg_dump&pg_restore用法
PostgreSQL提供的一个工具pg_dump,逻辑导出数据,生成sql文件或其他格式文件,pg_dump是一个客户端工具,可以远程或本地导出逻辑数据,恢复数据至导出时间点。pg_dump 一次只转储一个数据库, 并且不会转储有关角色或表空间的信息 (因为那些是群集范围而不是每个数据库)。
11238 0
|
存储 索引
pg_dump 增强
主要介绍pg_dump 的一些参数
1657 0