• 金仓数据库KingbaseES服务器应用参考手册--2. initdb


    目录

    2.1. 简介:

    2.2. 命令行参数:

    2.3. 参数说明:

    2.4. 环境变量:

    2.5. 错误信息诊断:

    2.6. 备注:

    2.7. 参考:


    2.1. 简介:

    initdb— 创建一个新的KingbaseES数据库集簇。

    initdb创建一个新的KingbaseES数据库集簇。一个数据库集簇是由一个单一服务器实例管理的数据库的集合。

    一个数据库集簇的创建包括创建存放数据库数据的目录、生成共享目录表(属于整个集簇而不是任何特定数据库的表)并且创建template0template1securitytest数据库。当后来创建一个新的数据库时,任何在template1数据库中的东西都会被复制(因此,任何已安装在template1中的东西都会被自动地复制到后来创建的每一个数据库中)。test数据库是便于用户、工具和第三方应用使用的默认数据库。

    尽管initdb将尝试创建指定的数据目录,它可能没有权限(如果想要的数据目录的父目录被根用户拥有)。要在这样一种设置中初始化,作为 root 创建一个空数据目录,然后使用chown将该目录赋予给数据库用户账户,再然后su成为该数据库用户并运行initdb

    initdb必须以将拥有该服务器进程的用户运行,因为该服务器需要访问initdb创建的文件和目录。因为该服务器不能作为 root 运行,你不能以 root 运行initdb(事实上它会拒绝这样做)。

    由于安全原因,由initdb创建的新集簇默认将只能由集簇拥有者访问。--allow-group-access选项允许与集簇拥有者同组的任何用户读取集簇中的文件。这对非特权用户执行备份很有用。

    initdb初始化该数据库集簇的默认区域和字符集编码。当一个数据库被创建时,其字符集编码、排序顺序(LC_COLLATE)和字符集类(LC_CTYPE,例如大写、小写、数字)可以被独立设置。initdbtemplate1数据库确定那些设置,它们将作为所有其他数据库的默认值。

    要修改默认排序顺序或字符集类,使用--lc-collate--lc-ctype选项。除CPOSIX之外的排序顺序会有性能损失。由于这些原因,在运行initdb时选择正确的区域很重要。

    余下的区域分类可以在服务器启动之后改变。你也可以使用--locale来为所有区域分类设置默认值,包括排序顺序和字符集类。所有服务器区域值(lc_*)可以通过SHOW ALL显示。详见 区域支持 。

    要修改默认编码,使用--encoding。详见 字符集 .

    2.2. 命令行参数

    initdb [option ...] [ --kingbase_data | -D ] directory

    2.3. 参数说明:

    -A authmethod

    --auth=authmethod

    这个选项为本地用户指定在sys_hba.conf中使用的默认认证方法(hostlocal行)。initdb将使用指定的认证方法为非复制连接以及复制连接填充sys_hba.conf项。

    为了安装方便,md5是默认值。

    --auth-host=authmethod

    这个选项为通过 TCP/IP 连接的本地用户指定在sys_hba.conf中使用的认证方法(host行)。

    --auth-local=authmethod

    这个选项为通过 Unix 域套接字连接的本地用户指定在sys_hba.conf中使用的认证方法(local行)。

    -D directory

    --kingbase_data=directory

    这个选项指定数据库集簇应该存放的目录。这是initdb要求的唯一信息,但是你可以通过设定KINGBASE_DATA环境变量来避免书写它,这很方便因为之后数据库服务器(kingbase)可以使用同一个变量来找到数据库目录。

    -E encoding

    --encoding=encoding

    选择模板数据库的编码。这也将是后来创建的任何数据库的默认编码,除非你覆盖它。默认值来自于区域,或者如果该值不起作用则为SQL_ASCII。KingbaseES服务器所支持的字符集在 字符集 中描述。

    -e algorithm

    --encrypt-algorithm=algorithm

    这个选项指定数据库集簇使用的透明加密算法,默认为SM4(可选RC4)

    -g

    --allow-group-access

    允许与集簇拥有者同组的用户读取initdb创建的所有集簇文件。 Windows会忽略此选项,因为它不支持POSIX样式的组权限。

    -k

    --data-checksums

    在数据页面上使用校验码来帮助检测 I/O 系统造成的损坏。启用校验码将会引起显著的性能损失。如果被设置,在所有数据库中会为所有对象计算校验码。 所有的检验故障均会在sys_stat_database视图中被报告。

    --locale=locale

    为数据库集簇设置默认区域。如果这个选项没有被指定,该区域将从initdb所运行的环境中继承。区域支持在 区域支持 中描述。

    --lc-collate=locale

    --lc-ctype=locale

    --lc-messages=locale

    --lc-monetary=locale

    --lc-numeric=locale

    --lc-time=locale

    --locale相似,但是只在指定的分类中设置区域。

    -m

    设置KingbaseES V8.6 初始化时的兼容模式。默认情况下(初始化时不设置此参数)为兼容Oracle模式。 支持四种参数值: pg , oracle , 0 , 1 ;其中 pg 和 0 表示兼容PostgreSQL模式, oracle 和 1 表示兼容Oracle模式。 注意:参数值 pg 和 oracle 不区分大小写。

    --no-locale

    等效于--locale=C

    -N

    --no-sync

    默认情况下,initdb将等待所有文件被安全地写到磁盘之后再返回。这个选项会导致initdb不等待就返回,后续操作系统如果崩溃可能损坏数据目录。这个选项不适用于生产环境。

    --pwfile=filename

    initdb从一个文件读取数据库超级用户的口令。该文件的第一行被当作口令。

    -S

    --sync-only

    安全地把所有数据库文件写入到磁盘并退出。这个指令不会执行任何数据库初始化操作。

    -T config

    --text-search-config=config

    设置默认的文本搜索配置。详见参数 default_text_search_config

    -U username

    --username=username

    选择数据库超级用户的用户名。这个的默认值是实际运行initdb的用户的名称。超级用户的名字是什么真的不重要,但是你可以选择保留常用的名字kingbase,即使操作系统的用户名不同。

    --pwprompt

    initdb提示要求为数据库超级用户给予一个口令。如果你没有计划使用口令认证,这就不重要。否则在你设置一个口令之前你就无法使用口令认证。

    -X directory

    --waldir=directory

    这个选项指定预写式日志会被存储在哪个目录中。

    --wal-segsize=size

    设置WAL段尺寸,以兆字节为单位。这是WAL日志中每个文件的尺寸。默认的尺寸为16兆字节。该值必须位于2的1次幂和1024次幂(兆字节)之间。这个选项只能在初始化期间设置,并且之后不能更改。

    调整这个值来控制WAL日志传送或者归档可能会有用。此外,在有大量WAL的数据库中,每个目录中数量巨大的WAL文件可能会成为性能和管理问题。增加WAL文件尺寸将会降低WAL文件的数量。

    --enable-ci

    启用字符串大小写不敏感比较。设置此参数则以大小写不敏感的方式进行字符串比较。

    -t

    --aud-tblspc-enc

    允许审计表空间加密

    -K KEY

    --enckey=KEY

    设置审计表空间加密密钥

    -M

    --passwordcheck

    允许开启密码复杂度检查

    -I

    --identity-pwdexp

    允许开启用户密码过期检查

    --saoname=newsaoname

    对数据库审计员重命名,未设置时默认为 sao 。

    --ssoname=newssoname

    对数据库安全员重命名,未设置时默认为 sso 。

    --block-size=size

    设置表块大小,以千字节为单位。默认的尺寸为8千字节。该值必须是2的整数次幂,并且在1到32之间。这个选项只能在初始化期间设置,并且之后不能更改。

    其他较少使用的选项:

    -d

    --debug

    打印来自引导后端的调试输出以及详细消息。引导后端被程序initdb用来创建目录表。这个选项会生成大量详细流程输出。

    -L directory

    指定initdb应从哪里寻找输入文件来初始化数据库集簇。通常无需设置。需要显式地指定它们的位置时,会进行告知。

    -n

    --no-clean

    默认情况下,当initdb确定已发生错误阻止它完整地创建数据库集簇时,会移除本次执行创建的任何文件。这个选项会禁止这种移除,用于调试场景。

    其他选项:

    -V

    --version

    打印initdb版本并退出。

    -?

    --help

    显示有关initdb命令行参数的帮助并退出。

    2.4. 环境变量:

    KINGBASE_DATA

    指定数据库集簇应该被存放的目录,可以使用-D选项覆盖。

    SYS_COLOR

    指定是否在诊断消息中使用颜色。可能取值为alwaysauto和 never

    TZ

    指定创建的数据集簇的默认时区。值应该是一个完整的时区名称(见 时区 )。

    和大部分其他KingbaseES工具相似,这个工具也使用libkci。

    2.5. 错误信息诊断:

    2.6. 备注:

    initdb可以通过sys_ctl initdb被调用。

    2.7. 参考:

    sys_ctl , kingbase

  • 相关阅读:
    什么是IP 欺骗以及如何防范?
    results=DBHelper.exeUpdate(conn,cur,exesql)是什么意思
    【线性存储结构总结】
    (四)Spring Security Oauth2.0 源码分析--客户端端鉴权(token校验)
    C++ 火车调度
    解决aspose在linux上中文乱码的方法
    顶级人工智能会议接收率及信息
    8┃音视频直播系统之 WebRTC 信令系统实现以及通讯核心并实现视频通话
    使用原子变量保证线程的唯一性
    MIT 6.824 -- Cache Consistency -- 11
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/126406983