logo
GBase 8a
适配迁移
文章

GBase8a集群透明网关与DBLINK使用介绍

GBase用户10887
发表于2024-10-21 16:10:28378次浏览0个评论

GBase8a集群透明网关与DBLINK使用介绍

GBase 8a集群透明网关服务是一个独立运行的进程。它的主要作用是获取并处理DBLINK的请求信息,在GBase 8a集群里直接访问其它Gbase8a数据库或者其他异构数据源,将数据抽取到GBase 8a集群中,或将GBase 8a集群内的数据推送到其他集群。

DBLINK是GBase 8a集群内部提供的远程数据库连接功能,通过与透明网关服务的协同工作,实现对远程数据库的查询以及远程数据与本地数据的关联运算等。

透明网关工作原理

  • 同构数据源

目标端集群与源端集群为相同版本的GBase 8a集群,两个集群之间的数据互通采用DBlink。

工作原理简述:

1.目标端集群将数据请求由gcluster的5258端口发送至dblink的9898端口
2.Dblink将请求由9898端口转发至源端集群的5258端口
3.源端数据库将接收的请求生成执行计划,由gcluster的5258端口下发至各gnode的5050端口
4.源端的5050端口接收到执行计划进行查询,并将返回结果与目标端集群的gnode的5050端口直接通讯。
5.目标端Gnode将查询结果汇总到gcluster层。

开放端口:

  • Dblink :9898端口

  • 源端与目标端的5258要与dblink的9898可以互相访问

  • 需要保证源端集群的gnode节点与目标端集群的gnode节点的5050都可以互相访问,即让步骤4可以顺利进行节点间的数据交换。

 

  • 异构数据源

GBase 8a与异构数据源Oracle通过DBlink进行数据交互的示意图:

工作原理简述:

1.目标端集群将数据请求由gcluster的5258端口发送至dblink的9898端口
2.Dblink将请求由9898端口转发至源端集群的1521端口
3.源端数据库处理请求,并将执行结果发送至dblink的9898端口
4.Dblink将源端数据库返回的结果发送至目标集群的随机的一个gnode节点
5.目标端Gnode将查询结果返回至gcluster中。


开放端口:

  • Dblink :9898端口

  • 源端与目标端的5258要与dblink的9898可以互相访问

  • 需要保证目标端集群的所有gnode节点的5050端口与DBlink的9898端口相互访问,目的是让步骤4DBlink的查询结果可以顺利返回至目标集群的随机的一个gnode节点上。
     

透明网关配置管理

安装透明网关

1.获取到GBase8a集群透明网关的tar包后,把 tar包拷贝到目标安装路径,使用tar –xvf [压缩包名].tar解压缩。

2.解压缩成功后会在当前路径下生成一个与tar包同名的目录,该目录就是透明网关的安装目录。

3.使用chmod –R +x  [安装目录名],为当前用户赋予透明网关安装目录下文件及子目录相应权限。

配置透明网关

网关服务配置文件包含三类(存放路径为透明网关安装目录的conf文件夹):

1.网关参数配置文件:conf.properties
2.网关数据源配置文件:dataSource/dblink_name.properties
3.网关目标数据库配置文件:gcluster/gbase8a_gcluster.properties

配置Gateway参数

网关配置文件固定为conf.properties

示例:

gbase.gt.port=9898
gbase.gt.encode=utf8
gbase.gt.pagesize=10000
#load data type : batch=1, insert values=0
gbase.gt.load.data.type=1
gbase.gt.table.use.decimal=1
#paging query : not=0, yes=1;default=0
gbase.gt.gc.paging.query=0
gbase.gt.st.paging.query=0
gbase.gt.orcl.paging.query=0
gbase.gt.mysql.paging.query=0
gbase.gt.tera.paging.query=0
gbase.gt.hive.paging.query=0
gbase.gt.oceanbaseoracle.paging.query=0
gbase.gt.gbase8c.paging.query=0
#commit type : transaction commit=0, paging commit=1
gbase.gt.commit.type=0
#timeout
gbase.gt.wait.timeout=7200
#timeout to fetch gcluster datasource(second) : default=108000
gbase.gt.gc.fetch.timeout=108000
#thread pool type: 0-fixed thread pool 1-thread pool executor
gbase.gt.thread.pool.type=0
#thread pool size(gbase.gt.thread.pool.type=0 effect)
gbase.gt.thread.pool.size=1000
#core pool size(gbase.gt.thread.pool.type=1 effect)
gbase.gt.core.pool.size=200
#maximum pool size(gbase.gt.thread.pool.type=1 effect)
gbase.gt.maximum.pool.size=5000
#keep alive time(gbase.gt.thread.pool.type=1 effect)
gbase.gt.keep.alive.time=0
#queue size(gbase.gt.thread.pool.type=1 effect)
gbase.gt.queue.size=10
#encryption 0 false 1 true
#gbase.gt.passwd.encryption=1

