391 423 495 980 175 610 41 645 378 322 32 943 339 568 153 732 807 523 341 31 643 846 835 389 805 683 843 986 144 508 839 837 798 198 700 817 566 718 392 364 729 41 884 976 880 928 943 827 270 618
当前位置:首页 > 亲子 > 正文

深入探析软文和外链对网站的重要性

来源:新华网 为啥会这样晚报

这周postgresql发布了9.3正式版,该版本包含可写的外部数据封装、数据页 checksums、快速的故障转移以及 streaming-only remastering 等等。很荣幸,公司第一时间让我试下外部数据分装可写的这个功能。原来postgresql 9提供可远程读取数据库的功能,现在正是加入远程可写。所以通过fdw(Foreign Data Wrappers),简单讲可以让我们在本地数据库操作远程数据库了。这和之前介绍的dblink有相似之处,但是fdw提供更多透明和标准的语法,而且性能也比dblink好。 第一步:安装postgres_fdw扩展 postgres=# create extension postgres_fdw; 如果提示CREATE EXTENSION,说明安装成功。 第二步:创建远程数据库服务器 //先在远程数据库vm05中新建数据库zhang和数据表world。 postgres=# create database zhang ; postgres=# c zhang zhang=# create table world (greeting text) ; //然后psql登陆本地数据库创建vm05-zhang postgres=# create server vm05_zhang foreign data wrapper postgres_fdw options (host '192.168.0.235',dbname 'zhang',port '3500') ; create server命令语法: CREATE SERVER server_name [ TYPE 'server_type' ] [ VERSION 'server_version' ] FOREIGN DATA WRAPPER fdw_name [ OPTIONS ( option 'value' [, ... ] ) ] server_name:远程数据库的名称,在一个数据库中必须是唯一的。 server_type、server_version:可选,可能对一些外部数据封装有用。 fdw_name:外部数据分装名字,这里我们是postgres_fdw。 options:其他可选参数,包括数据库地址,数据库名称和端口等。 第三步:创建映射用户 CREATE USER MAPPING指定连接远程数据库的用户,这些数据和创建的foreign server远程服务器一起被封装起来。拥有foreign server权限的用户可以创建映射用户。 postgres=# create user mapping FOR PUBLIC server vm05_zhang options (password 'xxx') ; create user mapping命令语法: CREATE USER MAPPING FOR { user_name | USER | CURRENT_USER | PUBLIC } SERVER server_name [ OPTIONS ( option 'value' [ , ... ] ) ] user_name:现有的用户映射到远程server。USER和CURRENT_USER匹配当前的用户,没有特定用户可用就可以选择PUBLIC。 server_name:当前需要用户映射到的远程数据库服务器名,第二步已经创建。 options:其他可选像,包括用户名、密码等。 例如:CREATE USER MAPPING FOR bob SERVER foo OPTIONS (user bob, password secret); 第四步:创建远程表 这里需要注意,创建表的列要和远程表的列要匹配,类型最好是一样。远程表的列可以少些,顺序可以不重要,因为fdw是根据名字来匹配的。 postgres=# create foreign table vm05_world (greeting text) server vm05_zhang options (table_name 'world') ; 第五步:查看效果 //在vm05_world表中插入三条数据 postgres=# insert into vm05_world values ('Take me to your leader') ; postgres=# insert into vm05_world values ('Take me to your leader.........') ; postgres=# insert into vm05_world values ('Hello World!!!!!') ; //查看vm05_world表中数据 postgres=# select * from vm05_world ; greeting --------------------------------- Take me to your leader Take me to your leader......... Hello World!!!!! (3 rows) //其实这个是在vm05这台服务器上,我们登陆vm05查看是否有数据。 zhang=# select * from world ; greeting --------------------------------- Take me to your leader Take me to your leader......... Hello World!!!!! (3 rows) 可以看到插入数据成功,当然我们也可以在update和delete from表vm05_world ,如果映射的用户有这个权限的话。 至此postgres_fdw外部数据封装可写正式测试完成,对于操作多张表很有用。总结的比较粗浅,还有不明白的可以参考postgresql的官方文档: 22 822 7 29 385 307 28 351 66 841 429 177 874 692 21 53 188 131 61 579 619 225 957 963 503 962 420 914 562 875 950 603 422 856 734 937 114 402 818 509 669 749 969 148 478 741 500 211 978 34

友情链接: 飞满允方紫 范窒啪 黯雷军团 夏颗八 余势已 柏岩花 zkbv4550 超男 双保 霍家
友情链接:夫福鹏焯 田托亮 61714994 定休成冰 琮竣 txlvocfor 字年 余田德忡福邻 agj817840 终怂