设为首页 收藏本站
查看: 1618|回复: 0

[经验分享] db2

[复制链接]

尚未签到

发表于 2016-11-12 08:40:23 | 显示全部楼层 |阅读模式
  DB2命令参数选项
Db2 list command options 可以查看
-a 显示 SQLCA OFF 
-c 
自动落实 ON 
-e 
显示 SQLCODE/SQLSTATE OFF 
-f 
读取输入文件 OFF 
-l 
将命令记录到历史文件中 OFF 
-n 
除去换行字符 OFF 
-o 
显示输出 ON 
-p 
显示交互式输入提示 ON 
-r 
将输出保存到报告文件 OFF 
-s 
在命令出错时停止执行 OFF 
-t 
设置语句终止字符 OFF 
-v 
回送当前命令 OFF 
-w 
显示 FETCH/SELECT 警告信息 ON 
-x 
不打印列标题 OFF 
-z 
将所有输出保存到输出文件 OFF 

这些选项的具体功能及其缺省设置为:
.a 
显示 SQLCA 的数据,缺省为 OFF
.c 
是否自动落实 SQL 命令,缺省为 ON
.e {c|s} 
显示 SQLCODE  SQLSTATE,缺省为 OFF
.f 
文件名将命令的输入从标准输入指定到某一文件,缺省为 OFF
注:命令“db2 < 文件名“db2 -f 文件名作用相同。
.l 
文件名将命令记录到历史文件中,缺省为 OFF
.n 
除去换行字符,缺省为 OFF
.o 
将输出数据及信息送到标准输出,缺省为 ON
.p 
在交互方式下显示命令行处理器的提示信息,缺省为 ON
.r 
将输出保存到指定文件中,缺省为 OFF
.s 
执行批处理文件中或交互方式下的命令出错时即停止执行操作,缺省为 OFF
.t 
设置语句终止字符,缺省为 OFF
.v 
回送当前命令到标准输出,缺省为 OFF
.w 
显示 FETCH  SELECT 警告信息,缺省为 ON
.x 
不打印列标题,缺省为 OFF
.z 
文件名将所有输出保存到输出文件,缺省为 OFF
SQLSTATE含义
db2命令行方式下输入:? 20012SQLSTATE值)
可以获取sql错误含义
import和export的用法
IMPORT FROM CO_ACCEPTANCEDRAFT.del OF DEL MESSAGES importmsgs.txt INSERT INTO cmmcorc.CO_ACCEPTANCEDRAFT;
EXPORT TO CO_ACCEPTANCEDRAFT.del OF DEL MESSAGES exportmsgs.txt SELECT * FROM cmmcorc.CO_ACCEPTANCEDRAFT;

如果是Sybase导出的文本,并且用TAB分隔符的文档,那么可以采用
Db2 import from filename.txt of del modified by COLDEL0x09 insert into tablename;
其中COLDEL是关键字,0x09是16进制,表示tab符号
Load用法
load from tempfile of del modified by delprioritychar replace into TABLENAME nonrecoverable
说明: 
在不相关的数据表export数据时,可以采取并发的形式,以提高效率;

TABLENAME指待清理table的名称;
modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况;
replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容;

nonrecoverable无日志方式装入;

  
查询出用户表
SELECT * FROM SYSIBM.SYSTABLES WHERE CREATOR='USER'

如何知道当前DB2的版本?
select * from  sysibm.sysversions

如何知道TABLESPACE的状况?
    select * from  sysibm.SYSTABLESPACES

如何知道INDEX的状况?
    select * from  sysibm.sysindexes where tbname=’XXXX’
or
describe indexes for table table_name show detail
测试SQL的执行性能
db2batch -d DB_NAME -f select.sql -r benchmark.txt -o p3

select.sqlselect语句写在文件中
如何获取连接的进程
List applications 
删除当前正在使用的application:
db2 "force application (Id1,Id2,Id3)"
Id1,Id2,Id3 
是List显示的应用号;