配置数据源

数据源配置文件:dataSource/dblink_name.properties 。

可以配置多个数据源,每个数据源对应一个配置文件,以数据源名称标识,如数据源dblink_name的配置文件名为dblink_name.properties。

示例:

[ds1]
dataSource_dbtype=gcluster
dataSource_url=jdbc:gbase://192.168.190.201/test
dataSource_IP=192.168.190.201
dataSource_port=5258
dataSource_dbname=test
dataSource_user=gbase
dataSource_pwd=gbase20110531
dataSource_charset=utf8

配置coordinator连接参数

网关的conf/gcluster 路径下gbase8a_gcluster.properties文件中需要配置所有本地 gcluster 的coordinator和gnode的连接参数。

示例:

[gc1]
gcluster_IP=192.168.8.102 --本地ip
gcluster_port=5258        -- 端口
gcluster_user=root    --用户
gcluster_pwd=root     -- 用户密码
gcluster_encode=utf-8    -- gcluster所使用的字符集
[gn1]
gcluster_IP=192.168.8.103 --本地ip
gcluster_port=5050       -- 端口
gcluster_user=root    --用户
gcluster_pwd=root     -- 用户密码
gcluster_encode=utf-8    -- gcluster所使用的字符集

网关HA冗余部署

网关高可用冗余部署,可部署两套相同配置的网关服务,一主一备,同时都启动在线,当gcluster连接主网关失败时将尝试连接备用网关。

启动停止透明网关

进入gbaseGateway安装目录下,执行如下命令即可启动透明网关:

$ sh gbaseGatewayServer.sh --help
Usage: gbaseGatewayServer.sh {start|stop|restart|status}
$ sh gbaseGatewayServer.sh start

卸载透明网关

GBase8a集群透明网关属于纯绿色软件,对操作系统没有侵入性,所以不需要使用卸载程序进行卸载,直接删除透明网关整个安装目录即可。

停止透明网关服务之后,进入透明网关安装目录的上一级目录,执行rm –r 安装目录名称,即可删除安装目录。

DBLink配置管理

对DBLink的管理,包括目标集群配置Gateway信息,创建、删除、查询和使用DBLink。

配置Gateway信息

配置GBase8a集群(local)要使用的Gateway 信息。

gbase_8a_gcluster.cnf 中必须配置的参数:

gbase_dblink_gateway_ip = [透明网关IP,如192.18.16.11]
gbase_dblink_gateway_port = [透明网关的服务端口,如9898]

gbase_8a_gcluster.cnf 中选配的参数:

  • gcluster_dblink_direct_data_exchange:
    默认值为1
    值为1表示:数据从数据源集群的计算节点直接发送给目标集群。
    值为0表示:数据从数据源集群发送给网关,然后由网关转发给目标集群。


网关HA冗余部署

dblink功能支持网关高可用冗余部署,需要在目标集群增加如下参数:

  • gbase_dblink_standby_gateway_ip:备用dblink网关服务所在主机的ip地址,

  • gbase_dblink_standby_gateway_port: 备用dblink网关服务监听的端口。


创建DBLink

语法:

CREATE  DATABASE LINK dblink_name CONNECT TO username IDENTIFIED BY password USING ‘TG_config_name’;

参数:

  • dblink_name:要创建的DB-Link的名称

  • usename:该DB-Link要连接的数据库服务中的用户名

  • password:该DB-Link要连接的数据库服务中的用户名密码

  • TG_config_name:透明网关配置文件名称

示例:

create database link dblink_pub
connect to ‘sysdba’ identified by ‘sys’ 
using 'tg_config1';

删除DBLink

语法:

DROP DATABASE LINK dblink_name;

示例:

drop database link dblink_pub;

查询DBLink

查看已经创建的所有dblink, 查询sql:

