创建db2数据库



创建db2数据库下面以创建数据库“BSDB”为例,说明Linux环境下创建DB2数据库的过程:

        首先需要安装DB2数据库应用,创建默认数据库实例,此过程主要参考 Linux下安装DB2数据库步骤,这篇文章中有比较详细的安装过程,如需转载时请注明出处。因此此处DB2的安装就不再赘述,见参考文章的1-4步骤,重点为DB2实例、数据库以及schema的创建。

 

1.用root用户登录,添加用户组以及用户,用于创建数据库实例,此过程见参考文章的5-8步骤,也可以参考我的文章 Linux下创建用户,刚刚安装好DB2一般需要创建三个用户(分别是拥有实例的用户 db2inst1,受防护的用户 db2fenc1,DAS用户db2dasusr1);

 

2. 创建实例

1) “cd /opt/ibm/db2/V9.7/instance” 命令切换至DB2目录;

2) “./dascrt -u db2dasusr1″命令创建DB2管理服务器;

3) “./db2icrt -u db2fenc1 db2inst1″命令创建DB2实例;

注:这里dascrt创建的是DB2 adminstration server,每台服务器只有一个这种server,为进行DB2管理(比如运行控制中心)所必须,同时指定其管理用户是db2dasusr1 ,db2icrt创建的是实例,其名字一般和管理用户名一样,这里db2fenc1为它的防护用户,而db2inst1为一实例用户。

 

3. 配置DB2

1) “./db2iauto -on db2inst1”命令设置db2inst1在Linux启动时自动启动(注:依然在root用户下,db2目录下);或者”DB2AUTOSTART=yes“命令设置实例是否在系统启动是自动启动;

2) 修改网络服务端口(注:在db2inst1用户下)

修改DB2的服务端口为50658,默认情况下端口是50000,如果没有必要或者此端口没有被占用则不需要修改( netstat -na | grep 50000    查看50000端口是否已使用中)。命令如下:

“su – db2inst1”命令切换到db2inst1用户;

“db2 update dbm cfg using SVCENAME 50658″命令修改服务端口;

3) “db2set DB2COMM=TCPIP”命令修改DB2连接方式为TCP/IP,这样就可以通过JDBC、ODBC等访问本DB2服务器上的数据库,安装了DB2客户端的其它机器也可访问数据库;

4) 查看/etc/services文件是否有如下配置,这是指定实例的端口,如果没有则需要添加此配置

db2c_db2inst1 50000/tcp

db2i_db2inst1 50001/tcp

5) “db2 get dbm config”命令查看实例的配置文件,如果发现SVCENAME的值是空的,配置SVCENAME的值即为在第4)步为services文件中的db2inst1实例指定的侦听端口(70000)的服务名:db2c_db2inst1,此时用”db2 update dbm config using SVCENAME   db2c_db2inst1″命令修改SVCENAME。另外如果发现实例配置文件中SVCENAME和/etc/services中为实例设置的服务名”db2c_db2inst1″不一致,也需要两个地方更改为一致。

 

4. 创建数据库”BSDB“

1) “db2 create db BSDB on /db2sys using codeset UTF-8 territory US”命令创建数据库BSDB,这条命令中“/db2sys”目录是自己可以指定的,也可以不指定则默认创建至当前登录用户主目录”/home/db2inst1“下;

2) “db2 connect to BSDb”命令可以返回:数据库连接信息

Database server(数据库服务器)       = DB2/LINUXX8664 9.9.7

SQL authorization ID(SQL 授权标识)       = DB2INST1

Local database alias(本地数据库别名)    = BSDB

证明数据库的本地连接成功。


建表语句不再描述。

“db2 list tables for all”命令可以返回所有的表(包含刚创建的)。

注:

在window中出现“SQL1052N 数据库路径不存在”的错误,解决方案:

C:/Program Files/IBM/SQLLIB/BIN>db2set -all

C:/Program Files/IBM/SQLLIB/BIN>db2set -?

-all     显示出现的所有本地环境变量,如以下各项中所定义:

*  环境,用 [e] 表示

*  用户级注册表,用 [u] 表示

*  节点级注册表,用 [n] 表示

*  实例级注册表,用 [i] 表示,和

*  全局级注册表,用 [g] 表示

C:/Program Files/IBM/SQLLIB/BIN>db2set -i db2 DB2_CREATE_DB_ON_PATH=YES

 

5. 创建好实例、数据库、数据表后就可以通过JDBC或者其他DB2数据库客户端访问数据库了,一般配置如下:

主机IP: xxxx.xxxx.xxxx.xxxx

端口:   50000(此为前面设置的服务端口号)

用户名:db2inst1

密码:    db2inst1

 

6. 创建其他DB2用户,下面以用户“etluser”为例:

1) 参考步骤1创建需要的用户“etluser”;

2) 给用户赋DB2权限:

“db2 connect to BSDB”命令连接数据库;

“db2 grant connect,createtab,load,create_external_routine on database to user etluser”给用户“etluser”赋权,具体授权方式可参考 db2创建用户及授权的研究

3) “db2 connect to BSDB user etluser using etluser”命令用“etluser”用户连接数据库,可以看到数据库连接信息,这样说明用户”etluser“已经创建成功。

 

7. 如果需要创建除db2inst1实例外的另外实例,可以参考 【转】linux下DB2中,在命令行状态下创建第二个db2实例

 

8. 自此db2的实例、数据库、用户创建完毕。