使用此命令创建数据库之前,请先创建管理域并注册 HADB 软件包。如果在运行 hadbm create 时未执行这两步,则该命令将隐式执行它们。尽管这看起来可能更省事,但是任何命令的失败都可能会使调试变得困难。此外,hadbm create 不是原子操作,也就是说,如果任一隐式命令失败,执行成功的命令将不会被回滚。因此,最好只在创建域并注册 HADB 软件包之后创建数据库。
例如,如果 hadbm createdomain 和 hadbm registerpackage 执行成功,但 hadbm create database 失败,则 hadbm createdomain 和 hadbm registerpackage 所做的更改将保留下来。
创建管理域。
有关更多信息,请参见创建管理域。
注册 HADB 软件包。
有关更多信息,请参见注册 HADB 软件包。
使用 hadbm create 命令创建数据库。
有关命令语法的信息,请参见以下部分。
dbname 操作数指定数据库名称,该名称必须唯一。为了确保数据库名称唯一,请使用 hadbm list 命令列出现有数据库名称。请使用默认数据库名称,除非您需要创建多个数据库。例如,要在同一组 HADB 计算机上创建具有独立数据库的多个群集,请为每个群集使用单独的数据库名称。
hadbm create 命令将错误消息写入控制台而不是日志文件。
表 3–7 介绍了特殊的 hadbm create 命令选项。有关其他命令选项的说明,请参见常规选项。
表 3–7 hadbm create 选项
选项(短形式) |
说明 |
默认值 |
---|---|---|
-a |
每个节点上的数据设备数目(在 1 至 8 之间,包括 1 和 8)。数据设备从 0 开始编号。 |
1 |
-d |
设备的路径。有四种设备:
|
Solaris 和 Linux:/var/opt/SUNWhadb Windows:C:\Sun\AppServer \SUNWhadb\vers,其中 vers 是 HADB 的版本号。 默认值由管理代理配置文件中的 ma.server.dbdevicepath 指定。有关详细信息,请参见配置文件。 |
-z |
每个节点的设备大小。有关更多信息,请参见指定设备大小。 要增加设备大小,请参见为现有节点添加存储空间。 |
1024 MB 最大值小于操作系统文件的最大大小或为 256 GB。最小值为: (4 x LogbufferSize + 16MB) / n 其中 n 为选项 --datadevices 指定的数据设备数。 |
-t |
历史文件的路径。此路径必须已存在并且可写。 有关历史文件的更多信息,请参见清除和归档历史文件。 |
默认值由管理代理配置文件中的 ma.server.dbhistorypath 指定。有关详细信息,请参见配置文件。 Solaris 和 Linux:/var/opt/SUNWhadb 在 Windows 上:REPLACEDIR(运行时由实际 URL 替换。) |
-H |
数据库节点的以逗号分隔的主机名或 IP 地址(仅限于 IPv4)列表。使用 IP 地址以避免依赖 DNS 查找。主机名必须为绝对主机名。不能使用 localhost 或 127.0.0.1 作为主机名。 有关更多信息,请参见指定主机。 |
无 |
--package=name -k |
HADB 软件包的名称(版本)。如果未找到该软件包,则注册默认软件包。 此选项已过时。使用 hadbm registerpackage 命令在域中注册软件包。 |
无 |
--packagepath=path-L |
HADB 软件包的路径。仅当未在域中注册软件包时使用。 此选项已过时。使用 hadbm registerpackage 命令在域中注册软件包。 |
无 |
-b |
节点 0 所使用的端口基准号。从该基准号开始,以 20 为增量自动为后续节点指定端口基准号。每个节点均使用其端口基准号和接下来的五个连续编号端口。 要在一台计算机上运行几个数据库,请制订明确分配端口号的计划。 |
15200 |
-s |
备用节点的数目。此数目必须为偶数,并且必须小于 --hosts 选项中指定的节点数目。 |
0 |
-S |
以逗号分隔的数据库配置属性列表(采用 name =value 格式)。有关数据库配置属性的说明,请参见清除和归档历史文件。 |
无 |
以下命令是创建数据库的一个示例:
hadbm create --spares 2 --devicesize 1024 --hosts n0,n1,n2,n3,n4,n5
使用 --hosts 选项为数据库中的节点指定以逗号分隔的主机名或 IP 地址列表。hadbm create 命令为列表中的每个主机名(或 IP 地址)创建一个节点。节点的数目必须为偶数。使用重复的主机名将在同一台计算机上创建具有不同端口号的多个节点。确保同一台计算机上的节点不是镜像节点,并且不是来自不同的 DRU。
节点将按照在此选项中列出的顺序从零开始编号。第一对镜像节点是节点零 (0) 和一 (1),第二对是二 (2) 和三 (3),依此类推。奇数编号的节点位于一个 DRU 中,偶数编号的节点位于另一个 DRU 中。如果使用 --spares 选项,则备用节点为具有最大编号的那些节点。
有关配置双网络接口的信息,请参见配置网络冗余。
使用 --devicesize 选项指定设备大小。建议的设备大小为:
(4x / nd + 4l/d) / 0.99
其中
x 为用户数据的总大小
n 为节点的数目(由 --hosts 选项指定)
d 为每个节点的设备数目(由 --datadevices 选项指定)
l 为日志缓冲区的大小(由属性 LogBufferSize 指定)
如果可能发生重新分段(例如,使用 hadbm addnodes),则建议的设备大小为:
(8x / nd + 4l/d) / 0.99
要为每个节点或服务设置不同的设备路径,请使用 hadbm create 的 --set 选项。有四种类型的设备:DataDevice、NiLogDevice(节点内部日志设备)、RelalgDevice(关系代数查询设备)和 NoManDevice(节点管理器设备)。每个 name=value 对的语法如下,其中仅当 device 为 DataDevice 时才需要 -devno:
node-nodeno.device-devno.Devicepath
例如:
--set Node-0.DataDevice-0.DevicePath=/disk0, Node-1.DataDevice-0.DevicePath=/disk 1
您还可以为历史文件设置异构路径,如下所示:
node-nodeno.historypath=path
有关历史文件的信息,请参见清除和归档历史文件。
所有不是为特定节点或设备设置的设备路径的默认值都为 --devicepath 的值。
使用 hadbm set 和 hadbm addnodes 命令更改设备路径和历史文件的位置。
如果创建数据库时遇到困难,请检查以下内容:
确保已在所有主机上启动管理代理并定义了 HADB 域。有关详细信息,请参见启动管理代理。
必须将文件和目录权限设置为允许以下用户对安装、历史记录、设备和配置路径具有读取、写入和执行权限:
Sun Java System Application Server 管理用户(在安装过程中设置)
HADB 系统用户
有关设置用户权限的详细信息,请参见设置 HADB 前的准备工作。
Application Server 和 HADB 端口指定不能与同一计算机上的其他端口指定发生冲突。建议的默认端口指定为:
Sun Java System Message Queue:7676
IIOP:3700
HTTP 服务器:80
管理服务器:4848
HADB 节点:每个节点使用六个连续端口。例如,对于默认端口 15200,节点 0 使用 15200 至 15205,节点 1 使用 15220 至 15225,依此类推。
磁盘空间必须足够;请参见《Sun Java System Application Server 9.1 发行说明》。