select * from gbase.db_links;

使用DBLink

GBase 8a集群查询时可使用已经创建的 dblink, 使用方式如下: table@dblinkname。

示例:

select * from table@dblink_pub;

异构数据源

DBLink网关支持异构数据源oracle、mysql、hive、teradata、sybase等。

网关数据源配置

dblink网关oracle/mysql /teradata数据源:

cp [网关安装目录]/conf/dataSource/sample/oracle_link1.properties  [网关安装目录]/conf/dataSource/oracle_link1.properties
cat oracle_link1.properties
[ds1]
dataSource_IP=192.168.6.124       -- oracle/mysql /teradata服务所在主机的IP地址
dataSource_port=1521             -- oracle/mysql /teradata服务监听的端口
dataSource_dbname=orcl           -- oracle/mysql /teradata 库名
dataSource_dbtype=oracle/mysql /teradata     -- 数据源类型为 oracle/mysql /teradata
dataSource_user=myora               -- oracle/mysql /teradata 用户名
dataSource_pwd=myora               -- oracle/mysql /teradata 用户的密码

# cd sample/
# ll
总用量 32
-rw-rw-r-- 1 gbase gbase 161 9月  12 17:51 gbase8c_dblink1.properties
-rw-rw-r-- 1 gbase gbase 234 9月  12 17:51 gbase_dblink1.properties
-rw-rw-r-- 1 gbase gbase 241 9月  12 17:51 hive_dblink1.properties
-rw-rw-r-- 1 gbase gbase 215 9月  12 17:51 mysql_dblink1.properties
-rw-rw-r-- 1 gbase gbase 217 9月  12 17:51 oceanbaseoracle_dblink1.properties
-rw-rw-r-- 1 gbase gbase 211 9月  12 17:51 oracle_dblink1.properties
-rw-rw-r-- 1 gbase gbase 227 9月  12 17:51 sybase_dblink1.properties
-rw-rw-r-- 1 gbase gbase 253 9月  12 17:51 teradata_dblink1.properties

# cat gbase8c_dblink1.properties
[ds1]
dataSource_dbtype=gbase8c
dataSource_IP=192.168.3.83
dataSource_port=5432
dataSource_dbname=postgres
dataSource_user=gateway
dataSource_pwd=gbase@123

# cat gbase_dblink1.properties
[ds1]
dataSource_dbtype=gcluster
dataSource_url=jdbc:gbase://192.168.190.201/test
dataSource_IP=192.168.190.201
dataSource_port=5258
dataSource_dbname=test
dataSource_user=gbase
dataSource_pwd=gbase20110531
dataSource_charset=utf8

# cat hive_dblink1.properties
[ds1]
dataSource_dbtype=hive
dataSource_url=jdbc:hive2://192.168.103.142/default
dataSource_IP=192.168.103.142
dataSource_port=10000
dataSource_dbname=default
dataSource_user=gbase
dataSource_pwd=gbase20110531
dataSource_charset=utf8

# cat mysql_dblink1.properties
[ds1]
dataSource_dbtype=mysql
dataSource_url=jdbc:mysql://192.168.199.129:3306/sk_test
dataSource_IP=192.168.199.129
dataSource_port=3306
dataSource_dbname=sk_test
dataSource_user=rtsync
dataSource_pwd=rtsync

# cat oceanbaseoracle_dblink1.properties
[ds1]
dataSource_dbtype=oceanbaseoracle
dataSource_url=jdbc:oceanbase://192.168.3.57:1521/orcl
dataSource_IP=192.168.3.57
dataSource_port=1521
dataSource_dbname=orcl
dataSource_user=gbase
dataSource_pwd=erris

# cat oracle_dblink1.properties
[ds1]
dataSource_dbtype=oracle
dataSource_url=jdbc:oracle:thin:@//192.168.3.57:1521/orcl
dataSource_IP=192.168.3.57
dataSource_port=1521
dataSource_dbname=orcl
dataSource_user=gbase
dataSource_pwd=erris

# cat sybase_dblink1.properties
[ds1]
dataSource_dbtype=sybaseAse
dataSource_url=jdbc:jtds:sybase://192.168.15.204:5000/mydatabase
dataSource_IP=192.168.15.204
dataSource_port=5000
dataSource_dbname=mydatabase
dataSource_user=gbase
dataSource_pwd=gbase

