最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

postgresql 利用fdw來實(shí)現(xiàn)不同數(shù)據(jù)庫之間數(shù)據(jù)互通(推薦)

 更新時(shí)間:2021年02月08日 15:21:39   作者:yang_z_1  
這篇文章主要介紹了postgresql 利用fdw來實(shí)現(xiàn)不同數(shù)據(jù)庫之間數(shù)據(jù)互通,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前言
最近在工作的時(shí)候 需要用數(shù)據(jù)庫A中的表a1來更新插入數(shù)據(jù)庫B中的b2表 由于數(shù)據(jù)庫都是postgres數(shù)據(jù)庫
我想到了 postgres_fdw插件

準(zhǔn)備工作
首先需要保證這兩個(gè)數(shù)據(jù)庫之間網(wǎng) 是通的

數(shù)據(jù)庫A 名字 AA ip 10.10.2.100(虛構(gòu))端口 5432 用戶名 postgres
數(shù)據(jù)庫B 名字 BB ip 100.20.0.120(虛構(gòu))端口 6688 用戶名 postgres

一 利用fdw創(chuàng)建2個(gè)數(shù)據(jù)庫之間的連接

1.1 安裝 postgres_fdw插件

Create extension "postgres_fdw";

 

在這里插入圖片描述

1.2 創(chuàng)建外部連接

無論你實(shí)在A數(shù)據(jù)庫中創(chuàng)建B數(shù)據(jù)庫的連接 ,還是在B數(shù)據(jù)庫中創(chuàng)建A數(shù)據(jù)庫的連接 從本質(zhì)上是一樣的,都是為了打通2個(gè)數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)互通
1.2.1 在A數(shù)據(jù)庫創(chuàng)建b數(shù)據(jù)庫的連接

 --創(chuàng)建外部服務(wù)器
-- 括號(hào)里的三個(gè)參數(shù),分別是數(shù)據(jù)庫b的ip、端口和數(shù)據(jù)庫名稱
CREATE SERVER lianjiebb FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host '100.20.0.120', port '6688', dbname 'BB');
--創(chuàng)建用戶映射·
-- 括號(hào)里的兩個(gè)參數(shù),分別是數(shù)據(jù)庫b數(shù)據(jù)庫的用戶名、密碼
create user mapping for postgres server lianjiebb options(user 'postgres', password '數(shù)據(jù)庫密碼');

1.2.2 在b數(shù)據(jù)庫創(chuàng)建a數(shù)據(jù)庫的連接

--創(chuàng)建外部服務(wù)器
-- 括號(hào)里的三個(gè)參數(shù),分別是數(shù)據(jù)庫a的ip、端口和數(shù)據(jù)庫名稱
CREATE SERVER lianjieAA FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host '10.10.2.100', port '5432', dbname 'AA');
--創(chuàng)建用戶映射·
-- 括號(hào)里的兩個(gè)參數(shù),分別是數(shù)據(jù)庫a數(shù)據(jù)庫的用戶名、密碼
create user mapping for postgres server lianjieAA options(user 'postgres', password '數(shù)據(jù)庫密碼');

1.2.3 查詢 外部鏈接

select * from pg_foreign_server;

1.3 創(chuàng)建外部表

在A數(shù)據(jù)庫創(chuàng)建b1表的外部鏈接

CREATE FOREIGN TABLE tb_fdw_b1
 (
 collect_time timestamp(6),
 id varchar(36) ,
 列名1 numeric(12,2) ,
 列名2 int4 ,
列名3 timestamp(6)
 ) --跟b1 一模一樣的表結(jié)構(gòu)就行
 server lianjiebb --你創(chuàng)建的外部鏈接名字
 options (table_name '時(shí)序庫的表名');

查看外部表是否有數(shù),有數(shù)就表示ok了

select * from tb_fdw_b1;

在數(shù)據(jù)庫b上創(chuàng)建a1表的外部鏈接也是一樣的

二 插入數(shù)據(jù)

2.1 往外部表tb_fdw_b1 插入表a1的數(shù)據(jù)

