




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 声明临时表declare global temporary table alike empon commit preserve rowsin mytempspace2. 配置远程数据库的步骤export DB2COMM=TCPIP,IPXSPX 或 SET DB2COMM=NetBIOS,APPC对于TCP/IP,我们需要在数据库服务器上的services文件中定义的服务名称。在数据库管理器配置文件中的参数叫做SVCENAME。该服务名称被指定作为实例的主要连接端口名,并且在服务文件中定义。例如,如果在服务文件中定义的名称是db2tcp,相应的命令如下:UPDATE DATABASE MANAGER CONFEGURATION USING SVCENAME db2tcp 对客户端进行节点编目:CATALOG TCIP NODE 节点名 REMOTE 服务器 SERVER 端口号 对数据库进行系统编目:CATALOG DATABASE 远程数据库名 AS 本地数据库名 AT NODE 节点名3. 取消检查完整性选项db2 set integrity for tabname check/all immediate unchecked4. 执行文件db2 -tf文件名5. db2 list application show detail 6. db2 get connection state db2 connect reset7. db2 list node directory db2 list db directory8. db2 list tables 显示所有表 db2 describe table tablename 显示某个表的结构9. 获取下一个序列值db2 values(nextval for esb_assist_seq)10. 怎样显示一个表的外键约束信息?db2look -d dbname -e -t tabname11. 创建数据库db2 create db esbastdb using codeset gbk territory cn12. 清空表数据alter table tabname activate not logged initially with empty table;13. 查看DB2死锁具体内容的方法db2 flush event monitor evmnamedb2evmon -db testodb -evm lockevent 查看事件监听及其状态db2 SELECT EVMONNAME,EVENT_MON_STATE(EVMONNAME) FROM SYSCAT.EVENTMONITORS 设置事件监听状态(0,关闭;1,开启)db2 SET EVENT MONITOR 监听名 STATE =1db2pd -locks alldbsdb2 get snapshot for locks on YourDb unix查看死锁操作命令如下:$db2 update monitor switches using bufferpool on lock on sort on statement on table on uow on$db2 reset monitor all$db2 create event monitor dlock for deadlocks with details write to file /test$ db2 get monitor switches$ db2 select evmonname, event_mon_state(evmonname) from syscat.eventmonitors$db2 set event monitor dlock state 1$db2 get snapshot for database on sample|grep -i deadlock$db2 set event monitor dlock state 0 $db2evmon -db sample -evm dlockdb2 get snapshot for db on tipsodb db.snap0数据结果中包含deadlocks项db2 get snapshot for db on tipsodbdb.snap1比较测试前后deadlocks项的值是否有增加,如果有增加,说明有,否则无。另外,数据库建立时缺省就会创建一个死锁事件监听器db2detaildeadlock,位于数据库定义路径下。可以采用如下方式格式化该死锁事件监听器的内容为asc形式进行查看:su instnamedb2 connect to tipsodbcd $DBPATH/instname/NODE0000/SQL00001/db2event/db2 flush event monitor db2detaildeadlockdb2evmon db tipsodb evm db2detaildeadlock $HOME/dlock.out14. 设置注册表值在DB级设置注册变量DB2_SKIPINSERTED=ON,DB2_SKIPDELETED=ON,DB2_EVALUNCOMMITTED=ON通过延迟锁定对未提交的记录进行谓词判定确定满足条件时再加锁来增加并发性。DB2_SKIPINSERTED=ON:其他事务在查询时将忽略未落实的插入行DB2_SKIPINSERTED=OFF:其他事务在查询时不会忽略未落实的插入行DB2_SKIPDELETED=ON:其他事务在查询时将忽略未落实的删除行DB2_SKIPDELETED=OFF:其他事务在查询时不会忽略未落实的删除行DB2_EVALUNCOMMITTED=ON:其他事务在查询时不会立即对扫描到的记录加锁,而是先对未提交的更新后取值进行谓词求值后再决定是否加锁,如果满足谓词求值条件则加锁,否则不加锁;DB2_EVALUNCOMMITTED=OFF:其他事务在查询时会对扫描到的所有记录加锁;这三个注册变量一旦生效,并行执行的事务A会忽略事务B中未提交的插入或者删除操作,你需要确认这种状况能否满足RCPMIS的实际应用需求后再决定是否需要调整这三个参数。这三个参数生效后的效果见下图所示。15. 查看数据库使用的端口windows下查c:windowssystem32driversetcservices下实例名对应的端口号unix下查/etc/services16. db2mtrk命令的使用查看当前数据库内存占用情况db2mtrk -d查看当前数据库实例中各个数据库内存占用情况db2mtrk -i -d获取db2mtrk的帮助db2mtrk -h17. 调整db2 Agent参数db2 update dbm cfg using MAXAGENTS 100db2 update dbm cfg using NUM_POOLAGENTS 50db2 update dbm cfg using NUM_INITAGENTS 10db2 update dbm cfg using MAXAGENTS 60db2 update dbm cfg using NUM_POOLAGENTS 30db2 update db cfg for tipsqdb using APPGROUP_MEM_SZ 10240 db2 update db cfg for tipsodb using LOCKLIST 102400 18. 获取当前时间db2 select current timestamp from sysibm.sysdummy1 with ur19. 各个数据类型占的存储空间smallint 2bytesinteger 4bytesBIGINT 8bytesdecimal(p,n) (p/2+1) bytes 如:decimal(10,2) 10/2 +1=6bytesREAL 4bytesDOUBLE 8 bytes字符集为GBK时date4个字节,TIMESTAMP8个字节(注意:采用不同的字符集会有所区别)20. 查看到期时间、版本等信息db2licm -l21. 数据库前滚db2 rollforward db tipsodb to end of logs and complete22. 数据库恢复(备份中包含日志)适用于在线备份中包括日志的情况:db2 backup db tipsodb1 online to E:syldataaa include logsdb2 restore db tipsodb1 from E:syldataaa taken at 20080626134624 logtarget e:newlogsdb2 rollforward db tipsodb1 to end of logs and complete overflow log path (e:newlogs)使用db2的恢复帮助工具db2 list history backup all for tipsodb1db2ckrst -d sample -t 20001015193455 -r database适用于没有归档日志的脱机备份和恢复:db2 backup db rcpfdbdb2 restore db rcpfdb without rolling forward适用于有归档日志的脱机备份和恢复:db2 backup db rcpfdbdb2 restore db rcpfdb taken at 2000101519345523. 删除重复的存储过程有参数不同,存储过程名相同得存储过程,直接drop procedure是不行的,需要用drop specific procedure才能删除,例子如下:db2 select procname,SPECIFICNAME from syscat.PROCEDURES where PROCSCHEMA = DB2ADMIN aa.txtdb2 drop specific procedure SPECIFICNAME24. DB2字符集在DB2数据库中,与字符集相关的问题主要有三个层次的字符集的设置,其中系统级别和实例级别的字符集可以根据需求进行修改,而数据库级别的数据集则必须在建库时确定。(1)操作系统 Locale:系统级别的代码页设置,决定应用程序的默认代码页;假如大家希望将 OS Locale 设置为中文,可以考虑下面的方法:UNIX:大家可以通过 export LANG=”zh_CN” 命令修改当前的 Locale 到中文;Windows:在“开始-设置-控制面板-区域选项”中进行对系统的语言设置进行选择;(2)DB2CODEPAGE:DB2 实例级别的代码页设置,它会影响DB2相关应用程序对代码页转换时做出代码页判定。大家可以通过 db2set DB2CODEPAEG= 命令将 DB2CODEPAGE 设置为你需要的字符集。(3)DATABASE CODEPAGE:DB2 数据库级别的代码页设置;必须在建库时进行设置。大家在创建数据库时必须指定需要的代码页:db2 CREATE DATABASE dbname USING CODESET UTF-8 TERRITORY CNdb2 CREATE DATABASE dbname USING CODESET GBK TERRITORY CN注释:这条语句可用于创建指定区域为中国(CN)的 Unicode 数据库。25. 数据库连接不上(数据库版本问题,升级失败造成)环境:suse linuxwasdb2 v8.1(db2 用现有环境) 问题描述:用db2inst1用户登录服务器后,输入db2 connect to rcpfdb能够连上数据库,但输入db2 connect to rcpfdb user db2inst1 using db2inst1 提示用户名密码错,连接不上数据库(仔细确认好几遍,用户密码都没有问题),在其它机器上也是连接不是该数据库。问题分析:经过和ibm工程师沟通,问题应该是DB2升级后造成的。解决方法:找到ibm安装路径的instance目录(如:/opt/IBM/db2/V8.1/instance),输入命令./db2iupdt db2inst1(db2inst1为实例名),执行成功后就可以连接上了26. 安装许可文件(即licence)db2licm -a filenamefilename为许可文件全路径再执行db2licm l命令查看许可是否安装成功27. 将输出定向输出到文件,同时打印到屏幕db2 select aa from sysibm.sysdummy1|tee a.txt28. 生成disable外键的SQLdb2 alter table t2 alter foreign key fbb not enforceddb2 alter table t2 alter foreign key fbb enforceddb2 select alter table |TABLE_NAME| alter foreign key |CONSTRAINT_NAME| not enforced; from sysibm.TABLE_CONSTRAINTS where TABLE_NAME like T% and CONSTRAINT_TYPE like %FOREIGN KEY%disable.sql29. db2如何对其新建用户进行授权?需要sql语句SYSADMIN 最高权限,包括对db2实例中所有数据库的所有特权以及授予和取消所有其他权限和特权的权限DBADM提供特定数据库的管理权限,准许用户存取和修改该数据库中的所有对象,具有该权限的用户可以授予和取消对数据库的特权,但不能授予或取消DBADM的权限。super user for database,没有实例级的权限SYSCTRL用于控制数据库管理器所使用的资源(例如,创建和删除数据库)的权限,但它不准许存取数据库中的数据。SYSMAINT用于执行维护操作(例如,启动和停止db2服务器以及备份和复原数据库)的权限,它不准许存取数据库中的数据。数据库级别的LOAD权限与对表的INSERT特权相结合将允许用户将数据装入到该表中。注释:SYSADMIN、SYSCTRL、SYSMAINT不能通过GRANT授权,要更该述权限必须修改数据库管理器配置参数l 系统授权(SYS Authorities)DB2用户授权是受操作系统控制的,对操作系统组进行授权:Update dbm cfg using SYSADM_GROUP Update dbm cfg using SYSCTRL_GROUP Update dbm cfg using SYSMAINT_GROUP 在UNIX中,SYSADMIN 赋给实例所有者的主组在WINDOWS中SYSADMIN给LOCAL ADMINISTRATOR GROUPl 关于DBADM的用户组授权(没有实例级的授权):Grant DBADM on database to user l 对于public group(每个操作系统授权的用户都有这个组的权限)的默认权限:CONNECT允许用户存取数据库CREATETAB允许用户创建新表IMPLICIT_SCHEMA允许任何用户隐式创建一个模式BINDADD允许用户创建新的程序包l 对象级别特权grant all privileges|privileges,. on tabname | viewname to public|user,. GRANT SELECT ON TABLE T1 TO USER user1GRANT ALL ON TABLE T1 TO GROUP group1REVOKE ALL ON TABLE T1 FROM GROUP group1GRANT EXECUTE ON PROCEDURE p1 TO USER user1REVOKE EXECUTE ON PROCEDURE p1 FROM USER user1 RESTRICTREVOKE IMPLICIT_SCHEMA ON DATABASE FROM PUBLICREVOKE CONNECT ON DATABASE FROM PUBLIC30. 查看表空间使用情况命令db2 list tablespaces show detaildb2 LIST TABLESPACE CONTAINERS for 4 show detail(其中4为表空间标识号)查看表空间使用率的SQL:select substr(TABLESPACE_NAME,1,20) as 表空间名,bigint(TOTAL_PAGES * PAGE_SIZE)/1024/1024 as 总大小(MB),used_pages*PAGE_SIZE/1024/1024 as 已使用(MB), free_pages*PAGE_SIZE/1024/1024 as 剩余(MB) ,round(case when TOTAL_PAGES 0 then (decimal(used_pages,30,2)* 100.00/decimal(TOTAL_PAGES,30,2) else 0 end ,2) as 使用率(%)from table(snapshot_tbs_cfg(RCPDB1, -2) as snapshot_tbs_cfg;db2 select tabschema,tabname,tbspace,fpages from syscat.tables where tbspace=TBS_RCP_DATA_16Kfpages*pagesize即为该表占用表空间大小31. 删除1百万数据delete from (select * from TBH_CANCEL where ts_update 2009-1-1-00.00.00 fetch first 1000000 rows only ) ;32. RunStats所有表db2 -v reorgchk update statistics on table all33. 打开针对锁的db2监听器运行下面这个命令以打开针对锁的DB2 监视器:db2 -v update monitor switches using lock ondb2 -v terminate然后收集数据库快照:db2 -v get snapshot for database on DB_NAME在快照输出中,检查下列各项:Locks held currently = 0Lock waits = 0Time database waited on locks (ms) = 0Lock list memory in use (Bytes) = 504Deadlocks detected = 0Lock escalations = 0Exclusive lock escalations = 0Agents currently waiting on locks = 0Lock Timeouts = 0Internal rollbacks due to deadlock = 0如果“Lock list memory in use (Bytes)”超过定义的LOCKLIST 大小的50%,那么就增加LOCKLIST 的数量。锁升级、锁超时和死锁将表明系统或应用程序中存在某些潜在问题。锁定问题通常表明应用程序中存在一些相当严重的并发性问题,在增大锁列表参数的值之前应当解决这些问题。34. SQL1015N 必须重新启动数据库,因为先前的会话未正常结束。 SQLSTATE=55025db2 backup db rcpfdbSQL1015N 必须重新启动数据库,因为先前的会话未正常结束。 SQLSTATE=55025db2 connect to rcpfdbdb2 LIST INDOUBT TRANSACTIONSSQL1251W 没有为试探查询返回任何数据。 SQLSTATE=00000db2 restart db rcpfdbDB20000I RESTART DATABASE 命令成功完成。db2 backup db rcpfdb备份成功。此备份映像的时间戳记是:2011041216532735. 多行合并成一行的SQLWITH TMP(S_PAYERACCT,S_PAYERPURPOSE,NUM)AS(SELECT S_PAYERACCT,S_PAYERPURPOSE as S_PAYERPURPOSE,ROW_NUMBER()OVER(PARTITION BY S_PAYERACCT ORDER BY S_PAYERACCT ,S_PAYERPURPOSE desc) FROM (SELECT DISTINCT S_PAYERACCT,S_PAYERPURPOSE FROM TB_FORINVACCTPAY_ITEM ) A),TMP1(S_PAYERACCT,S_PAYERPURPOSE,NUM) AS(SELECT S_PAYERACCT,char(S_PAYERPURPOSE,30) as S_PAYERPURPOSE, NUM FROM TMP WHERE NUM =1 UNION ALLSELECT TMP.S_PAYERACCT, (TMP.S_PAYERPURPOSE |,|TMP1.S_PAYERPURPOSE) AS S_PAYERPURPOSE, TMP.NUM FROM TMP,TMP1 WHERE TMP.NUM = TMP1.NUM + 1 AND TMP.S_PAYERACCT = TMP1.S_PAYERACCT)SELECT *FROM TMP1 AWHERE NUM = (SELECT MAX(NUM) FROM TMP1 B WHERE A.S_PAYERACCT = B.S_PAYERACCT GROUP BY S_PAYERACCT);36. 修改内核参数 (Linux)从 版本 9.5 修订包 6 开始,您不再需要更新与进程间通信 (IPC) 相关的 Linux 内核参数。对于版本 9.5 修订包 5 或更低版本的修订包,对特定内核参数增强最低设置可能不足以运行 DB2 数据库系统,在安装 DB2 数据库产品之前,您可能需要更新这些最低设置。必须具有 root 用户权限才能修改内核参数。要在 Red Hat 和 SUSE Linux 上更新内核参数:1. 运行 ipcs -l 命令以列示当前的内核参数设置。 2. 分析命令输出,通过将当前值与表 1 中对版本 9.5 修订包 6 或更高版本修订包的增强最低设置进行比较,从而确定您是否必须更改内核设置。 下列文本是 ipcs 命令输出的示例,注释添加在 / 后面以显示参数名称: # ipcs -l - Shared Memory Limits - max number of segments = 4096 / SHMMNI max seg size (kbytes) = 32768 / SHMMAX max total shared memory (kbytes) = 8388608 / SHMALL min seg size (bytes) = 1 - Semaphore Limits - max number of arrays = 1024 / SEMMNI max semaphores per array = 250 / SEMMSL max semaphores system wide = 256000 / SEMMNS max ops per semop call = 32 / SEMOPM semaphore max value = 32767 - Messages: Limits - max queues system wide = 1024 / MSGMNI max size of message (bytes) = 65536 / MSGMAX default max size of queue (bytes) = 65536 / MSGMNB3. 通过编辑 /etc/sysctl.conf 文件来修改您必须调整的内核参数。如果此文件不存在,那么应创建它。 下列各行是该文件中应包含的内容的示例: # 具有 16GB RAM 的计算机的示例:kernel.shmmni=4096kernel.shmmaxernel.shmall=8388608#kernel.sem= kernel.sem=250 256000 32 4096kernel.msgmni=16384kernel.msgmax=65536kernel.msgmnb=655364. 运行 sysctl 时附带 -p 参数,以从缺省文件 /etc/sysctl.conf 中装入 sysctl 设置: sysctl -p5. 要使更改在每次重新引导之后生效: o (SUSE Linux)激活 boot.sysctl o (Red Hat)rc.sysinit 初始化脚本将自动读取 /etc/sysctl.conf 文件 表 1. Linux 上内核参数的增强最低设置IPC 内核参数对版本 9.5 修订包 5 或更低版本的修订包增强最低设置对版本 9.5 修订包 6 或更高版本的修订包增强最低设置kernel.shmmni (SHMMNI)未增强值256 * kernel.shmmax (SHMMAX)268435456(32 位内核)1073741824(64 位内核)1kernel.shmall (SHMALL)未增强任何值2 * (设置位于 4K 页面)kernel.sem (SEMMNI)1024256 * kernel.sem (SEMMSL)未增强值250kernel.sem (SEMMNS)未增强值256000kernel.sem (SEMOPM)未增强值32kernel.msgmni (MSGMNI)10241024 * kernel.msgmax (MSGMAX)6553665536kernel.msgmnb (MSGMNB)6553665536注: 1. 在 32 位 Linux 操作系统上,SHMMAX 的最低增强设置限制为 4,294,967,295 个字节。 示例:vi /etc/sysctl.conf/*kernel.shmmax=4294967296kernel.shmall=4194304kernel.sem=1024kernel.msgmni=1024kernel.msgmax=65536kernel.msgmnb=65536/*sysctl -pipcs -lchkconfig boot.sysctl onshutdown -Fr nowchown root:root v9.5fp8_linuxia32_server.tar.gzgzip -d v9.5fp8_linuxia32_server.tar.gztar -xvf v9.5fp8_linuxia32_server.tar./installFixPack -b /opt/ibm/db2/V9.5db2stop forcedb2startdb2pd -db rcpdb -bufferpoolsdb2mtrk d37. 寻找并rebind 非法的存储过程存储过程会因为其涉及和引用的对象发生了改变而导致其非法(invalid),例如:修改了表结构,导致引用该表的存储过程非法,或者重新编译一个存储过程,会使调用这个存储过程的父存储过程非法。此时我们需要对非法的存储过程重新编译(rebind)。但是,对非法的存储过程进行rebind的时候,需要确定其引用的对象是合法的,否则非法的存储过程也不能rebind成功。这里我们介绍一下发现和rebind非法存储过程的方法。我们是通过判断SYSCAT.routines中VALID字段的值来查找非法存储过程的。下面是查找非法存储过程的一段代码:清单10:查找非法存储过程SELECT RTRIM(r.routineschema) | . | RTRIM(r.routinename) AS spname , ( | RTRIM(r.routineschema) | . | P|SUBSTR(CHAR(r.lib_id+10000000),2)| ) FROM SYSCAT.routines r WHERE r.routinetype = P AND (r.origin = Q AND r.valid != Y) OR EXISTS ( SELECT 1 FROM syscat.packages WHERE pkgschema = r.routineschema AND pkgname = P|SUBSTR(CHAR(r.lib_id+10000000),2) AND valid !=Y ) ) ORDER BY spname;获得的结果如下:清单11:查找非法存储过程的结果SPNAME - TEST.DEMO_INFO_8 (TEST. P3550884)可以使用下面的命令rebind它们清单12:Rebind 非法存储过程语法rebind package packagename resolve anyPackagename就是查询结果中括号里的值。例如,如果rebind上面查出来的存储过程。我们只需要执行下面语句清单13:Rebind 非法存储过程rebind package TEST.P3550884 resolve any当然,如果此存储过程程序本身有问题,需要先修改存储过程代码后再进行编译。类似的,通过下面的代码可以获得非法的视图。清单14:获得非法的视图SELECT RTRIM(viewschema) | . | RTRIM(viewname) AS viewname FROM SYSCAT.views WHERE valid = X ORDER BY viewname;结束语本文介绍了我们在 DB2 存储过程开发中经常用到的一些技巧。同时这些技巧也是编写优秀存储过程的基本要求。本文介绍的一些技巧只是揭开了高效使用 DB2 的冰山一角。DB2 为我们提供了丰富和强大的功能。在使用 DB2 的时候,我们应当深入理解其原理,找出更多的最佳实践与大家分享。参考资料Red book: IBM DB2 UDB Command Reference Version 8Red Book:IBM DB2 UDB Application Development Guide38. DPF,MDC,TP的详细比较DPFMDCTable Partition中文名称数据库分区特性多维聚类表分区建表语句DISTRIBUTE BY HASHORGANIZE BY DIMENSIONPARTITION BY RANGE特性将行均匀地分布在多个数据库分区上将在多个维上具有近似值的行放在表中相同的物理位置,即所谓的块将所有行放在同一个数据分区的一个指定范围的维中使用场景大型表大到无法仅依靠单独一组 CPU 和 I/O 通道来处理结果集返回在多个维上具有近似值的行的查询这种类型的表:周期性地添加大量数据,然后在数据到期后又删除大量数据优点可伸缩性随着数据库的增长增加计算资源(也就是数据库分区)查询性能组织数据的方式有利于获得更快的检索速度,对于由多个谓词指定范围的查询尤其有效数据移动通过添加和删除整个数据分区,可以增加和删除大量数据设计注意事项1对于大型 BI 应用程序,可以使用数据库分区以提高其可扩展性。2在选择分区键时,同时还要关注分区键值的高基数并提高连接中的表并置。对不共享数据库来说,使用哈希分区完全是为了数据仓库1MDC 可用来提高查询性能以及转入和转出数据。 2使用表分区来转出或在一个单独的维度通过使用 MDC 来转入1RCTs)来进行对数据的快速直接的访问。 2基于转入和转出特点来设计表分区。根据 month 或财季来进行分区是很好的策略39. 可以用DB2ADVIS命令根据你的SQL语句来创建合适的索引db2advis -d rcpdb168 -i tmp.sql -t 540. 返回一个结果集的函数drop function f_testcreate function f_test()returns table(a int,b varchar(100)F1: BEGIN atomic returnselect * from tt;end F1db2 select * from table(f_test()41. 生成计划导出表定义:db2look d dbname e t tl_msglogdb2 runstats on table db2inst1.tl_msglog with distribution and detailed indexes all生成执行计划的方式:db2expln -d rcpdb -g -t -z ; -u db2inst1 db2inst1 -q select * from TL_MSGLOG where S_MSGNO= 1001 and TS_SYSUPDATE = 2012-12-07 00:00:00 and TS_SYSUPDATE 2012-12-07 24:00:00 或者如下操作方式:db2 connect to db2inst1db2 -tvf $HOME/sqllib/misc/EXPLAIN.DDL开始执行计划模式db2 connect to db2inst1db2 set current explain mode explain关闭执行计划模式db2 set current explain mode no最后用特定的工具将执行计划给提取出来db2exfmt -d db2inst1 -g TIC -w -l -s % -n % -o explainplan.out值得注重的是,假如我们要处理的表数据量是快速变化的,比如在电信移动行业,需要在月末进行处理的汇总表。在不长的时间范围内数据量变化非凡大,从而使得RUNSTATS 得到的统计信息不准确,原因是这些统计信息只是某个时间点的信息。您可以用这条语句来把表修改为volatile。alter table table_name volatile cardinality-导出表定义db2look -d rcpdb -e -t Tb_Income_Item TD_MAKECORP TB_INCOME_SERVICETRADE_LIST TB_INCOME_DIRECTINVEST_LIST TB_INCOME_INDIRECTINVEST_LIST TB_INCOME_OTHERINVEST_LIST TB_INCOME_FINANCING_LIST TB_INCOME_PROCEEDSTRANS_LIST TB_INCOME_CAPITALTRANS_LIST TB_ACCOUNT_ITEM MAN_PEOPLE_BANK_RELATION MAN_BANK_INFO -o db2look.ddl-导出SQL执行计划db2expln -d rcpdb -g -z ; -f rcpmischk.sql -o rcpmischk.sql.expln42. 错误解决:SQL3089N A non-D record was found where a D record was expected. 导入提示如下错误:SQL3153N The T record in the PC/IXF file has name TB_INCOME, qualifier , and source .SQL3109N The utility is beginning to load data from file TB_INCOME.SQL3089N A non-D record was found where a D record was expected.SQL3110N The utility has completed processing. 722 rows were read from the input file.错误解决方法:ftp传输要采用bin方式,不能采用asc方式。43. SQL2563W数据库恢复最简单的命令: db2 RESTORE DATABASE pecker from 路径 TAKEN AT 20090701085133 在DOS窗口下进入到保存备份文件的路径下,输入命令: db2 RESTORE DATABASE pecker TAKEN AT 20090701085133 如果报某个文件夹不存在就手工创建一个。 如果报下面的错误: SQL2563W 已成功完成复原过程,但是未复原备份中的一个或多个表空间。 如果遇到这样的问题则需要重定向恢复数据库,在网上找了许多关于重定向恢复的方法,下面的文章对于我来说是最实用的:DB2 重定向恢复 重定向恢复方法一:步骤:1.带 REDIRECT 选项发出 RESTORE DATABASE 命令。例如: db2 restore db flm from d taken at 20080603115210 to e redirect;2.修改容器位置例如: db2 set tablespace containers for 0 using (path D:DB2NODE0000FLMT0000000); db2 set tablespace containers for 1 using (path D:DB2NODE0000FLMT0000001); db2 set tablespace containers for 2 using (path D:DB2NODE0000FLMT0000002);3.再次发出 RESTORE DATABASE 命令,这次指定 CONTINUE 选项。例如: db2 restore db flm continue;4.检查是否成功例如: db2 list
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全生产GMP认证模拟练习题及答案
- 2025年健康管理顾问资格认证考试试题及答案解析
- 2025年建筑施工现场监理员专业能力测评试题及答案解析
- 2025年家政服务员职业技能考试试题及答案解析
- 机电行业外贸知识培训班课件
- 2025年宠物音乐疗愈师初级面试模拟题及答案
- 2025年广告文案策划师职业水平评定试题及答案解析
- 中学语文教学通讯课件
- 如何写好讲解课件教学
- 课件上的秘密
- 新媒体礼仪知识培训总结
- 2025 年小升初成都市初一新生分班考试语文试卷(带答案解析)-(部编版)
- 人教版七年级上册数学教学计划
- 护理事业十五五发展规划(2026-2030年)
- 2025云南昆明巫家坝建设发展有限责任公司招聘23人笔试备考试题及答案解析
- 重庆市七校联盟2024-2025学年高一下学期期末考试物理试卷(含解析)
- 2024年河北科技师范学院招聘真题
- 培训班校长述职报告课件
- 传染病信息报告管理规范2025年版培训试题及答案
- 临床患者身份识别管理标准
- 抗菌药物处方医师培训考核试题及答案
评论
0/150
提交评论