# cat teradata_dblink1.properties
[ds1]
dataSource_dbtype=teradata
dataSource_url=jdbc:teradata://192.168.3.194/TMODE=ANSI,CHARSET=UTF8,database=srctera
dataSource_IP=192.168.3.194
dataSource_port=1025
dataSource_dbname=srctera
dataSource_user=gbase
dataSource_pwd=gbase20110531

dblink查询语法约束

针对异构数据源,新增语法约束:

  • 除union(也包括minus、union all、intersect)查询外,异构数据源dblink表只允许出现在from子查询中。假设olink 为异构数据源dblink对象,例如以下SQL:
select * from t1@olink;     -- 不符合
报错信息:DBLink table from heterogeneous data source must belong to the relation subquery.
select * from (select * from t1@olink);  -- 符合
select * from t1@olink tt1 join t2@olink tt2 on tt1.a=tt2.a  -- 不符合
报错信息:DBLink table from heterogeneous data source must belong to the relation subquery.
select * from (select * from t1@olink tt1 join t2@olink tt2 on tt1.a=tt2.a) ttt ; --符合
select * from t1@olink tt1 union select * from t1@olink tt2;  -- 符合 
select * from (select * from t1@olink tt1 union select * from t1@olink tt2) ttt; --符合
select tt1.a from t1 tt1 join (select a from t1@o_link) tt2 on tt1.a=tt2.a; --符合
select * from (select a from t1@o_link) tt1 
join (select a from t1@o_link) tt2 on tt1.a=tt2.a; -- 符合
select tt1.a from t1@o_link tt1 join (select a from t1@o_link) tt2 on tt1.a=tt2.a; --不符合
报错信息:DBLink table join with (normal table || from sub query) is forbidden
select * from t1 where a in (select a from t1@o_link);    -- 不符合
报错信息:the position of DBLink table is in a subquery of normal table is forbidden
select * from t1 where a in (select a from (select a from t1@o_link)tt); -- 符合
select * from t1@o_link tt1 union all select * from t1@o_link tt2; -- 符合
select * from t1@o_link tt1 minus select * from t1@o_link tt2; -- 符合
select * from t1 tt1 union select * from t1@o_link tt2; --符合
select * from t1@o_link tt2 intersect select * from t1 tt1; --符合

oracle/mysql /teradata语法兼容性

对于oracle/mysql /teradata的方言及专有函数等不作支持。

对于异构数据源 oracle :

  • 参数 _t_gcluster_dblink_clear_syntax_constraints =2:不支持dblink查询中使用 group_concat 函数。

  • 参数 _t_gcluster_dblink_clear_syntax_constraints =1:支持dblink查询中使用 group_concat 函数。

元数据兼容性

Oracle/mysql /teradata的大对象数据类型(如blob,clob等)、binary、long数据类型本期不支持。支持oracle基本数据类型(字符型、数字型及日期型等)。

  • gbase的decimal(p,s), p即精度最大值支持到65位,s即小数,最大值为 30;oracle 的number(p,s) 类型,s超过30 ,dblink网关将映射为gbase的double数据类型,由于double类型是非精确的数据类型,会有精度损失;
  • 由于oracle的date类型可以存储时分秒信息,对于异构数据源oracle的date类型,会映射为GCluster的datetime类型。使用dblink查询oracle的date类型数据会带上时分秒信息,可以用to_date函数格式化输出去掉时分秒信息。

字符集

能够支持oracle/mysql /teradata源为UTF8及GBK/GB2312字符集,支持中文数据源。

SQL功能支持的场景

dblink异构数据源SQL功能支持的场景与同构数据源保持一致:

  • 支持select语句查询dblink表;

  • 支持create…select.. , select部分使用dblink查询;

  • 支持insert..select ..,select 部分使用dblink查询;

  • 支持多表关联delete,源部分使用dblink查询;

  • 支持存储过程中使用dblink查询;

  • 支持prepare语句对dblink查询进行预处理。

示例

set @sql_str='select id2 from x1@gc_dblink where id2=1';
prepare stmt from @sql_str;
execute stmt;
deallocate prepare stmt;

SQL功能不支持的场景

以下SQL功能和同构数据源一致,暂不支持:

  • 不支持对dblink表进行DDL操作,如drop table,alter table等操作;
  • 不支持使用dblink查询创建视图;
  • 不支持使用dblink表或查询作为update的源关联更新本地表;
  • 不支持merge语句using源部分使用dblink查询;
  • 不支持function中使用dblink查询。

