VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

CREATE SERVER

功能描述

定义一个新的外部服务器。

语法格式

CREATE SERVER server_name
    FOREIGN DATA WRAPPER fdw_name
    OPTIONS ( { option_name ' value ' } [, ...] ) ;

参数说明

  • server_name

    server的名称。

    取值范围:长度必须小于等于63。

  • fdw_name

    指定外部数据封装器的名称。

    取值范围:dist_fdw,hdfs_fdw,log_fdw,file_fdw,mot_fdw,oracle_fdw,mysql_fdw,postgres_fdw,jdbc_fdw。

  • OPTIONS ( { option_name ' value ' } [, …] )

    这个子句为服务器指定选项。这些选项通常定义该服务器的连接细节,但是实际的名称和值取决于该服务器的外部数据包装器。

    • oracle_fdw支持的options包括:

      • dbserver: 远端Oracle数据库的连接字符串。
      • isolation_level:oracle数据库的事务隔离级别,取值范围:serializable、 read_committed 、 read_only,默认值为serializable。
    • mysql_fdw支持的options包括:

      • host:MySQL Server/MariaDB的地址,默认值为 127.0.0.1。
      • port:MySQL Server/MariaDB侦听的端口号,默认值为 3306。
    • jdbc_fdw支持的options包括:

      • drivername:驱动类名称。
      • url:JDBC驱动连接串。
      • querytimeout:查询超时时间。
      • jarfile:驱动包路径。
      • maxheapsize:JVM最大堆内存。
    • postgres_fdw支持的options同libpq支持的连接参数一致,如下表所示:

      字符串 描述
      host 要链接的主机名。如果主机名以斜杠开头,则它声明使用Unix域套接字通讯而不是TCP/IP通讯;该值就是套接字文件所存储的目录。如果没有声明host,那么默认是与位于/tmp目录(或者安装数据库的时候声明的套接字目录)里面的Unix-域套接字链接。在没有Unix域套接字的机器上,默认与localhost链接。
      hostaddr 与之链接的主机的IP地址,是标准的IPv4地址格式,比如,172.28.40.9。如果机器支持IPv6,那么也可以使用IPv6的地址。如果声明了一个非空的字符串,那么使用TCP/IP通讯机制。使用hostaddr取代host可以让应用避免一次主机名查找,这一点对于那些有时间约束的应用来说可能是非常重要的。不过,GSSAPI或SSPI认证方法要求主机名(host)。因此,应用下面的规则:如果声明了不带hostaddr的host那么就强制进行主机名查找。如果声明中没有host,hostaddr的值给出服务器网络地址;如果认证方法要求主机名,那么链接尝试将失败。如果同时声明了host和hostaddr,那么hostaddr的值作为服务器网络地址。host的值将被忽略,除非认证方法需要它,在这种情况下它将被用作主机名。须知:要注意如果host不是网络地址hostaddr处的服务器名,那么认证很有可能失败。如果主机名(host)和主机地址都没有,那么libpq将使用一个本地的Unix域套接字进行链接;或者是在没有Unix域套接字的机器上,它将尝试与localhost链接。
      port 主机服务器的端口号,或者在Unix域套接字链接时的套接字扩展文件名。
      user 要链接的用户名,缺省是与运行该应用的用户操作系统名同名的用户。
      dbname 数据库名,缺省和用户名相同。
      password 如果服务器要求口令认证,所用的口令。
      connect_timeout 链接的最大等待时间,以秒计(用十进制整数字符串书写),0或者不声明表示无穷。不建议把链接超时的值设置得小于2秒。
      client_encoding 为这个链接设置client_encoding配置参数。除了对应的服务器选项接受的值,用户可以使用auto从客户端中的当前环境中确定正确的编码(Unix系统上是LC_CTYPE环境变量)。
      options 添加命令行选项以在运行时发送到服务器。
      application_name 为application_name配置参数指定一个值,表明当前用户身份。
      keepalives 控制客户端侧的TCP保持激活是否使用。缺省值是1,意思为打开,但是如果不想要保持激活,用户可以更改为0,意思为关闭。通过Unix域套接字做的链接忽略这个参数。
      keepalives_idle 在TCP应该发送一个保持激活的信息给服务器之后,控制不活动的秒数。0值表示使用系统缺省。通过Unix域套接字做的链接或者如果禁用了保持激活则忽略这个参数。
      keepalives_interval 在TCP保持激活信息没有被应该传播的服务器承认之后,控制秒数。0值表示使用系统缺省。通过Unix域套接字做的链接或者如果禁用了保持激活则忽略这个参数。
      keepalives_count 添加命令行选项以在运行时发送到服务器。例如,设置为-c comm_debug_mode=off,则设置guc参数comm_debug_mode参数的会话的值为off。

      需要注意的是,以下几个options不支持修改:

      • user和password:用户名和密码将在创建user mapping时指定。
      • client_encoding:将自动获取本地server的编码方式并设置该值。
      • application_name: 总是设置成postgres_fdw。
    • 用于指定外部服务器的各类参数,详细的参数说明如下所示:

      • encrypt:是否对数据进行加密,该参数仅支持type为OBS时设置。默认值为on。

        取值范围:

        • on表示对数据进行加密,使用HTTPS协议通信。
        • off表示不对数据进行加密,使用HTTP协议通信。
      • access_key:OBS访问协议对应的AK值(OBS云服务界面由用户获取),创建外表时AK值会加密保存到数据库的元数据表中。该参数仅支持type为OBS时设置。

      • secret_access_key:OBS访问协议对应的SK值(OBS云服务界面由用户获取),创建外表时SK值会加密保存到数据库的元数据表中。该参数仅支持type为OBS时设置。

      除了libpq支持的连接参数外,还额外提供3个options:

      • use_remote_estimate:控制postgres_fdw是否发出EXPLAIN命令以获取运行消耗估算。默认值为false。

      • fdw_startup_cost:执行一个外表扫描时的启动耗时估算。这个值通常包含建立连接、远端对请求的分析和生成计划的耗时。默认值为100。

      • fdw_typle_cost:在远端服务器上对每一个元组进行扫描时的额外消耗。这个值通常表示数据在server间传输的额外消耗。默认值为0.01。

示例

创建server。

CREATE FOREIGN DATA WRAPPER extstats_dummy_fdw;
CREATE SERVER extstats_dummy_srv FOREIGN DATA WRAPPER extstats_dummy_fdw;

相关链接

ALTER SERVERDROP SERVER