Postgresql 跨库同步表及postgres_fdw的用法说明

 更新时间:2021年01月06日 10:30:35   作者:BigQiu66  
这篇文章主要介绍了Postgresql 跨库同步表及postgres_fdw的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

postgres_fdw模块

PostgreSQL 9.3 add postgres_fdw extension for accessing remote tables 

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;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • PostgreSQL存储过程循环调用方式

    PostgreSQL存储过程循环调用方式

    这篇文章主要介绍了PostgreSQL存储过程循环调用方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • postgresql使用filter进行多维度聚合的解决方法

    postgresql使用filter进行多维度聚合的解决方法

    这篇文章给大家介绍postgresql使用filter进行多维度聚合的解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-07-07
  • postgresql关于like%xxx%的优化操作

    postgresql关于like%xxx%的优化操作

    这篇文章主要介绍了postgresql关于like%xxx%的优化操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL进行数据导入和导出的操作代码

    PostgreSQL进行数据导入和导出的操作代码

    在数据库管理中,数据的导入和导出是非常常见的操作,特别是在 PostgreSQL 中,提供了多种工具和方法来实现数据的有效管理,本文将详细介绍在 PostgreSQL 中如何进行数据导入和导出,并给出具体的命令及示例,需要的朋友可以参考下
    2024-10-10
  • PostgreSql日期类型处理详细实例

    PostgreSql日期类型处理详细实例

    PostgreSQL提供了大量用于获取系统当前日期和时间的函数,例如 current_date、current_time、current_timestamp、clock_timestamp()等,这篇文章主要给大家介绍了关于PostgreSql日期类型处理的相关资料,需要的朋友可以参考下
    2023-05-05
  • PostgreSQL 实现子查询返回多行的案例

    PostgreSQL 实现子查询返回多行的案例

    这篇文章主要介绍了PostgreSQL 实现子查询返回多行的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 对PostgreSQL中的慢查询进行分析和优化的操作指南

    对PostgreSQL中的慢查询进行分析和优化的操作指南

    在数据库的世界里,慢查询就像是路上的绊脚石,让数据处理的道路变得崎岖不平,想象一下,你正在高速公路上飞驰,突然遇到一堆减速带,那感觉肯定糟透了,本文介绍了怎样对 PostgreSQL 中的慢查询进行分析和优化,需要的朋友可以参考下
    2024-07-07
  • PostgreSQL 数据库性能提升的几个方面

    PostgreSQL 数据库性能提升的几个方面

    PostgreSQL提供了一些帮助提升性能的功能。主要有一些几个方面。
    2009-09-09
  • 浅谈postgresql数据库varchar、char、text的比较

    浅谈postgresql数据库varchar、char、text的比较

    这篇文章主要介绍了浅谈postgresql数据库varchar、char、text的比较,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • PotgreSQL 基于时间点恢复过程

    PotgreSQL 基于时间点恢复过程

    本篇文章介绍 PostgreSQL 基于时间点恢复(point-in-time-recover)需要的条件及恢复过程,属于操作说明,对PotgreSQL 时间点恢复相关知识感兴趣的朋友跟随小编一起看看吧
    2023-08-08

最新评论