示例:

1.不支持对dblink表进行DDL操作,如drop table,alter table等操作:
drop table x1@gc_dblink;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your GBase server version for the right syntax to use near '@gc_dblink' at line 1

2.不支持对dblink表进行 update/delete/insert/merge操作:
update x1@gc_dblink set id2 =1;
ERROR 1105 (HY000): DBLink-Table does not support update operation.
delete from x1@gc_dblink;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your GBase server version for the right syntax to use near '@gc_dblink' at line 1

3.不支持使用dblink查询创建视图:
create view v1 as select * from t1@testlink; 
ERROR 1235 (42000): This version of GBase doesn't yet support 'use dblink table in a FUNCTION/TRIGGER/VIEW.'

4.不支持使用dblink表或查询作为update的源关联更新本地表
update t1,t1@o_link tt1 set t1.b=tt1.b where t1.a=tt1.a; 
update t1 join t1@_link tt1 on t1.a=tt1.a set t1.b=tt1.b; 
update t1 join (select a,b from t1@_link) tt1 on t1.a=tt1.a set t1.b=tt1.b; 
ERROR 1105 (HY000): DBLink-Table does not support update operation.

5.不支持merge语句using源部分使用dblink查询:
merge into x1 tt1 using (select * from x1@olink) tt on (tt1.id2=tt.id2) 
when matched then update set tt1.id3=tt.id3
ERROR 1105 (HY000): DBLink-Table does not support update operation.

6.不支持function中使用dblink查询:
delimiter //
create function dfunc(id int) returns int
begin
declare fid int default 1;
set fid = (select id2 from x1@olink where id2=id limit 1);
return fid;
end //
This version of GBase doesn't yet support 'use dblink table in a FUNCTION/TRIGGER/VIEW.

数据推送和直通模式

  • 支持insert …select语句的目标表为dblink远端表,支持通过 insert …select 语句将本地数据推送到远端;
  • 本地数据推送到远端oracle表时需注意:oracle字符类型是字节为单位,而gbase字符类型是字符为单位,所以gbase源表和oracle目标表含有相同类型字段char(255)时,该字段的数据推送到oracle可能会出现插入时越界情况;
  • 同时支持passthrough 直通模式,即GCluster不对指定的SQL做语法解析,请求网关直接转发指定的SQL到远端数据库执行,通过 passthrough 模式可实现对远端表进行 insert…values,delete, update 等操作。

数据推送SQL语句

  • 语法与insert into…select..语句相同,支持目标表为dblink远端表,如:

insert into t1@testlink select a, b from t1;

  • 支持指定目标列,如:

insert into t1@testlink(a, b) select a, b from t1;

  • 前提条件:dblink对象对应的网关中的数据源配置的用户需有对目标表的insert 权限。 
  • 只支持自动提交模式,不支持分布式事务,若当前执行gcluster的session 状态为非自动提交模式将报错:

    Can not join the distributed transaction in session

  • 需保证一条推送SQL语句的原子性,数据要么全部成功推送到远端,要么全部失败。

注意:

  • GBase 8a MPP Cluster的空串数据通过dblink推送至ORACLE,ORACLE存储为NULL,即ORACLE不区分空串和NULL,用 is null可以查询;

  • GBase 8a MPP Cluster则区分空串和NULL。


直通模式SQL 语句

请求网关直接转发sql语句到dblink对象对应的远端数据库执行。

语法:

passthrough link DBLINK_NAME using ‘SQL_STATEMENT’;

参数:

  • DBLINK_NAME为dbink对象的名称;
  • SQL_STATEMENT为SQL语句,即远端数据库执行的SQL语句;
  • 支持的SQL语句,除以下支持的SQL类型外,其它类型的SQL将报错:

insert into … values…
insert into …select ….
delete
update
truncate
merge
create
drop

示例:

passthrough link testlink using ‘create table t1(a int, b int)’;
passthrough link testlink using ‘insert into t1 values(1,2)’;
passthrough link testlink using ‘update t1 set a=11 where a=1’;
passthrough link testlink using ‘delete from t1 where a=11’;
passthrough link testlink using ‘truncate table t1’;
passthourgh link testlink using ‘drop table t1’;
passthourgh link testlink using ‘select * from t2’ – 报错: SQL command is not supported: ‘select * from t2’

