人大金仓分析型数据库安装指南(三)

目录

前言

一、设置数据库日志级别

二、允许客户端连接

三、本地化设置

1、locale 的行为

2、故障排除

3、设置字符集

4、服务器客户端字符集转换


前言

        这篇向导主要讲述了如何快速安装、初始化和运行一个人大金仓分析型数据库,包括操作的步骤和运行的命令等。包括:安装完成后推荐执行的任务。


一、设置数据库日志级别

        数据库日志可记录数据库内部多种操作,包括数据库的启动和停止,执行出错的SQL 语句,数据库的连接和退出等。日志里也包括所有执行的 SQL 语句,根据不同的日志级别,日志内容也会相应增加减或减少。Master 和 Segment 实例维护各自的日志文件。数据库的日志可从 <data_dir>/pg_log/mpp-yyyy-mm-dd_hhmmss.csv 里查找。

        参数 log_statement 控制哪些 SQL 语句被记录。有效值是 none (off)、ddl、mod 和 all(所有语句)。ddl 记录所有数据定义语句,例如 CREATE、ALTER 和 DROP 语句。mod 记录所有 ddl 语句,外加数据修改语句例如 INSERT, UPDATE、DELETE、TRUNCATE, 和 COPY FROM。 如果 PREPARE、EXECUTE 和 EXPLAIN ANALYZE 包含合适类型的命令,它们也会被记录。对于使用扩展查询协议的客户端,当收到一个执行消息时会产生日志并且会包括绑定参数的值(任何内嵌的单引号会被双写)。log_statement 默认值为 all,应用开发阶段,默认值可增加日志量,方便应用查找错误。若线上业务量较大,log_statement = all 会使日志量较大,占用过多的存储资源。因此,若业务量大的应用系统里,推荐参数值为 ddl 或 mod。
        使用下面命令设置参数:
# gpconfig -c log_statement -v ddl

        使用下面命令生效:

# gpstop -u

二、允许客户端连接

        当数据库第一次初始化后,它仅允许 mppadmin (或其他运行 gpinitsystem 的系统用户)从本地访问。如果你想要其他用户或从其他机器上访问数据库,必须给它们访问权限。

三、本地化设置

        locale 设置会影响字符、排序和数字格式等。数据库使用标准ISO C和POSIX。数据初始化时会指定 locale。若不想用默认的 locale,可以在初始化时使用 -n 选项指定,例如:

$ gpinitsystem -c gpconfigs/gpinitsystem_config -n sv_SE

1、locale 的行为

        locale 的设置会影响下列的 SQL 特性:

  • ​ORDER BY 子句的排序规则
  • to_char 函数族
  • upper,lower 和 initcap 函数
  • LIKE 子句使用索引
        使用 locale 而不是 C 或 POSIX 的缺点是影响性能。会减低字符的处理性能并且影响LIKE子句使用索引。因此除非真正需要才会用 locale。

2、故障排除

        如果 locale 工作和预期不同,先检查操作系统是否配置正确。可使用 locale -a 来检测系统安装的 locale。

        查看数据库数据库是否使用 locale。 LC_COLLATE 和 LC_CTYPE 初始化完成后就不能再修改。LC_MESSAGE 和 LC_MONETARY 为 MASTER 主机和 Segment 主机环境变量决定,也可以修改不同实例的 postgresql.conf 文件修改这两个参数。可使用 SHOW 命令检查 Master 主机的 locale 设置。注意,所有的 Master 和 Segment 实例应该使用相同的 locale。

3、设置字符集

        gpinitsystem 初始化数据库时根据初始化配置文件中的 ENCODING 参数设置数据库默认字符集。默认字符集是 UNICODE 或 UTF-8。

=> CREATE DATABASE korean WITH ENCODING 'EUC_KR';
        尽管可以在创建数据库指定字符集。选择一个和 locale 不同的字符集是不明智的。

4、服务器客户端字符集转换

        数据库支持客户端和服务器之间的自动字符集转换。存在 Master 实例pg_conversion 的系统表。也可以使用 CREATE CONVERSION 创建新转换规则。
        客户端/服务器字符集转换:
服务器字符集
可用的客户端字符集
BIG5
不支持作为服务器编码
EUC_CN
EUC_CN,MULE_INTERNAL,UTF8
EUC_JP
EUC_JP,MULE_INTERNAL,SJIS,UTF8
EUC_KR
EUC_KR,MULE_INTERNAL,UTF8
EUC_TW
EUC_TW,BIG5,MULE_INTERNAL,UTF8
GB18030
不支持作为服务器编码
GBK
不支持作为服务器编码
ISO_8859_6
ISO_8859_6,UTF8
ISO_8859_7
ISO_8859_7,UTF8
ISO_8859_8
ISO_8859_8,UTF8
JOHAB
JOHAB,UTF8
LATIN1
LATIN1,MULE_INTERNAL,UTF8
LATIN2
LATIN2,MULE_INTERNAL,UTF8,WIN1250
LATIN3
LATIN3,MULE_INTERNAL,UTF8
LATIN4
LATIN4,MULE_INTERNAL,UTF8
LATIN5
LATIN5,UTF8
LATIN6
LATIN6,UTF8
LATIN7
LATIN7,UTF8
LATIN8
LATIN8,UTF8
LATIN9
LATIN9,UTF8
LATIN10
LATIN10,UTF8
SJIS
不支持作为服务器编码
SQL_ASCII
不支持作为服务器编码
UHC
不支持作为服务器编码
UTF8
不支持作为服务器编码
WIN866
WIN866
ISO_8859_5
KOI8,MULE_INTERNAL,UTF8,WIN1251
WIN874
WIN874,UTF8
WIN1250
WIN1250,LATIN2,MULE_INTERNAL,UTF8
WIN1251
WIN1251,ISO_8859_5,KOI8,MULE _INTERNAL,UTF8,WIN866
WIN1252
WIN1252,UTF8
WIN1253
WIN1253,UTF8
WIN1254
WIN1254,UTF8
WIN1255
WIN1255,UTF8
WIN1256
WIN1256,UTF8
WIN1257
WIN1257,UTF8
WIN1258
WIN1258,UTF8
ISO_8859_5
ISO_8859_5,KOI8,MULE_INTERNAL,UTF8,WIN866,WIN1251
KOI8
KOI8,ISO_8859_5,MULE_INTERNAL,UTF8,WIN866,WIN1251
        使用自动数据字符集转换,可以告诉服务器客户端字符集,有多种方式指定:在 psql 里使用 encoding 命令,允许在线修改客户端编码。使用 SET client_encoding TO 命令:
=> SET CLIENT_ENCODING TO 'value';
        查询当前客户端编码:
=> SHOW client_encoding;

        使用环境变量 KICLIENTENCODING。客户端连接数据库时会自动选择环境变量指定的编码。上述方法可以覆盖使用环境变量指定的客户端编码。

        配置文件中指定 client_encoding。若在 Master 实例的 postgresql.conf 文件指定 client_encoding,新的连接客户端编码则为 client_encoding 指定。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值