 | 安装和配置 IBM solidDB
这个小节讲解 IBM solidDB 的安装和配置,以及如何创建表和索引。在这个小节中,您将:
- 安装 IBM solidDB 产品代码
- 创建和配置前端数据库,包括创建用于实践的表
- 在 DB2 样例数据库中创建表和索引
基本说明
- 使用有效的 userid 登录机器。
- 确保具备机器的 IP 地址,因为随后要用到。打开一个终端窗口检查 IP 地址。
- 为样例和安装映像创建一个目录。本教程其余部分将假设您已经创建了目录。
清单 1. 创建样例和安装映像
/opt/IBM/TUT/ (Samples)
/opt/IBM/TUT/install_images/ (installation images)
|
安装 IBM solidDB 代码
- 通过以下命令成为根 userid:
- 当出现提示框后,输入管理员密码。
- 创建一个安装代码的目录,并切换到该目录使用下列命令:
mkdir –p /opt/IBM/solid
cd /opt/IBM/solid
|
- IBM solidDB 代码包含在一个自安装映像文件中。使用以下命令执行这个映像文件:
/opt/IBM/TUT/install_images/solidDB-6.3-linux-x86.bin
|
- 安装 GUI 上出现一个启动面板。在下拉列表中选择所需的语言,并单击 OK:
图 2. IBM solidDB 安装 GUI
- 在 Introduction 面板上单击 Next。
- 在 License 面板上选择接受许可协议的单选按钮,并单击 Next:
图 3. License 面板
- 在 Install 设置面板上,选择 Full,然后单击 Next:
图 4. Install 面板
- 在 Install folder 面板,输入路径
/opt/IBM/solid/soliddb-6.3,然后单击 Next:
图 5. Install folder
- 在 Pre-installation 面板上,单击 Next,当这一过程完成时,单击 Done 完成安装。
- 输入以下命令返回到开发人员 userid:
注意:使用 Ctrl+d 也能得到相同的结果。
为 solid 用户配置环境
您仍然处于前一小节的终端窗口中。
- 在这个终端窗口中,通过以下命令成为 solid userid:
- 在提示输入密码时,输入密码 solid。
- 现在您需要更改 solid 用户的配置文件(/home/solid/.profile)。
注意:为了避免编辑配置文件,您可以从 TUT 子目录中复制样例配置文件。
cp /opt/IBM/TUT/solid.profile .profile |
记得在最后一个配置文件之前使用句号(.)。
或者,您可以编辑 solid 用户配置文件并添加以下内容:
清单 2. 添加到 solid 用户配置文件的内容
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
export SOLID_HOME=/opt/IBM/solid/soliddb-6.3
PATH=$SOLID_HOME/bin:$PATH
export CLASSPATH=$SOLID_HOME/jdbc/SolidDriver2.0.jar:/opt/IBM/SDP70Shared/plugins/:.
# The following three lines have been added by IBM DB2 instance utilities.
if [ -f /home/db2inst1/sqllib/db2profile ]; then
. /home/db2inst1/sqllib/db2profile
fi
export JAVA_HOME=/opt/ibm/db2/V9.5/java/jdk32
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
#set the paths for the Informix IDS instance
INFORMIXSERVER=demo_on
INFORMIXDIR="/opt/IBM/informix"
ONCONFIG=onconfig.demo_on
INFORMIXSQLHOSTS="/opt/IBM/informix/etc/sqlhosts.cheetah2"
PATH=$INFORMIXDIR/bin:$PATH:$JAVA_HOME/bin
TERMCAP=$INFORMIXDIR/etc/termcap
TERM=vt100
export INFORMIXSERVER INFORMIXDIR ONCONFIG INFORMIXSQLHOSTS PATH TERMCAP TERM
export CLASSPATH=/opt/IBM/SDP70Shared/plugins/
com.ibm.datatools.informix.driver_1.0.0.v200709190130/ifxjdbc.jar:$CLASSPATH
#set the paths for the DataStudio project
DATASTUDIO_WORKSPACE=/home/developer/IBM/rationalsdp7.0/workspace
LAB_APPL_DIR=$DATASTUDIO_WORKSPACE/TelcoAp/
CLASSPATH=$LAB_APPL_DIR:$CLASSPATH
PATH=$LAB_APPL_DIR:$DATASTUDIO_WORKSPACE/TelcoApC/Debug/:$PATH
export TUT=/opt/IBM/TUT
|
- 通过以下命令刷新用户配置文件:
注意以上命令中的空格 — 句号,空格,句号,斜杠,句号,然后才是配置文件。
注意:关闭当前的 shell 并打开一个新的 shell 还会是这样。

 |

