postgres_fdw的使用案例

来源:互联网 发布:新电脑怎么连接网络 编辑:程序博客网 时间:2024/05/22 03:10
远端数据库创建测试表:
postgres=# select version();
                                                  version                                                  
-----------------------------------------------------------------------------------------------------------
 PostgreSQL 8.1.22 on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
(1 row)
postgres=# show port;
 port 
------
 5432
(1 row)


postgres=# select * from test;
 id 
----
  1
  2
(2 rows)
修改远端数据库pg_hba.conf,添加如下行:
host    all         all         192.168.6.10/24       md5
修改远端数据库postgresql.conf中参数:listen_addresses = '*' 
修改后重启数据库


************************************************************************************
本地数据库执行创建fdw过程:
highgo=# select version();
              version               
------------------------------------
 HighGo Database 3.1.4 Linux 64-bit
(1 row)


highgo=# select kernel_version();
                                                 kernel_version                               
                  
----------------------------------------------------------------------------------------------
 PostgreSQL 9.4.11 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 
4.4.7-17), 64-bit
(1 row)


highgo=# show port;
 port 
------
 5866
(1 row)
highgo=# create extension postgres_fdw;
CREATE EXTENSION
highgo=# 
highgo=# create server postgres_fdw_server foreign data wrapper postgres_fdw options (host '192.168.6.10', dbname 'postgres', port '5432');
CREATE SERVER
highgo=# 
highgo=# create user mapping for highgo server postgres_fdw_server options (user 'postgres',password 'postgres');
CREATE USER MAPPING
                                                ^
highgo=# create foreign table test01 (id int) server postgres_fdw_server options (table_name 'test');
CREATE FOREIGN TABLE
highgo=# 
highgo=# 
highgo=# select * from test01;
 id 
----
  1
  2
(2 rows)


**************************************************
验证:
在远端数据库插入数据:
postgres=# insert into test values (3); 
INSERT 0 1
postgres=# select * from test;
 id 
----
  1
  2
  3
(3 rows)




在本地数据库查询:
highgo=# select * from test01;
 id 
----
  1
  2
  3
(3 rows)
原创粉丝点击