约束与限制:

  • dblink对象对应的网关中的数据源配置的用户需有相应的 SQL执行权限;
  • 只支持自动提交模式。若当前执行passthrough命令的gclusterd的session 状态为非自动提交模式将报错:

    Can not join the distributed transaction in session

  • 不支持 sql_statement 前面有注释。


DBLINK参数配置

1. _t_gcluster_dblink_clear_syntax_constraints

取值:[0|1|2]

默认值:0

说明:dblink sql 优化

值为0:不进行优化;

值为1,2:以下dblink语法约束不再限制,自动对查询语法进行优化:

dblink表禁止与本地表,from子查询,非同源的dblink表产生直接join关系。

主查询为dblink表,其子查询中(相关,非相关,标量,from子查询)禁止出现本地表,非同源的dblink表,异构数据库的dblink表只允许出现from子查询中。

针对1和2的区别:

SQL涉及的表都为dblink表,并且同源,并为异构

select a+b as ab from t1@olink where a > 1;  

2:优化为: 

select ab from (select a+b as ab from t1@olink a > 1) opt_dblink_tmp;

1:优化为:

select a+b as ab from (select a,b from t1@olink where a > 1) t1;

0:报错

修改方式:可使用set语句修改值也可在配置文件中修改值。适用于session、global范围均可。

2._t_gcluster_dblink_generate_interim_table_policy

取值:[0|1]

默认值:1

说明:用于控制针对集群计划dblink拉表步骤,目标临时表的结构生成方式。

0:使用自动评估方式,由投影表达式结果的数据类型确定。

1:请求网关使用create...select ...limi 0方式获取临时表的结构。相对评估方式,临时表的列的数据类型评估更准确。

修改方式:可使用set语句修改值也可在配置文件中修改值。适用于session、global范围均可。

3._t_gcluster_dblink_ignore_use_db

取值:[0|1]

默认值1。 

说明:dblink连接中收到use db指令后知否忽略切换db。

1,dblink执行时,执行端和源端会建立一个session,该session会根据dblink的信息初始化一个db,use db时不做切换db处理。同一个连接执行多个db的dblink会存在问题。 

0,不忽略use db命令,切换db生效。 

4._t_gcluster_dblink_insert_select_optimization

取值:[0|1]

默认值:1

说明:dblink insert select优化

1:打开,查询计划生成计划时会尝试判断以下insert select 中的查询部分是否可以直接下发,如果可以则不建立临时表,直接插入目标表。

0:关闭,建立临时表方式。

修改方式:可使用set语句修改值也可在配置文件中修改值。适用于session、global范围均可。

5.gbase_dblink_gateway_ip

取值:IP

默认值:空

说明:dblink功能使用的网关的ip

修改方式:全局参数,在配置文件中赋值和修改。

6.gbase_dblink_gateway_port

取值:PORT

默认值:0

说明:dblink功能使用的网关的port

修改方式:全局参数,在配置文件中赋值和修改。

7.gbase_dblink_standby_gateway_ip

取值:IP

默认值:空

说明:dblink功能使用的备选网关的的ip,用于高可用功能

修改方式:全局参数,在配置文件中赋值和修改。

8.gbase_dblink_standby_gateway_port

取值:PORT

默认值:空

说明:dblink功能使用的备选网关的的port,用于高可用功能

修改方式:全局参数,在配置文件中赋值和修改。

9.gcluster_dblink_direct_data_exchange

取值:[0|1]

默认值:1

说明:网关的拉数据方式,对于版本差异较大的两个GBase 8a集群,因其SIS模块版本不兼容,需要设置该参数为0。

0: 将select结果转为insert values语句插入到目标集群中,主要用于异构

1: SIS模式

修改方式:可使用set语句修改值也可在配置文件中修改值。适用于session、global范围均可。

10.gcluster_dblink_orcl_case_sensitive

取值:[0|1]

默认值:0

说明:表名大小写控制

0:oracle 默认对象名称都为大写,创建表时,表名不加双引号,自动转为大写。

1:表名大小写敏感。不做大小写转换, 与SQL书写时一致。

修改方式:可使用set语句修改值也可在配置文件中修改值。适用于session、global范围均可。
 

评论

登录后才可以发表评论