<DB2>《DB2数据库健康检查》第1部分

1 进程检查

1.1 检查管理服务器是否启动

检查点:

用ps命令查看是否有dasusr1后台进程

检查方法:

ps -ef | grep dasrrm|grep -v grep

标准:

  • 存在dasrrm进程则为健康,
  • 不存在dasrrm进程是不健康。

示例:

$ ps -ef | grepdasrrm|grep -v grep
 dasusr1  75674      1   0        501      -  1:43 /home/dasusr1/das/adm/db2dasrrm
//输出信息说明:
请确保管理服务器已经启动,如果没有启动,则按以下步骤启动管理服务器:
以管理服务器用户(如:dasusr1)登录
发出db2admin start命令
如果是HA环境,则要保证在脚本中正确配置了启动命令

1.2. 检查DB2实例是否已经启动

检查点:

用ps命令查看是否有db2sysc后台进程

检查方法:

ps -ef | grep db2sysc

标准:

  • 存在db2sysc进程则为健康,
  • 不存在db2sysc进程是不健康。

示例:

$ ps -ef | grep db2sysc
db2inst1 201016 340516   0       1023      -  0:06 db2sysc 0 
db2inst1 307466 438860   0 084015秒pts/0  0:00 grep db2sysc
//输出信息说明:
使用DB2实例所有者(如:db2inst1)登录,通过发出db2start命令来确保启动了实例
(如果实例已经启动,则会告知SQL1026N  数据库管理器已激活;否则,需要重新启动)

2 数据库对象检查

2.1 数据库能否正常连接

检查点:

数据库是否可以正常访问

检查方法:

$db2 list active databases
$db2 connect to 数据库
//标准:存在输出结构,说明有活动数据库

示例:

$ db2 list active databases
	                           Active Databases
	Database name                              = MYSPLIT
	Applications connected currently           = 4
	Database path                              = /sjxf/datadb/mysplit/db2inst2/NODE0000/SQL00001/
	 
$ db2 connect to MYSPLIT 
	   Database Connection Information
	 Database server        = DB2/AIX64 9.1.8
	 SQL authorization ID   = DB2INST1
	 Local database alias   = MYSPLIT
//输出信息说明:输出结构为数据库名称,应用连接数和数据库路径

2.2 查看表空间状态是否正常

检查点:

查看表空间状态是否正常

检查方法:

db2 list tablespaces show detail |grep -i state       //在单分区上查看表空间的状态,
db2_all list tablespaces show detail|grep -i state  //在所有分区上查看表空间的状态
//标准:	正常返回0x0000为健康,不是返回0x0000为不健康。

示例:

$ db2 list tablespaces show detail |grep -i state
	 State                                = 0x0000
	 State                                = 0x0000
//输出信息说明:
1、使用LIST TABLESPACES 命令确定连接数据库中表空间的当前状态,可以使用SHOW DETAIL选项查看表空间的详细信息(db2 list tablespaces show detail)状态返回值是0x0000,此时,使用  db2tbst可以查看状态编号对于的状态含义,具体语法如下:
2、db2tbst <tablespace state>可以查看编号所代表的状态
3、db2tbst 命令接收十六进制的状态值,并返回相应的表空间状态。例如,命令 db2tbst 0x0008 返回 State = Load Pending 。而该十六进制的状态值反过来又是 LIST TABLESPACES 命令输出的组成部分。表空间的外部可见状态是由单个状态值的十六进制总和构成的。例如,如果表空间的状态是 Backup Pending和 Load in Progress,那么所返回的十六进制值就是 0x200200x00020 + 0x20000

2.3 监控开关是否开启

检查点:

  查看监控开关是否打开

检查方法:

	db2 get monitor switches
//标准:	返回OFF为关闭,返回ON为打开。

示例:

$ db2 get monitor switches
	            Monitor Recording Switches
	Switch list for db partition number 0
	Buffer Pool Activity Information  (BUFFERPOOL    ) = OFF
	Lock Information                        (LOCK) = OFF
	Sorting Information                     (SORT) = OFF
	SQL Statement Information          (STATEMENT) = OFF
	Table Activity Information             (TABLE) = OFF
	Take Timestamp Information         (TIMESTAMP) = OFF
	Unit of Work Information                 (UOW) = OFF
//输出信息说明:建议设置为ON,开启命令:db2 update dbmcfg using BUFFERPOOL ON

2.4 数据库大小

检查点:

查看数据库大小

检查方法:

$db2 "call GET_DBSIZE_INFO(?,?,?,0)"
//标准:检查当前数据库的容量大小

示例:

$ db2 "call GET_DBSIZE_INFO(?,?,?,0)"
	 
	  Value of output parameters
	  --------------------------
	  Parameter Name  : SNAPSHOTTIMESTAMP
	  Parameter Value : 2013-10-24-09.57.58.642597
	 
	  Parameter Name  : DATABASESIZE
	Parameter Value : 3756920832
	 
	  Parameter Name  : DATABASECAPACITY
	Parameter Value : 8237072382
