




已阅读5页,还剩100页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
未提交读(Uncommitted Read)、游标稳定性(Cursor stability)、读稳定性(Read stability)可重复读(Repeatable Read)。王磊:1.调整AIX内存参数minperm:如果由文件页面占有的实际内存的百分比低于这个级别,则页面替换算法既替换文件页面也替换计算页面 maxperm:指定能用于客户机页面的最大内存百分数的调整参数。如果由文件页面占有的实际内存的百分比高于这个级别,则页面替换算法仅替换客户机页面典型值如下:maxperm% = 15 minperm% = 5vmo -p -o maxclient%=20vmo -p -o maxperm%=201 第1章 DB2安装配置1.1 DB2数据库概述1.1.1 DB2发展历史1.1.2 DB2版本和平台支持1.1.3 DB2产品组件和功能1.2 DB2数据库安装配置响应文件是一个包含设置和配置值的文本文件。DB2安装程序将读取该文件,并根据已指定的值来执行安装,响应文件安装也成为静默安装。响应文件的另一个优点是:他们提供了对那些不能使用“DB2安装”向导设置的参数的访问。在Linux和UNIX操作系统上,如果将DB2安装映像嵌入您自己的应用程序中,那么您的应用程序有可能从安装程序中以计算机可读的格式接收安装进度信息和提示。这种安装方式一般比较适合大批量的客户端的安装。1.2.1 DB2在Windows上的安装1.2.2 DB2在linux、UNIX上的安装1.3 DB2数据库体系结构 环境变量(25) DB2概要文件注册变量 节点目录:(27) 节点目录用于存储远程数据库的所有连通性信息。节点目录中记录与每个系统进行通信所需要的信息:例如机器(其中包含了您想连接的数据库)的主机名或IP地址,还有相关的DB2实例的端口号和使用的通信协议。要想得到您想要连接的远程实例的端口号,可以通过查看该实例的dbm cfg中的svcename参数来实现。该值通常对应于TCP/IP service文件中的某一项。节点目录主要用于配置客户端到服务器的通信使用。 系统数据库目录(或系统db目录) 系统数据库目录包含本地数据库目录和从远程的机器上映射到本地的数据库目录。它是我们访问数据库的一个入口,我们连接数据库时首先去系统数据库目录中判断这个数据库是否存在,然后再判断这个数据库是本地数据库还是远程数据库。如果是本地数据库就直接到本地物理目录上访问;如果是远程数据库,还要找到这个远程数据库在哪个节点上,然后再到节点目录中找到这个节点的通信信息,最后需要连接到远程的节点上来访问这个远程的数据库。启动DB2本地信息中心命令:db2icdocs2 第2章 创建实例和管理服务器2.1 实例2.1.1 实例概念 从DB2体系结构的方面来看,实例实际上就是DB2的执行代码和数据库对象的中间逻辑层。实例可以看成是关于所有的数据库及其对象的逻辑集合,也可认为是所有的数据库及其对象和DB2的代码之间的联系和结合。实例为数据库运行提供一个环境。数据库在运行时,实例用来为数据库提供安全、通信、内存分配和进程间通信等功能。这样数据库只负责前台的正常的运行,而一些后台的事情由实例来进行管理。实例对用户和开发人员来说是透明的。实例本质上有一组后台进程和共享内存组成。实例和数据库不一样的地方时,数据库时物理的,我们的表、索引存放在数据库中要占物理存储的;而实例是逻辑的,是共享内存、进程和一些配置文件(实例目录的集合)。当实例停止时,共享内存释放,进程停止。2.1.2 创建实例在Windows上创建一个实例的时候,不需要创建用户,创建完实例后,实例会作为一个服务存在。(32)在Linux和UNIX上创建实例时,必须要有一个和实例同名的用户存在。之所以需要创建用户,主要是因为需要该用户的home目录来作为实例目录,以存放实例相关的实例目录结构。Linux或UNIX上:db2icrt -a authType -u FencedID InstName-a AuthType表示实例的认证类型。AuthType可为SERVER、CLIENT、SERVER_ENCRYPT和DCS_ENCRYPT其中之一。SERVER是默认值。-u FencedID表示将用来运行受防护用户定义的函数(UDF)和受防护存储过程的用户的名称。这个用户和应用开发有关,虽然通常用不到,但是创建实例是必需的。InstName表示实例的名称。实例的名称必须与拥有实例的用户的名称相同。Windows操作系统上:db2icrt instnamedb2icrt InstName -s ese|wse|client|standalone -p instance profile path -u username,password -h hostname -c Cluster name -r baseport,endport -? 命令选项是: -s 指定所创建的实例的类型: ese 对于企业服务器版 wse 对于工作组服务器版 client 表示客户机 standalone 表示带有本地客户机的数据库服务器 -p 用于指定实例概要文件路径。 -u 用于指定 DB2 服务的帐户名和密码。创建 ese实例时需要此选项。 -h 用于覆盖缺省 TCP/IP 主机名(如果当前机器有多个 TCP/IP主机名)。在创建缺省节点(节点0)时,将使用该 TCP/IP 主机名。 -c 用于指定 MSCS集群名。指定此选项以便创建支持 MSCS 的 DB2实例。 -r 用于指定当在 MPP方式下运行时,分区数据库实例要使用的一系列TCP/IP 端口。如果指定了此选项,则本地机器的 services 文件将更新为下列条目: DB2_InstName baseport/tcp DB2_InstName_1 baseport+1/tcp DB2_InstName_2 baseport+2/tcp DB2_InstName_END endport/tcp2.1.3 实例目录一个实例创建后,会生成一个实例目录,实例目录存储着与一个数据库实例相关的所有信息。实例目录一旦创建,就不能更改其位置。在Linux/UNIX中为了拥有实例目录,必须创建和实例名相同的用户,其最终目的是为了用这个用户的home目录来作为实例目录。实例目录包括:l 数据库管理器配置文件(db2system)l 系统数据库目录(SQLDBDIR)l 节点目录(SQLNODIR)l 节点配置文件(db2nodes.cfg),db2nodes.cfg文件用来定义参与DB2实例的数据库分区服务器。如果想要将高速互连用于数据库库分区。l 诊断文件、数据库错误日志等。 在Linux和UNIX操作系统上,实例目录位于$INSTHOME/sqllib目录中,其中INSTHOME是实例所有者的主目录查看实例目录命令:echo $INSTHOME2.1.4 实例相关命令配置实例的运行环境db2profile一个实例用户A连接到另一个实例用户B,并管理B用户实例的方法:1、 编目B用户实例的节点到A用户下:db2 catalog tcpip node db2inst2(节点名) remote 10.2.36.18 server 50001db2 catalog database aml as aml at node db2inst22、初始化A用户的实例运行环境:A用户登录,运行B实例用户目录/bin/db2profile完成。db2cshrc查看系统中有几个实例以及他们的名字(39)Db2ilist迁移实例:db2imigr instanceName更新实例配置:db2iupdt db2iupdt InstName /u:username,password /p:instance profile path /r:baseport,endport /h:hostname /? /q /a:authType 解释: InstName 实例名 -u 用于指定 DB2服务的帐户名和密码。当创建分区数据库实例时,此选项是必需的。 -p 用于指定已更新的实例的新实例概要文件路径。 -r 用于指定当在 MPP方式下运行时,分区数据库实例要使用的一系列TCP/IP 端口。如果指定了此选项,则本地机器的services 文件将更新为下列条目: DB2_InstName baseport/tcp DB2_InstName_END endport/tcp -h 用于覆盖缺省 TCP/IP 主机名(如果当前机器有多个 TCP/IP 主机名)。 -? 此用法信息 -q 安静方式 -a authType 是实例的认证类型(SERVER、CLIENT 或 SERVER_ENCRYPT)自动启动实例db2iauto -on db2iauto -off 启动实例db2start连接至实例和从实例断开db2 attach to db2 detach停止实例db2stop强制停止实例db2stop force2.1.5 DB2INSTANCE变量介绍查看当前实例:方法1:echo %DB2INSTANCE% (Windows only); echo $DB2INSTANCE (Linux/UNIX)方法2:set db2instance方法3:db2 get instance切换db2_hou为当前实例:set db2instance=DB2_HOU2.1.6 删除实例db2idrop 2.1.7 配置实例db2 get dbm cfgdb2 update dbm cfg using将配置参数复位为建议的默认值:db2 reset dbm cfg2.2 管理服务器2.2.1 管理服务器概念DAS是数据库管理服务器(Database Administrator Server)的缩写。它是一个驻留在数据库服务器机器上的特殊实例。DB2管理服务器(DAS)响应来自远程DB2服务器管理工具和配置助手(CA)请求。DB2全局注册变量参数DB2ADMINSERVER定义了管理DB2数据库服务器的DAS:db2set -all2.2.2 创建管理服务器在Windows上创建DASdb2admin createdb2admin setid2、 在Linux和UNIX上创建DASdascrt u DASuser2.2.3 管理服务器相关命令启动和停止DB2管理服务器db2admin startdb2admin stop列示DB2管理服务器db2admin更新DB2管理服务器(Linux和UNIX)dasupdtdb2 MIGRATE db hou2.2.4 删除DB2管理服务器db2admindasdrop2.2.5 配置管理服务器db2 get admin cfgdb2 update admin cfg usingdb2 reset admin cfg2.2.6 联邦数据库配置联邦数据库步骤:1. 开启DBM中的FEDERATED参数db2 -v update dbm cfg using FEDERATED yes2. 重新启动实例db2stop forcedb2start3. 连接至需要配置联邦数据库的数据库db2 connect to sdadb2 4. 安装用于数据源的包装器,然后必须告诉 IBM 的联邦数据库在何处可找到包装器。通过 CREATE WRAPPER 语句可以做到这一点。如果期望添加的多个数据源属于同一类型,则只需一个包装器。例如,即使联邦系统将包含五个可能在不同机器上的 Oracle 数据库实例,也只需要一个 Oracle 包装器,因此只需要一条 CREATE WRAPPER 语句。然而,还必须向系统标识每个单独的数据源。通过 CREATE SERVER 语句可以做到这一点。如果有五个 Oracle 数据库实例,则必须发出五条 CREATE SERVER 语句db2 create wrapper drda-drda为名称5. 定义联邦服务器DB2进入交互模式(下面语句必须在交互模式下进行):CREATE SERVER SDADB TYPE DB2/AIX VERSION 9.7 WRAPPER DRDA AUTHORIZATION sda PASSWORD sda OPTIONS (NODE SDADB ,DBNAME SDADB)authorization 为远程数据库用户- password 为密码-NODE 为远程实例映射到本地的node(如果两个数据库都是本地库,那么不需要指定node)-dbname为远程实例下的数据库名6. 为联邦者认证创建用户映射db2 CREATE USER MAPPING FOR SDA SERVER SDADB OPTIONS(ADD REMOTE_AUTHID sda,ADD REMOTE_PASSWORD sda)7. 表别名db2 connect to sdadb2 user sda using sda(第六步中映射的哪个用户(SDA),这里就需要使用哪个用户登录数据库)db2 CREATE NICKNAME FFF FOR SDADB.SDA.FFF8. 测试如下:select * from fff;2.2.7 一个实例多个数据库,停止单个数据库先连接数据库db2 connect to sample将其他数据库连接干掉db2 quiesce db immediate force connections断开数据库db2 terminate使数据库处于非激活状态db2 deactivate db sampledb2 connect to sampledb2 unquiesce db3 第3章 创建数据库和表空间3.1 创建数据库3.1.13.1.23.1.3 数据库目录DB2EVENT目录:这个目录是 DB2 事件监视器的缺省结果输出目录。事件监视器用于记录特定事件发生时数据库的活动,记录的结果可以被保存在表、命名管道或者文件中。当使用文件来记录监控结果时,需要指明输出文件的路径名称。如果使用的是绝对路径,则文件会输出到相应路径下,如果使用的是相对路径,则文件会被输出到对应数据库目录下的 DB2EVENT 目录中。要察看监控结果的话,可以使用事件分析器这样的图形化工具,或者 DB2EVMON 这样的文本工具。SQLOGDIR目录:这个目录是数据库缺省的日志文件存放目录。不过,由于日志文件是数据库恢复策略中的决定性因素,因此要尽量保证日志文件的可用性。如果使用缺省设置,数据库的日志和数据都存放在同一位置,一旦发生介质错误,有可能造成日志文件和数据同时丢失,导致数据库无法恢复。因此,对于关键性应用,建议更改数据库配置参数 NEWLOGPATH 来修改日志文件的存储位置。db2rhist.asc 和 db2rhist.bak 文件:db2rhist.asc文件也就是在备份和恢复过程中会用到的DB2 恢复历史文件。该文件随着数据库的建立而建立,当对数据库进行了备份、恢复以及 LOAD 等操作时,该文件中都会记录相应信息。这些信息在进行恢复操作将起到至关重要的作用。该文件是如此重要,以至于为了防止该文件损坏,DB2 同时生成了一个 db2rhist.bak 作为该文件的备份,而且,DB2 的 restore 命令还允许从备份映像中单独恢复该文件。用户可以使用 LIST HISTORY 命令来察看该文件的内容,也可以使用 UPDATE HISTORY 命令和 PRUNE HISTORY 命令来修改该文件,但不应当使用文本编辑器来直接处理。SQLBP.1 和 SQLBP.2 文件这两个文件中包含数据库中缓冲池的信息,用于对缓冲池进行管理。SQLBP.2 和 SQLBP.1 的内容完全相同,可以起到备份的作用。SQLDBCONF每个数据库都有自己的配置参数,这些配置信息都被存放在 SQLDBCON 文件中,由于该文件是二进制格式,因此不能使用文本编辑器编辑,而应该使用 GET DB CFG 以及 UPDATE DB CFG 命令来察看和修改。SQLDBCON 文件在先前发行版中使用,并且包含在SQLDBCONF损坏时可以使用的类似信息。SQLINSLK 和 SQLTMPLK 文件这两个文件都是用来保证该数据库只能被数据库管理器的一个实例来使用。SQLOGCTL.LFH .1和SQLOGCTL.LFH.2 这个文件就是日志控制文件,里面记录着日志文件的状态,特别是包含了一个叫作LOGHEAD的变量,该变量定义了当前第一个活动日志,该日志也是崩溃恢复的起点。在进行崩溃恢复的时候,DB2会利用该变量的值来决定使用哪些日志来进行崩溃恢复。LOGHEAD对于归档日志也有很重要的意义,该变量的值是归档日志文件和活动日志文件的分割点,文件名序号小于LOGHEAD的值的日志文件都可以被归档到其他位置。要察看改变量的值,可以使用 GET DB CFG 命令。 SQLOGMIR.LFH 文件该文件与 SQLOGCTL.LFH 文件的作用类似,不过专门适用于启用了镜像日志的 DB2 环境。SQLSPCS.1 和 SQLSPCS.2 文件这两个文件中包含了数据库中表空间的定义以及表空间的当前状态。如果这两个文件被损坏,数据库连接操作将会失败。SYSTOOLSPACE被某些DB2管理工具或者DB2管理函数使用。有时候它会被自动创建,有时候必须被手动创建。你可以手动删除它,但不建议这么做,因为可能导致某些相应的db2工具或者管理函数不能使用。 如果我们创建了多个数据库,可以通过db2 list db directory on dbpath查看每一个数据库的目录3.1.43.1.5 DB2数据库存储模型(54)操作系统的最小存储单位是块(block),在Linux和UNIX上最小的块是512字节,在Windows上最小的存储单位是1KB。而数据库中最小的存储单位是数据页(datapage),它是DB2读写的最小单位。DB2数据库在写物理存储时,为了保证写的吞吐量,引入了一个更大的单位extent,它是整数倍的datapage的大小。这个我们可以在创建表空间时指定extentsize大小来确定。而表空间容器又是由很多个extent组成的。同时表空间又由很多容器组成。3.1.6 表空间管理类型系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在DB2 V9之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为SMS对象创建。这种表空间依赖底层的操作系统来进行空间管理。数据库管理的空间(Database-Managed Space,DMS):在这里,由DB2数据库管理程序控制存储空间。表空间容器可使用文件系统或裸设备。DMS的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理DMS存储的不同方式。修改表空间中容器大小:alter tablespace tbs1 resize(file /sdadb/111.dbf 262144);alter tablespace tbs1 resize(device /sdadb/111.dbf 262144);查看表空间状态命令:db2tbst3.2 表空间设计查看表空间剩余 表空间大小SELECT CHAR(TABLESPACE_NAME,25) AS TABLESPACE_NAME, TABLESPACE_ID, TOTAL_PAGES*PAGE_SIZE/1024/1024 TOTAL_SIZE,USED_PAGES*PAGE_SIZE/1024/1024 USED_SIZE,FREE_PAGES*PAGE_SIZE/1024/1024 FREE_SIZEFROM TABLE(SNAPSHOT_TBS_CFG(CAST(NULL AS VARCHAR(1), CAST (NULL AS INTEGER) AS SNAPSHOT_TBS_CFG3.2.1 创建表空间3.2.2 表空间维护查看表空间及容器的属性list tablespaces show detail要列出容器,我们需要使用以上输出中的Tablespace ID:查看表空间容器的情况list tablespace containers for 0 -0为表空间标志(tablespace ID)表空间状态db2tbst 将容器添加到DMS表空间:alter tablespace add (DEVICE ,FILE )如:alter tablespace USERSPACE1 add(file user2.dat 100) 表空间重新平衡可以使用命令:db2 list utilities show detail查看扩展表空间容器的大小添加容器会涉及到表空间容器的重新平衡,如果您不想这样,可以使用表空间扩展来修改容器大小,因为extend不会重新平衡表空间数据。Alter tablespace USERSPACE1 extend(All 100) Alter tablespace USERSPACE1 extend (file F:DB2NODE0000SQL00003user2.dat 100) 缩小DMS表空间中容器的大小alter tablespace reduce (FILE )alter tablespace USERSPACE1 reduce (file F:DB2NODE0000SQL00003user2.dat 100) (该语句是减小100页)增大DMS表空间中容器的大小alter tablespace resize (DEVICE )alter tablespace USERSPACE1 resize (file F:DB2NODE0000SQL00003user2.dat 2000)删除DMS表空间中的容器alter tablespace USERSPACE1 drop (file F:DB2NODE0000SQL00003user2.dat)重命名表空间rename tablespace USERSPACE1 to USE RSPACE2将表空间从脱机状态切换至联机状态alter tablespace swith online3.2.3 表空间设计注意事项3.2.4 prefetchsize大小选择3.2.5 文件系统(CIO/DIO)和裸设备3.2.6 OVERHEAD和TRANSFERRATE设置OVERHEAD 提供容器所需时间的估计(以毫秒计),在该时间过后才将任何数据读入内存。此开销活动包括容器的 I/O 控制器开销以及磁盘等待时间,后者包括磁盘寻道时间。您可以使用以下公式来估计开销成本: OVERHEAD = 以毫秒计的平均寻道时间 +(0.5 * 旋转等待时间)其中:o 0.5 表示半转的平均开销o 对每个完整旋转计算旋转等待时间(以毫秒计),如下所示: (1 / RPM) * 60 * 1000其中: 除以每分钟转数以获得每转所需的分钟数 乘以 60 秒/分 乘以 1000 毫秒/秒例如,假定磁盘速度为每分钟 7200 转。使用旋转延迟时间公式的结果如下: (1 / 7200) * 60 * 1000 = 8.328 毫秒此值可用于估计开销(假定平均寻道时间为 11 毫秒): OVERHEAD = 11 + (0.5 * 8.328) = 15.164TRANSFERRATE 提供将一页数据读入内存所需时间的估计(以毫秒计)。如果每个表空间容器都是单个的物理磁盘,那么可使用以下公式来估计传输成本(以毫秒/页计): TRANSFERRATE = (1 / spec_rate) * 1000 / 1024000 * page_size其中:o 除以spec_rate(这是磁盘的传输速率规格,以兆字节/秒计),以获取每兆字节所需的秒数o 乘以 1000 毫秒/秒o 除以 1024000 个字节/兆字节o 乘以页大小(以字节计);例如,4 KB 页的大小为 4096 字节例如,假定磁盘的速率规格为每秒 3 兆字节。那么: TRANSFERRATE = (1 / 3) * 1000 / 1024000 * 4096 = 1.333248即,每页大约 1.3 毫秒。如果表空间容器不是单个的物理磁盘,而是磁盘阵列(例如 RAID),那么估计 TRANSFERRATE 时必须考虑其他事项。如果阵列相对较小(即,瓶颈处于磁盘级),那么可用磁盘数乘以spec_rate。但是,如果阵列较大,那么瓶颈可能不是在磁盘级别,而是存在于其他某个 I/O 子系统组件上,例如磁盘控制器、I/O 总线或系统总线。在这种情况下,不能假定 I/O 的吞吐量能力是spec_rate与磁盘数目的乘积。而必须测量顺序扫描期间的实际 I/O 速率(以兆字节计)。例如,select count(*) from big_table所产生的顺序扫描的大小可能是几兆字节。在这种情况下,请将结果除以 BIG_TABLE 所在表空间所包含的容器数。然后,使用该结果替换以上公式中的spec_rate。例如,在扫描包含 4 个容器的表空间中的某个表时,所测得的顺序 I/O 速率为 100 MB 意味着每个容器 25 兆字节,即,TRANSFERRATE 为 (1/25) * 1000 / 1024000 * 4096 = 0.16 毫秒/页。分配给一个表空间的各个容器可能在不同的物理磁盘上。为了获得最佳结果,用于给定表空间的所有物理磁盘应具有相同的 OVERHEAD 和 TRANSFERRATE 特征。如果这些特征不相同,那么在设置 OVERHEAD 和 TRANSFERRATE 时,您应使用平均值。您可以根据硬件规格或通过试验来获得这些列的特定于介质的值。可以在 CREATE TABLESPACE 和 ALTER TABLESPACE 语句中指定这些值。3.2.7 查看表空间使用率SELECT tbsp_name,tbsp_type,tbsp_page_size,tbsp_used_pages,tbsp_total_pages, tbsp_total_pages*tbsp_page_size/1024/1024/1024 as TOTAL_GB, tbsp_usable_pages*tbsp_page_size/1024/1024/1024 as USABLE_GB, tbsp_used_pages*tbsp_page_size/1024/1024/1024 as USED_GB, tbsp_free_pages*tbsp_page_size/1024/1024/1024 as FREE_GB, tbsp_used_pages*100/tbsp_total_pagesFROM TABLE(MON_GET_TABLESPACE(,-2) AS t3.3 缓冲池3.4 本章小结4 第4章 访问数据库4.1 访问DB24.2 DB2图形化操作环境4.3 DB2 CLP处理程序4.3.1 DB2 CLP简介4.3.2 DB2 CLP 设计4.3.3 DB2 CLP命令选项 在使用DB2 CLP处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用DB2命令时,可以指定一个或多个处理程序选项。常用的一些选项如下:l 可以使用c标志名义每个语句的自动提交;l 可以使用v标志定义在命令执行时同时在屏幕数据; l 可以使用s标志定义执行命令序列时碰到错误停止执行;l 可以使用z标志定义把命令执行期间的结果输出到一个文件;l 可以使用f标记定义提供DB2命令和SQL语句的输入文件l 可以使用t标记定义语句末尾的结束字符(默认字符是;)。如果你不想用;结尾,而想用结尾,那么可以使用-td方式读取输入文件。可以通过在DB2处理程序中输入db2 list command options命令或者db2 ? options命令获得所有有效选项的列表。有3种修改DB2处理程序选项的方法:l 可以通过db2set DB2OPTIONS直接修改注册表变量,这会永久改变DB2处理程序选项的值。例如:db2set db2options=-cl 可以使用update command options命令修改DB2处理程序选项,这会在会话级别改变DB2处理程序选项的值。它的优先级高于使用DB2set DB2OPTIONS设置,它将会覆盖在注册表级建立的任何设置。例如:db2=update command options using c onl 在输入DB2命令时指定命令行标志,这将会在语句改变DB2处理程序选项的值。它的优先级高于使用DB2set DB2OPTIONS设置,也高于使用update command options命令设置,它将会覆盖注册表级和会话级建立的所有设置。例如:db2 -c command or statement在使用指定命令行标志打开选项时,应该在对应的选项字母前面加上减号(-);要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。4.4 配置DB2服务器的TCP/IP通信查看实例的端口:UNIX:db2 get dbm cfg|grep SVCENAME找出SVCENAME参数的值cat /etc/services |grep db2c_db2inst2WINDOWS:db2 get dbm cfg |find /i SVCENAME根据SVCENAME值,查看c:windowssystem32driversetcservices 中的文件4.5 配置客户机至服务器通信4.5.1 客户机至服务器通信概述4.5.2 使用控制中心配置客户端通信4.5.3 使用CA配置客户机到服务器通信4.5.4 深入了解DB2节点目录、数据库目录列示本地节点目录内容Db2 list node directory列出系统db目录的内容db2 list db directory4.6 本章小结5 第5章 创建数据库对象5.1 模式5.1.1 模式概念5.1.2 系统模式对于每个数据库,都创建和维护一组系统编目表。这些表包含关于数据库对象(例如表、视图、索引和包)的定义的信息以及关于用户对这些对象的访问类型的安全信息。这些表存储在SYSCATSPACE表空间中,并采用保留的系统模式名:l SYSIBM、SYSFUN和SYSPROC:一组例程,包括函数和存储过程,其中的SYSIBM是基本系统编目的模式(不建议直接访问它)。l SYSCAT:一组只读的系统编目表视图,记录数据库对象的机构信息。l SYSSTAT:一组可更新的编目视图。这些可更新的视图允许更新某些统计信息,从而模拟和测试数据库的性能,或者更新统计信息而不使用RUNSTATS实用程序。l SYSIBMADM:一组动态性能视图,可以从该组视图中获取数据库的性能运行信息。5.2 表设计考虑5.2.1 选择合适的数据类型如果表拥有变长列(如VARCHAR),列仍然按照CREATE TABLE语句中指定的顺序排序,但可变数据本身在行的末尾。CLOB大数据类型内联的使用create table aaa(message clob(50000) inline length 1000)in data_tbs index in idx_tbs in long_tbs;alter table aaa alter column message set inline length 1000;5.2.2 选择合适的约束类型5.2.2.1 NOT NULL约束5.2.2.2 唯一约束示例:CREATE TABLE CIBAML.BBB5 (A VARCHAR(40) NOT NULL primary key, B VARCHAR(40) NOT NULL UNIQUE, C VARCHAR(40) NOT NULL ) DATA CAPTURE CHANGES IN USR_SPACE01 INDEX IN IDX_SPACE01;ALTER TABLE CIBAML.BBB ADD CONSTRAINT UNIQ UNIQUE (B);5.2.2.3 外键约束ALTER TABLE CIBAML.bbb3 ADD CONSTRAINT aaa FOREIGN KEY (AA) REFERENCES CIBAML.BBB (A) ON DELETE NO ACTION ON UPDATE NO ACTION ENFORCED ENABLE QUERY OPTIMIZATION;DB2 的Foreign Key在DELETE上有四种设置:No Action : 不要被字面意思所影响,它的意思其实和Restrict delete一样。Restrict delete: 表示删除父表记录时如果存在子表的关联记录,将被回滚,并且报错;Cascade : 表示在删除父表的同时删除子表的记录(级联删除.);Set Null : 表示在删除父表的同时,子表外键列被设置为 null;No Action和Restrict delete的区别只是在于一点:Note: No Action is the default situation for DB2 UDB on Unix or Windows. Restrict delete is the default situation for DB2 UDB on z/OS.No Action 的意思为 不做任何操作。被有些人理解错误时因为他们没有想到外键的一个关键作用:防止数据孤岛的错在。所以No Action 的真正含义为 不做任何操作,DB按照原有的逻辑去处理。而DB原有的逻辑就是Restrict delete的逻辑。5.2.3 not null with default5.2.4 生成列及应用案例create table t1 (c1 INT, c2 DOUBLE, c3 DOUBLE generated always as (c1+c2), c4 generated always as (case when c1c2 then 1 else null end)5.2.5 自动编号和标识列应用案例定义成generated by default的标识列使应用程序能够显式地为标识列提供值。如果应用程序不提供值,那么DB2将生成一个值。 create table cibaml.aaa1(actor_id int generated by default as identity, actor_name varchar(20), act_yr_of_birth int);定义为generated always 的标识列给予始终由DB2数据库管理器生成的值,不允许应用程序提供显式的值。create table aaa2(id integer, name char(20), dn integer not null generated always as identity (start with 1,increment by 1);执行alter table aaa2 alter column dn restart 后,当前序列值重置为1;执行alter table aaa2 alter column dn restart with 10 后,当前序列值置为10。5.2.6 使用not logged initially特性如果我们需要经常对一个表进行批量插入,更新和删除操作,可以考虑在创建表的时候使用not logged initially特性。在实际生活中,这样做对于一些临时表、桑塔格表非常好,可以提高批量插入、更新和删除的性能。create table aaa3 (id int ,name char(20) not logged initially;quest中,勾选如图所示的两个选项:产生的sql如下:ALTER TABLE AML.A ACTIVATE NOT LOGGED INITIALLY;执行后,发现该表的建表语句并未发生任何变化,仍为:CREATE TABLE AML .AAA5 ( ID INTEGER , NAME CHAR(20) ) IN TBS_DATA_DATA INDEX IN TBS_DATA_INDEX ;如果要将表改为不记日志的表,只能将表重建。勾选Activate no logging的同时,必须同时勾选Remove table data,也就是不记日志的方式将表清空。产生以下sql:ALTER TABLE AML.AAA5 ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE;使用activate not logged initially 清空表而不产生日志(直接清空表):alter table aaa3 activate not logged initially with empty table;表的not logged initially特性在默认情况下是不会激活的,除非手动执行:ALTER TABLE ODS_NGCMS_CIPERSONBASINFO ACTIVATE NOT LOGGED INITIALLY激活不记日志,并且不能commit,否则属性失效 在本事务内继续对该表执行增删改的操作。insert into ODS_NGCMS_CIPERSONBASINFO2 select * from ODS_NGCMS_CIPERSONBASINFO;最后进行commit提交。不管在建表时是否加了NOT LOGGED INITIALLY,都可以通过激活NOT LOGGED INITIALLY来对标进行操作,故在建表时加入NOT LOGGED INITIALLY有何用处,目前还不清除5.2.7 使用append on特性在数据库中,当表中的数据被删除时,空间并不会释放,而是在该行原来的位置做个“deleted”的标志,标识该空间可以被重用。当DB2执行insert操作时,会扫描整个表的空闲空间并将新行置入空槽。而如果我们启用了append on 特性,那么当插入新行时,DB2就不必搜索空槽再插入而是插入到表的最后。 create table aaa4 like aaa3 in userspace1; alter table aaa4 append on;这将使insert 更快,这适合用于大批量追加插入一些历史表。如果启用这种特性,考虑定期reorg表。5.2.8 数据、索引和大对象分开存放在创建表的时候,考虑把表数据、索引和大对象数据分开存放到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 发展新质生产力的时代价值
- 医患关系论文精要2000字
- 青年在新质生产力发展中的行动路径
- 劳模工匠讲新质生产力
- 2025年输血学ABO血型配型技术应用模拟测试卷答案及解析
- 2025年耳鼻喉科常见耳疾诊治知识竞赛试卷答案及解析
- 2025年眼科常见疾病的诊断与治疗综合测试卷答案及解析
- 2025年康复医学评估工具运用考试答案及解析
- 乏燃料后处理新质生产力
- 关于感恩节的幼儿园主题活动方案
- 房屋归属权协议书范本(标准版)
- 鼻腔冲洗护理技术团体标准解读
- GB/T 41130-2021展览场馆安全管理基本要求
- 湘美版美术一年级上册全册课件
- 环境经济学(张)课件
- 人才管理-人才选用育留课件
- 成功八步课件
- 玉石床垫讲稿课件
- 初中音乐七年级上册第一单元 红岩魂走进歌乐山
- 栈桥修复方案(全文)
- 某五星级酒店单项工程经济指标
评论
0/150
提交评论