一个创建数据库(包括用户、bufferpool、tablespace等)的完整实例

来源:互联网 发布:php datezone 编辑:程序博客网 时间:2024/05/21 13:25

要新建一个项目的数据库test,具体步骤:

1.创建针对数据库的用户,若是unix/linux 可以修改相关配置文件添加用户;若是windows 可以右击“我的电脑” ,添加用户。

2.创建数据库test  :
  db2 create database test
3.将数据库test赋予DBADM权限:
   db2 connect to test
   db2 grant dbadm on database to user tst1
   
(这个命令只能由 SYSADM 用户(系统的administrator用户)发出;它向用户 tst1 授予示例数据库上的 DBADM 权限。注意,在授予 DBADM 权限之前,发出这个命令的用户必须连接到示例数据库。)


4.在该数据库上创建bufferpool,并创建表空间、索引空间(应用创建的bufferpool)
---创建bufferpool
create bufferpool irmtbfp8k IMMEDIATE SIZE 5000 PAGESIZE 8 K ;
---创建表空间
--由数据库管理(由数据库管理的表空间用file形式,并且以dat文件存放)
create tablespace irmtspace
       pagesize 8k
       managed by database
      using(FILE 'C:\DB2tableSpace\IRMT\irmtSpace\irmtCATALOG.DAT' 2000)
      extentsize 32 bufferpool irmtbfp8k;
--由系统管理:
create tablespace irmtspace1
       pagesize 4k
       managed by system
      using('C:\DB2tableSpace\IRMT\irmtSpace')
      extentsize 32 bufferpool irmtbfp8k;
---创建索引空间(和表空间创建方法一样)
create tablespace irmtIndexSpace
       pagesize 8k
       managed by database
      using(FILE 'C:\DB2tableSpace\IRMT\irmtSpace\irmtIndexCATALOG.DAT' 2000)
      extentsize 32 bufferpool irmtbfp8k;
 
5.创建表,在test数据库中,并且指定上面建的表空间和索引空间。
CREATE TABLE IRMT.AREA_ACCESS (
        USER_INTRANET_ID VARCHAR(50) NOT NULL,
        AREA_ID INTEGER NOT NULL,
        LAST_UPDATED_BY VARCHAR(50),
        LAST_UPDATED_TIME TIMESTAMP
    ) in irmtspace index in irmtIndexSpace;

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


ps.
(一) DBADM 权限是一个数据库级权限,而不是实例级权限。DBADM 用户对一个数据库有几乎完全的控制能力。DBADM 用户不能执行某些维护或管理任务(对数据库级别的操作)
(只有admin用户才可以,admin用户包括安装数据库的时候自动创建的db2admin用户和电脑操作系统的administrator用户),比如:

    drop database
    drop/create tablespace
    backup/restore database
    update db cfg for database db name

但是,他们可以执行以下任务(对表级别的操作):

    db2 create/drop table
    db2 grant/revoke(任何特权)
    db2 runstats(任何表)

DBADM 用户还被自动地授予对数据库对象及其内容的所有特权。因为 DBADM 权限是一个数据库级权限,所以它可以被分配给用户和用户组。以下命令演示授予 DBADM 权限的不同方法。

(二)创建表空间:
|--MANAGED BY--------------------------------------------------->  
|>--+-SYSTEM USING--(----'container-string'-+--)--------------------------------+-->  
   '-DATABASE USING--(----+-FILE---+--'container-string' --number-of-pages-+--)-'                          '-DEVICE-'
  >--+-----------------------------+------------------------------>  
   '-EXTENTSIZE--number-of-pages-'
  >--+-------------------------------+---------------------------->  
   '-PREFETCHSIZE--number-of-pages-'
   
   若由db管理必须指定number-of-pages,并且指定具体DAT文件,如irmtIndexCATALOG.DAT
   若由sys管理,无需指定number-of-pages,也无需指定dat文件,只需要保证路径存在即可(会自动生成NAM文件)
原创粉丝点击