Kingbase数据库大小写敏感说明及转换


php-feng
feng 2023-02-02 09:49:06 66963
分类专栏: 资讯 标签: 国产数据库

Kingbase数据库大小写敏感转换

 

Author:人大金仓‐数据库工程师‐何敏

Date : 2020‐07‐22

 

 

 

1     大小写敏感说明

大小写敏感是在数据库安装时进行设置的,是实例级参数,无法针对数据库单独进行设置。如果需要修改大小写敏感设置,首选重装数据库;如果对数据库比较熟悉,可以通过initdb工具对数据库实例重新初始化,下面我们会详细介绍:

1.1   大小写敏感的特点

在安装数据库时,默认是大小写敏感的,其特性和Oracle基本一致:

1) 没有使用界定标识符(双引号)引起来的表名、列名,会默认转为大写。

2) 使用界定标识符引起来的表名、列名,将以引起来的大小写进行存储,以及后续的查询匹配。

1.2   大小写不敏感的特点

在安装时,如果选择了case_insensitive,则数据库会被初始化为大小写不敏感。大小写不敏感的表现:

1) 在创建表时,没有使用界定标识符(双引号)引起来的表名、列名,默认以当前输入的大小写进行存储,查询时也以全小写进行匹配。

2) 在查询时,没有使用界定标识符(双引号)引起来的表名、列名,默认都转为小写进行匹配。

3) 使用界定标识符引起来的表名、列名,将以引起来的大小写进行存储,以及后续的查询匹配。

1.3   比较和总结

1) 不管大小写敏感与否,使用双引号引起来的表名、列名,都是按照引起来的大小写进行匹配。只有不使用界定标识符时有很大的差异。

2) 大小写敏感,适合于迁移Oracle数据库。大小写不敏感,适合于迁移MySQL和SQL Server数据库。

 

1.4   大小写敏感的查看

在数据库中,执行SQL语句即可查看:

SHOW case_sensitive;

 

on:表示大小写敏感。

off:表示大小写不敏感。

 

t1.png

 

 

2     方法一:重新安装数据库,选择大小写是否敏感

重新安装数据库时,如果数据库中有数据,一定要做好数据库备份,可以参考下面第三章的备份操作。

 

在重新安装的时候,选择大小写敏感,如下图所示:

勾选case_insensitive:表示大小写不敏感。

不勾选case_insensitive:表示大小写敏感。

 

t2.png

 

3     方法二:重新初始化数据库data目录,设置大小写敏感

下面的方法以Linux操作为例,Windows上对应的工具在安装目录\Server\bin下面。

3.1   备份原始数据

使用sys_dump将整个原始库dump出来,做备份,如:

‐bash‐4.1$ sys_dump ‐U SYSTEM ‐W kingbase ‐Fp test > test_20190819.dump

 

如果有多个数据库,需要对每个数据库进行单独备份。

3.2   停止数据库

‐bash‐4.1$ sys_ctl ‐D /dbdata/kingbase/v8/data stop

waiting for server to shut down.... done

server stopped

 

3.3   备份数据库data目录

注意:由于需要重新初始化数据库,需要将原来的data目录清空,因此最好先把当前的data目录做一个备份。

 

‐bash‐4.1$ sudo cp ‐r /dbdata/kingbase/v8/data

/dbdata/kingbase/v8/data_back_20190819

3.4   清空原始目录