删除所有的进程 db2 force application all
查看当前应用号的执行状态:db2 get snapshot for application agentid 299 |grep Row
  
如何修改缓冲池
db2 alter bufferpool ibmdefaultbp size 10240
  
如何知道表的字段的状况?
    select * from  sysibm.syscolumns where tbname=’XXXX’

如何知道DB2的数据类型?
    select name,* from  sysibm.sysdatatypes

如何知道BUFFERPOOLS状况?
    select * from  sysibm.sysbufferpools

如何查看表的结构?
  describe table table_name
    or
describe select * from schema.table_name
如何快速清除一个大表?
   alter table table_name activate not logged initally with empty table
   or
   import from null_file of del replace into table_name
如何查看数据库的包?
    select * from  syscat.packages
如何查看数据库的存储过程?
select procname,text,* from syscat.procedures
Or
select procname,text from sysibm.sysprocedures
如何查看数据库SAMPLE的配置文件的內容?
get database configuration for sample
or
get db cfg for sample
如何將数据库SAMPLE的参数设置为默认数值?
reset database configuration for sample
or
reset db cfg for sample
如何修改数据库SAMPLE配置参数数值?
update database configuration for sample
    using <parameter name> <new value>
or
update db cfg for sample using <parameter name> <new value>
如何重新啟動数据库?
    Restart db db_name
如何激活数据库?
    Activate db db_name
如何停止数据库?
    Deactivate db db_name
如何重命名表?
    Rename old_tablename to new_tablename
如何设置DB2环境变量
Db2set命令,语法如下:
Db2set variant=value
如何除去quiesce状态
1. 连接到数据库 
2. 用 list tablespaces 判断哪个tablespace处于quiesce状态和和取得对象(object)ID 
3. 判断对象ID对应的表 
a)用 db2 "select tabname from syscat.tables where tablid=对象ID" 得到表名 
b)用 db2 list history 判断是那个表 
4. 用 db2 quiesce tablespaces for table 表名 reset 去除quiesce状态
如何实施已删除表的恢复(Dropped Table Recovery)
1. 首先数据库要可以前滚恢复(数据库配置参数logretain或userexit打开)。 
2. 对要实施Drop Table Recovery的表空间(限regular tablespace),执行: 
alter tablespace 表空间名 dropped table recovery on 
3. 用 list history dropped table all for 数据库名 得到删除表的tableid(例如 0000000000006d0000020003)和表结构的生成语句(DDL),记录tableid和该语句以便恢复。之后,用drop命令删除的表中的数据可以在前滚恢复时导出。 
4. 恢复数据库后,如果想恢复已删除的表,在前滚时加recover dropped table tableid to 目标目录 。 在该目录下被删除的表中的数据导出,例如导出至 ../NODE0000/data文件。利用上面提到表结构生成语句生成被删除了的表,然后用import命令将数据导入表中。
如何备份数据库
db2 "backup database sample tablespace (syscatspace, userspace1) online to /dev/rmt0 without prompting"or
db2 "backup database sample user db2admin using db2admin to c:\backup with 3 buffers buffer 1000 without prompting" 
如何生成所有对象的DDL
db2look -d DB_NAME -a -e -m -l -f -o filename.sql
如何恢复数据库
restore db db1 to /tstdb2/catalog into db newlogpath /tstdb2/db2log buffer 2048
replace existing redirect parallelism 16;
set tablespace containers for 1 using (path '/tstdb2/db2tmp');
set tablespace containers for 2 using
(device '/dev/rtstcontlv00' 2621440, device '/dev/rtstcontlv01' 2621440,
device '/dev/rtstcontlv02' 2621440, device '/dev/rtstcontlv03' 2621440 ) ;
restore db db1 continue;


恢复完成后,执行db2s命令,如果出错,再执行如下命令:
db2 rollforward db db to end of logs and complete

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-299132-1-1.html 上篇帖子: DB2离线全备份原路径恢复 下篇帖子: db2版本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表