《db基础操作手册.pptx》由会员分享,可在线阅读,更多相关《db基础操作手册.pptx(66页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 开关机顺序 安全性管理 存储管理 软件管理 网络管理主要内容主要内容主要内容第1页/共66页 进程管理 任务调度 性能监控 ha简介主要内容主要内容主要内容第2页/共66页Database global memoryDatabase global memoryDatabase global memoryBufferpoolExtended MemoryDBHEAP(LOGBUF,CATALOGCACHE_SZ)UTILITYHEAP(BACKUP,RESTORE BUFFER)Package CacheLock ListSort Heap第3页/共66页实例实例实例第4页/共66页实例相关的
2、命令实例相关的命令实例相关的命令 创建实例 db2icrtdb2icrtdb2icrt-u fenced_user_ID instance_name indb2icrt-u fenced_user_ID instance_name in UNIX 删除实例 db2idrop db2idrop f f instance_nameinstance_name 列出实例 db2ilistdb2ilist 移植实例db2imigr db2imigr instance_nameinstance_name 升级实例 db2iupdt db2iupdt instance_nameinstance_name第5
3、页/共66页设置设置设置db2db2db2环境参数环境参数环境参数 db2 profile registries db2 profile registries 操作系统的环境变量 db2 dbm db2 dbm 配置参数 db2 db db2 db 配置参数Db2环境参数控制着db2的操作和功能第6页/共66页Db2 profile registriesDb2 profile registriesDb2 profile registries 可以设置不同的级别Instance/global/user/Instance/global/user/instance node/instance pro
4、fileinstance node/instance profile 使用db2setdb2set命令,可以显示,修改,删除 db2set db2set allall显示所有设置的 db2set db2set lrlr显示所有可以设置的 db2 db db2 db 配置参数第7页/共66页操作系统环境变量操作系统环境变量操作系统环境变量 windows windows Set param=valueSet param=value unix ksh unix ksh和bshbshExport param=valueExport param=value unix csh unix cshSeten
5、v param=valueSetenv param=value第8页/共66页实例和数据库参数实例和数据库参数实例和数据库参数 读取Db2 get database manager configuration Db2 get database manager configuration Db2 get database configuration for database_nameDb2 get database configuration for database_name 设置Db2 update dbm cfg using param valueDb2 update dbm cfg us
6、ing param valueDb2 update db cfg for db_name using param valueDb2 update db cfg for db_name using param value第9页/共66页连接到数据库连接到数据库连接到数据库 服务器端配置设置db2 profile registrydb2 profile registry的参数DB2COMM,DB2COMM,如:Db2set db2comm=tcpipDb2set db2comm=tcpip设置实例级参数Db2 update dbm cfg using svcename 50000Db2 updat
7、e dbm cfg using svcename 50000修改该参数,需要重起实例第10页/共66页连接到数据库连接到数据库连接到数据库客户端可供选择方式之一自动搜索有两种方法:known known 和 searchsearch需要serverserver端的管理服务器启动db2admin startdb2admin start配置管理服务器update admin cfg using discover update admin cfg using discover searchsearch配置实例update dbm cfg using discover_inst update dbm
8、cfg using discover_inst enableenable配置数据库update db cfg for db_name using update db cfg for db_name using discover_db enablediscover_db enable第11页/共66页连接到数据库连接到数据库连接到数据库客户端可供选择方式之二概要文件第12页/共66页连接到数据库连接到数据库连接到数据库客户端可供选择方式之三手工配置编目节点Catalog tcpip node node_name remote ipCatalog tcpip node node_name remo
9、te ip地址Server 50000Server 50000编目数据库Catalog db db_name as at node node_nameCatalog db db_name as at node node_name第13页/共66页db2db2db2命令交互命令交互命令交互 db2cmd db2cmd命令行交互模式,可以直接输入Db2Db2命令,操作系统命令前加!命令行模式,可以直接识别操作系统命令,db2db2命令前加db2db2执行脚本Db2 Db2 f myfile.clpf myfile.clp脚本中用-做注释第14页/共66页命令行可执行的命令命令行可执行的命令命令行可
10、执行的命令第15页/共66页命令行选项和获得帮助命令行选项和获得帮助命令行选项和获得帮助命令行选项Db2 list command optionsDb2 list command options获得帮助Db2?Db2?Db2?CommandDb2?CommandDb2?SqlnnnnDb2?SqlnnnnDb2?db2nnnnDb2?db2nnnn第16页/共66页命令中心命令中心命令中心可以在控制中心调用图形化的命令行处理器,功能类似特殊的功能可以得到sqlsql的执行计划可以将sqlsql加到脚本中第17页/共66页控制中心控制中心控制中心 配置功能,可以显示和修改实例和数据库参数 备份、
11、恢复、前滚数据库和表空间 管理本地和远程数据库,可以创建/删除、显示、编目远程数据库和去掉编目 管理存储。创建、修改、删除表空间。第18页/共66页字符集字符集字符集Create database db_name using codeset GBK territory zh_CN第19页/共66页模式(模式(模式(schemaschemaschema)模式是一组数据库对象的集合,他提供了数据库对象的逻辑分类 如果不指定模式名,则用当前用户名切换当前模式可以用set current schema xxxset current schema xxx或set set current sqlid xx
12、xcurrent sqlid xxx第20页/共66页系统模式系统模式系统模式系统模式:SYSIBM SYSIBM 基本的编目信息,不建议直接访问SYSCAT SYSCAT 编目信息的只读视图,所有人具有查询权限,推荐的获取编目信息的途径SYSSTAT SYSSTAT 编目信息可更新视图,可以影响优化器SYSFUN SYSFUN 用户定义函数第21页/共66页建表建表建表创建新表:create table tabname(col1 type1 not null primary key,col2 type2 not null,.)根据已有的表创建新表:A:create table tab_new
13、 like tab_old B:create table tab_new as select col1,col2 from tab_old definition only第22页/共66页表空间表空间表空间三种表空间常规表空间长表空间临时表空间两类表空间DMSDMSSMSSMS默认产生三个表空间:SYSCATSPACE,USERSPACE1,TEMPSPACE1SYSCATSPACE,USERSPACE1,TEMPSPACE1第23页/共66页数据库对象数据库对象数据库对象-视图视图视图创建视图:create view viewname as select statement删除视图:drop
14、 view viewname 注:视图唯一能修改的是引用类型列,改变列的范围。其他定义好了都不能修改。当视图基于的基表drop后,视图变为无效。第24页/共66页数据库对象数据库对象数据库对象-索引索引索引使用索引的主要原因有两条:确保数据值的惟一性 提高 SQL 查询的性能 使用索引时,能够按一种排列好的顺序更迅速地访问数据,从而避免了使用临时存储排序数据这一耗时的任务。创建索引:create unique index idxname on tabname(col.)删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。索引的使用都是从WHERE中的条件
15、得出的,从谓词是否使用索引可以将谓词分为可索引谓词和不可索引谓词,如下图,我们列出了索引谓词和不可索引谓词。第25页/共66页谓词类型可索引注 释ColconY代表,=,=,=,但是不是可索引的。Col between con1 and con2Y在匹配系列中必须是最后的。Col in listY仅对一个匹配列Col is nullYCol like xyz%Y模糊匹配%在后面。Col like%xyzN模糊匹配%在前面。Col1Col2NCol1和col2来自同一个表ColExpressionN例如:c1(c1+1)/2Pred1 and Pred2YPred1和Pred2都是可索引的,指相
16、同索引的列Pred1 or Pred2N除了(c1=a or c1=b)外,他可以被认为是c1 in(a,b)Not Pred1N或者任何的等价形式:Not between,Not in,Not like等等。可索引谓词第26页/共66页数据约束数据约束数据约束数据库中数据的完整性或有效性极其重要。确保插入数据库的数据的有效性非常困难,DB2 提供了定义某些可并入数据库的基于规则的约束或检查的能力。在 DB2 中,可使用以下检查来最小化将错误数据插入表中的风险:可检查一行中的一段,看它们是否符合所关联列的数据类型和长度。例如,“Geoff”值不匹配数据类型为 INTEGER 的列,因而带有该值
17、的行会被拒绝,以这种方式来确保数据库中数据的有效性。若表上定义了主键约束,表中的各行必须在一列或共同构成主键的多个列中具有惟一值。若插入的行中存在与现有键相同的键,则新行将被拒绝。若表上已定义了惟一约束,表中的各行必须遵循此约束,即具有惟一值或构成惟一键的值组合。若已定义了外键约束,表中各行的外键列或多个列必须具有与父表中一行的主键相匹配的值。在某些情况下,若一列或多个列定义为外键的一部分,而这个外键可为空,则空值也是可接受的。若列上已定义了检查约束,各行必须遵循此约束。例如,EMPLOYEE 表的 SALARY 列上的检查约束可能会阻止应用程序或用户插入工资低于 0 的新员工记录或行。插入表
18、的任何 salary 值小于 0 的行都会被拒绝,从而最小化将错误数据插入表中的风险。第27页/共66页检查约束检查约束检查约束第28页/共66页数据库锁数据库锁数据库锁 第29页/共66页数据库事务数据库事务数据库事务 第30页/共66页数据类型数据类型数据类型第31页/共66页NULLNULLNULL值值值尽可能设置为not nullnot null,可以通过defaultdefault的方式来解决insert nullinsert null的情况查询 is nullis null第32页/共66页IdentityIdentityIdentity列列列是一个数字型的字段,当新行插入时,db
19、2db2自动产生一个唯一的数字一个表中只能有一个列被定义有该属性可以定义成alwaysalways或defaultdefault的方式AlwaysAlways方式,只能有db2db2产生,不允许应用提供值DefaultDefault方式,可以由应用提供值,不能保证唯一性第33页/共66页简单查询简单查询简单查询 select distinct column-list select distinct column-list from table-list from table-list where where group by having group by having order by as
20、e/ease order by ase/ease第34页/共66页内连接内连接内连接第35页/共66页外连接表的分类外连接表的分类外连接表的分类保留行表左外连接中左边的表。右外连接中右边的表。全外连接中全部的表。替换 NULL 的表左外连接中右边的表 右外连接中左边的表 全外连接中全部的表 第36页/共66页一个简单的左外连接一个简单的左外连接一个简单的左外连接 第37页/共66页一个简单的右外连接一个简单的右外连接一个简单的右外连接第38页/共66页全外连接全外连接全外连接第39页/共66页子查询子查询子查询 子查询可以由内连接和外连接代替,推荐做法 inin、existexist可以由内连
21、接代替select projno,projname,d.deptno,deptname from department d select projno,projname,d.deptno,deptname from department d left outer join project p on p.deptno=d.deptno;left outer join project p on p.deptno=d.deptno;select projno,projname from department where deptno inselect projno,projname from dep
22、artment where deptno in(select deptno from project);(select deptno from project);not in not in、not existnot exist可以由外连接代替select projno,projname,d.deptno,deptname from department d select projno,projname,d.deptno,deptname from department d left outer join project p on p.deptno=d.deptnoleft outer join
23、 project p on p.deptno=d.deptnowhere p.projname is null;where p.projname is null;select projno,projname from department where deptno not inselect projno,projname from department where deptno not in(select deptno from project);(select deptno from project);第40页/共66页Db2Db2Db2中的函数中的函数中的函数 内建函数列函数:avg,su
24、m,count,:avg,sum,count,操作函数:+:+类型转换函数decimaldecimal其他 用户自定义函数UDFUDF第41页/共66页1、类型转化函数:转化为数字类型的:decimal,double,Integer,smallint,realHex(arg):转化为参数的16进制表示。转化为字符串类型的:char,varcharDigits(arg):返回arg的字符串表示法,arg必须为decimal。转化为日期时间的:date,time,timestamp2、时间日期:year,quarter,month,week,day,hour,minute,seconddayofy
25、ear(arg):返回arg在年内的天值Dayofweek(arg):返回arg在周内的天值days(arg):返回日期的整数表示法,从0001-01-01来的天数。midnight_seconds(arg):午夜和arg之间的秒数。Monthname(arg):返回arg的月份名。Dayname(arg):返回arg的星期。常用函数介绍常用函数介绍第42页/共66页烟草产品事业部培训中心3、字符串函数:length,lcase,ucase,ltrim,rtrimCoalesce(arg1,arg2.):返回参数集中第一个非null参数。Concat(arg1,arg2):连接两个字符串arg
26、1和arg2。insert(arg1,pos,size,arg2):返回一个,将arg1从pos处删除size个字符,将arg2插入该位置。left(arg,length):返回arg最左边的length个字符串。locate(arg1,arg2,):在arg2中查找arg1第一次出现的位置,指定pos,则从arg2的pos处开始找arg1第一次出现的位置。posstr(arg1,arg2):返回arg2第一次在arg1中出现的位置。repeat(arg1,num_times):返回arg1被重复num_times次的字符串。replace(arg1,arg2,arg3):将在arg1中的所有
27、arg2替换成arg3。right(arg,length):返回一个有arg左边length个字节组成的字符串。space(arg):返回一个包含arg个空格的字符串。substr(arg1,pos,):返回arg1中pos位置开始的length个字符,如果没指定length,则返回剩余的字符。常用函数介绍常用函数介绍第43页/共66页4、数学函数:Abs,count,max,min,sumCeil(arg):返回大于或等于arg的最小整数。Floor(arg):返回小于或等于参数的最小整数。Mod(arg1,arg2):返回arg1除以arg2的余数,符号与arg1相同。Rand():返回1
28、到1之间的随机数。Power(arg1,arg2):返回arg1的arg2次方。Round(arg1,arg2):四舍五入截断处理,arg2是位数,如果arg2为负,则对小数点前的数做四舍五入处理。Sigh(arg):返回arg的符号指示符。-1,0,1表示。truncate(arg1,arg2):截断arg1,arg2是位数,如果arg2是负数,则保留arg1小数点前的arg2位。5、其他:nullif(arg1,arg2):如果2个参数相等,则返回null,否则,返回参数1烟草产品事业部培训中心常用函数介绍常用函数介绍第44页/共66页数据库的备份数据库的备份数据库的备份数据库备份 是数据
29、库的一个完整的副本。除了数据外,备份副本还包含关于表空间、容器、数据库配置、日志控制文件和恢复历史文件的信息。注意,备份不会存储数据库管理器配置文件或注册表变量。只有数据库配置文件才会得到备份。要执行备份,需要 SYSADMSYSADM、SYSCTRL SYSCTRL 或 SYSMAINT SYSMAINT 权限 第45页/共66页离线备份离线备份要为数据库 sample sample 执行完整的离线备份,并将备份副本存储在 d:mybackups d:mybackups 目录中,可以使用以下命令:BACKUP DATABASE sample TO d:mybackupsBACKUP DATA
30、BASE sample TO d:mybackups要使用其他选项为数据库 sample 执行完整离线备份,可以使用以下命令:(1)BACKUP DATABASE sample(2)TO/db2backup/dir1,/db2backup/dir2(3)WITH 4 BUFFERS(4)BUFFER 4096(5)PARALLELISM 2 我们来更仔细观察前面的命令:1.表明要备份的数据库的名称(或别名)。2.指定用于存储备份的位置。3.表明在备份操作期间可以使用多少个内存缓冲区。使用多个缓冲区可以提高性能。4.表明每个缓冲区的大小。5.决定使用多少媒介读/写进程/线程来进行备份。第46页/
31、共66页数据库日志数据库日志DB2 事务日志对于恢复来说是至关重要的。它们跟踪数据库对象和数据上发生的变化。主日志文件和辅助日志文件主日志文件 是在建立第一个数据库连接或者数据库活动时立即分配的。辅助日志文件 是在需要时动态分配的。活动日志 如果以下两个条件之一得到满足,则一个日志被认为是活动的(active):它包含关于尚未被提交或回滚的事务的信息。它包含关于已经被提交但是其更改还没有被写(具体化)到数据库磁盘的事务的信息。在线归档日志 离线归档日志 第47页/共66页数据库日志数据库日志数据库日志1.1.配置日志空间 DB2DB2数据库通过日志文件维护数据的完整性和一致性。DB2 DB2
32、数据库的日志空间可通过如下公式计算:日志空间 =(主日志文件 +辅助日志文件)*日志文件尺寸 其中:主日志文件由参数 LOGPRIMARY LOGPRIMARY 控制,二级日志文件由参数 LOGSECOND LOGSECOND 控制日志文件尺寸由参数 LOGFILSIZ LOGFILSIZ 控制2.2.正确的处理日志满根据实际的情况配置以上相关参数。如果出现日志空间满的情况,DB2 DB2 会将系统挂起。这时,应该增加 LOGSECOND LOGSECOND 参数,而不要尝试 db2stop force db2stop force 或者 killkill。第48页/共66页启用归档日志启用归档
33、日志一个数据库的日志记录的类型是由数据库参数 LOGARCHMETH1 决定的。当 LOGARCHMETH1 为 OFF(默认值)时,归档日志记录被禁用,循环日志记录被启用。为了启用归档日志记录,可以将 LOGARCHMETH1 设置为以下值中的任何一个值:LOGRETAIN:日志文件将被保留在活动日志目录中USEREXIT:日志的归档和检索是由用户提供的用户出口程序自动执行的,这个出口程序必须由 db2uext2 调用。这个程序用于将在线归档日志移动到与活动日志目录不同的一个目录中,或者移动到另一个媒介上。当在 ROLLFORWARD 操作期间需要某些离线归档日志时,这个程序还可以用于将离线
34、归档日志取出到活动日志目录中。在 Windows 下,db2uext2 必须存储在 sqllibbin 目录中,在 UNIX 下,db2uext2 必须存储在 sqllib/adm 目录中DISK:directory_name:与 USEREXIT 使用相同的算法。DB2 不调用用户出口程序,而是自动将日志文件从活动日志目录归档到指定的目录TSM:management class name:与 USEREXIT 使用相同的算法。日志被归档到本地 Tivoli Storage Manger(TSM)服务器上。management class name 参数是可选的。如果没有指定该参数,则使用默认
35、的管理类VENDOR:library_name:与 USEREXIT 使用相同的算法。日志是使用指定供应商的库来归档的由于向后兼容的原因,数据库配置文件仍然包含参数 LOGRETAIN 和 USEREXIT。从 8.2 版开始,这两个参数已经被 LOGARCHMETH1 取代。如果更新 USEREXIT 或 LOGRETAIN 参数,那么 LOGARCHMETH1 将自动被更新,反之亦然。第49页/共66页在线备份在线备份在线备份BACKUP DATABASE sample ONLINE TO/dev/rdir1,/dev/rdir2BACKUP DATABASE sample ONLINE
36、TO/dev/rdir1,/dev/rdir2由于在线备份允许用户在执行备份的同时访问数据库,因此这些用户作出的更改很可能不会存储在备份副本中。因此,仅仅凭借在线备份还不足以进行恢复,另外还需要备份操作期间收集到的相应的日志。当在线备份完成时,DB2 DB2 强制关闭当前活动日志(并将其归档),因此很容易在备份完成时收集当前活动日志。为了将日志也备份到备份副本中,可以使用 BACKUP DATABASE BACKUP DATABASE 命令的 INCLUDE LOG INCLUDE LOG 选项。这样可以确保即使丢失了日志,也仍然可以使用备份镜像中包含的日志来恢复到最小的时间点上。例如,要对
37、sample 数据库和日志进行在线备份,并以/dev/rdir1 作为目标目录,可以发出:BACKUP DATABASE sample ONLINE TO/dev/rdir1 INCLUDE LOGS 第50页/共66页数据库的恢复数据库的恢复使用一个备份文件作为输入,输出是一个新的或已有的数据库。要恢复到已有的数据库,需要 SYSADM、SYSCTRL 或 SYSMAINT 权限。要恢复到新的数据库,则需要 SYSADM 或 SYSCTRL 权限。第51页/共66页数据库恢复例子数据库恢复例子要执行 sample 数据库的恢复,可以使用以下命令:(1)RESTORE DATABASE sam
38、ple(2)FROM C:DBBACKUP (3)TAKEN AT 20060314131259 (4)WITHOUT ROLLING FORWARD (5)WITHOUT PROMPTING 上面的例子中:1.表明要恢复的数据库镜像的名称。2.指定要从中读取输入备份文件的位置。3.如果该目录中有多个备份镜像,该选项将基于时间戳(备份名称的一部分)标识特定的备份。4.如果一个数据库启用了归档日志记录,那么当该数据库被恢复时,它将自动被置于 rollforward pending 状态。这一行告诉 DB2 不要将该数据库置于 rollforward pending 状态。5.当执行 RESTOR
39、E 时,您将看不到任何提示。第52页/共66页包括日志文件的恢复例子包括日志文件的恢复例子备份镜像中包括日志文件,那么可以使用 RESTORE DATABASE 命令的 LOGTARGET 选项恢复日志文件。为了使用 C:DBBACKUP 目录中的备份镜像恢复 SAMPLE 数据库,并将日志文件恢复到 C:DB2NODE0000SQL00001SQLOGDIR 目录,可以发出:RESTORE DATABASE sample FROM C:DBBACKUP LOGTARGET C:DB2NODE0000SQL00001SQLOGDIR 也可以通过使用 LOGS 关键字只恢复日志文件,而不恢复数据
40、库:RESTORE DATABASE sample LOGS FROM C:DBBACKUP LOGTARGET C:DB2NODE0000SQL00001SQLOGDIR 第53页/共66页Db2moveDb2moveDb2move例子例子例子Db2move dbname export sn db2inst1-u username p password Db2move dbname export sn db2inst1-u username p password Db2move dbname import sn db2inst1-u username p passwordDb2move db
41、name import sn db2inst1-u username p password第54页/共66页Db2 exportDb2 exportDb2 exportEXPORT 实用程序使用一条 SQL SELECT 语句或 XQUERY 语句将数据从数据库表提取到一个文件中。数据可以被导出到 DEL、IXF 或 WSF 文件中。建议在 export 中包括 MESSAGES 子句,以捕获导出过程中遇到的错误、警告和包含有用信息的消息。要想成功地调用 EXPORT 实用程序,必须拥有 SYSADM 或 DBADM 权限,或者拥有 EXPORT 命令中所访问的表或视图上的 CONTROL 或
42、 SELECT 特权。一个简单的导出的例子。下面的命令将 SELECT 语句的结果导出到一个 DEL 格式的文件中。消息文件 msg.out 用于记录有用的信息和遇到的错误或警告:EXPORT TO myfile.del OF DEL MESSAGES msg.out SELECT staff.name,staff.dept,org.location FROM org,staff WHERE org.deptnumb=staff.dept;第55页/共66页Db2 importDb2 importDb2 import语法语法语法 IMPORT 实用程序用一个输入文件将数据填充到一个表中,输入文
43、件的文件类型可以是 ASC、DEL、IXF 或 WSF。目标是一个表、一个类型化表(typed table)或者一个视图。但是,不能导入到系统表、临时表和物化查询表。例子:IMPORT FROM emp.ixf OF IXF MESSAGES msg.out CREATE INTO employee IN datatbsp INDEX IN indtbsp第56页/共66页Db2 importDb2 importDb2 import选项选项选项下面显示的 IMPORT 命令具有五个不同的选项:IMPORT FROM file_name OF file_type MESSAGES message
44、_file INSERT|INSERT_UPDATE|REPLACE|REPLACE_CREATE|CREATE INTO target_table_name INSERT 选项将导入的数据插入表中。目标表必须已经存在。INSERT_UPDATE 将数据插入表中,或者更新表中具有匹配主键的行。目标表必须已经存在,并且定义了一个主键。REPLACE 选项删除所有已有的数据,并将导入的数据插入到一个已有的目标表中。使用 REPLACE_CREATE 选项时,如果目标表已经存在,则导入实用程序删除已有的数据,并插入新的数据,就像 REPLACE 选项那样。如果目标表还没有定义,那么首先创建这个表以及
45、它的相关索引,然后再导入数据。正如您可能想像的那样,输入文件必须是 PC/IXF 格式的文件,因为那种格式包含对导出表的结构化描述。如果目标表是被一个外键引用的一个父表,那么就不能使用 REPLACE_CREATE。CREATE 选项首先创建目标表和它的索引,然后将数据导入到新表中。该选项惟一支持的文件格式是 PC/IXF。还可以指定新表所在表空间的名称。第57页/共66页Db2 LoadDb2 LoadDb2 Load LOAD LOAD 实用程序是用于为表填充数据的另一种方法。该实用程序将格式化的页面直接写入到数据库中。这种机制允许比 IMPORT IMPORT 实用程序更有效地移动数据。
46、LOAD FROM input_source OF input_type MESSAGES LOAD FROM input_source OF input_type MESSAGES message_file INSERT|REPLACE|TERMINATE|RESTART message_file INSERT|REPLACE|TERMINATE|RESTART INTO target_tablenameINTO target_tablename 第58页/共66页Db2 LoadDb2 LoadLOAD 可以以四种不同的模式执行:INSERTINSERT 模式将输入数据添加到一个表中,而不
47、更改已有的表数据。REPLACEREPLACE 模式删除表中所有已有的数据,然后用输入数据填充这个表。TERMINATETERMINATE 模式终止装载操作,并回滚到它开始时所在的时间点。一个例外是,如果指定了 REPLACE 模式,那么表将被删节。RESTARTRESTART 模式用于重新开始之前被中断的装载命令。它将自动从最近的一致点继续。要使用这个模式,可以指定与前一个 LOAD 命令相同的选项,但是这一次加上 RESTART。它使实用程序可以发现在装载处理中生成的所有需要的临时表。因此,千万不要手动删除装载命令所生成的任何临时文件,除非您确信不再需要这些临时文件。一旦装载成功完成,这些
48、临时文件将自动被删除。默认情况下,这些临时文件是在当前的工作目录中创建的。也可以使用 TEMPFILES PATH 选项指定存放临时文件的目录。第59页/共66页Db2moveDb2moveDb2movedb2move 是用于在 DB2 数据库之间移动大量表的一个数据移动工具。这个命令中支持的动作有 EXPORT、IMPORT、LOAD 和 COPY。EXPORT、IMPORT 和 LOAD 这几个动作的行为与前一屏中描述的完全相同。db2move 将一组用户表从系统编目表中提取出来,并将每个表以 PC/IXF 格式导出。然后,PC/IXF 文件可以被导入或装载到另一个 DB2 数据库中。下面
49、是一些例子。这个命令用指定的用户 ID 和密码以 REPLACE 模式导入 sample 数据库中的所有表:db2move sample IMPORT-io REPLACE-u userid-p password 下面的命令以 REPLACE 模式装载 db2admin 和 db2user 这两个模式下的所有表:db2move sample LOAD-sn db2admin,db2user-lo REPLACE 第60页/共66页runstatsDB2 利用先进的基于成本的优化器来决定如何访问数据。它的决定很大程度上要受到关于数据库表和索引的大小的统计信息的影响。因此,应该使数据库统计信息不断
50、更新,以便于选择有效的数据访问计划。#db2 runstats on table 表名 and index all对系统表以及变化比较频繁的表运行统计信息,建议写成shell脚本自动运行。第61页/共66页reorgreorg和和reorgchkreorgchk数据库中添加和删除的数据在物理上可能不是按连续的顺序放置的。在这种情况下,DB2 必须执行附加的读操作来访问数据。这通常意味着需要更多的磁盘 I/O 操作,我们都知道那些操作是开销很大的。在这种情况下,应该考虑在物理上将表重组,使相关的数据存放在相近的位置,以减少 I/O 操作。REORG 是用于重组表和/或索引中的数据的一个实用程序。