nanjing_2013
作者nanjing_20132012-07-09 17:46
系统架构师, 北京卓望

牛大师书后日记

字数 12343阅读 1289评论 0赞 0

SAP note 101809

db2level  ---查看DB2版本

db2ls --

log buffer  buffer pool


db2 list applications --查看后台连接

db2 "force application (25425)" --杀进程

dscdb6up --更改DB2连接SAP密码

db2_local_ps

 

db2pd -edus

db2_kill

sap note 1329179

db2set -i --查看db2参数

db2set -all


db2 get dbm cfg

db2 update dbm cfg using

备份恢复配置文件命令

db2cfexp --备份配置文件
db2cfimp --恢复配置文件


db2pd -dbptnmem --监控内存使用情况

self tuning memory

st04 --查看数据库信息

db2support . -d PRD -c -g -s -f  --DB2support命令

db2diag -rc 0x000003e83rer --解析错误代码

FODC

db2fodc -hang basic -db PRD --DB2 hang的时候抓取信息

db2fodc -perf full -db PRD --系统慢的时候收集信息

db2support . -d PRD -f -sf sql_stml.txt -ol 5 -cs sapprd --收集SQL语句的相关信息(SAPnote 83819)


db2pd

db2trc

where后面的列放在index里面,尽可能的把唯一值多的放在第一列,尽可能复用index

db2 "GET SNAPSHOP FOR APPLICATION AGENTID 8338"
1

db2 "backup db A7A online to /dev/rmt0, /dev/rmt1 " 并发度和buffer由DB2自己确定

db2 "list applications show detall"

db2 "force application ()"

db2 list utilities show detail -- 查看备份进度

降低备份优先级

db2 backup db <sid> online UTIL_IMPACT_PRIORITY <50>

db2 set UTIL_IMPACT_PRIORITY for <utility_id> to


db2 list history backup all for a7a--查看备份历史信息


db2ckbkp -h --检查备份可用性


db2 "restore database PRD from /dev/rmt1"--恢复

 


1、进入DB2介质目录运行 ./db2_install -b DB2DIR -p productname


DB2自学笔记

1、软件安装和卸载

root账户进入安装路径/db2tools/db2/server # ;命令行安装执行db2_install,图形界面执行db2setup

卸载过程,进入/opt/ibm/db2/V9.7/install # ;执行db2_deinstall命令(先卸载实例,再卸载软件,卸载前关闭DB2进程)

 

2、创建用户

groupadd db2fadm1

groupadd db2iadm1

useradd db2inst1

useradd db2fenc1


3、 安装并创建实例(一旦实例创建后,会生成一个实例目录,包括数据库管理器配置文件db2systm,系统数据库目录SQLDBDIR,节点目录 SQLNODIR,节点配置文件db2nodes.cfg,诊断文件、数据库错误日志),实例目录位于INSTHOME/sqllib目录中

1、/opt/ibm/db2/V9.7/instance # ./db2idrop -f db2fenc1--删除实例

2、:/opt/ibm/db2/V9.7/instance # ./db2ilist  --查看实例

3、/opt/ibm/db2/V9.7/instance # ./db2icrt -u db2inst1 db2fenc1 --创建实例

4、设置DB2环境,设置配置文件注册库

db2set -lr 列出所有被支持的注册表变量

db2set registry_variable=value 更改当前实例中的注册表变量

db2set DB2COMM=TCPIP 设置通信变量DB2COMM使用TCPIP协议

db2set registry_variable= 删除注册表变量的值

db2set -all 列出profile文件中所有的注册表变量

设置环境变量 windows  set B2INSTANCE=PROD

在linux和unix的Ksh中,export DB2INSTANCE=PRD 获取当前工作实例 get instance

实例级别和数据库级别参数设置

db2 get database manager configuration --实例

db2 get database configuration for database_name  --数据库

db2 update dbm cfg using parameter new_value immediate/deferred --修改实例级别的参数

db2 update db cfg for database_name using parameter new_value immediate/deferred --修改数据库的参数

db2 attach to instance_name --连接到远程实例 (远程服务器必须做编目)

db2 get database manager configuration show detail

db2 connect to database_name

db2 get database configuration for database_name show detail

5、停止实例数据库

force application all --断开所有连接

db2stop force --强制停止数据库

list applications

force application(句柄号)
 

6、DB2服务器连通性设置

服务器端配置

1、编辑svcname--update dbm cfg using svcname db2test

2、设置实例端口号--修改/etc/services文件 db2test 50000/tcp

3、DB2注册库变量设置TCPIP通讯协议--db2set DB2COMM=TCPIP

