db2 administration(1)

1.command line processor

db2和oracle一样,都是具备命令行环境的。如何进入db2的命令行环境?可以参考如下:

以windows平台为例子,在cmd环境下,输入db2cmd,然后就进入了db2的clp环境了,输入db2,cmd窗口就会变成以

“db2=>”为启示符的样子,这个类似”SQL>”,你可以开始输入sql以及一些管理命令了,例如create database,create tablespace等等。

2.create database

db2的逻辑结构为,一个服务器上只能有1个instance,instance下面可以有多个”库”,每个库下面有不同的tablespace,schema等等,你可以理解为objects…

 

 

db2 => CREATE DATABASE new1 AUTOMATIC STORAGE YES ON ‘E:’ DBPATH ON ‘E:’ USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM PAGESIZE 4096
DB20000I CREATE DATABASE命令成功完成。

创建数据库的脚本命令需要”tablespace name”,”storage”,”charset”,”地域”,”pagesize”等要素。

3.create bufferpool(缓冲池)

缓冲池在创建tablespace的时候会指定bufferpool,所以需要有一个bufferpool,否则创建表空间的时候,会使用缺省的bufferpool

CONNECT TO NEW1
CREATE BUFFERPOOL NEWPOOL2 IMMEDIATE SIZE 250 AUTOMATIC PAGESIZE 4K

连接到新创建的库NEW1,然后创建新的bufferpool(NEWPOOL2)。注意一些:automatic的keywords

4.create tablespace

CONNECT TO NEW1
CREATE REGULAR TABLESPACE NEWTBS PAGESIZE 4 K MANAGED BY AUTOMATIC STORAGE EXTENTSIZE 16 OVERHEAD 12.67 PREFETCHSIZE 16 TRANSFERRATE 0.18 BUFFERPOOL NEWPOOL DROPPED TABLE RECOVERY ON

5.create schema

//连接到库new1,然后创建schema。schema一般给用户使用。来逻辑划分、方便管理。

CONNECT TO NEW1
CREATE SCHEMA NEWSCHEMA AUTHORIZATION DB2ADMIN
CONNECT RESET

6.create database users

//db2的数据库用户需要寄生在一个表空间上,一个schema上,同时必须属于某一个”库”,这样方便管理。

//连接到库new1上,执行一些”授权”操作(难道这些就叫创建用户吗?)
CONNECT TO NEW1;
GRANT CREATETAB,BINDADD,CONNECT,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT ON DATABASE TO USER NEWUSER;
GRANT CREATEIN,DROPIN,ALTERIN ON SCHEMA NEWSCHEMA TO USER NEWUSER;
GRANT USE OF TABLESPACE NEWTBS TO USER NEWUSER;
CONNECT RESET;
//发现没有,db2的用户创建,在db层面没有显示的创建用户语句,仅仅是”授权”,拿来就直接使用了。

db2的”数据库”用户概念:db2弱化了数据库级别用户的概念,不像sqlserver,oracle,mysql,这些rdbms有数据库级别用户的概念,db2的数据库级别用户就是OS级别的用户。db2是ibm的产品,aix是ibm的OS,可能db2的设计理念就认为,用户的验证交给OS级别来做就行了,数据库不用操心这些。

所以:想创建db2数据库层面的用户,需要在db2所在的OS上创建OS级别的用户,然后在db2命令行中授权访问即可。

联系到上面的操作例子,只需要在windows上创建os级别用户newuser即可。

DB2的用户理念让人印象深刻。

-EOF-