LanDom
作者LanDom·2010-07-05 18:29
软件开发工程师·互联网企业

创建数据库

字数 5582阅读 838评论 0赞 0
创建数据库

    1、创建测试数据库
    
    [示例]-[创建数据库]:
    
    
CREATE DB Test
    
    数据库的命名规则是:
    
    ● 数据库名称可以由以下字符组成:a-z、A-Z、0-9、@、# 和 $。
    
    ● 名称中的第一个字符必需是字母表字符、@、# 或 $;不能是数字或字母序列 SYS、DBM 或 IBM。
    
    ● 数据库名称或数据库别名是一个惟一的字符串,包含前面描述的一个到八个字母、数字或键盘字符。
    
    2、
DB2 创建了什么?
    
    在发出 CREATE DATABASE 命令时,DB2 会创建许多文件。这些文件包括日志文件、配置信息、历史文件和三个表空间。这些表空间是:
    
    ● SYSCATSPACE:这是保存 DB2 系统编目的地方,系统编目跟踪与 DB2 对象相关联的所有元数据。
    
    ● TEMPSPACE1:DB2 用来放置中间结果的临时工作区域。
    
    ● USERSPACE1:默认情况下存放所有用户对象(表、索引)的地方。
    
    所有这些文件都放在默认驱动器上的 DB2 目录中。默认驱动器通常是安装 DB2 产品的卷。
    
    注意!对于从 DB2 8 进行迁移的用户,有一个特殊的注意事项:在 DB2 9 之前,CREATE DATABASE 命令会为上面列出的所有对象创建 SMS 表空间。在 DB2 9 中,所有表空间都将定义为自动存储(DMS)表空间。
    
    3、
CREATE DATABASE 命令
    
    DB2 CREATE DATABASE 命令的完整语法可以在 DB2 Command Reference 中找到,这里简要介绍一下几个重要的参数
    
    (1)、
数据库位置
    
    CREATE DATABASE 命令的参数之一是 ON path/drive 选项。这个选项告诉 DB2 您希望在哪里创建数据库。如果没有指定路径,就会在数据库管理程序设置(DFTDBPATH 参数)中指定的默认数据库路径上创建数据库。
    
    [示例]-[指定位置创建数据库]:
    
    
CREATE DB Test ON D:DB
    
    (2)、
表空间和容器
    
    ● AUTORESIZE YES
    当表空间用光空间时,系统将自动地扩展容器的大小。
    
    ● INITIALSIZE 300 M
    没有定义初始大小的任何表空间的大小默认为 300 MB。每个容器是 100 MB(有三个存储路径)。
    
    ● INCREASESIZE 75 M (或百分数)
    当表空间用光空间时,表空间的总空间增加 75 MB。还可以指定一个百分数,在这种情况下,表空间会增长它的当前大小的百分数。
    
    ● MAXSIZE NONE
    表空间的最大大小没有限制。如果 DBA 希望限制一个表空间可以占用的存储空间,那么可以指定一个最大值。
    
    使用自动存储(AUTOMATIC STORAGE)可以大大简化日常的表空间维护,但是,与重要的大型生产表相关联的表空间就可能需要 DBA 更多地干预。
    
    在没有启用自动存储的数据库中创建表空间时,必须指定 MANAGED BY SYSTEM 或 MANAGED BY DATABASE 子句。使用这些子句会分别创建 SMS 表空间和 DMS 表空间。在这两种情况下,都必须提供容器的显式列表。如果数据库启用了自动存储,那么有另一个选择。可以指定 MANAGED BY AUTOMATIC STORAGE 子句,或者完全去掉 MANAGED BY 子句(这意味着自动存储)。在这种情况下,不提供容器定义,因为 DB2 会自动地分配容器。
    
    创建数据库时,若为指定(SYSCATSPACE、TEMPSPACE1、USERSPACE1)三个表空间的位置,则系统调用参数配置中的默认目录自动创建表空间。
    
    如果创建的数据库使用 SMS 表空间,SYSTEM USING ('container string'),那么容器字符串(container string) 标识一个或多个将属于这个表空间的容器,表空间数据将存储在这些容器中。每个容器字符串可以是绝对的或相对的目录名。如果目录名不是绝对的,它就相对于数据库目录。如果目录的任何部分不存在,数据库管理程序就会创建这个目录。容器字符串的格式取决于操作系统。
    
    如果创建的数据库使用 DMS 表空间,DATABASE USING ( FILE/DEVICE 'container string' number of pages )那么容器字符串标识一个或多个将属于这个表空间的容器,表空间数据将存储在这些容器中。指定容器的类型(FILE 或DEVICE)和大小(按照 PAGESIZE 大小的页面)。大小还可以指定为一个整数,后面跟着 K(表示千字节)、M(表示兆字节)或 G(表示千兆字节)。可以混合指定 FILE 和 DEVICE 容器。对于 FILE 容器,容器字符串必须是绝对或相对的文件名。如果文件名不是绝对的,它就相对于数据库目录。如果目录名的任何部分不存在,数据库管理程序就会创建这个目录。如果文件不存在,数据库管理程序就会创建这个文件并初始化为指定的大小。对于 DEVICE 容器,容器字符串必须是设备名而且这个设备必须已经存在。
    
    重要提示:所有容器必须是在所有数据库上惟一的;一个容器只能属于一个表空间。
    
    ● EXTENSIZE
    指定数据库可以写到一个容器中的 PAGESIZE 页面数量,达到这个数量之后将跳到下一个容器。
    
    ● PREFETCHSIZE number of pages
    它指定在执行数据预获取时将从表空间中读取的 PAGESIZE 页面数量。预获取大小还可以指定为一个整数,后面跟着 K、M 或 G。预获取会在查询引用数据之前读取查询所需的数据,这样查询就不需要等待底层操作系统执行 I/O 操作。
    
    (3)、
代码页和整理次序
    
    所有 DB2 字符数据类型(CHAR、VARCHAR、CLOB、DBCLOB)都有一个相关联的字符代码页。可以认为代码页是一个对照表,用来将字母数字数据转换为数据库中存储的二进制数据。一个 DB2 数据库只能使用一个代码页。代码页是在 CREATE DATABASE 命令中使用 CODESET 和 TERRITORY 选项设置的。
    
    如果指定选项 COLLATE USING SYSTEM,就根据为数据库指定的 TERRITORY 对数据值进行比较。如果使用选项 COLLATE USING IDENTITY,那么以逐字节的方式使用二进制表示来比较所有值。
    
    (4)、
CREATE DB 命令示例
    
    
( 1) CREATE DATABASE MY1STDB
    ( 2) DFT_EXTENT_SZ 4
    ( 3) CATALOG TABLESPACE MANAGED BY DATABASE USING
    ( 4) (FILE 'C:CATCATALOG.DAT' 2000, FILE 'D:CATCATALOG.DAT' 2000)
    ( 5) EXTENTSIZE 8
    ( 6) PREFETCHSIZE 16
    ( 7) TEMPORARY TABLESPACE MANAGED BY SYSTEM USING
    ( 8) ('C:TEMPTS','D:TEMPTS')
    ( 9) USER TABLESPACE MANAGED BY DATABASE USING
    (10) (FILE 'C:TSUSERTS.DAT' 121)
    (11) EXTENTSIZE 24
    (12) PREFETCHSIZE 48
    
    结合上面的说明,大家应该能搞懂上面命令的意思了吧(有问题欢迎讨论哈)
    
        待续……

申明:欢迎转载,但请先告知,谢谢。

----------------------------------------------------------------------
--学习笔记:DB2 9 基础 - 8
--彭建军
--最新更新时间:2006-11-28 16:46
----------------------------------------------------------------------

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广