客户端配置(也可以使用DB2配置助手CA)

db2 catalog tcpip node nodename remote 10.96.19.190 server 50000

db2 catalog database sample as mysamp at node nodename

列出节点和数据库目录

db2 list node directory

db2 list database directory

attach to nodename user username using password --连接到实例

connect to database_name user username using password --连接到数据库

7、编目数据库

db2 create tools catalog toolscat create new database toolsdb

db2 create tools catalog toolscat user existing tablespace tbsp32k in database toolsdb

8、通知日志 5个级别 ,默认是3;捕获health monitor 警告和注意信息


9、配置自动内存管理

db2 update db cfg for dbname using self_tuning_me

 

DB2数据存储

实例-数据库-模式-表-行/列

表空间:容器的集合

容器:物理存储设备

区间:表空间中连续的页面

页:DB2中存储的最小单位


数据库的存储结构

基本结构

每个实例,都有一个系统数据库目录文件(system database directory)SQLNODIR

每个驱动器或路径中,都有一个本地数据库目录(local database directory)文件SQLDBDIR

设置数据库所需的所有系统编目表

为数据库恢复日志分配空间

创建数据库配置文件盒默认的值集

将数据库实用程序绑定到数据库

缓冲区:内存中一块存储区域,用于临时读入和更改数据库页(包括表行或索引项)

减少直接I/O,改进读写性能

可以有4K,8K,16K,32K四种页大小

每个数据库至少一个缓冲池,建议使用多个

缓冲区命中率越高,性能越好

表空间是存放表的存储空间,是对物理存储设备的一个抽象,由一个或者多容器组成(文件、目录、裸设备)

表空间特性 page size of 4KB,8KB,16KB or 32KB extent size ,pre

表空间类型 SMS,DMS

查看表空间与缓冲区管理命令

connect to dbname;SELECT * FROM SYSCAT.BUFFERPOOLS ;--查看缓冲区

LIST TABLESPACES --列出全部表空间


DB2安全

DB2安全总览

认证方式

1、设置服务器端认证方式:db2 updatedbm cfg using authentication SERVER

2、设置客户端认证方式 db2 catalog database sample at node node1 authentication SERVER

权限管理

1、实例级别权限 SYSADM SYSCTRL SYSMAINT SYSMON

2、数据库级别 DBADM SECADM SQLADM WLMADM EXPLAIN 

   GRANT DBADM ON DATABASE TO USER HOE

3、对象级别管理权限

GRANT SELECT ON TABLE TEST TO USER KING

GRANT ALL ON TABLE TEST TO GROUP KING

REVOKE ALL ON TABLE TEST FROM GROUP KING

GRANT EXECUTE ON PEOCEDURE PROC TO USER KING

SECADM特权--安全管理员特权; SYSMON 系统监控员

4、角色创建

5、审计


备份恢复


db2pd -edu

db2pd -db sample -tabespaces  --查看表空间

db2pd -db samlpes -bufferpool


db2dart sample /LHWM

db2 reorgchk

db2set -all i表示实例级别,g表示全局,e表示操作系统

db2set -lr --DB2中进行定义的所有注册表变量


查看实例目录--db2set -all --DB2INSTPROF

db2icrt,db2idrop 都需要root权限执行,而其他实例命令需要SYSADM,SYSCTRL

db2ilist--列出实例

db2imigr--迁移实例

db2iupdt--更新实例 位置在sqllibbin

db2iauto -on <instance name>

db2start--启动实例

db2 attach to <instance name> --连接到实例

db2 detach --从实例断开

db2stop --停止实例

db2stop force --强制所有应用程序和用户断开


多实例环境操作

set db2instance

set db2instance=prod

db2idrop <instance_name>--删除实例

db2 get dbm cfg

db2 update dbm cfg using

db2 reset dbm cfg

extent 是整数倍的datapage的大小,默认情况下是由32个数据页组成,datapage是数据库中最小的存储单位,是每次读写的最小I/O单位。

写容器的最小单位是extent,不可能两张表共用一个extent;

PREFETCHSIZE:指定在执行数据预获取时将从表空间读取的PAGESIZE的页面数量

CREATE DATABASE命令中指定的目录《your_database_path》.<your_instance>

--D:DB2NODE0000SQL00001

数据库目录--

db2 list tablespaces show detail

list tablespace containers for 2

alter tablespace <name> reduce (file 'd:hadrfinance' 200)--收缩容器

alter tablespace history resize (device '/dev/rhd7' 2000, device '/dev/rhd8' 2000)--扩展容器

