tenant create 参数:创建 tenant 数据库(SQL 管理 API)

随同 admin()task() 函数,使用 tenant create 参数来创建 tenant 数据库。

语法

元素 描述 关键考虑
database_name tenant 数据库名。 在数据库服务器的数据库名中必须是唯一的。该数据库标记为 tenant 数据库。
dbspace dbspace 的名称。 罗列要在其中存储永久用户数据的一个或多个 dbspace。用逗号分隔 dbspace 名。每一 dbspace 必须存在且为空。

tenant 数据库必须存储在一个或多个专用的 dbspace 中。仅在 tenant 数据库中创建的对象可存储在该专用的 dbspace 中。

blobspace blobspace 的名称。 如果 tenant 数据库会包含简单大对象,则罗列一个或多个 blobspace。用逗号分隔 blobspace 名称。每一 blobspace 必须存在且为空。

仅存储在 tenant 数据库表中的简单大对象可存储在该专用的 blobspace 中。

sbspace sbspace 的名称。 如果 tenant 数据库会包含智能大对象,则罗列一个或多个 sbspace。用逗号分隔 sbspace。每一 sbspace 必须存在且为空。

智能大对象可包括 BLOB 或 CLOB 数据,以及那些过大以至于不适合在行中的表统计信息。 有些 GBase 8s 特性,诸如 Enterprise Replication 和基本文本搜索,需要 sbspace。

仅存储在 tenant 数据库表中的智能大对象可存储在专用的 sbspace 中。

vpclass 虚拟处理器类的名称。 在其中为 tenant 数据库运行会话线程的 tenant 虚拟处理器类。如果您省略这个属性,则在 CPU 虚拟处理器上运行会话线程。

vpclass_name 限定为 8 字符。最多可创建 200 个 tenant 虚拟处理器。

如果 vpclass_name 是唯一的,则您可创建新的 tenant 虚拟处理器类。如果存在 vpclass_name,则该 tenant 数据库与其他 tenant 数据库共享该类。

vps 要运行的虚拟处理器数。 如果您未包括 num=vps 属性,则启动一个虚拟处理器。
tempdbspace 临时 dbspace 的名称。 罗列要在其中存储临时用户数据的一个或多个临时 dbspace。用逗号分隔临时 dbspace 名称。如果省略这个属性,则临时表存储在由 DBSPACETEMP 配置参数或环境变量指定的临时 dbspace 中。

您可通过设置 DBSPACETEMP 环境变量取代会话的 dbspacetemp 属性。

tempsbspace 临时 sbspace 的名称。 罗列在其中存储临时智能大对象的一个或多个临时 sbspace。用逗号分隔临时 sbspace 名称。如果您省略这个属性,则临时智能大对象存储在由 SBSPACETEMP 配置参数指定的临时 sbspaces 中。
locks 对于没有 DBA 权限的用户,会话的锁的最大数。 locks 的值必须为 500 - 2147483647。如果您省略这个属性,则由 SESSION_LIMIT_LOCKS 配置参数设置锁的数目。如果 SESSION_LIMIT_LOCKS 配置参数未设置,则会话的锁的最大数目为 2147483647。

您可通过设置 IFX_SESSION_LIMIT_LOCKS 环境选项取代会话的 session_limit_locks 属性。

log_mode 日志模式定义:
UNBUFFERED
无缓冲区的数据库日志记录。这是缺省值。
ANSI
符合 ANSI 的数据库日志记录。
BUFFERED
有缓冲区的数据库日志记录。
NONE
无数据库日志记录。
如果您省略这个属性,则日志记录模式为无缓冲区的。
case 大小写定义:
INSENSITIVE
不区分大小写。这是缺省值。
SENSITIVE
区分大小写。
如果您省略这个属性,则数据库不缺分大小写。
locale 数据库的语言环境。 locale 的值与 DB_LOCALE 环境变量的值相同。

如果您省略这个属性。则由 DB_LOCALE 环境变量的值设置语言环境。缺省语言环境为 US English。

catalog_dbspace 存储数据库目录的 dbspace 的名称。必须是由 dbspace 属性罗列的 dbspace 的名称。 如果您省略这个属性,则 dbspace 属性列表中的第一个 dbspace 包含数据库目录。

用法

您必须拥有 DBA 权限或被授予 TENANT 权限来运行这个命令。

随同 admin()task() 函数,运行 tenant create 参数来创建 tenant 数据库。创建该数据库的用户被授予 DBA 权限。您可在 sysadmin 数据库中的 tenant 中查看 tenant 数据库属性。

下列语句创建名为 companyA 的 tenant 数据库:
EXECUTE FUNCTION task('tenant create', 'companyA', 
        '{dbspace:"companyA_dbs1,companyA_dbs2,companyA_dbs3", 
        sbspace:"companyA_sbs", 
        vpclass:"tvp_A,num=6", 
        dbspacetemp:"companyA_tdbs",
        session_limit_locks:"1000",
        logmode:"ansi"}'
        );

该 tenant 数据库有三个专用的 dbspace、一个专用的 sbspace、六个 tenant 虚拟处理器、一个专用的临时 dbspace,每一会话限定 1000 个锁,且 logmode 为 ANSI。该 tenant 数据库没有 blobspace,在由 SBSPACETEMP 配置参数指定的 sbspace 中存储临时智能大对象,且区分大小写。