Postgresql 跨库同步表及postgres_fdw的用法说明
PostgreSQL 9.3新增了一个postgres_fdw模块, 已经整合在源码包中. 用于创建postgres外部表.
注:db_des为目标库,developer_month_orders_data为表名。意思就是从查询库a中建立同名FOREIGN关联表,
可以查询目标库中的数据。以下命令在需要建立的关联库中执行。
目标库中的表必须存在,也就是先建立好,否则从a库,查询会报找不到表错误
阿里云RDS,数据库:PostgreSQL 9.4,跨实例数据库不支持postgres_fdw建立外部表,坑啊!
阿里云技术回复RDS需要10.0版本的 postgresql才支持跨实例。不然只能同一个实例下的不同数据库之间的外部表。
安装 postgres_fdw 插件
CREATE EXTENSION postgres_fdw;
创建远程服务
CREATE SERVER remote_server FOREIGN DATA WRAPPER postgres_fdw;
查看远程服务
select * from pg_foreign_server ;
修改远程服务
alter server remote_server options (add hostaddr 11.216.10.215 ,
add port 5432 , add dbname db_des );
SERVER赋权
grant usage on foreign server remote_server to postgres;
在本地数据库中创建user mapping
CREATE USER MAPPING FOR postgres server remote_server options (user postgres , password xxxxx );
同样创建枚举
CREATE TYPE db_enum AS ENUM ( postgres , sqlserver , mysql );
查看枚举类型的oid
select oid from pg_type where typname= db_enum
创建外部表developer_month_orders_data
CREATE FOREIGN TABLE developer_month_orders_data(
id integer not null,
developer_user_id integer,
package_id integer,
order_month date,
create_datetime timestamp
) SERVER remote_server options (schema_name public ,table_name developer_month_orders_data );
查看外部表
select * from developer_month_orders_data;
ddl维护操作:
drop user mapping for postgres server server_remote ;
drop server server_remote;
drop extension postgres_fdw ;
drop foreign table test1;
补充:postgresql postgres_fdw 跨库查询
1 安装扩展
create extension postgres_fdw;
2 本地创建server并查看 该server作用是在本地配置一个连接远程的信息,下面的配置是要连接到远程DB名称是postgres数据库
create server server_remote_rudy_01 foreign data wrapper postgres_fdw options(host ‘192.168.11.44 ,port ‘5432 ,dbname ‘vsphere_info );
查询:
select * from pg_foreign_server ;**
3 创建用户匹配信息并查看,在本地
for后面的postgres是本地登录执行的用户名,option里存储的是远程的用户密码
create user mapping for postgres server server_remote_rudy_01 options(user ‘vsphere ,password ‘viadmin );
4 本地创建外部表,指定server
CREATE FOREIGN TABLE v1_cost(sample_time TIMESTAMP,datacenter_id int4,host_id int4 ,cost NUMERIC) server server_remote_rudy_01 options (schema_name ‘public ,table_name ‘vi_cost );
5 –导入指定的表,也可以不导入指定的表,也可以导入整个schema下面的表(可有可无的一步)
IMPORT FOREIGN SCHEMA public FROM SERVER server_remote_rudy_01 INTO public;
IMPORT FOREIGN SCHEMA public limit to(t1) FROM SERVER server_remote_rudy_01 INTO public;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 Postgresql 跨库同步表及postgres_fdw的用法说明
相关文章
- 理论:第三章:索引使用的限制条件,sql优化有哪些,数据同步问题(缓存和数据库),缓存优化
- 11. MGR技术架构及数据同步、认证机制 | 深入浅出MGR
- redis-shake同步redis数据的实现方法
- java线程同步方法详解编程语言
- 实现高效的Redis数据同步方案(redis数据同步)
- Postgresql:开启你的数据之旅(进入postgresql)
- PostgreSQL数据库同步实践(postgresql同步)
- 极速SQL Server数据库同步工具抢先体验!(sqlserver数据库同步工具)
- 数据库使用PostgreSQL实现分布式数据库构建(postgresql分布式)
- MySQL延迟复制:实现数据集群间高效同步(mysql延时复制)
- 安装及使用PostgreSQL数据库安装与应用指南(postgresql数据库)
- 微软推出Microsoft Edge for Linux新版本 终于支持同步书签和密码等数据
- 使用PostgreSQL精通数据库管理(postgresql教程)
- MySQL同步策略改善延迟问题(mysql同步延迟)
- 同步Linux系统:重新定义软件协同(linux同步软件)
- 中跳出跳出PostgreSQL循环的实践方法(postgresql循环)
- 查看Postgresql版本:一步一步指南(查看postgresql版本)
- 快速安全!PostgreSQL下载,数据库管理必备!(postgresql下载)
- PostgreSQL实现双机热备的优秀之处(postgresql双机热备)
- 处理 mysql 内存表的同步处理技术(mysql内存表同步)
- 如何在PostgreSQL中创建新用户(postgresql创建用户)
- Linux下的授时服务:实现更准确的时间同步(linux授时服务)
- Postgresql快速入门指南(postgresql入门)
- Postgresql安装之路:简单但又重要的指南(postgresql安装教程)
- 突破网段界限Redis实现跨网段同步(redis跨网段同步)
- AJAX下的请求方式以及同步异步的区别小结
- mysql主从同步快速设置方法
- SQLServer2005实现数据库同步备份过程-结果-分析
- Centosrsync文件同步配置步骤分享