因?yàn)?倆個(gè)表都是一樣的表結(jié)構(gòu),可以直接插入

INSERT into tb_fdw_b1 SELECT * from a1;

因?yàn)橥獠勘硎菍?shí)時(shí)的 在數(shù)據(jù)庫a中更改了 外部表tb_fdw_b1 的數(shù)據(jù) ,數(shù)據(jù)庫B中的b1表中的數(shù)據(jù)也隨之改變 達(dá)成了我們一開始的目的

更新 UPDATE 刪除DELETE 也是一樣的 在這里就不說了

三 利用定時(shí)任務(wù)來達(dá)成自動(dòng)同步

每天都需要執(zhí)行顯然不符合我們的“懶人”形象 ,所以用定時(shí)任務(wù)來實(shí)現(xiàn)明天自動(dòng)同步是必不可少的 我讓他每天早上8點(diǎn)自動(dòng)執(zhí)行

3.1 利用 pgadmin實(shí)現(xiàn)定時(shí)同步(截圖)

3.1.1

在這里插入圖片描述

3.1.2

在這里插入圖片描述

3.1.3

在這里插入圖片描述

3.1.4

在這里插入圖片描述

3.2 直接上語句實(shí)現(xiàn)定時(shí)同步

DO $$
DECLARE
 jid integer;
 scid integer;
BEGIN
-- Creating a new job
INSERT INTO pgagent.pga_job(
 jobjclid, jobname, jobdesc, jobhostagent, jobenabled
) VALUES (
 1::integer, '更新表b1'::text, ''::text, ''::text, true
) RETURNING jobid INTO jid;

-- Steps
-- Inserting a step (jobid: NULL)
INSERT INTO pgagent.pga_jobstep (
 jstjobid, jstname, jstenabled, jstkind,
 jstconnstr, jstdbname, jstonerror,
 jstcode, jstdesc
) VALUES (
 jid, '更新表b1'::text, true, 's'::character(1),
 ''::text, '數(shù)據(jù)庫A'::name, 'f'::character(1),
 ' INSERT into tb_fdw_b1 SELECT * from a1;'::text, ''::text
) ;

-- Schedules
-- Inserting a schedule
INSERT INTO pgagent.pga_schedule(
 jscjobid, jscname, jscdesc, jscenabled,
 jscstart, jscend, jscminutes, jschours, jscweekdays, jscmonthdays, jscmonths
) VALUES (
 jid, '更新表b1'::text, ''::text, true,
 '2021-02-07 10:24:50 +08:00'::timestamp with time zone, '2100-02-07 10:24:52 +08:00'::timestamp with time zone,
 -- Minutes
 ARRAY[true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false]::boolean[],
 -- Hours
 ARRAY[false,false,false,false,false,false,false,false,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false]::boolean[],
 -- Week days
 ARRAY[false,false,false,false,false,false,false]::boolean[],
 -- Month days
 ARRAY[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false]::boolean[],
 -- Months
 ARRAY[false,false,false,false,false,false,false,false,false,false,false,false]::boolean[]
) RETURNING jscid INTO scid;
END
$$;

