PostgreSQL postgres_fdw使用
来源:互联网 发布:淘宝老兵蜜蜡原石假货 编辑:程序博客网 时间:2024/06/07 10:27
1. 简介
postgres_fdw扩展可以以外部表的方式在本地访问远程PG库里面的表。
2. 使用postgres_fdw
测试环境是两个虚拟机。
- 源库: 192.168.17.11 postgres
- 目标库: 192.168.17.35 postgres
2.1 添加扩展
postgres=# create extension postgres_fdw ;CREATE EXTENSION
\dx查看当前库添加的所有扩展
postgres=# \dx List of installed extensions Name | Version | Schema | Description --------------+---------+------------+---------------------------------------------------- file_fdw | 1.0 | public | foreign-data wrapper for flat file access hstore | 1.2 | public | data type for storing sets of (key, value) pairs plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language postgres_fdw | 1.0 | public | foreign-data wrapper for remote PostgreSQL servers(4 rows)
2.2 创建server
postgres=# create server server_pgsql_fdw foreign data wrapper postgres_fdw options(host '192.168.17.35',port '5432',dbname 'postgres');CREATE SERVER
注意: 创建server 需要超级用户。
2.3 create user mapping
postgres=# create user mapping for public server server_pgsql_fdw options(user 'postgres',password '123456'); CREATE USER MAPPING
注意: create user mapping是将server与本地的用户连接起来。
public表示当前库的没有明确指定user mapping 的所有用户。
2.4 创建外部表
postgres=# create foreign table foreign_goods(id integer,name character varying)server server_pgsql_fdw options(schema_name 'public',table_name 'goods');CREATE FOREIGN TABLE
2.5 查看数据
postgres=# select * from foreign_goods; id | name ----+------ 1 | aa 2 | bb 3 | cc(3 rows)postgres=# select * from foreign_goods where id=1; id | name ----+------ 1 | aa(1 row)
2.6 执行计划
postgres=# explain (analyze,verbose) select * from foreign_goods where id=1; QUERY PLAN ----------------------------------------------------------------------------------------------------------------------- Foreign Scan on public.foreign_goods (cost=100.00..127.20 rows=7 width=36) (actual time=1.256..1.257 rows=1 loops=1) Output: id, name Remote SQL: SELECT id, name FROM public.goods WHERE ((id = 1)) Total runtime: 2.614 ms(4 rows)
3. 问题
3.1 查看数据
postgres=# select * from foreign_goods ;ERROR: could not connect to server "server_pgsql_fdw"DETAIL: could not connect to server: No route to host Is the server running on host "192.168.17.35" and accepting TCP/IP connections on port 5432?
原因可能是:
- 目标库的数据库是否启动
- ip port是否配置错误。
- 目标库的listen_addresses是否是 listen_addresses=’*’
参考:
http://francs3.blog.163.com/blog/static/4057672720125711112496/
http://interdbconnect.sourceforge.net/pgsql_fdw/pgsql_fdw-en.html
http://my.oschina.net/Kenyon/blog/214953?p=1
0 0
- PostgreSQL postgres_fdw使用
- PostgreSQL的postgres_fdw跨库使用
- postgresql 中的postgres_fdw
- PostgreSQL数据库dblink和postgres_fdw扩展使用比较
- posgresql postgres_fdw使用
- postgres_fdw 使用示例
- postgres_fdw的使用案例
- postgres_fdw
- postgres_fdw的安装和使用
- PostgreSQL使用
- postgresql使用
- PostgreSQL使用
- postgresql 使用
- postgreSQL 使用
- postgres_fdw 模块原理与应用
- Postgresql 游标使用
- PostgreSQL使用注意事项
- postgresql的使用
- Step into Scala - 24 - Option
- oracle表不能DDL和存储过程不能创建处理方法
- Python学习笔记(七)
- LeetCode--Minimum Window Substring(最小匹配子串)
- Jboss Server Error:Server already running on localhost
- PostgreSQL postgres_fdw使用
- Java异常机制
- 下拉选框选择
- Contiki 学习笔记:process_run 解析
- 四轴飞行器,炸鸡两次终于起飞了
- C# 数据库操作小结
- shell 脚本笔记
- Step into Redis- 07 - 发布者-订阅者
- 同域jQuery(跨)iframe操作DOM