在创建数据库的同时,还在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