|
创建和配置 IBM solidDB Universal Cache 前端数据库
您现在仍然在前一小节的终端窗口中,并且以 solid 身份登录。
- 使用以下命令将 solidDB 许可文件复制到当前目录:
cp $SOLID_HOME/solideval.lic .
|
- 现在,您需要编辑 solidDB 配置文件(/home/solid/solid.ini)。
注意:为了避免输入,您可以从 TUT 子目录复制样例配置文件。
或者,编辑 solid.ini 文件使其与清单 3 一致:
清单 3. solid.ini 样例
[General]
DefaultStoreIsMemory=yes
[IndexFile]
CacheSize=100M
[LogReader]
LogReaderEnabled=yes
[Logging]
Durabilitylevel=1
[Com]
Listen=tcp 1315
[Data Sources]
SOLDB=tcp 1315
[SQL]
Isolationlevel=1
|
注意:
- 在 /opt/IBM/solid/soliddb-6.3/samples/configuration 中的样例配置文件包含对所有服务器参数的详细描述。您可以不需要配置文件直接使用 IBM solidDB,在这种情况下,将使用默认设置。然而,如果要将其与 solidDB Universal Cache 一起使用,您必须指定一个 solid.ini 配置文件,并且至少要包含
LogReaderEnabled 参数作为默认设置 — 设置为 no。CDC 因此将不会工作。在 solidDB 配置文件中,代码行中第一个分号 (;) 之后的内容将被看作是注释。
Durabilitylevel=1 是不严格的日志记录,它能够实现更好的性能,但也可能导致数据丢失。
- 如果您打算同时运行多个 solidDB 数据库,那么必须为每个数据库选择一个惟一的 TCP/IP 端口号。
- 使用以下命令创建 solidDB 前端数据库:
solid -f -x exit -Usoluser -Psolpwd -CSOLDB
|
注意以上命令的空格。
注意:
- userid 和密码保护在 solidDB 数据库内部,因此没有必要存在于操作系统中。
-f 在前台启动任务。
-x exit 提示输入数据库管理员的名字和密码,并创建一个新数据库,然后退出。
-U 和 -P 选项可用于提供数据库管理员的名字和密码。
-C 指定数据库的目录。
- 使用以下命令启动 solidDB 数据库服务器:
solid 数据库服务器在后台启动。
注意:如果在创建数据库或启动数据库服务器时遇到问题,那么在 solerror.out 文件中检查错误。
- 通过使用以下命令查看输出文件 solmsg.out,检查 solidDB 数据库服务器是否成功启动:
如果需要停止 solidDB 数据库服务器,输入以下命令:
solcon -eshutdown SOLDB soluser solpwd
|

 |

