`

DB2创建数据库常用参数详解(原创)

 
阅读更多

本文只介绍DB2 create database语法中的常用参数
http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp

CREATE DATABASE语法树
Read syntax diagramSkip visual syntax diagram
>>-CREATE--+-DATABASE-+----------------------------------------->
           '-DB-------'  

>----database-name--+-----------------------------+------------><
                    +-AT DBPARTITIONNUM-----------+
                    '-| Create Database options |-'    
Create Database options
   .-AUTOMATIC STORAGE--YES-.
|--+------------------------+----------------------------------->
   '-AUTOMATIC STORAGE--NO--'  

>--+---------------------------------------------+-------------->
   |     .-,---------.                           |
   |     V           |                           |
   '-ON----+-path--+-+--+----------------------+-'
           '-drive-'    '-DBPATH ON--+-path--+-'
                                     '-drive-'      

>--+-----------------------+------------------------------------>
   '-ALIAS--database-alias-'  

>--+----------------------------------------------+------------->
   '-USING CODESET--codeset--TERRITORY--territory-'  

>--+-----------------------------------------------+------------>
   |                .-SYSTEM---------------------. |
   '-COLLATE USING--+-COMPATIBILITY--------------+-'
                    +-IDENTITY-------------------+
                    +-IDENTITY_16BIT-------------+
                    +-UCA400_NO------------------+
                    +-UCA400_LSK-----------------+
                    +-UCA400_LTH-----------------+
                    +-language-aware-collation---+
                    +-locale-sensitive-collation-+
                    '-NLSCHAR--------------------'    

参数详解
1. DATABASE database-name
给数据库指定名称,在本地和系统库中,都必须唯一的,不能包含空格。
2. AT DBPARTITIONNUM
指定数据库将要被创建在发出命令的分区。当创建一个新库,不要指定这个参数。可以用它重建一个因为损坏而删除的数
据库分区。当用这个参数创建库,数据库将处于restore pending状态。不切断应用可能导致不一致,用时谨慎。
3. AUTOMATIC STORAGE NO | YES
指定自动存储打开或关闭。默认是打开的。
4. ON path or drive
这个子句和AUTOMATIC STORAGE的值有关,它指定了DB表空间的容器位置。详细的目录结构如下
/Path or Drive ---------->  数据库目录
    | 
    |------ InstanceName ---------->  实例名
        |
        |------ NODEnnnn ---------->  节点名
              |
              |------ DataBaseName ---------->  数据库名
                     |
                     |------Tnnnnnnn ---------->  表空间容器
对于AUTOMATIC STORAGE NO:只有一个path可以包含在ON后,它指定了DB的位置。如果没有指定这个参数,DB创建到默认路径中,该默认路径为dbm cfg的dftdbpath指定。
对于AUTOMATIC STORAGE YES:可以列出多个路径,有逗号分隔,这些路径作为存储路径和保存自动存储表空间的容器。对于多分区DB,相同的存储路径被用在所有分区中。
创建数据库后将创建三个缺省表空间:
T0000000子目录中包含带有系统目录表的目录表空间。
T0000001子目录中包含缺省临时表空间。
T0000002子目录中包含缺省用户数据表空间。
每个子目录或容器中都会创建一个名为 SQLTAG.NAM 的文件。这个文件可以标记正在使用中的子目录,因此在以后创建其他表空间时,不会尝试使用这些子目录。
此外,名为 SQL*.DAT 的文件中还存储有关子目录或容器包含的每个表的信息。星号(*)将被唯一的一组数字取代,用来识别每个表。对于每个 SQL*.DAT 文件,可能有一个或多个下列文件,这取决于表类型、表的重组状态或者表是否存在索引、LOB 或 LONG 字段:
SQL*.BKM(如果它是一个 MDC 表,那么它包含块分配信息)
SQL*.LF(包含 LONG VARCHAR 或 LONG VARGRAPHIC 数据)
SQL*.LB(包含 BLOB、CLOB 或 DBCLOB 数据)
SQL*.XDA(包含 XML 数据)
SQL*.LBA(包含有关 SQL*.LB 文件的分配和可用空间信息)
SQL*.INX(包含索引表数据)
SQL*.IN1(包含索引表数据)
SQL*.DTR(包含用于重组 SQL*.DAT 文件的临时数据)
SQL*.LFR(包含用于重组 SQL*.LF 文件的临时数据)
SQL*.RLB(包含用于重组 SQL*.LB 文件的临时数据)
SQL*.RBA(包含用于重组 SQL*.LBA 文件的临时数据)
5、DBPATH ON指定了数据库基础文件(控制文件,日志文件等)的创建位置。如果没有指定,则数据库在ON后面第一
个路径指定。如果没有指定路径,则在默认位置创建,该默认路径为dbm cfg的dftdbpath指定。数据库路径里面创建了
分层目录结构。这个结构保存了数据库操作需要的文件,目录结构具体如下
/Path or Drive ---------->  数据库目录
    | 
    |------ InstanceName ---------->  实例名
        |
        |------ NODEnnnn ---------->  节点名
              |
              |------ SQLxxxxx ---------->  数据库编号
              |      |
              |      |------SQLOGDIR ---------->  数据库日志目录
              |
              |------sqldbdir ----------> 本地数据库编目
其中SQLOGDIR目录用来存放数据库日志文件,建库后可以更改日志文件位置

SQLxxxxx目录下包含如下文件
SQLBP.1 和 SQLBP.2 文件中都包含缓冲池信息。这两个文件中具有相同的副本,从而提供备份。
SQLSPCS.1 和 SQLSPCS.2 文件中都包含表空间信息。这两个文件中具有相同的副本,从而提供备份。
SQLSGF.1 和 SQLSGF.2 文件中都包含与数据库的自动存储器相关的存储路径信息。这两个文件中具有相同的副本,从而提供备份。
SQLDBCON 文件中包含数据库配置信息。切勿编辑此文件。要更改配置参数,请使用控制中心或者使用 UPDATE DATABASE CONFIGURATION 和 RESET DATABASE CONFIGURATION 命令。
db2rhist.asc 历史记录文件及其备份 db2rhist.bak 中包含关于备份、复原、表装入、表重组、表空间改变和其他数据库更改的历史记录信息。
DB2TSCHNG.HIS文件中包含日志文件级别的表空间更改的历史记录。对于每个日志文件,DB2TSCHG.HIS中包含有助于确定日志文件影响哪些表空间的信息。表空间恢复使用此文件中的信息来确定在进行表空间恢复期间要处理哪些日志文件。可以在文本编辑器中检查这两个历史记录文件中的内容。
日志控制文件 SQLOGCTL.LFH 和 SQLOGMIR.LFH 中包含有关活动日志的信息。
恢复处理过程使用这些文件中的信息来确定要在日志中后退多远来开始恢复。SQLOGDIR子目录中包含实际的日志文件。
注:您应确保不要将日志子目录映射到用于存储数据的磁盘。这样,在磁盘发生问题时,只会影响到数据或日志,而不会同时影响这两者。由于日志文件与数据库容器不会争用同一磁盘磁头的移动,因此这可提供很多性能方面的好处。要更改日志子目录的位置,请更改 newlogpath数据库配置参数。
SQLINSLK文件用于确保一个数据库只能由数据库管理器的一个实例使用。

在创建数据库的同时,还在db2event目录下创建了详细死锁事件监视器。详细死锁事件监视器文件存储在目录节点的数据库目录中。当事件监视器达到它要输出的最大文件数 时,它将取消激活,并且将把一条消息写入通知日志中。这样可防止事件监视器消耗过多的磁盘空间。除去不再需要的输出文件将允许在下一次数据库激活时再次激 活事件监视器。
DBPATH ON选项可以被用来把以上文件和信息,放在一个与数据库数据存储路径分开的路径中。当使用automatic storage时,建议将数据库的information和数据库的data分开。
对于MPP系统,数据库不能建在NFS文件夹中,不能是相对路径。每个给出的路径必须在每个数据库分区中存在并可访问。
database path最长215字符,storage path最长175字符。
5. ALIAS database-alias
在database directory中,数据库的别名。如果没指定,就用数据库名称。
6. USING CODESET codeset
指定数据进入数据库所使用的编码集。创建数据库后,不能修改。
7. TERRITORY territory
指定数据库进入数据库所使用的区域标示符或本地标示符。创建数据库后,不能修改。code set和territory的组合,必须是有效的。
读者可以通过以下连接查看DB2支持的代码页列表
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.admin.nls.doc%2Fdoc%2Fr0004565.html&resultof=%22%E4%BB%A3%E7%A0%81%E9%A1%B5%22
其中显示代码页(“S”)表示单字节、(“D”)表示双字节、(“N”)表示中性。如果两个代码页属于同一组,则他们可以浮想转换,否则无法转换。注意,S和D组的代码都可以转换成中性的,但N组不一定能转换成S或者D组。
国内常用的数据库编码集是GBK和UTF-8,GBK支持中文字符,UTF-8几乎支持所有语言。9.5版本之前,如果不指定编码DB2默认根据系统的Locale来设置。9.5版本开始,默认的数据库编码为UTF-8,可以通过如下命令来查看编码集和编码页的信息
$db2 get db cfg for testdb
       Database Configuration for Database testdb
 Database configuration release level                    = 0x0d00
 Database release level                                  = 0x0d00

 Database territory                                      = CN
 Database code page                                      = 1208
 Database code set                                       = UTF-8
 Database country/region code                            = 86
 Database collating sequence                             = IDENTITY

其中code set是操作系统级别的编码设置,是通用的;而code page是对DB2编码集的内部数字表示,只在DB2内部有意义。本例中编码集设置未UTF-8对应DB2内部的编码页未1208。
8. COLLATE USING
指定数据库使用的比较顺序规则。创建数据库后,不能修改。
在unicode的数据库中,catalog tables和views总是用IDENTITY collation,无论数据库指定了哪种collation。在non-unicode数据库里,catalog tables和views使用数据库的collation创建。
COMPATIBILITY
DB2 version 2的比较规则。一些已经加强了。这个选项指定了之前的版本会用使用。
IDENTITY
字符串是逐字节比较的。
IDENTITY_16BIT
CESU-8 (Compatibility Encoding Scheme for UTF-16: 8-Bit(www.unicode.org),只能在unicode数据库使用。
UCA400_NO
The UCA (Unicode Collation Algorithm) collation sequence that is based on the Unicode Standard version 4.0.0 with normalization implicitly set to ON. 只能在unicode数据库使用。
UCA400_LSK
The UCA (Unicode Collation Algorithm) collation sequence based on the Unicode Standard version 4.0.0 but will sort Slovak characters in the appropriate order. 只能在unicode数据库使用。
UCA400_LTH
The UCA (Unicode Collation Algorithm) collation sequence that is based on the Unicode Standard version 4.0.0 but will sort all Thai characters according to the Royal Thai Dictionary order. 只能在unicode数据库使用。
language-aware-collation
只能在unicode数据库使用。对于non-unicode数据库,是基于system cllation。字符串必须是SYSTEM_codepage_territory的格式,否则创建数据库会失败。
当create database在V9上使用,这个选项不会被使用。默认,unicode数据库在v9上会事SYSTEM collation。
locale-sensitive-collation
只能在unicode数据库使用。
NLSCHAR
只能用在Thai code page(CP874),否则出错。为指定的set/territory设置独特的collation。
SYSTEM
这是创建数据库时,collation的默认选项。对于non-unicode数据库,collation是基于territory。对于unicode数据库,根据客户的code set和territory,对应一个language-aware-collation,如何没有合适的language-aware可用,会使用IDENTITY。

示例
db2=>create database testdb automatic storage yes on /dbauto dbpath on /database using codeset UTF-8 TERRITORY CN COLLATE USING SYSTEM


参考至:《DB2数据库最佳管理实践》
               http://www.dblotus.com/?p=457
               http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp

本文原创,转载请注明出处、作者

如有错误,欢迎指正

邮箱:czmcj@163.com

2
0
分享到:
评论

相关推荐

    DB2数据库安装、数据库创建步骤

    DB2 数据库安装、数据库创建步骤 DB2 数据库安装步骤是指将 DB2 数据库软件安装到计算机上,并创建一个新的数据库实例,以便存储和管理数据。下面是 DB2 数据库安装和创建步骤的详细过程: 一、安装 DB2 数据库...

    db2通用数据库自学教程

    db2通用数据库自学教程db2通用数据库自学教程db2通用数据库自学教程db2通用数据库自学教程db2通用数据库自学教程db2通用数据库自学教程db2通用数据库自学教程db2通用数据库自学教程db2通用数据库自学教程db2通用...

    db2创建数据库实例

    CREATE DATABASE "iufo" ON '/home/db2inst1' ALIAS "iufo" USING CODESET GBK TERRITORY CN COLLATE USING System NUMSEGS 1 DFT_EXTENT_SZ 32 CATALOG TABLESPACE MANAGED BY SYSTEM USING('/home/db2inst1/...

    DB2 数据库常用命令

    ### DB2 数据库常用命令详解 #### 一、db2move — 数据库迁移与转换工具 `db2move`是IBM DB2数据库管理系统中的一个强大工具,主要用于在不同DB2数据库之间进行数据迁移和转换。它支持数据的导出、导入和加载功能...

    DB2数据库命令详解

    "DB2数据库命令详解" DB2 数据库命令详解是 DB2 RDBMS 的重要组成部分,掌握这些命令是使用 DB2 数据库的基础。本文将详细讲解 DB2 命令的使用,包括启动交互式会话、编译 DB2 服务器节点目录、编译远程数据库目录...

    Linux系统重启db2数据库命令实例详解.docx

    本文将深入解析如何使用这些命令来重启db2数据库,同时介绍一些相关的常用命令。 首先,重启db2数据库之前,必须确保没有任何应用程序正在与数据库进行连接。你可以通过执行`db2 list applications for db db_name`...

    DB2数据库常用命令

    测试以及运维常用DB2操作命令,方便测试和运维对数据库的维护和操作

    DB2数据库创建命令说明

    ### DB2数据库创建命令详解 #### 一、创建数据库用户 在DB2环境中,首先需要创建一个用户,这里创建的用户名称为`sfoa`。 ```sql useradd sfoa ``` 设置用户密码,这里将用户的密码设为与另一个用户`su-db2inst1...

    Db2数据库操作的常用命令列表

    Db2数据库操作的常用命令列表 Db2数据库操作的常用命令列表中包含了多个重要的数据库操作命令,这些命令对Db2数据库的管理和维护至关重要。本文将对这些命令进行详细的解释和分析,帮助读者更好地理解和掌握Db2...

    DB2 命令创建数据库,表,导入、导出数据。

    DB2 命令,创建数据库,表,导入、导出数据。

    db2数据库安装包、db2数据库安装驱动

    5. **创建数据库**:安装完成后,你可以使用DB2控制中心或命令行工具创建新的数据库。定义数据库的大小、存储特性以及安全性设置。 6. **驱动配置**:DB2链接服务器驱动使得在非DB2环境中可以访问DB2数据,例如在...

    DB2数据库系统命令与配置参数手册.doc

    DB2数据库系统命令与配置参数手册 本手册主要介绍了DB2数据库系统的命令和配置参数,涵盖了DB2管理服务器、实例、数据库、表、索引、视图、存储过程、触发器、函数等方面的知识点。下面将逐一详细介绍这些知识点。 ...

    DB2数据库常用命令手册

    ### DB2数据库常用命令详解 #### 一、启动与停止数据库 **命令:** - `db2start`:用于启动数据库。 - `db2stop`:用于停止数据库。 **注意事项:** - 在启动数据库之前,请确保所有依赖服务都已准备好,并且没有...

    db2 常用命令(包含数据库的备份与恢复)

    ### DB2常用命令详解及数据库备份与恢复方法 #### 一、DB2连接与应用管理命令 1. **连接数据库** - `db2 connect to &lt;数据库名&gt;` - 示例:`db2 connect to sample` - 解释:此命令用于连接到指定的数据库实例。...

    DB2 HADR数据库技术监控详解.docx

    DB2 HADR 数据库技术监控详解 DB2 HADR(High Availability Disaster Recovery)是一种高可用性和灾难恢复的解决方案,旨在确保数据库的高可用性和灾难恢复能力。HADR 由一对机器组成,一个主机和一个备机,通过...

    三种方法教你创建DB2联合数据库

    ### DB2联合数据库创建方法详解 #### 手动创建DB2联合数据库的步骤解析 **DB2联合数据库**(Federated Database)是一种允许不同数据库系统之间共享数据的技术。通过这种方式,用户可以从单一的访问点查询分布在多...

    db2数据库常用命令

    ### DB2数据库常用命令知识点详解 #### 一、创建数据库 **命令:** ``` CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB USING CODE SET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32 ``` **解释:** 该...

    DB2通用数据库SQL教程

    这包括索引的创建与管理、查询优化器的工作原理以及如何调整数据库参数以提高查询速度。通过学习这些内容,你可以有效地提升数据库的运行效率,减少查询响应时间。 最后,教程可能还会涵盖数据库的监控和维护,包括...

    db2自动生成数据库的语句

    本文将详细介绍如何使用DB2的命令来自动创建数据库,特别是在遇到数据库未完全删除的情况时如何处理。 #### 二、理解DB2目录命令 在开始之前,我们需要了解几个关键的DB2命令: 1. **`db2catalogtcpipnode`**:用于...

    DB2 讲义,介绍DB2如何创建数据库等

    ### DB2创建数据库详解 #### 一、DB2概述与创建数据库步骤 DB2是IBM开发的一款关系型数据库管理系统(RDBMS),广泛应用于企业级应用中。本文将深入讲解DB2如何创建数据库,并涵盖数据库创建过程中的关键概念与操作...

Global site tag (gtag.js) - Google Analytics