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.mzph.cn/bicheng/40734.shtml

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

相关文章

秋招力扣刷题——从前序与中序遍历序列构造二叉树

一、题目要求 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 二、解法思路 根据二叉树的遍历结构重构二叉树&#xff0c;至少两种遍历方式结合&…

FPGA的理解,个人的见解,不一定对

类似于面包板上搭建电路&#xff0c;但是使用的是逻辑单元模块&#xff1b;如加法器&#xff0c;减法器&#xff0c;寄存器等 没有模拟电路的电容&#xff0c;电阻&#xff1b;但是逻辑单元的底层实现&#xff0c;使用MOS管等电路实现电路的开关&#xff1b;从而表示0&#xf…

大牛“私藏”宝刊,易Accept!中科院1区-Top,偏爱国人,2个月可录!

本周投稿推荐 SCI • 能源科学类&#xff0c;1.5-2.0&#xff08;来稿即录25天&#xff09; • 计算机类&#xff0c;2.0-3.0&#xff08;纯正刊29天录用&#xff09; EI • 各领域沾边均可&#xff08;2天录用&#xff09; CNKI • 7天录用-检索&#xff08;急录友好&a…

Another Redis Desktop Manager工具自定义解析数据

自定义解析数据,支持多种程序终端输出 /Users/admin/go/src/baobao_all/ws_server/baobao/main_test/encipher_tool_redis/redis_tool {VALUE}/bin/bash -c "/Users/admin/Downloads/redis_tool {VALUE}"写个go程序解析数据 package mainimport ("encoding/jso…

数据库表导出到excel:前置知识3 项目封装的Quartz实现动态定时任务

参考网址 目标&#xff1a;定时任务持久化到数据库&#xff0c;动态调整数据库里保存的cron表达式使定时任务可以跟随变化。 从SYS_QUARTZ_JOB表(通过反射创建任务)和SYS_QUARTZ_LOG表(主要就是记录日志)构建两个对应的实体类&#xff1a;QuartzJob和QuartzLog 1.看表结构 …

Access,Trunk,Hybrid网络设备链接类型详解

带着问题找答案&#xff1a;网络链路上的数据包怎么看&#xff0c;是否携带vlan-id如何看&#xff0c;以及如何设计链接类型满足用户要求&#xff0c;请看如下解析。 第一种&#xff1a;链接类型access 无标记数据帧 第二种&#xff1a;链接类型trunk 第三种&#xf…

【深入理解Java虚拟机】判断垃圾-引用计数法及其缺陷

什么是引用计数法 引用计数法用来判断对象是否存活 给对象中添加一个引用计数器&#xff0c;每当有一个地方引用它时&#xff0c;计数器的值加一&#xff1b;当引用失效时&#xff0c;计数器的值就减一&#xff0c;任何时刻计数器为0的对象是不可能在被使用的。&#xff08;存…

软件测试必问必背面试题

01 软件测试理论部分 1.1 测试概念 1. 请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归测试 单元测试&#xff1a;完成最小的软件设计单元&#xff08;模块&#xff09;的验证工作&#xff0c;目标是确保模块被正确的编码集成测试&#xff1a;通过测试发现与…

ForkJoin框架与工作窃取算法详解

文章目录 一、ForkJoin框架概述1_核心概念2_主要类和方法1_ForkJoinPool2_ForkJoinTask 二、启用异步模式与否的区别三、ForkJoinPool的三种任务提交方式四、执行逻辑及使用示例1_示例&#xff1a;并行计算数组元素和2_forkJoinPool.submit3_ForkJoinTask<?>中任务的执行…

实现第一个神经网络

PyTorch 包含创建和实现神经网络的特殊功能。在本节实验中&#xff0c;将创建一个简单的神经网络&#xff0c;其中一个隐藏层开发一个输出单元。 通过以下步骤使用 PyTorch 实现第一个神经网络。 第1步 首先&#xff0c;需要使用以下命令导入 PyTorch 库。 In [1]: import…

解决mysql数据库连接报错:Authentication plugin ‘caching_sha2_password‘ cannot be loaded

解决mysql数据库连接报错&#xff1a;Authentication plugin ‘caching_sha2_password’ cannot be loaded OperationalError: (2059, “Authentication plugin ‘caching_sha2_password’ cannot be loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open sha…

启动Nuxt-hub-starter: Failed to initialize wrangler bindings proxy write EOF

重新安装 node.js 这样做可以确保下载到了适合的 Windows 框架、Chocolatey&#xff08;一款Windows包管理工具&#xff09;、Python 等资源。 这个错误与Node版本、pnpm/yarn 的版本无关&#xff01; Node.js — Download Node.js (nodejs.org)

汉光联创HGLM2200N黑白激光多功能一体机加粉及常见问题处理

基本参数&#xff1a; 机器型号&#xff1a;HGLM2200N 产品名称&#xff1a;A4黑白激光多功能一体机 基础功能&#xff1a;打印、扫描、复印 打印速度&#xff1a;22页/分钟 纸张输入容量&#xff1a;150-249页 单面支持纸张尺寸&#xff1a;A4、A5、A6 产品尺寸&#x…

MySQL数据恢复(适用于误删后马上发现)

首先解释一下标题&#xff0c;之所以适用于误删后马上发现是因为太久了之后时间和当时操作的数据表可能会记不清楚&#xff0c;不是因为日志丢失 1.首先确保自己的数据库开启了binlog&#xff08;我的是默认开启的我没有配置过&#xff09; 根据这篇博客查看自己的配置和自己…

鸿蒙开发HarmonyOS NEXT (三) 熟悉ArkTs

一、自定义组件 1、自定义组件 自定义组件&#xff0c;最基础的结构如下&#xff1a; Component struct Header {build() {} } 提取头部标题部分的代码&#xff0c;写成自定义组件。 1、新建ArkTs文件&#xff0c;把Header内容写好。 2、在需要用到的地方&#xff0c;导入…

Linux 摄像头编号固化

一、前言 在工业领域&#xff0c;一台设备会有很多个摄像头&#xff0c;可以使用命令&#xff1a;ll /dev/video* 进行查看&#xff1b; 在代码中&#xff0c;如果需要使用摄像头&#xff0c;那么都是需要具体到哪个摄像头编号的&#xff0c;例如 open("/dev/video4"…

线段树求区间最值问题

引言 今天主要还是练了两道题&#xff0c;是有关线段树如何去求一个区间内的最值问题的&#xff0c;我们可以用线段树来解决。 对应一个无法改变顺序的数组&#xff0c;我们想要去求一个区间内的最值&#xff0c;假设有n个结点&#xff0c;m次询问&#xff0c;暴力的解决办法…

股票分析-20240628

今日关注&#xff1a; 20240626 六日涨幅最大: ------1--------300386--------- 飞天诚信 五日涨幅最大: ------1--------300386--------- 飞天诚信 四日涨幅最大: ------1--------300386--------- 飞天诚信 三日涨幅最大: ------1--------300386--------- 飞天诚信 二日涨幅最…

vue-org-tree搜索到对应项高亮展开

效果图&#xff1a; 代码&#xff1a; <template><div class"AllTree"><el-form :inline"true" :model"formInline" class"demo-form-inline"><el-form-item><el-input v-model"formInline.user&quo…

js学习--制作猜数字

猜数字制作 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><script>function fun() {alert("1-100猜数字");let num Math.floor(Math.random() * 100) 1;for …