当前位置: 首页 > news >正文

海南网站制作百度推广按点击收费

海南网站制作,百度推广按点击收费,论坛类网站建设,微信小程序引流推广软件KingbaseES数据库使用kdb_database_link扩展常见问题 kdb_database_link主要功能是为了满足link语法的适配,让用户应用的代码能够适用于更宽泛的产品而无需在移植时大量修改。 支持连接管理,在适当的时候关闭连接减少远程数据库的资源开销。支持远程表(视…

KingbaseES数据库使用kdb_database_link扩展常见问题

kdb_database_link主要功能是为了满足@link语法的适配,让用户应用的代码能够适用于更宽泛的产品而无需在移植时大量修改。

  • 支持连接管理,在适当的时候关闭连接减少远程数据库的资源开销。
  • 支持远程表(视图、物化视图)的查询,并且支持下推查询条件减少数据传输的网络开销。
  • 支持远程表的插入。
  • 支持远程序列的访问。
  • 支持远程用户自定义函数(存储过程)的访问。目前仅支持KingbaseES数据库。

一、环境要求:

1.配置好ODBC,并且通过isql可以正常访问远程数据库。

ODBC连接配置请参考:https://www.cnblogs.com/kingbase/p/14921071.html

[kes_v8r6c7b12@node2 ~]$ isql -v kes
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> select count(1) from t1;
+---------------------+
| COUNT               |
+---------------------+
| 24                  |
+---------------------+
SQLRowCount returns 1
1 rows fetched

2.数据库有kdb_database_link扩展插件:

--登录数据库查询是否有kdb_database_link扩展插件
[kes_v8r6c7b12@node2 ~]$ ksql -Usystem -dtest -p5432
ksql (V8.0)
Type "help" for help.test=# \dxList of installed extensionsName           | Version |    Schema    |                                                     Description                                                     
--------------------------+---------+--------------+---------------------------------------------------------------------------------------------------------------------btree_gin                | 1.3     | public       | support for indexing common datatypes in GINbtree_gist               | 1.5     | public       | support for indexing common datatypes in GiSTdbms_ddl                 | 1.0     | sys          | DBMS_DDL system packagedbms_lob                 | 1.1     | public       | dbms_lob packagedbms_metadata            | 1.0     | public       | DBMS_METADATA system packagedbms_obfuscation_toolkit | 1.0     | sys          | dbms_obfuscation_toolkit system packagedbms_output              | 1.0     | sys          | DBMS_OUTPUT system packagedbms_utility             | 1.0     | sys          | dbms_utility extension packagekbcrypto                 | 1.3     | public       | cryptographic functionskdb_cast                 | 1.0     | sys          | kdb_cast extensionkdb_database_link        | 1.0     | public       | connect to other databases with a database link objectkdb_license              | 1.0     | pg_catalog   | kdb_license extensionkdb_oracle_datatype      | 1.5     | sys          | kdb_oracle_datatype extensionkdb_orafce               | 3.9     | public       | Functions and operators that emulate a subset of functions and packages from the Oracle RDBMSkdb_raw                  | 1.0     | public       | support RAW data and functions in KDBkdb_schedule             | 1.0     | sys          | A KingbaseES job schedulerkdb_tinyint              | 1.0     | pg_catalog   | Create a new data type tinyint and its functions operators and indexeskdb_utils_function       | 1.3     | public       | Functions and operators that emulate a subset of functions and packages from the Oracle RDBMSkingbase_version         | 1.0     | pg_catalog   | This is a utility that provides function related to version number,  it is used to get the Kingbase version number.owa_util                 | 1.0     | sys          | owa_util system packagepageinspect              | 1.8     | public       | inspect the contents of database pages at a low levelpldbgapi                 | 1.2     | public       | server-side support for debugging PL/pgSQL functionsplpgsql                  | 1.0     | pg_catalog   | PL/pgSQL procedural languageplsql                    | 1.0     | pg_catalog   | PL/SQL procedural languageplsql_json               | 1.0     | public       | KingbaseES plsql_jsonplsql_pldbgapi           | 1.2     | public       | server-side support for debugging PL/SQL functionsplsql_plprofiler         | 4.2     | public       | server-side support for profiling PL/SQL functionssys_anon                 | 1.0     | anon         | provides data masking functionalitysys_bulkload             | 2.0     | public       | sys_bulkload is a high speed data loading utility for KingbaseESsys_freespacemap         | 1.2     | sys          | examine the free space map (FSM)sys_stat_statements      | 1.10    | public       | track parsing, planning and execution statistics of all SQL statements executedsys_trgm                 | 1.4     | public       | text similarity measurement and index searching based on trigramssysaudit                 | 1.0     | sysaudit     | provides auditing functionalitysysmac                   | 1.0     | sysmac       | Mac for Kingbaseuuid-ossp                | 1.1     | public       | generate universally unique identifiers (UUIDs)xlog_record_read         | 1.0     | pg_catalog   | xlog_record_read functionszhparser                 | 1.0     | public       | a parser for full-text search of Chinese
(38 rows)--如果数据库没有kdb_database_link扩展插件,使用以下命令创建
test=# create extension kdb_database_link ;
CREATE EXTENSION

二、适用于:

KingbaseES所有版本。

二、问题现象:

场景1:创建dblink连接提示 ERROR: foreign-data wrapper "kingbase_fdw" does not exist

--使用以下语句创建dblink报错
test=# create public database link kes_link connect to 'system' identified by 'system' using(DriverName='KES ODBC Driver',Host='192.168.10.40',Port=5432,Dbname='test',Dbtype='kingbase');
ERROR:  foreign-data wrapper "kingbase_fdw" does not exist
--创建dblink后重新登录数据库使用dblink查询报错[kes_v8r6c7b12@node2 ~]$ ksql -Usystem -dtest -p5432
ksql (V8.0)
Type "help" for help.test=# select * from t1@kes_link;
ERROR:  Unsupported for database link.--查询dblink是否存在
test=# select * from user_db_links ;OWNER  | DB_LINK  | USERNAME |     HOST      |            CREATED            
--------+----------+----------+---------------+-------------------------------system | kes_link | system   | 192.168.10.40 | 2023-07-21 17:06:23.387985+08
(1 row)test=# select * from all_db_links ;OWNER  | DB_LINK  | USERNAME |     HOST      |            CREATED            
--------+----------+----------+---------------+-------------------------------system | kes_link | system   | 192.168.10.40 | 2023-07-21 17:06:23.387985+08
(1 row)

场景3:删除dblink提示 ERROR: unrecognized class ID: 8070

test=# drop database link kes_link;      
ERROR:  unrecognized class ID: 8070
test=# drop database link kes_link;
ERROR:  database link "kes_link" does not exist

场景5:创建dblink提示:ERROR: unrecognized node type: 360

test=# create public database link kes_link connect to 'system' identified by 'system' using(DriverName='KES ODBC Driver',Host='192.168.10.40',Port=5432,Dbname='test',Dbtype='kingbase');
ERROR:  unrecognized node type: 360

三、解决方法:

场景1:

问题原因
  • kdb_database_link主要功能是为了兼容Oracle数据库@link语法的适配,实际是在kingbase_fdw上层进行了包装,所以还需要安装kingbase_fdw扩展。
问题解决:
--创建kingbase_fdw扩展插件
test=# create extension kingbase_fdw;
CREATE EXTENSION
--创建dblink
test=# create public database link kes_link connect to 'system' identified by 'system' using(DriverName='KES ODBC Driver',Host='192.168.10.40',Port=5432,Dbname='test',Dbtype='kingbase');
CREATE DATABASE LINK--使用dblink查询数据
test=# select * from t1@kes_link;ID | NAME 
----+------1 | tx2 | llx
(2 rows)

场景2:

问题原因
  • 数据库kingbase.conf配置文件shared_preload_libraries 没有添加kdb_database_link扩展插件。
  • 创建kdb_database_link扩展插件后,在当前的连接可以使用dblink查询数据。主要是由于创建kdb_database_link扩展插件后扩展调用的kdb_database_link共享库文件在当前连接进程里面有加载。
  • 退出或者建立新的连接后,新开的连接进程里面未加载kdb_database_link扩展插件,使用dblink查询就会报错。
问题解决:
  • 在数据库kingbase.conf配置文件shared_preload_libraries添加 kdb_database_link扩展。
--在kingbase.conf文件shared_preload_libraries添加kdb_database_link
shared_preload_libraries = 'kdb_database_link,...'--添加后重启数据库
[kes_v8r6c7b12@node2 ~]$ sys_ctl -D ora_data/ restart
waiting for server to shut down.... done
server stopped
waiting for server to start....2023-07-21 17:29:07.986 CST [20547] LOG:  sepapower extension initialized
2023-07-21 17:29:07.993 CST [20547] LOG:  starting KingbaseES V008R006C007B0012 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
2023-07-21 17:29:07.993 CST [20547] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2023-07-21 17:29:07.993 CST [20547] LOG:  listening on IPv6 address "::", port 5432
2023-07-21 17:29:07.999 CST [20547] LOG:  listening on Unix socket "/tmp/.s.KINGBASE.5432"
2023-07-21 17:29:08.046 CST [20547] LOG:  redirecting log output to logging collector process
2023-07-21 17:29:08.046 CST [20547] HINT:  Future log output will appear in directory "sys_log".done
server started--再次登录数据库进行查询
[kes_v8r6c7b12@node2 ~]$ ksql -Usystem -dtest -p5432
ksql (V8.0)
Type "help" for help.test=# select * from user_db_links ;OWNER  | DB_LINK  | USERNAME |     HOST      |            CREATED            
--------+----------+----------+---------------+-------------------------------system | kes_link | system   | 192.168.10.40 | 2023-07-21 17:06:23.387985+08
(1 row)test=# select * from t1@kes_link;   ID | NAME 
----+------1 | tx2 | llx
(2 rows)

场景3:

问题原因:
  • 数据库kingbase.conf配置文件shared_preload_libraries 没有添加kdb_database_link扩展插件。
问题解决:
  • 在数据库kingbase.conf配置文件shared_preload_libraries添加 kdb_database_link扩展。

场景4:

问题原因:
  • 删除dblink时未指定dblink所在的schema。
问题解决:
  • 删除dblink时指定dblink所在schema。
--删除成功
test=# drop database link public.kes_link;
DROP DATABASE LINK

场景5:

问题原因:
  • 数据库kingbase.conf配置文件shared_preload_libraries 没有添加kdb_database_link扩展插件。
问题解决:
  • 在数据库kingbase.conf配置文件shared_preload_libraries添加 kdb_database_link扩展。
--kingbase.conf配置文件shared_preload_libraries添加 kdb_database_link扩展后重启数据库
--再次登录创建成功
[kes_v8r6c7b12@node2 ~]$ ksql -Usystem -dtest -p5432
ksql (V8.0)
Type "help" for help.test=# create public database link kes_link connect to 'system' identified by 'system' using(DriverName='KES ODBC Driver',Host='192.168.10.40',Port=5432,Dbname='test',Dbtype='kingbase');
CREATE DATABASE LINK
test=# select * from t1@kes_link;                                                                                                                                                         ID | NAME 
----+------1 | tx2 | llx
(2 rows)

四、总结:

  • shared_preload_libraries是配置参数,用来指定在数据库服务器启动过程中应加载到内存中的共享库。共享库是KingbaseES扩展功能模块。
  • shared_preload_libraries参数的值是一个以逗号分隔的共享库名称列表,如果名称中包含空格或逗号,需要用双引号括起来。例如:"my library"
  • 此参数只能在服务器启动时设置,共享库需要在启动时加载才能正常工作,不能在运行时修改。如果修改了这个参数的值,需要重启服务器才能生效。
http://www.15wanjia.com/news/13865.html

相关文章:

  • 做网站找北京搜索引擎优化
  • 和幼儿做网站中国软文网官网
  • jsp做网站怎么打开外贸seo优化
  • 统计网站建设baiduseoguide
  • 全国电子网站建设网站代运营多少钱一个月
  • 深圳开发公司网站建设比较好的常见的营销方式有哪些
  • 一级a做愛av网站手游推广渠道和推广方式
  • 网站关键词如何做竞价百度网站优化培训
  • 线上课程如何推广爱站seo工具包下载
  • 衡阳做淘宝网站建设厦门seo大佬
  • 今科云平台网站建设技术怎样做搜索引擎推广
  • 网站编辑难做吗网站自助搭建
  • 三亚做网站如何介绍自己设计的网页
  • 自己建设网站百度接单平台
  • 模拟制作app的软件厦门seo外包公司
  • 南昌网站搭建公司 赣ICP游戏推广是什么工作
  • seo网站推广电话seo营销培训咨询
  • 网站建设程序结构新网域名注册官网
  • 网站开发硬件环境怎么填seo网站内容优化
  • 深圳网络营销收费标准宁波营销型网站建设优化建站
  • 三合一企业网站模板网络推广预算方案
  • 网站开发教学网站免费的发帖收录网站
  • 珠海建设网站的公司百度搜索榜单
  • 鄞州seo整站优化服务百度网页怎么制作
  • 余杭政府门户网站平安建设标语网络销售怎么找客源
  • 软件b2c网站建设免费云服务器
  • 网站开发学院重庆高端网站seo
  • 广州做网站技术百度关键词优化多少钱一年
  • 泊头哪有哪家做网站做的号青岛网站制作公司
  • WordPress网站htm地图太原关键词优化服务