‐bash‐4.1$ rm ‐rf /dbdata/kingbase/v8/data/*

3.5   重新初始化数据库

3.5.1    重新初始化数据库为大小写不敏感

‐bash‐4.1$ initdb ‐E UTF‐8 ‐U SYSTEM ‐W Kingbase2019! ‐‐case‐insensitive ‐D

/dbdata/kingbase/v8/data

注意:这里的用户名和密码根据需要进行调整,最好是和之前保持一致

 

3.5.2    重新初始化数据库为大小写敏感

‐bash‐4.1$ initdb ‐E UTF‐8 ‐U SYSTEM ‐W Kingbase2019! ‐D /dbdata/kingbase/v8/data

注意:这里的用户名和密码根据需要进行调整,最好是和之前保持一致

3.6   同步数据库配置文件

可以简单的将备份的data目录中的对应配置文件拷贝到新的data目录中:

sys_hba.conf

kingbase.conf

3.7   启动数据库

‐bash‐4.1$ sys_ctl ‐D /dbdata/kingbase/v8/data start

3.8   为了方便,可以设置一些环境变量

‐bash‐4.1$ cat ~/.bash_profile

export KINGBASE_DATA=/dbdata/kingbase/v8/data/

export PATH=$PATH:/opt/Kingbase/ES/V8/Server/bin

export KINGBASE_PORT=54321

3.9   检查数据库是否已经启动

ksql ‐p 54321 ‐U SYSTEM ‐W Kingbase2019! ‐d test -c "select now();"

3.10 还原数据

‐bash‐4.1$ ksql ‐p 54321 ‐U SYSTEM ‐W Kingbase2019! ‐d test‐f test_20190819.dump

 

 

我需要使用大小写敏感的功能;按照上面的操作操作后,结果大小写还是不敏感的,哪操作不正确?有时间帮忙解答下。
[kingbase@localhost V8]$ kingbase -V
KINGBASE (KingbaseES) V008R006C003B0071
[kingbase@localhost V8]$ initdb -E UTF-8 -USYSTEM -W -D /home/kingbase/KingbaseES/V8/data
属于此数据库系统的文件宿主为用户 "kingbase".
此用户也必须为服务器进程的宿主.
数据库簇将使用本地化语言 "zh_CN.UTF-8"进行初始化.
initdb: could not find suitable text search configuration for locale "zh_CN.UTF-8"
缺省的文本搜索配置将会被设置到"simple"

The comparision of strings is case-sensitive.
禁止为数据页生成校验和.

输入新的超级用户口令:
再输入一遍:

创建目录 /home/kingbase/KingbaseES/V8/data ... 成功
正在创建子目录 ... 成功
选择动态共享内存实现 ......posix
选择默认最大联接数 (max_connections) ... 100
选择默认共享缓冲区大小 (shared_buffers) ... 128MB
selecting default time zone ... Asia/Shanghai
创建配置文件 ... 成功
Begin setup encrypt device
initializing the encrypt device ... 成功
正在运行自举脚本 ...成功
正在执行自举后初始化 ...成功
create security database ... 成功
load security database ... 成功
create initial audit rules ... 成功
同步数据到磁盘...成功

initdb: 警告: 为本地连接启用"trust"身份验证
你可以通过编辑 sys_hba.conf 更改或你下次
执行 initdb 时使用 -A或者--auth-local和--auth-host选项.

成功。您现在可以用下面的命令开启数据库服务器:

    sys_ctl -D /home/kingbase/KingbaseES/V8/data -l 日志文件 start

[kingbase@localhost V8]$ mkdir -p /home/kingbase/KingbaseES/V8/data/sys_log
[kingbase@localhost V8]$ /etc/init.d/kingbase8d start
Starting KingbaseES V8:
waiting for server to start.... done
server started
KingbaseES V8 started successfully
[kingbase@localhost V8]$ ksql -p 54321 -U SYSTEM -W -d test -c "SHOW case_sensitive;"
口令:
case_sensitive
----------------
on

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=19714
赞同 0
评论 0 条
fengL1
粉丝 4 发表 61 + 关注 私信
上周热门
银河麒麟添加网络打印机时,出现“client-error-not-possible”错误提示  1448
银河麒麟打印带有图像的文档时出错  1365
银河麒麟添加打印机时,出现“server-error-internal-error”  1151
统信桌面专业版【如何查询系统安装时间】  1073
统信操作系统各版本介绍  1070
统信桌面专业版【全盘安装UOS系统】介绍  1028
麒麟系统也能完整体验微信啦!  984
统信【启动盘制作工具】使用介绍  627
统信桌面专业版【一个U盘做多个系统启动盘】的方法  575
信刻全自动档案蓝光光盘检测一体机  484
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

添加我为好友,拉您入交流群!

请使用微信扫一扫!