alter tablesapce persnel extend (file 'e:wrkhist1' 200 file 'f:wrkhist2' 200)

rename tablespace ts1 to ts2 --重命名表空间

alter tablespace name switch online --表空间联机操作

drop tablespace name --删除表空间

 

数据移动操作

支持的4种类型

1、定界ASCII文件格式(DEL),非定界ASCII格式(ASC),IXF,WSF

EXPORT TO "D:db2expemployee.dat" OF DEL MESSAGES "D:db2expemployee.log" select * from DB2ADMIN.EMPLOYEE;--导出

CONNECT TO SAMPLE;
IMPORT FROM "D:db2exportmyfile.del" OF DEL METHOD P (1, 2, 3, 4, 5) MESSAGES "D:db2exportmessgaes2.log" REPLACE INTO OSADM.ORG (DEPTNUMB, DEPTNAME, MANAGER, DIVISION, LOCATION);
CONNECT RESET;

?大对象和XML方式的导出和导入

LOAD

CONNECT TO SAMPLE;
LOAD FROM "D:db2exportorg.del" OF DEL METHOD P (1, 2, 3, 4, 5) MESSAGES "D:db2exportmessgaes.log" INSERT INTO OSADM.ORG (DEPTNAME, MANAGER, DIVISION, LOCATION, DEPTNUMB) COPY NO INDEXING MODE AUTOSELECT ALLOW READ ACCESS;
CONNECT RESET;

查询进度

db2 list utilities show detail

db2 load query table oracle.dept

db2move

db2look

 

备份与恢复


配置数据库模式

启用归档日志:第一次启用归档日志时,需要给数据库做一次全备份

db2 update db cfg for sample using logretain recovery

DB20000I  UPDATE DATABASE CONFIGURATION 命令成功完成。

如果要启用增量备份,可以执行

db2 update db cfg for sample using logretain recovery trackmod on

为归档日志文件制定路径

db2 update db cfg for db_name using logarchmeth1 "DISK:c:backup"


D:Program FilesIBMSQLLIBBIN>db2 backup database sample to d:db2bak

备份成功。此备份映像的时间戳记是:20120619075855

D:Program FilesIBMSQLLIBBIN>db2 backup database sample to d:/db2bak/dir1,d:d
b2bak/dir2 with 4 buffers buffer 4096 parallelism 2

备份成功。此备份映像的时间戳记是:20120619080134

语法中没有关键字offline,因为这是默认方式;如果要对sample数据库执行完整在线备份,必须指定online参数,再现备份要求启动数据库的归档日志记录

D:Program FilesIBMSQLLIBBIN>db2 backup database sample online to d:/db2bak

备份成功。此备份映像的时间戳记是:20120619081809


由于在线备份允许用户在执行备份的过程中访问数据库,所以这些用户做出的更改可能不会再备份中,另外还需要备份操作期间收集的日志,可以使用include logs参数

D:Program FilesIBMSQLLIBBIN>db2 backup database sample online to d:/db2bak i
nclude logs

备份成功。此备份映像的时间戳记是:20120619082205


表空间备份

D:Program FilesIBMSQLLIBBIN>db2 backup database sample tablespace (syscatspa
ce,userspace1) online to d:/db2bak/dir1,d:/db2bak/dir2

备份成功。此备份映像的时间戳记是:20120619084800

增量备份

如果要执行增量备份,需要首先把DB配置参数trackmod设置为on,有两种类型的增量备份

增量备份:DB2备份自上一次完整数据库备份以来发生变化的所有数据

delta备份:DB2备份自上次成功执行的完整备份、增量备份或delta备份以来发生变化的数据


db2 backup database sample incremental to d:/db2bak/dir1,d:/db2bak/dir2

SQL2426N  尚未配置数据库以允许增量备份操作。原因码:"1"。

db2 backup database sample incremental delta to d:/db2bak/dir1,d:/db2bak/dir2


检查备份完整性--db2ckbkp

D:db2bak>db2ckbkp -h SAMPLE.0.DB2.NODE0000.CATN0000.20120619082205.001


backup mode 0表示脱机备份 1表示联机备份

backup type 0表示全备份,3表示表空间备份

backup gran 0表示正常备份 16表示incrremental增量备份 48表示delta增量备份

includes logs 表示在线备份期间是否包含备份期间产生的数据库日志,0为否,1为是

恢复数据库--只允许离线恢复

当执行restore时,默认情况下是offline

D:db2bak>db2 restore database sample from d:dbbak taken at 20120619082205 without rolling forward without prompting

使用备份镜像恢复sample数据库,并将日志文件恢复到DDB2NODE0000SQL00002SQLOGDIR

