文档首页 > > 开发指南> SQL参考> SQL语法> ALTER SERVER

ALTER SERVER

分享
更新时间: 2019/11/12 GMT+08:00

功能描述

增加、修改和删除一个现有server的参数。现有server可以从pg_foreign_server系统表查询。

注意事项

除系统管理员外,只有server的owner才可以进行Alter操作。

语法格式

  • 修改外部服务的参数。
ALTER SERVER server_name [ VERSION 'new_version' ]
    [ OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ] ) ];

在OPTIONS选项里,ADD、SET和DROP指定要执行的操作,未指定时默认为ADD操作。option和value为对应操作的参数。

对于HDFS Server目前只支持SET操作,ADD/DROP操作现有版本不支持。语法中SET和DROP操作语法依然保留,以便后续扩展使用。

  • 修改外部服务的所有者。
ALTER SERVER server_name 
    OWNER TO new_owner;
  • 修改外部服务的名字。
ALTER SERVER server_name 
    RENAME TO new_name;

参数说明

修改server的参数如下所示:

  • server_name

    所修改的server的名字。

  • new_version

    修改后server的新版本名称。

  • 修改server所支持的OPTIONS如下所示:
    • address

      HDFS集群的主备节点所在的IP地址以及端口。

      • 对于HDFS server,address必须存在,所以ADD和DROP操作不被允许。
      • address目前只支持点分十进制格式的ipv4格式,且address字符串中不能出现空格,多组address以逗号作为分隔符。ip和port之间使用’:’来区分。HDFS集群中ip、port组对推荐设置两组,分别对应HDFS NameNode主备节点的address。
    • hdfscfgpath

      HDFS集群的配置文件。

      • 若HDFS走安全模式时,hdfscfgpath是必选项,否则为可选项。
      • 若设置hdfscfgpath时,path仅能设置一个。
    • region

      此参数表示OBS服务的IP地址或者域名信息。该参数仅支持type为OBS时设置。

  • new_owner

    修改后server的新拥有者。更改所有者,你必须是外部服务器的所有者并且也是新的所有者角色的直接或者间接成员,并且你必须对外部服务器的外部数据封装器有USAGE权限。

  • new_name

    修改后server的新名字。

示例

--建立一个hdfs_server,其中hdfs_fdw为数据库中存在的foreign data wrapper。
CREATE SERVER hdfs_server FOREIGN DATA WRAPPER HDFS_FDW OPTIONS (address '10.10.0.100:25000,10.10.0.101:25000', hdfscfgpath '/opt/hadoop_client/HDFS/hadoop/etc/hadoop',type'HDFS');

SELECT * FROM pg_foreign_server WHERE srvname='hdfs_server';
   srvname   | srvowner | srvfdw | srvtype | srvversion | srvacl |                                              srvoptions                                           
    
-------------+----------+--------+---------+------------+--------+---------------------------------------------------------------------------------------------------
----
 hdfs_server |       10 |  13332 |         |            |        | {"address= 10.10.0.100:25000,10.10.0.101:25000",hdfscfgpath=/opt/hadoop_client/HDFS/hadoop/etc/hadoop}
(1 row)
--修改现有名为hdfs_server的address。
ALTER SERVER hdfs_server OPTIONS ( SET address '10.10.0.110:25000,10.10.0.120:25000');

SELECT * FROM pg_foreign_server WHERE srvname='hdfs_server';
   srvname   | srvowner | srvfdw | srvtype | srvversion | srvacl |                                              srvoptions
-------------+----------+--------+---------+------------+--------+-------------------------------------------------------------------------------------------------------
 hdfs_server |       10 |  13167 |         |            |        | {"address= 10.10.0.110:25000,10.10.0.120:25000",hdfscfgpath=/opt/hadoop_client/HDFS/hadoop/etc/hadoop}
(1 row)
--修改现有名为hdfs_server的hdfscfgpath。
ALTER SERVER hdfs_server OPTIONS ( SET hdfscfgpath '/opt/bigdata/hadoop');

SELECT * FROM pg_foreign_server WHERE srvname='hdfs_server';
   srvname   | srvowner | srvfdw | srvtype | srvversion | srvacl |                                   srvoptions                                    
-------------+----------+--------+---------+------------+--------+---------------------------------------------------------------------------------
 hdfs_server |       10 |  13332 |         |            |        | {"address= 10.10.0.110:25000,10.10.0.120:25000",hdfscfgpath=/opt/bigdata/hadoop}
(1 row)
--删除hdfs_server。
DROP SERVER hdfs_server;

相关链接

CREATE SERVER DROP SERVER

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区