暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

华为openGauss 配置区域和字符集

华为高斯 2020-06-01
5963

区域和字符集在安装过程中通过指定初始化GUC参数来控制,考虑到这两个参数的重要性,在此单独对这两个参数进行详细说明。

相关概念

区域:

  • 区域是指应用中考虑字母、排序、数字格式等与文化相关的问题。
  • 使用gs_install脚本初始化一个数据库时会初始化区域。缺省时,gs_install脚本将会按照操作系统默认的区域初始化数据库。因此,如果操作系统的默认区域与用户规划的相同,则初始化数据库时不需要再设置。

字符集(编码格式):

  • openGauss支持GBK、UTF-8和Latin1编码格式。
  • 使用gs_install脚本初始化数据库时会初始化字符集。缺省时,gs_install脚本将会按照操作系统默认区域的字符集来初始化数据库。在创建数据库的时候是可以修改默认字符集。因此,多个数据库可以设置为不同的字符集。

规划原则和方法

  • 规划字符集,选择原则和设置方法请参见表1

    表 1 字符集

    字符集

    规划原则

    设置方法

    GBK

    如果数据库只需要支持中文,数据量很大,性能要求也很高,那就应该选择双字节定长编码的中文字符集。对openGauss来说,中文字符集目前只能选择GBK 。

    • 在安装数据库时指定初始化参数-E。
    • 通过SQL语句创建数据库时指定ENCODING参数。

    详细请参见示例

    UTF-8

    如果应用程序要处理各种各样的文字,或者将处理结果发布到使用不同语言的国家或地区,就应该选择Unicode字符集。对openGauss来说,Unicode字符集目前只能选择UTF-8 。

    Latin1

    如果数据库只需要支持ASCII收录的字符、西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号,则可以选择Latin1。

    说明:
    - openGauss支持字符集的多种写法:gbk/GBK、UTF-8/UTF8/uft8/utf-8和Latine1/latine1。
    - 安装时若不指定字符集,默认字符集为SQL_ASCII,若想指定,请在安装时指定,具体操作请参见示例

  • 规划区域。

    1. 检查与指定字符集(假设为UTF-8)匹配的区域。

      locale -a |grep utf8

      显示类似如下信息,其中en_US.utf8表示区域en_US支持UTF-8编码。

      ...... en_SG.utf8 en_US.utf8 ......

    2. 在初始化数据库时设置区域,设置方法请参见示例

示例

示例1:在初始化数据库时,指定数据库初始化的字符集为UTF-8,区域为zh_CN.UTF-8。

gs_initdb -E UTF-8 --locale=zh_CN.UTF-8 /opt/gaussdb/data/data_n1 --nodename dn1 -w "Bigdata@123"

/opt/gaussdb/data/data_n1为安装后的DBnode目录,Bigdata@123为数据库用户密码。

显示类似如下信息:

``` The files belonging to this database system will be owned by user "xlnha". This user must also own the server process.

The database cluster will be initialized with locale "zh_CN.UTF-8". gs_initdb: could not find suitable text search configuration for locale "zh_CN.UTF-8" The default text search configuration will be set to "simple".

fixing permissions on existing directory /opt/gaussdb/data1 ... ok creating subdirectories ... ok selecting default max_connections ... 100 selecting default shared_buffers ... 32MB creating configuration files ... ok ...... ```

示例2:使用SQL语句创建数据库时,指定数据库的字符集为GBK。

gsql -d postgres -p 1255

postgres=# CREATE DATABASE mydb WITH ENCODING 'GBK' template = template0;

显示类似如下信息:

CREATE DATABASE

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

文集目录
暂无数据