D:db2bak>db2 restore database sample from d:db2bak logtarget D:DB2NODE0000SQL00002SQLOGDIR

SQL2522N  多个备份文件与为备份的数据库映像提供的时间戳记值相匹配。

使用LOGS关键字恢复日志文件,而不恢复数据库

restore database sample logs from D:db2bak logtarget D:db2node0000sql00002sqlogdir

表空间恢复

restore database sample tablespace (userspace1) online from d:/db2bak/dir1,d:/db2bak/dir2

list tablespaces show detail

db2ckrst--增量恢复检查


数据库前滚 --rollforward

rollforward database sample to end of logs and complete

rollforward database sample to timestamp and complete

rollforward database sample to timestamp using local time and complete

recover使用程序

recover db sample

db2 => recover db sample to 2012-06-19-09.00.00 using local time

                                 前滚状态

 输入数据库别名                  = sample
 节点数已返回状态                = 1

 节点号                          = 0
 前滚状态                        = 未暂挂
 下一个要读取的日志文件          =
 已处理的日志文件                = S0000001.LOG - S0000003.LOG
 上次落实的事务                  = 2012-06-19-08.48.01.000000 Local

DB20000I  RECOVER DATABASE 命令成功完成。
db2 => recover db sample to 2012-06-19-09.00.00 using local time

查看数据库sample的备份情况

db2 list history backup all for db sample

db2 => recover db sample to 2012-06-19-09.00.00

db2 recover database sample to end of logs

list utilities show detail --对备份、复原、恢复操作使用进度监控

db2fodc--诊断信息的手工收集

db2diag

db2pd

db2 update dbm cfg using DFT_MON_TIMESTAMP off

db2 update monitor switches using LOCK on

db2 get monitor switches --查看监控开关设置

update monitor switches using lock on--改变开关设置

get snapshot for dbm

get snapshot for database on dbname

get snapshot for tablespaces on dbname

get snapshot for bufferpools on dbname

get snapshot for tables on dbname

get snapshot for locks on dbname

get snapshot for applications on dbname

get snapshot for dynamic sql on dbname

reset monitor for database sample

explain工具

runstats

db2pd -version -osinfo  --查看版本

db2pd -db sample -dynamic --查看动态SQL语句当前的隔级别

db2pd -db sample -locks wait showlocks--检查锁等待情形

db2pd -db sample -transactions --将事务句柄映射到应用程序

db2pd -agents--获得应用程序和相应代理信息

db2pd -db sample -applications

db2cos脚本

db2diag.log中确认错误捕捉设置

db2diag -g funcname:=pdErrorCatch

使用db2diag查看db2内部错误码的含义

db2diag -rc -2146435004

db2mtrk --DB2数据库中进行内存跟踪的工具

统计信息,碎片整理和rebind

db2 -reorgchk update statis

db2 reorgchk update statistics on table db2admin.employee 更新统计信息

db2 reorg indexes all for table db2admin.employee

db2 runstats on table db2admin.employee and indexes all;

解释工具

visual explain, db2exfmt,db2expln

索引设计工具 db2advis

db2batch --基准测试工具

db2dart --数据一致性检查工具

inspect --数据检查

db2inspf --格式化命令

db2look --提取DDL语句

db2_kill

SYSADM--DB2中最高权限级别,可以执行所有可用的DB2操作,

SYSCTRL、SYSMAINT--可以管理系统,但不能访问表中的数据

SYSMON--提供了使用数据库系统监控器的能力

DBAADM-- 特定数据库的执行管理权限

LOAD --高速批量数据装载器

SECADM--管理一个或多个数据库中的安全性

数据库健康检查

1、查看是否有僵尸实例进程 --db2_ps或ps -ef |grep -i instname

ps -emo THREAD | grep -i Z | grep -i db2inst1


2、数据库一致性检查

db2 inspect check database results keep db_check.out

db2inspf db_check.out db_check.txt


----------------------------------------------------------------------------

表压缩

alter table db2inst1.employee compress yes

reorg table db2inst1.employee

select substr(tabname,1,32) as tabname,data_object_l_size,data_object_p_size,dictionary_size from sysibmadm.admintabinfo where tabname='employee'

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

  • 直播
    评论 0 · 赞 0
  • db2的代码页 codepage
    评论 0 · 赞 0
  • 总结记录一下
    评论 0 · 赞 0
  • 常用操作实践总结
    评论 0 · 赞 0
  • reorgchk统计信息使用的相关注意事项
    评论 0 · 赞 0
  • X社区推广