|
创建数据库对象
您现在仍然在前一小节的终端窗口中,并且作为 solid 用户登录。
- 创建包含以下内容的 SQL 文件 solidCreateObjects.sql:
cp $TUT/solidCreateObjects.sql .
|
注意:为了避免输入,将样例 sql 脚本复制到本地目录。
或者,创建一个与清单 4 一致的文件:
清单 4. solidDB DDL
DROP TABLE TUT.HLR_SUBS;
DROP TABLE TUT.VLR;
DROP SCHEMA TUT;
CREATE SCHEMA TUT;
CREATE TABLE TUT.HLR_SUBS (
IMSI CHAR(15) NOT NULL,
MSISDN CHAR(12) NOT NULL PRIMARY KEY,
MS_CATEGORY CHAR(5) NOT NULL
VLR_NUMBER CHAR(5) NOT NULL,
MSC_NUMBER CHAR(5) NOT NULL,
RESTRICTED_FLAG CHAR(1) NOT NULL,
COUNTRY_CODE CHAR(2) NOT NULL,
ORGANIZATION VARCHAR(20) NOT NULL,
PORTED_FROM VARCHAR(20),
BEARER_SERVICE CHAR(1) NOT NULL,
TELE_SERVICE CHAR(1) NOT NULL,
PID VARCHAR(10) NOT NULL,
UPSERTER VARCHAR(10) NOT NULL
) STORE IN MEMORY;
CREATE INDEX TUT.HLR_SUBS_IDX01 ON TUT.HLR_SUBS (IMSI);
CREATE TABLE TUT.VLR (
IMSI CHAR(15) NOT NULL,
MSISDN CHAR(12) NOT NULL PRIMARY KEY,
MS_CATEGORY CHAR(5) NOT NULL,
LOCATION_AREA_IDENTITY CHAR(10) NOT NULL,
BEARER_SERVICE CHAR(1) NOT NULL,
TELE_SERVICE CHAR(1) NOT NULL,
CONF_RADIO_CONTACT CHAR(1) NOT NULL,
CONF_SUBS_HLR CHAR(1) NOT NULL,
CONF_LOCATION_HLR CHAR(1) NOT NULL,
PID VARCHAR(10) NOT NULL,
UPSERTER VARCHAR(10) NOT NULL
) STORE IN MEMORY;
CREATE INDEX TUT.VLR_IDX01 ON TUT.VLR (IMSI);
COMMIT WORK;
|
注意:
- 您可以为 SQL 创建一个模板,以通过元数据提取工具(比如 db2look 或 dbschema)创建前端表。生成的 SQL 文件不会完全一致,但仅需少量编辑。
- 注意,这个模式是大小写敏感的。
- 使用以下命令在前端数据库创建用户表:
solsql -a SOLDB soluser solpwd solidCreateObjects.sql
|
- 创建包含以下内容的 SQL 文件 db2CreateObjects.sql:
cp $TUT/db2/db2CreateObjects.sql .
|
注意:为了避免输入,将样例 sql 脚本复制到本地目录。
或者,创建一个与清单 5 一致的文件:
清单 5. DB2 DDL
drop table TUT.HLR_SUBS;
drop table TUT.VLR;
CREATE TABLE TUT.HLR_SUBS (
IMSI CHAR(15) NOT NULL,
MSISDN CHAR(12) NOT NULL,
MS_CATEGORY CHAR(5) NOT NULL,
VLR_NUMBER CHAR(5) NOT NULL,
MSC_NUMBER CHAR(5) NOT NULL,
RESTRICTED_FLAG CHAR(1) NOT NULL,
COUNTRY_CODE CHAR(2) NOT NULL,
ORGANIZATION VARCHAR(20) NOT NULL,
PORTED_FROM VARCHAR(20),
BEARER_SERVICE CHAR(1) NOT NULL,
TELE_SERVICE CHAR(1) NOT NULL,
PID VARCHAR(10) NOT NULL,
UPSERTER VARCHAR(10) NOT NULL
) ;
CREATE TABLE TUT.VLR (
IMSI CHAR(15) NOT NULL,
MSISDN CHAR(12) NOT NULL,
MS_CATEGORY CHAR(5) NOT NULL,
LOCATION_AREA_IDENTITY CHAR(10) NOT NULL,
BEARER_SERVICE CHAR(1) NOT NULL,
TELE_SERVICE CHAR(1) NOT NULL,
CONF_RADIO_CONTACT CHAR(1) NOT NULL,
CONF_SUBS_HLR CHAR(1) NOT NULL,
CONF_LOCATION_HLR CHAR(1) NOT NULL,
PID VARCHAR(10) NOT NULL,
UPSERTER VARCHAR(10) NOT NULL
) ;
ALTER TABLE TUT.HLR_SUBS ADD CONSTRAINT HLR_SUBS_PK PRIMARY KEY (MSISDN);
ALTER TABLE TUT.VLR ADD CONSTRAINT VLR_PK PRIMARY KEY (MSISDN);
|
- 使用以下命令在后端数据库创建用户表:
db2 connect to sample
db2 -tvf db2CreateObjects.sql
|
注意:您可以忽略任何 SQL0204N 错误,因为该脚本正在排除尚未存在的对象。

 |

|
|  |