//输出信息说明:命令输出为执行时间,红色字体为数据库大小,蓝色字体为数据库容量大小。

2.5. 检查容器状态是否正常

检查点:

查看容器状态是否正常

检查方法:

$db2 "select substr(tbsp_name,1,25) tbsp_name,substr(container_name,1,50) container_name,total_pages,usable_pages,accessible from sysibmadm.snapcontainer"
//标准:	ACCESSIBLE列返回1为健康,ACCESSIBLE列返回不为1为不健康。

示例:

$ db2 "select substr(tbsp_name,1,25) tbsp_name,substr(container_name,1,50) container_name,total_pages,usable_pages,accessible from sysibmadm.snapcontainer"
	 
	TBSP_NAME                 CONTAINER_NAME                                     TOTAL_PAGES          USABLE_PAGES         ACCESSIBLE
	------------------------- -------------------------------------------------- -------------------- -------------------- ----------
	SYSCATSPACE               /bopdwt_tag/db2inst1/NODE0000/BOPDW_T/T0000000/C00                24576                24572          1
	TEMPSPACE1                /bopdwt_tag/db2inst1/NODE0000/BOPDW_T/T0000001/C00                    0                    0          1
	USERSPACE1                /bopdwt_tag/db2inst1/NODE0000/BOPDW_T/T0000002/C00                 8192                 8160          1
	TBS_GATHER                /dev/rdbtbs_gather                                              2457600              2457592          1
//输出信息说明:ACCESSIBLE字段是能否访问容器(1 表示可以访问,0 表示不能访问)。

2.6 查看bufferpool属性

检查点:

查看bufferpool的属性

检查方法:

$db2 "select substr(bpname,1,20) bpname,bufferpoolid,substr(dbpgname,1,20) dbpgname,npages,pagesize from syscat.bufferpools"
//标准:	查看bufferpool的属性。

示例:

$ db2 "select substr(bpname,1,20) bpname,bufferpoolid,substr(dbpgname,1,20) dbpgname,npages,pagesize from syscat.bufferpools"
	 
	BPNAME               BUFFERPOOLID DBPGNAME             NPAGES      PAGESIZE   
	-------------------- ------------ -------------------- ----------- -----------
	IBMDEFAULTBP                    1 -                             -2        4096
	BFPIDX                          2 -                         196608       32768
	BFPOTH                          4 -                         131072        8192
	BFPDATA                         3 -                         196608       32768
//输出信息说明:查看每个容器对应的BUFFERPOOL配置

2.7 查看表的状态

	Ø 检查点:
	查看表是否正常
	Ø 检查方法:
	$db2 "select substr(tabschema,1,10) as schema,substr(tabname,1,30) as tabname,status,type from syscat.tables where status !='N'"
	Ø 标准:
	STATUS列返回为C表示待审核。
	Ø 示例:
$ db2 "select substr(tabschema,1,10) as schema,substr(tabname,1,30) as tabname,status,type from syscat.tables where status !='N'"
 
SCHEMA     TABNAME                        STATUS TYPE
---------- ------------------------------ ------ ----
DB2INST1   FACT_IO_BK_TRADE               C      T   
DB2INST1   FACT_IO_DF_AREA                C      T   
DB2INST1   FACT_IO_DF_BANK                C      T
	Ø 输出信息说明:
		ü 输出显示了模式名、表名、状态和表类型。
		ü 在 SYSCAT.TABLES 中有项的所有用户定义的表的名称,以及每个表的列数和表的状态(N = 正常;C = 待审核(check pending))

2.8 表空间使用情况

检查点:

查看表空间使用情况

检查方法:

$db2 "select substr(tbsp_name,1,18) tbsp_name,tbsp_type,tbsp_free_size_kb/1024 as tbsp_free_size_M,tbsp_utilization_percent from sysibmadm.tbsp_utilization"
//标准:	返回为表空间的类型、剩余大小(MB)、使用率。

示例:

$ db2 "select substr(tbsp_name,1,18) tbsp_name,tbsp_type,tbsp_free_size_kb/1024 as tbsp_free_size_M,tbsp_utilization_percent from sysibmadm.tbsp_utilization"
	 
	TBSP_NAME          TBSP_TYPE  TBSP_FREE_SIZE_M     TBSP_UTILIZATION_PERCENT
	------------------ ---------- -------------------- ------------------------
	SYSCATSPACE        DMS                          24                    74.26
	TEMPSPACE1         SMS                           0                    -1.00
	USERSPACE1         DMS                          26                    16.47
	TBS_GATHER         DMS                       33463                    50.49
	TBS_DETAIL         DMS                        6996                    98.51
//输出信息说明:	TBSP_TYPE此字段为表空间类型,分为(DMS和SMS);TBSP_FREE_SIZE_M此字段为表空间剩余大小为M。

猜你喜欢

转载自blog.csdn.net/tangcoolcole/article/details/131117587
今日推荐