`

DB2 学习记录

    博客分类:
  • db2
阅读更多

有点乱,因为有些没明白,等明白了,再整理。

启动Command Line Processor,CLP
db2cmd db2 
CREATE DATABASE MY1STDB
    * 数据库名称可以由以下字符组成:a-z、A-Z、0-9、@、# 和 $。
    * 名称中的第一个字符必需是字母表字符、@、# 或 $;不能是数字或字母序列 SYS、DBM 或 IBM。
    * 数据库名称或数据库别名是一个惟一的字符串,包含前面描述的一个到八个字母、数字或键盘字符。
    (是说一个INSTANCE下,要唯一吧,而且好象不能超出八位)

db2 => CREATE DATABASE MY1STDB1;
SQL1001N  "MY1STDB1;" is not a valid database name.  SQLSTATE=2E000    ---来以为是ORACLE。
db2 => CREATE DATABASE MY1STDB1
DB20000I  The CREATE DATABASE command completed successfully.          ---成功。
db2 => CREATE DATABASE MY1STDB11
SQL1001N  "MY1STDB11" is not a valid database name.  SQLSTATE=2E000   ---9位,失败。
db2 => CREATE DATABASE MY1STDB21
SQL1001N  "MY1STDB21" is not a valid database name.  SQLSTATE=2E000  ---9位,失败。
db2 => CREATE DATABASE MY1STDB2
DB20000I  The CREATE DATABASE command completed successfully.            ---成功。
db2 => CREATE DATABASE MY1STDB2
SQL1005N  The database alias "MY1STDB2" already exists in either the local     ---同名,失败。
database directory or system database directory.

DB2 创建,包括日志文件、配置信息、历史文件和三个表空间。这些表空间是:
    * SYSCATSPACE:这是保存 DB2 系统编目的地方,系统编目跟踪与 DB2 对象相关联的所有元数据。
    * TEMPSPACE1:DB2 用来放置中间结果的临时工作区域。
    * USERSPACE1:默认情况下存放所有用户对象(表、索引)的地方。
所有这些文件都放在默认驱动器上的 DB2 目录中。默认驱动器通常是安装 DB2 产品的卷。

在 DB2 9 之前,CREATE DATABASE 命令会为上面列出的所有对象创建 SMS 表空间。
在 DB2 9 中,所有表空间都将定义为自动存储(DMS)表空间。
如果不要的话,可以

CREATE TABLESPACE TEST MANAGED BY AUTOMATIC STORAGE NO

看看创建的DB目录:
E:\db2\NODE0000\MY1STDB1>dir /s
 Volume in drive E is Application
 Volume Serial Number is 08BD-EF8E

 Directory of E:\db2\NODE0000\MY1STDB1

03/20/2008  09:33 AM                 0                         SQLCRT.FLG
03/20/2008  09:33 AM    <DIR>                              T0000000                 --估计对应SYSCATSPACE tablespace
        03/20/2008  09:34 AM        67,108,864         C0000000.CAT   
        03/20/2008  09:33 AM                 0                   SQLCRT.FLG
03/20/2008  09:34 AM    <DIR>                              T0000001                 --估计对应TEMPSPACE1 tablespace
        03/20/2008  09:34 AM    <DIR>                      C0000000.TMP
                03/20/2008  09:34 AM               512         SQLTAG.NAM
        03/20/2008  09:34 AM                 0                   SQLCRT.FLG
03/20/2008  09:33 AM    <DIR>                               T0000002                --估计对应USERSPACE1 tablespace
        03/20/2008  09:33 AM        33,554,432          C0000000.LRG
        03/20/2008  09:33 AM                 0                   SQLCRT.FLG
还有一个目录,应该是放日志文件、配置信息等的:
E:\db2\NODE0000\SQL00008
 
如果没有指定路径,会在数据库管理程序设置(DFTDBPATH 参数)中指定的默认数据库路径上创建数据库:
Default database path                       (DFTDBPATH) = E:
 
这两个命令都没有成功,估计和路径有关
CREATE DATABASE MYDB ON D:\TEST
 
CREATE DATABASE MYDB
    AUTOMATIC STORAGE ON
    /db2/storagepath001,
    /db2/storagepath002,
    /db2/storagepath003
    AUTORESIZE YES            ---当表空间用光空间时,系统将自动地扩展容器的大小。
    INITIALSIZE 300 M           ---没有定义初始大小的默认为300 MB,每个容器是100 MB(有三个存储路径)。
    INCREASESIZE 75 M        ---当表空间用光时,总空间增加 75 MB;可以指定百分数,增长当前大小的百分数。
    MAXSIZE NONE                   ---表空间的最大大小没有限制,可以限制表空间最大值。
还发现真的要在CPL下,跑的话,要加\,续行,才能跑,繁人。

CREATE TABLESPACE TEST MANAGED BY AUTOMATIC STORAGE;
在这个命令中,可以提供与表空间相关联的任何参数;
但是,使用自动存储可以大大简化日常的表空间维护。
与重要的大型生产表相关联的表空间可能需要 DBA 更多地干预。

在没有启用自动存储的数据库中创建表空间时,
必须指定 MANAGED BY SYSTEM 或 MANAGED BY DATABASE 子句。
使用这些子句会分别创建 SMS 表空间和 DMS 表空间。
在这两种情况下,都必须提供容器的显式列表。
SYSTEM USING ('container string')
DATABASE USING ( FILE/DEVICE 'container string' number of pages )

重要提示:所有容器必须是在所有数据库上惟一的;一个容器只能属于一个表空间。

字符代码
db2都有一个相关联的字符代码页,可以认为代码页是一个对照表,用来将字母数字数据转换为数据库中存储的二进制数据。一个 DB2 数据库只能使用一个代码页。
代码页是在 CREATE DATABASE 命令中使用 CODESET 和 TERRITORY 选项设置的。

对于需要使用 XML 数据的应用程序,
当前,DB2 只在定义为 Unicode(UTF-8)的数据库中支持 XML 列。
如果数据库在创建时没有启用 Unicode 支持,就不能在其中创建 XML 列。

另外:
db2 => CREATE DATABASE DB2TEST4  AUTOMATIC STORAGE YES
SQL1047N  The application is already connected to another database. --遇到这个,要connect reset
db2 => connect reset
DB20000I  The SQL command completed successfully.
db2 => CREATE DATABASE DB2TEST4  AUTOMATIC STORAGE YES

db2 => CREATE DATABASE MYDB
SQL1032N  No start database manager command was issued.   --db service没起来。

--也可能DB没有起来.
SQL30081N  检测到通信错误。正在使用的通信协议:"TCP/IP"。正在使用的通信
API:"SOCKETS"。检测到错误的位置:"10.89.59.203"。检测到错误的通信功能:
"connect"。特定于协议的错误代码:"10061"、"*" 和 "*"。  SQLSTATE=08001
      

最后的例子

( 1) CREATE DATABASE MY1STDB
( 2)  DFT_EXTENT_SZ 4
( 3)  CATALOG TABLESPACE MANAGED BY DATABASE USING
( 4)   (FILE 'C:\CAT\CATALOG.DAT' 2000, FILE 'D:\CAT\CATALOG.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:\TS\USERTS.DAT' 121)
(11)   EXTENTSIZE 24
(12)   PREFETCHSIZE 48

自己琢磨琢磨吧!

后加的,

  • EXTENTSIZE:区段(extent) 是表空间的容器中的一个空间单元。数据库对象(除了 LOB 和 long varchar 之外)都存储在 DB2 中的页面 中。这些页面组合成区段。区段大小是在表空间级定义的。一旦为表空间指定了区段大小,就不能改变了。数据库配置参数 DFT_EXTENT_SZ 指定数据库中所有表空间的默认区段大小。这个值的范围是 2 到 256 个页面;因此,绝对大小是从 8 KB 到 1024 KB(对于 4 KB 页面),或者从 16 KB 到 2048 KB(对于 8 KB 页面)。可以在 CREATE TABLESPACE 语句中使用 EXTENTSIZE 参数覆盖这个数字。

    如果打算在表的设计中使用多维聚簇(MDC),区段就是一个重要的设计决定。MDC 表将为创建的每个新的维集分配一个区段。如果区段太大,那么区段的很大一部分有可能是空的(对于包含很少记录的维集)。关于 MDC 及其对 EXTENTSIZE 的影响的更多信息,请参考 DB2 Administration Guide。

  • PREFETCHSIZE:连续的预获取是指数据库管理程序能够提前预测查询,在实际引用页面之前读取这些页面。这种异步的检索可以显著减少执行时间。可 以通过修改 CREATE TABLESPACE 语句中的 PREFETCHSIZE 参数来控制执行预获取的积极程度。在默认情况下,这个值设置为 DFT_PREFETCH_SZ 数据库配置参数。这个值代表在 DB2 触发预获取请求时每次读取多少个页面。通过将这个值设置为区段大小的倍数,可以并行地读取多个区段。当表空间的容器在不同的硬盘上时,这个功能甚至效率更 高。

这些参数的默认值对于许多应用程序是合适的,但是对于执行许多查询或分析大量数据的应用程序,可以考虑设置更高的 PREFETCHSIZE。

用Control Center的向导来创建DB,好处是最后可以得到对应的SQL。

分享到:
评论
1 楼 uniquejava 2012-11-12  
多谢,记录的很真实。

相关推荐

    db2学习笔记(包括常用命令)

    ### DB2 学习笔记详解 #### 一、DB2系统架构与管理 DB2,全称为Database 2,是IBM公司开发的一款关系型数据库管理系统。它具备强大的数据处理能力和高度的安全性,广泛应用于企业级的数据管理和分析。DB2的设计...

    db2 学习笔记

    db2学习笔记

    DB2学习记录

    ### DB2学习记录 #### 一、并发机制与隔离级别 DB2的并发控制机制与Oracle存在显著区别。其中一个重要方面体现在默认隔离级别上。Oracle的默认隔离级别为快照(snapshot),这种设置使得写入事务不会阻塞读取事务,...

    DB2学习笔记.docx

    DB2学习笔记.docxDB2学习笔记.docx

    DB2学习笔记与总结

    这份"DB2学习笔记与总结"包含了丰富的知识内容,旨在帮助读者深入理解和掌握DB2的相关技术。以下是对其中主要知识点的详细阐述: 1. **数据库基本概念**:首先,了解数据库的基本概念至关重要,包括数据模型(如...

    DB2 学习笔记

    ### DB2 学习笔记知识点总结 #### 一、DB2导出与导入操作 - **DB2 Export:** - `db2export to staff.ixf ofixf select * from userid.staff`:此命令用于将`userid.staff`表的数据导出至`staff.ixf`文件中,采用...

    db2学习笔记(个人总结)

    本笔记将聚焦于DB2的学习,同时对比分析Oracle和MySQL两种流行数据库的分页实现,旨在帮助读者深入理解数据库分页机制。 首先,让我们了解一下分页在数据库中的重要性。在大数据量的查询场景下,一次性返回所有结果...

    db2 学习笔记 权限 编目等

    本篇学习笔记主要探讨了这两个方面。 首先,DB2权限系统提供了一套严谨的权限级别,确保了对数据库的访问和操作得到适当控制。以下是五种主要的权限: 1. SYSADM(系统管理员)权限:这是最高级别的权限,类似于...

    DB2学习笔记,各个细节部分介绍

    在学习DB2的过程中,了解其核心配置参数以及如何优化是至关重要的。以下是对标题和描述中涉及的知识点的详细解释: 1. **缓冲池问题**:缓冲池是DB2内存管理的关键组成部分,用于缓存数据和索引页,以减少磁盘I/O...

    DB2数据库学习笔记

    ### DB2数据库学习笔记知识点详解 #### 一、DB2系统架构及管理命令 ##### 1. DB2的层级概念 - **域**: 指的是DB2的管理范围,通常对应于一个物理服务器或者一组逻辑相关的服务器。 - **实例**: 实例是在一个操作...

    DB2学习(数据库管理命令

    通过阅读《DB2学习笔记一(数据库管理命令)》、《DB2学习笔记二(数据操作命令)》、《DB2学习笔记(TIPS)》和《DB2学习笔记(管理工具的使用)》,深入理解和掌握每个知识点,将使你在DB2的学习之路上更加...

    DB2 DBA 学习笔记

    DB2学习笔记,有些地方可能写的很乌龙,加上网上搜索汇集的,反正忘记了的命令上来搜搜看就是了。

    db2应用基础学习笔记

    "db2应用基础学习笔记"涵盖了DB2的基本概念、安装配置、数据操作、查询优化、安全性及备份恢复等多个方面,旨在帮助初学者快速入门并掌握DB2的基础使用。 1. **基本概念**:DB2是一款支持SQL语言的数据库系统,它...

    DB2学习资料以及常用命令

    ### DB2学习资料与常用命令解析 #### 一、DB2简介 DB2是IBM公司开发的一款关系型数据库管理系统(RDBMS),广泛应用于企业级数据处理。它支持SQL标准,并提供了一系列工具和功能来管理复杂的数据环境。对于DB2的学习...

    DB2很不错的学习资料

    - `DB2笔记.txt` 可能是个人学习或教学过程中整理的要点和心得,可能包含了实际操作中的小技巧和最佳实践。 - `DB2常用SQL技巧及函数.txt` 和 `DB2常用标量函数.txt` 则专门针对SQL使用技巧和常用的标量函数进行了...

    DB2数据库学习资料

    - `ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTY TABLE` 快速清空大表,但不记录日志。 14. **查看数据库对象**: - `SELECT * FROM SYSCAT.PROCEDURES` 查看存储过程。 - `SELECT * FROM ...

    db2数据库学习笔记.pdf

    db2数据库学习笔记.pdf

    DB2安装配置学习笔记.doc

    DB2 安装配置学习笔记 DB2 安装配置学习笔记是一份关于 DB2 在 Unix 或 Linux 上的安装配置的学习笔记,涵盖了安装前的准备工作、DB2 安装、license 注册等多个方面的知识点。 安装前的准备工作 在安装 DB2 之前...

Global site tag (gtag.js) - Google Analytics