官方系列教材 - 数据库适配

实战如何让joomla迁移在国产数据库

大小写敏感是在数据库安装时进行设置的,是实例级参数,无法针对数据库单独进行设置。如果需要修改大小写敏感设置,首选重装数据库;如果对数据库比较熟悉,可以通过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上对应的工具在安装目录\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

作者: 樱木花道

Joomla程序员,从J1.5到J4.x始终都在做Joomla相关开发定制工作,有超过10年行业经验,国内Joomla扩展开发商ZMAX团队的核心成员

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前

第1章 Joomla入门教程

第3章 C计划

第5章 E计划

第6章 H计划

第7章 G计划

第9章 运行环境

第11章 主从与集群

第12章 模块开发

第13章 插件开发

第14章 j2.x组件开发教程

第15章 页面定制教程

第16章 页面构造器

第17章 joomla升级

第18章 其他系统迁移

第19章 流量翻倍计划