DB2数据库日常维护

一、DB2系统结构

创建实例

db2icrt 实例名

删除实例

db2idrop 实例名

查询实例

db2ilist 实例名

启动实例

db2start

停止实例

db2stop

创建数据库

create database 库名 [on  存储路径] [using codeset 字符集] [TERRITORY 区域码] [pagesize 页大小]

删除数据库

drop database 库名

查看数据库目录

list db directory

查看数据库连接情况

list applications for db dbname

断开应用连接

force application {all | ( application-handle)

查看实例级参数

db2 get dbm cfg

修改实例基本参数

db2 update dbm cfg using 参数名 参数值

示例

db2 update dbm cfg using SVCENAME 60000

查看数据库级参数

db2 get db cfg for 库名

修改数据库参数

db2 update db cfg for 库名 using 参数名 参数值

示例

db2 update db cfg for CCSDB using LOGFILSIZ 10240

二、DB2参数配置介绍

实例级参数补充

Global instance memory (4KB)          (INSTANCE_MEMORY) = AUTOMATIC(5487480)

Max number of client connections      (MAX_CONNECTIONS) = AUTOMATIC(MAX_COORDAGENTS)

库级参数补充

Percent max primary log space by transaction  (MAX_LOG) = 0  --max_log此参数指示一个事务可以消耗的主日志空间的百分比0 表示没限制

Num. of active log files for 1 active UOW(NUM_LOG_SPAN) = 0  --num_log_span参数指定是一个事务可以跨越多少个日志文件,0表示没限制

Max number of active applications            (MAXAPPLS) = AUTOMATIC(1833)

三、数据库备份恢复

根据备份期间是否允许用户访问分为

离线备份

在线备份

根据对数据库备份的范围不同,分为

全量备份

增量备份

备份语法

backup database <数据库名称> [USER username [USING password]]

[ONLINE] [INCREMENTAL [DELTA]]  to <路径|设备>

其中:

ONLINE 备份需要提前开启归档

INCREMENTAL [DELTA] 表示执行增量备份;DELTA表示执行差异增量备份

示例

db2 backup db cbsdev to /backup

数据库恢复 RESTORE DATABASE 基本语法

RESTORE DATABASE <数据库名> [USER username [USING password]] from <路径|设备>

[ON path ] [TAKEN AT date-time] [INTO 目标库名] [REDIRECT [GENERATE SCRIPT file-name]]

示例

restore database from /backup  on /dbdata/cbsdev2 into cbsdev2

REDIRECT 重定向恢复:

restore database from /backup  on /dbdata/cbsdev2 into cbsdev2 redirect generate script /tmp/cbsdev.clp

vim /tmp/cbsdev.clp

db2 -tvf /tmp/cbsdev.clp

表级备份恢复

EXPORT 语法:

EXPORT TO filename OF {IXF | DEL | WSF} {select-statement }

示例:

db2 "export to F_CARD_RTN.ixf of ixf select * from DSC_DTA.F_CARD_RTN"

IMPORT 语法:

IMPORT FROM filename OF {IXF | ASC | DEL | WSF} {INSERT | INSERT_UPDATE | REPLACE | REPLACE_CREATE} INTO {table-name}

其中:

INSERT  --将输入数据插入到目标表中而不更改现有数据

INSERT_UPDATE  --使用输入行的值更新具有匹配主键值的行,如果没有匹配行,那么会将已导入行插入到表中

REPLACE  --删除所有现有数据并插入已导入数据,同时保留表和索引定义

REPLACE_CREATE  --删除所有现有数据并插入已导入数据,同时保留表和索引定义;如果目标表和索引不存在,那么创建目标表和索引

示例:

db2 “import from F_CARD_RTN.ixf of ixf replace into DSC_DTA.F_CARD_RTN”

四、日志排查

db2diag.log 诊断日志

查询日志路径:db2 get dbm cfg |grep  DIAGPATH

db2diag 命令

db2diag -time 2024-06-25 -level "Severe,Error" 查看6月25以来的错误信息

db2diag -A  旧日志归档,并重新生成新的db2diag.log

五、问题分析

1 、锁问题

现象:SQL 错误 [40001]: The current transaction has been rolled back because of a deadlock or timeout. Reason code "68".. SQLCODE=-911, SQLSTATE=40001, DRIVER=4.26.14

排查方法:SELECT AGENT_ID,LOCK_NAME,LOCK_OBJECT_TYPE,LOCK_MODE,LOCK_STATUS,TABNAME FROM TABLE (SNAP_GET_LOCK ('', -1))

2 、表状态异常

现象:DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016, SQLERRMC=7;NEWCA.CERT, DRIVER=4.18.60

解决办法:

db2 "reorg table table_name allow no access"

3 、事务日志满

现象:SQL0964C  The transaction log for the database is full.  SQLSTATE=57011

解决办法:

先查看事务日志配置:db2 get db cfg for 库名|grep -i log

总共日志大小为:( LOGPRIMARY + LOGSECOND )* LOGFILSIZ * 4KB

如果总日志足够大,排查是否是有大事务未提交

db2 "get snapshot for applications on dbname" > tmp.log

4 、内存使用量分析

查看实例下所有库的内存使用情况:

db2mtrk -i -d -v

5 、权限问题

数据库级权限:syscat.dbauth

其中:

ACCESSCTRL  允许拥有者授予和撤销所有对象特权和数据库权限以及 ACCESSCTRL、DATAACCESS、DBADM 和 SECADM 权限。

BINDADD                     允许拥有者在数据库中创建新包 

CONNECT                     允许拥有者连接到数据库 

CREATETAB                   允许拥有者在数据库中创建新表 

CREATE_EXTERNAL_ROUTINE     允许拥有者创建过程以供数据库的应用程序和其他用户使用 

CREATE_NOT_FENCED_ROUTINE   允许拥有者创建未受防护的用户定义的函数(UDF)或过程 

DATAACCESS                  允许拥有者访问存储在数据库表中的数据。 

DBADM                       允许拥有者充当数据库管理员 

EXPLAIN                     允许拥有者说明查询方案,而不要求他们拥有访问这些查询方案所引用的表中数据的特权 

IMPLICIT_SCHEMA             允许任何用户隐式地创建模式 

LOAD                        允许拥有者将数据装入到表中。 

QUIESCE_CONNECT             允许拥有者在数据库处于停顿状态时访问该数据库。 

SECADM                      允许拥有者充当数据库的安全管理员。 

SQLADM                      允许拥有者监视和调整 SQL 语句。 

WLMADM                      允许拥有者充当工作负载管理员

5 、权限问题

表级权限:syscat.tabauth

其中:

SELECT       允许用户检索表或视图中的行、对表创建视图以及运行 EXPORT 实用程序。 

INSERT       允许用户将行插入表或视图以及运行 IMPORT 实用程序。 

UPDATE       允许用户更改表或视图中的条目,或表或视图中的一个或多个特定列的条目。用户只能对特定的列拥有此特权。 

DELETE       允许用户从表或视图中删除行。 

ALTER       允许用户修改表,例如,为表添加列或唯一约束。具有 ALTER 特权用户还可以 COMMENT ON 一个表,或者表的一列。 

INDEX       允许用户对表创建一个索引。索引创建者自动具有索引的 CONTROL 特权。 

REFERENCES  允许用户创建和删除一个外键,并指定该表为关系中的父表。用户可能只对特定的列拥有此特权。 

CONTROL     给用户提供对表或视图的所有特权,包括删除它以及授予和撤销各个表特权的功能。 

5 、权限问题

PUBLIC

任何人或组都属于PUBLIC组,具有PUBLIC组相应的权限,如果检查了syscat.dbauth、syscat.tabauth权限还有问题,大概率是PUBLIC组权限引起的。

六、运维工具使用

1 、?帮助工具
l 查看报错码

示例:SQL 错误 [40001]: The current transaction has been rolled back because of a deadlock or timeout. Reason code "68".. SQLCODE=-911, SQLSTATE=40001, DRIVER=4.26.14

1 、?帮助工具
l 命令使用帮助
2 db2pd
l db2pd用于收集 DB2 实例和数据库的统计信息。db2pd提供多个选项显示关于数据库事务、表空间、表统计信息、动态 SQL、数据库配置和其他很多细节的信息

其中:

-osinfo            ->操作系统信息

-dbmcfg          ->DBM配置信息

-dbcfg             ->DB配置信息

-edus              ->监视线程edu

-mempools      ->内存池

-memsets        ->内存信息

-utilities           ->工具(backup,runstats,reorg,restore,load)

-applications    ->应用连接

-transactions    ->事务

-bufferpool       ->缓冲池

-logs                ->日志

-locks              ->锁

-tablespaces     ->表空间和容器

-dynamic          ->动态SQL

-dbptnmem      ->实例所消耗内存总量

-tcbstats           ->索引利用率

3 db2top
l db2top 提供对数据库的性能监控,提供交互式界面,可以动态查看监控数据。

db2top -d dbname

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/365280.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网安小贴士(2)OSI七层模型

一、前言 OSI七层模型是一种网络协议参考模型&#xff0c;用于描述计算机网络体系结构中的不同层次和功能。它由国际标准化组织 (ISO) 在1984年开发并发布。 二、定义 OSI七层模型&#xff0c;全称为开放式系统互联通信参考模型&#xff08;Open Systems Interconnection Refe…

VTK学习日志:基于VTK9.3.0+Visual Studio c++实现DICOM影像MPR多平面重建+V R体绘制4个视图展示功能的实现(二)

前段时间对VTK9.3.0进行了编译&#xff0c;开发了MPRVR实现的demo,显示效果不是很理想&#xff0c;正好趁着周末有时间&#xff0c;再度对之前的程序进行优化和完善&#xff0c;先展示下效果&#xff1a; VTK实现MPRVR四视图 再次讲解下基于VTK的MPRVR实现的简单项目创建过程&a…

Cherno 游戏引擎笔记 (45~60)

有几个部分的笔记以图片形式呈现&#xff08;如果没找到文本可以查看是否遗漏了图片笔记&#xff09; My Github REPO(GitHub - JJJJJJJustin/Nut: The game_engine which learned from Cherno) 源码笔记&#xff0c;希望帮到你 :-} ---Shader Library&#xff08;着色器库&…

区间动态规划——最长回文子序列长度(C++)

把夜熬成粥&#xff0c;然后喝了它。 ——2024年7月1日 书接上回&#xff1a;区间动态规划——最长回文子串&#xff08;C&#xff09;-CSDN博客&#xff0c;大家有想到解决办法吗&#xff1f; 题目描述 给定一个字符串s&#xff08;s仅由数字和英文大小写字母组成&#xff0…

9*AGV,669万,海康,中!

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 如下是近期&#xff0c;几个智能物流相关的中标项目。 红云红河集团物流中心新建烟叶仓储设施项目智能叉车购置项目 本次项目主要包括以下三个方面的采购和实施&#xff1a; (1) 智能…

独一无二的设计模式——单例模式(Java实现)

1. 引言 亲爱的读者们&#xff0c;欢迎来到我们的设计模式专题&#xff0c;今天的讲解的设计模式&#xff0c;还是单例模式哦&#xff01;上次讲解的单例模式是基于Python实现&#xff08;独一无二的设计模式——单例模式&#xff08;python实现&#xff09;&#xff09;的&am…

[leetcode]squares-of-a-sorted-array. 有序数组的平方

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<int> sortedSquares(vector<int>& nums) {int n nums.size();vector<int> ans(n);for (int i 0, j n - 1, pos n - 1; i < j;) {if (nums[i] * nums[i] > nums[j] *…

春秋云境:CVE-2022-25411[漏洞复现]

根据题目提示和CNNVD优先寻找后台管理地址 靶机启动后&#xff0c;使用AWVS进行扫描查看网站结构 在这里可以看到后台管理的登录地址&#xff1a;/admin/&#xff0c;根据题目提示可知是弱口令 尝试admin、123456、admin666、admin123、admin888...等等常见弱口令 正确的账户…

java笔记(30)——反射的 API 及其 使用

文章目录 反射1. 什么是反射2. 获取class字段&#xff08;字节码文件对象&#xff09;方式1方式2方式3应用 3. 获取构造方法和权限修饰符前期准备获取所有的公共构造方法获取所有的构造方法获取无参构造方法获取一个参数的构造方法获取一个参数的构造方法获取两个参数的构造方法…

【日常记录】【JS】SSE 流式传输 ChatGPT 的网络传输模式

文章目录 1、SSE 流式传输2、后端代码3、前端代码5、SSE和WS 对比6、chatgpt SSE的服务端返回的数据参考链接 单工通信是一种单向的通信方式&#xff0c;其中信息只能从发送端传输到接收端&#xff0c;而接收端不能向发送端发送任何信息。在Web开发中&#xff0c;Server-Sent E…

FL Studio 21 中文版分享(内含破解补丁)不是标题党

不知道为什么现在钓鱼的这么多&#xff08;有答案的请在评论区上告诉我&#xff09;&#xff0c;就一个学习版的编曲软件有必要这样子搞吗&#xff1f;我也是在各类博客上找了一大堆教程&#xff0c;根本没几个能用的&#xff0c;索性直接到兔八哥爱分享上找了一个&#xff0c;…

C程序设计谭浩强第五版

程序习题 第一章1、第5题2、第6题 第三章1、第2题2、第2题3、第3题4、第4题Tips 第一章 1、第5题 编写一个C程序,运行时输出以下图形: #include <stdio.h> int main() {for (int i 0; i < 4; i) // 输出4行循环控制{for (int j 0; j < i; j) //第几行就输出几…

【TB作品】玩具电子琴,ATMEGA128单片机,Proteus仿真

题目 7 &#xff1a;玩具电子琴 基于单片机设计一能够发出中音八个音阶的音乐信号的电子琴&#xff0c;能够实现弹奏和音符显示功 能。 具有 8 个音阶按键&#xff0c;每按下一个按键时&#xff0c;所对应的 LED 点亮&#xff0c;音符进行显示。 具体要求如下&#xff1a; &…

PV操作经典例题

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文☀️☀️☀️1.水果问题2.和尚打水问题3.餐厅职员问题4.汽车站点问题5.观察者-报告者问题6..阅览室问题 …

DEBOPIE框架:打造最好的ChatGPT交易机器人

本文介绍了如何利用 DEBOPIE 框架并基于 ChatGPT 创建高效交易机器人&#xff0c;并强调了在使用 AI 辅助交易时需要注意的限制以及操作步骤。原文: Build the Best ChatGPT Trading Bots with my “DEBOPIE” Framework 如今有大量文章介绍如何通过 ChatGPT 帮助决定如何以及在…

win10修改远程桌面端口,Windows 10下修改远程桌面端口及服务器关闭445端口的操作指南

Windows 10下修改远程桌面端口及服务器关闭445端口的操作指南 一、修改Windows 10远程桌面端口 在Windows 10系统中&#xff0c;远程桌面连接默认使用3389端口。为了安全起见&#xff0c;建议修改此端口以减少潜在的安全风险。以下是修改远程桌面端口的步骤&#xff1a; 1. 打…

任务调度器——任务切换

一、开启任务调度器 函数原型&#xff1a; void vTaskStartScheduler( void ) 作用&#xff1a;用于启动任务调度器&#xff0c;任务调度器启动后&#xff0c; FreeRTOS 便会开始进行任务调度 内部实现机制&#xff08;以动态创建为例&#xff09;&#xff1a; &#xff0…

web学习笔记(七十二)

目录 1.vue2通过$parent实现组件传值——父传子 2.vue2 通过$children实现组件传值——子传父 3. provide和inject传值&#xff08;依赖注入&#xff09; 4.vue2如何操作dom 5.vue2如何拿到最新的dom 6.filters过滤器 7.vue2的生命周期 8.vuex的用法 1.vue2通过$parent…

LLDP 基本原理

LLDP 简介 定义 LLDP&#xff08;Link Layer Discovery Protocol&#xff0c;链路层发现协议&#xff09;是 IEEE 802.1ab 中定义的第二层发现&#xff08;Layer 2 Discovery&#xff09;协议。 LLDP 提供了一种标准的链路层发现方式&#xff0c;可以将本端设备的主要能力、…

Wp-scan一键扫描wordpress网页(KALI工具系列三十二)

目录 1、KALI LINUX 简介 2、Wp-scan工具简介 3、信息收集 3.1 目标IP&#xff08;服务器) 3.2kali的IP 4、操作实例 4.1 基本扫描 4.2 扫描已知漏洞 4.3 扫描目标主题 4.4 列出用户 4.5 输出扫描文件 4.6 输出详细结果 5、总结 1、KALI LINUX 简介 Kali Linux 是一…