到此這篇關(guān)于postgresql 利用fdw來實(shí)現(xiàn)不同數(shù)據(jù)庫之間數(shù)據(jù)互通的文章就介紹到這了,更多相關(guān)postgresql實(shí)現(xiàn)數(shù)據(jù)互通內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PostgreSQL用戶登錄失敗自動(dòng)鎖定的處理方案

    PostgreSQL用戶登錄失敗自動(dòng)鎖定的處理方案

    這篇文章主要介紹了PostgreSQL用戶登錄失敗自動(dòng)鎖定的解決辦法,本文給大家分享解決方案,通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • postgresql重置序列起始值的操作

    postgresql重置序列起始值的操作

    這篇文章主要介紹了postgresql重置序列起始值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL數(shù)據(jù)庫備份與恢復(fù)的四種辦法

    PostgreSQL數(shù)據(jù)庫備份與恢復(fù)的四種辦法

    在數(shù)據(jù)為王的時(shí)代,數(shù)據(jù)庫中存儲(chǔ)的信息堪稱企業(yè)的生命線,而PostgreSQL作為一款廣泛應(yīng)用的開源數(shù)據(jù)庫,學(xué)會(huì)如何妥善進(jìn)行備份與恢復(fù)操作,是每個(gè)開發(fā)者與運(yùn)維人員必備的技能,今天,咱們就深入探究一下PostgreSQL相關(guān)的備份恢復(fù)策略,并附上豐富的代碼示例
    2025-01-01
  • navicat連接postgresql、人大金倉等數(shù)據(jù)庫報(bào)錯(cuò)解決辦法

    navicat連接postgresql、人大金倉等數(shù)據(jù)庫報(bào)錯(cuò)解決辦法

    在使用Navicat操作數(shù)據(jù)庫時(shí),遇到數(shù)據(jù)報(bào)錯(cuò)是一個(gè)常見的問題,這類問題可能涉及多個(gè)方面,下面這篇文章主要給大家介紹了關(guān)于navicat連接postgresql、人大金倉等數(shù)據(jù)庫報(bào)錯(cuò)的解決辦法,需要的朋友可以參考下
    2024-08-08
  • Postgresql 檢查數(shù)據(jù)庫主從復(fù)制進(jìn)度的操作

    Postgresql 檢查數(shù)據(jù)庫主從復(fù)制進(jìn)度的操作

    這篇文章主要介紹了Postgresql 檢查數(shù)據(jù)庫主從復(fù)制進(jìn)度的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • PostgreSQL查看帶有綁定變量SQL的通用方法詳解

    PostgreSQL查看帶有綁定變量SQL的通用方法詳解

    今天我們要探討的是 custom執(zhí)行計(jì)劃和通用執(zhí)行計(jì)劃。這一技術(shù)在 Oracle中被稱為綁定變量窺視。但 Postgresql中并沒有這樣的定義,更嚴(yán)格地說,Postgresql叫做custom執(zhí)行計(jì)劃和通用執(zhí)行計(jì)劃
    2022-09-09
  • postgresql 實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入導(dǎo)出

    postgresql 實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入導(dǎo)出

    這篇文章主要介紹了postgresql 實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入導(dǎo)出,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • PostgreSQL刪除更新優(yōu)化操作

    PostgreSQL刪除更新優(yōu)化操作

    這篇文章主要介紹了PostgreSQL刪除更新優(yōu)化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 在PostgreSQL中使用ltree處理層次結(jié)構(gòu)數(shù)據(jù)的方法

    在PostgreSQL中使用ltree處理層次結(jié)構(gòu)數(shù)據(jù)的方法

    這篇文章主要介紹了在PostgreSQL中使用ltree處理層次結(jié)構(gòu)數(shù)據(jù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Docker安裝PostgreSQL數(shù)據(jù)庫的詳細(xì)步驟

    Docker安裝PostgreSQL數(shù)據(jù)庫的詳細(xì)步驟

    這篇文章主要介紹了Docker安裝PostgreSQL數(shù)據(jù)庫的詳細(xì)步驟,包括啟動(dòng)PostgreSQL容器、獲取容器的IP地址、啟動(dòng)一個(gè)新的CentOS容器、在CentOS容器中安裝PostgreSQL客戶端、通過psql客戶端連接到PostgreSQL容器和在PostgreSQL中執(zhí)行SQL操作等內(nèi)容,需要的朋友可以參考下
    2024-10-10

最新評(píng)論

汉阴县| 宣威市| 刚察县| 罗江县| 平和县| 黑龙江省| 泗阳县| 永嘉县| 赞皇县| 隆回县| 玉树县| 梁平县| 丹巴县| 南木林县| 金溪县| 襄垣县| 通城县| 丹巴县| 应用必备| 鄂托克前旗| 邵武市| 迁安市| 永城市| 富顺县| 三门县| 天柱县| 阿坝| 闽清县| 永平县| 宁强县| 革吉县| 桐城市| 休宁县| 贵溪市| 尚志市| 富裕县| 大英县| 通化县| 紫云| 翁牛特旗| 巴中市|