記一次 Centos7 PostgreSql 數據庫使用FDW擴展

一、數據庫搭建

1、yum 指定目錄安裝

https://blog.csdn.net/llwy1428/article/details/105143053

2、yum 直接安裝

https://blog.csdn.net/llwy1428/article/details/102486414

3、編譯安裝

https://blog.csdn.net/llwy1428/article/details/95444151

4、PostgreSql 基本操作

https://blog.csdn.net/llwy1428/article/details/102598732

5、PostgreSql 數據庫安裝擴展

https://blog.csdn.net/llwy1428/article/details/106291669

二、安裝 FDW 擴展

1、切換用戶

[root@localhost ~]# su - postgres
-bash-4.2$ psql

2、創建數據庫   dbtest_a(數據源)、dbtest_b (目標數據庫)

postgres=# create database dbtest_a owner postgres;
postgres=# create database dbtest_b owner postgres;

3、列出已創建的數據庫

postgres=# \l

4、進入數據庫 dbtest_a (數據源)

postgres=# \c dbtest_a
You are now connected to database "dbtest_a" as user "postgres".
dbtest_a=# CREATE SCHEMA datafrom;
CREATE SCHEMA

5、查看該數據庫下所有 SCHEMA

dbtest_a=# \dn

6、在 SCHEMA  datafrom 下創建兩張表

CREATE TABLE "datafrom"."user" (
  "id" varchar(20) COLLATE "pg_catalog"."default" NOT NULL,
  "name" varchar(50) COLLATE "pg_catalog"."default",
  CONSTRAINT "user_pkey" PRIMARY KEY ("id")
)
;

ALTER TABLE "datafrom"."user" 
  OWNER TO "postgres";
CREATE TABLE "datafrom"."employee" (
  "id" varchar(20) COLLATE "pg_catalog"."default" NOT NULL,
  "name" varchar(50) COLLATE "pg_catalog"."default",
	"age" varchar(2) COLLATE "pg_catalog"."default",
  CONSTRAINT "employee_pkey" PRIMARY KEY ("id")
)
;

ALTER TABLE "datafrom"."employee" 
  OWNER TO "postgres";

7、查看已創建的表

dbtest_a=# select * from pg_tables where schemaname = 'datafrom';

8、分別在表中插入數據

INSERT INTO "datafrom"."user"("id", "name") VALUES ('1', 'System');
INSERT INTO "datafrom"."employee"("id", "name", "age") VALUES ('1', '皮迪克', '3');

9、進入數據庫 dbtest_b (目標數據庫),並創建 SCHEMA  datato

postgres=# \c dbtest_b
You are now connected to database "dbtest_b" as user "postgres".
dbtest_b=# CREATE SCHEMA datato;
CREATE SCHEMA

10、查看已創建的 SCHEMA  

11、在數據庫 dbtest_b(目標數據庫) 安裝 FDW 擴展

dbtest_b=# CREATE EXTENSION "postgres_fdw";
CREATE EXTENSION

12、在目標數據庫 dbtest_b 中,給你現在登陸的賬號賦予權限

dbtest_b=# grant usage on foreign data wrapper postgres_fdw to postgres;
GRANT

13、跟來源數據庫 dbtest_a  建立連接

dbtest_b=# CREATE SERVER dbfromserver FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'localhost', port '5432', dbname 'dbtest_a');
CREATE SERVER

說明:“dbfromserver ”是我給來源數據庫服務起的名字

14、給現在你登陸的用戶創建來源數據庫 dbtest_a 關聯; options相當於給與系統後門

dbtest_b=# create user mapping for postgres server dbfromserver options(user 'postgres',password '123456');
CREATE USER MAPPING

說明:“dbfromserver ”是我給來源數據庫服務起的名字;“123456” 是數據源數據庫的密碼。

15、在來源數據庫下schema 導入目標數據庫下的schema

dbtest_b=# import foreign schema "datafrom" from server dbfromserver into "datato";
IMPORT FOREIGN SCHEMA

16、選擇 SCHEMA datato 查看其下的所有表

17、查詢數據:

可以看到  dbtest_a 數據庫中 SCHEMA datafrom 中的所有表及數據被映射到了數據庫 dbtest_b 下的 SCHEMA datato 中。

 

至此,Centos7  PostgreSql 數據庫使用FDW擴展並使用操作完畢,希望能夠對您有所幫助!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章