zoukankan      html  css  js  c++  java
  • Kingbase数据库大小写敏感说明及转换

    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:表示大小写不敏感。

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

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

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

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

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

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

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

    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

    转载 https://bbs.kingbase.com.cn/wenda/question/137.html

  • 相关阅读:
    Activity生命周期回顾
    Android Camera拍照 压缩
    Android获取相册图片
    Android 常用系统控件
    Java synchronized详解
    Android输入法开发
    Android Toast和Notification
    Extjs 自定义控件
    在Extjs中动态增加控件
    数据库中存储js代码无法json解析
  • 原文地址:https://www.cnblogs.com/hxb2016/p/14302618.html
Copyright © 2011-2022 走看看