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

作者:czmmiao 原文地址:http://czmmiao.iteye.com/blog/1327636

时间: 2024-08-03 21:38:44

DB2创建数据库常用参数详解(原创)的相关文章

mysqldump数据库备份参数详解_Mysql

mysqldump备份: 复制代码 代码如下: mysqldump -u用户名 -p密码 -h主机 数据库 a -w "sql条件" –lock-all-tables > 路径 mysqldump还原: 复制代码 代码如下: mysqldump -u用户名 -p密码 -h主机 数据库 < 路径 mysqldump按条件导出: 复制代码 代码如下: mysqldump -u用户名 -p密码 -h主机 数据库 a –where "条件语句" –no-建表&g

Ghost常用参数详解_DOS/BAT

用过DOS的人对参数并不陌生,DOS下的很多程序都有参数,尽管是枯燥的英文字母,但功能却非常强大.Ghost是一个典型的支持参数的DOS程序,充分利用它的参数,我们可以更好地控制Ghost.让它们更好地为我们工作,前面几个例子,我们就使用了Ghost的参数做出了一张自动备份和恢复硬盘数据的自启动光盘.正是因为Ghost参数众多,功能强大,我们才有必要把一些最最常用的参数列出,供大家平时参考使用.     小提示      ★参数(Parameter)是程序提供给我们一些隐藏选项,通过添加参数,可

HBase shell基础和常用命令详解

http://www.aliyun.com/zixun/aggregation/13713.html">HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务. 1. 简介 HBase是一个分布式的.面向列的

Mysql慢查询使用与参数详解

慢查询为系统中查询时间超过long_query_time的值,分析慢查询是优化SQL的基础,默认清下Mysql慢查询为关闭状态,可以通过 show variables where Variable_name = 'log_slow_queries'; 来查看是否开启,如果为OFF则需要修改mysql配置文件,在mysqld下面增加以下参数 #慢查询日志地址,需要mysql运行帐号对该目录有写权限 log-slow-queries="/log/slow.log" #当query语句大于2

jQuery()方法的第二个参数详解_jquery

关于jQuery()方法的第二个参数,有下面这几种用法: 1.jQuery(selector, [context]) 这种用法,相当于 $(context).find(selector) 或者 context.find(selector) 2.jQuery(html, [ownerDocument]) 文档对ownerDocument的解释是:"创建DOM元素所在的文档" 也就是说,如果你要编写挎document的脚本,比如iframe或者用window.open开一个新窗口,可能会用

js正则表达式常用函数详解(续)_正则表达式

正则表达式对象的方法 1.test,返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式.如果存在则返回 true,否则就返回 false. 2.exec,用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组. 3.compile,把正则表达式编译为内部格式,从而执行得更快.正则表达式对象的属性 1.source,返回正则表达式模式的文本的复本.只读. 2.lastIndex,返回字符位置,它是被查找字符串中下一次成功匹配的开始位置. 3.input ($_),返回执

python常用函数详解_python

1.函数的介绍 为什么要有函数?因为在平时写代码时,如果没有函数的话,那么将会出现很多重复的代码,这样代码重用率就比较低...并且这样的代码维护起来也是很有难度的,为了解决这些问题,就出现了函数,用来将一些经常出现的代码进行封装,这样就可以在任何需要调用这段代码的地方调用这个函数就行了. 函数的定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 代码重用 保持一致性 可扩展性 2.函数的创建 在python中函数定义的格式如下: def

mysql中mysqldumper安装、使用和参数详解

mysqldumper这个备份工具比较好的点很明显,就是可以并发备份,比mysqldump要快些,另一个就是备份的表是单独的文件,恢复单表时会很方便(表结构和数据文件也是分开一个文件的). 一.下载安装 下载最新的mysqldumper mysqldumper 下载地址:https://launchpadlibrarian.net/185032423/mydumper-0.6.2.tar.gz [root@mysql.dmc.com ]$tar -zxvf mydumper-0.6.2.tar.

hbase shell基础和常用命令详解_linux shell

HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务. 1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase