DB2_数据库日志管理

合集下载

解决DB2数据库“事务日志”已满问题

解决DB2数据库“事务日志”已满问题

解决DB2数据库“事务⽇志”已满问题在使⽤DB2进⾏⼤量的update,insert,import的操作时候,事务⽇志可能会⽤光,即⽇志⽂件不够,还有⼀种情况是应⽤程序占⽤了很⼤的事务并且没有提交,造成后续应⽤不能重⽤⽇志,导致⽇志满。

针对上⾯两个问题,给出的解决⽅案如下:1.⽇志⽂件不够总共⽇志⼤⼩为:( LOGPRIMARY + LOGSECOND )* LOGFILSIZ * 4KB ,其中4KB为数据页,不同数据库设置的数据页可能不⼀样。

对⼀个表进⾏全表update时候,占⽤的最⼤事务空间约为表⼤⼩的2倍。

这主要是事务⽇志记录了两种⽅式,do和redo。

例如⼀张task表⼤⼩为160M,全表update时候所⽤到的最⼤⽇志空间约为320M。

如果觉得⽇志空间不够,可以⽤ db2 update db cfg for <dbname> using <p> <v>。

例如要更改主⽇志⼤⼩:db2 update db cfg for <dbname> using logprimary 30.2.应⽤程序占⽤很⼤事务⽇志并且没有提交,造成后续操作不能重⽤⽇志。

针对这样相似的问题,我们通常先找到应⽤程序的ID,然后将应⽤程序停掉。

2.1⽤快照⽅式获取应⽤程序使⽤⽇志情况。

例如:(1).打开监控开关:db2 update monitor switches using statement on uow on(2).获取数据库快照:db2 get snapshot for database on <dbname>。

找到快照中⽇志空间使⽤部分:Log space available to the database (Bytes)= 20394939Log space used by the database (Bytes) = 5061Maximum secondary log space used (Bytes) = 0Maximum total log space used (Bytes) = 12255Secondary logs allocated currently = 0Log pages read = 0Log read time (sec.ns) = 0.000000004Log pages written = 6Log write time (sec.ns) = 0.000000004Number write log IOs = 6Number read log IOs = 0Number partial page log IOs = 5Number log buffer full = 0Log data found in buffer = 0Appl id holding the oldest transaction = 136Log to be redone for recovery (Bytes) = 4923Log accounted for by dirty pages (Bytes) = 4923File number of first active log = 0File number of last active log = 2File number of current active log = 0File number of log being archived = Not applicable从快照信息中我们可以看到最后使⽤⽇志的应⽤程序的ID,如上图红⾊部分所⽰,即最后的应⽤程序的ID为136.(3).获取应⽤程序的使⽤⽇志的详细信息。

db2 undo原理

db2 undo原理

db2 undo原理DB2是一种关系型数据库管理系统,它具有强大的事务处理能力和高度的可靠性。

在DB2中,undo是一个重要的机制,用于实现事务的回滚和恢复操作。

本文将介绍DB2 undo的原理以及它在数据库中的作用。

在数据库中,事务是一组数据库操作的逻辑单元,这些操作要么全部成功执行,要么全部失败回滚。

在事务执行过程中,DB2会将每个操作的结果存储在数据库的缓冲区中,而不会立即写入到磁盘上。

这样可以提高数据库的性能,但也存在一定的风险,因为在事务执行过程中,系统可能会发生故障导致数据库的不一致。

为了解决这个问题,DB2引入了undo机制。

在事务执行过程中,DB2会将每个操作的undo信息记录在undo日志中。

undo信息包括了操作的前置条件和恢复操作。

当一个事务需要回滚时,DB2会根据undo日志中的记录,执行相应的恢复操作,将数据库恢复到事务开始之前的状态。

具体来说,当一个事务执行一个更新操作时,DB2会先将操作的undo信息记录在undo日志中。

这些undo信息包括了更新前的数据值和恢复操作。

然后,DB2将更新的结果存储在数据库的缓冲区中,而不是直接写入到磁盘上。

这样,即使事务执行失败回滚,数据库的实际内容并没有发生改变。

当一个事务需要回滚时,DB2会根据undo日志中的记录,执行相应的恢复操作。

恢复操作会将数据库的内容恢复到事务开始之前的状态。

具体来说,DB2会将undo日志中的恢复操作逆向执行,将更新的结果撤销,并将数据库的内容恢复到更新前的状态。

由于undo日志的存在,DB2可以保证事务的原子性和一致性。

原子性指的是事务要么全部成功执行,要么全部回滚,没有中间状态。

一致性指的是事务的执行结果必须满足数据库的约束条件和完整性规则。

通过使用undo机制,DB2可以确保事务的原子性和一致性。

undo日志还可以用于恢复数据库的状态。

当数据库发生故障导致数据丢失时,DB2可以根据undo日志中的记录,执行相应的恢复操作,将数据库恢复到最近一次备份之后的状态。

DB2最新维护手册

DB2最新维护手册

DB2维护手册目录DB2维护手册 (1)一、DB2入门-数据库实例 (5)二、DB2日常维护日操作 (20)1、检查管理服务器是否启动 (21)2、检查DB2实例是否已经启动 (21)3、查看表空间状态是否正常 (21)4、查看表的状态 (22)5、查看磁盘空间 (23)6、检查存储管理软件是否正常 (23)7、检查数据库备份是否正常 (24)8、检查归档日志是否正确归档了 (24)9、查看缓冲池的命中率 (24)10、查看当前运行最频繁的SQL,其命中率是否正常 (24)11、查看当前连接的应用程序,有没有非法连接 (25)12、检查有没有死锁 (25)13、对表和索引进行RUNSTATS (25)14、检查表是否需要重组 (25)15、对需要重组的表进行重组 (26)三、DB2日常维护月操作 (27)1、查看DB2日志 (27)2、检查备份和日志是否都保存好了 (27)四、DB2日常维护季度操作 (27)1、通过快照监控器,查看系统性能如何 (27)2、数据库补丁级别 (28)五、注意事项 (28)1、不要删除活动日志文件 (28)2、注意交易日志存储空间 (28)3、按照系统的实际工作量配置日志空间 (29)4、设置正确数据库代码页 (29)5、检查许可证(L ICENSE)安装情况 (30)6、创建数据库前调整好系统时间 (30)7、不要随便执行CHOWN (CHMOD)–R(UNIX/L INUX) (30)8、在归档日志模式下使用LOAD记得加NONRECOVERABLE参数 (31)六、附:以脱机方式重组表 (31)七、附:索引重组 (32)八、收集和更新统计信息的准则 (35)九、附:使用CLP 捕获数据库运行状况快照 (39)十、IBM DB2 日常维护汇总 (41)十一、DB2常用命令集 (51)一、DB2入门-数据库实例在本文中,我使用DB2 来指代DB2 通用数据库V8.1 for UNIX、Linux 和Windows。

db2日志说明

db2日志说明

db2日志说明db2日志记录1. 日志的意义:主要在于数据恢复。

Db2实施了提前写日志存档模式,当发出删除、插入或更新数据库中某一数据的SQL调用时,所作出的数据变更首先要写到日志中去。

当发出一条SQL提交确认命令时,DB2首先要把redo所需要的日志写入磁盘。

如果断电的话,所有被提交的事务都会重新做一遍,而未提交的则会rollback。

事务:为了保证数据的可恢复性和一致性引入的概念。

比如执行了两条sql语句,但是他们是为了完成同一件事,因此他们会被当做一个整体。

当发生意外情况时,如果已经commit,但是未写到磁盘,就要执行redo重新执行一遍。

如果还没有commit,就要全部回滚。

日志作用:比如昨天晚上进行了数据库备份,但是今天中午数据库出现了问题(如存储介质损坏)需要恢复,那么只能恢复到昨天晚上的状态,今天上午的数据都没法恢复,这时如果数据库日志没有损坏,就可以通过日记把这段时间的操作重新执行一遍。

2. 日志分为循环日志和归档日志:日志中只记录DML操作(insert,update和delete操作),当我们前台执行了一条insert,update或delete语句,日志中就会相应的记录这条SQL语句的redo操作和undo操作几种操作类型:DDL(Data Definition Language 数据定义语言),用于操作对象和对象的属性(数据库,表,视图等)。

具体表现在Create,Drop 和Alter操作上。

不会对具体的数据进行操作,而是对对象进行操作。

像主键约束、唯一约束、非空约束、外键约束、核查约束和缺省约束这些操作都是使表具有某些特性,所以在这里我认为他们都是表的属性,也属于DDL操作。

DML(Data Manipulation Language 数据操控语言)用于操作数据库对象中包含的数据,也就是说操作的单位是记录。

主要表现在Insert,Delete和Update等操作上。

db2日志原理及案例

db2日志原理及案例

NO 0 0 520 OFF OFF NEARSYNC OFF OFF 5 20 OFF
日志规划
• 日志空间大小规划
– 初始设置为数据量大小的10-20%,然后监控调整 – 设置logprimary, logsecond, logfilsiz参数
• 规划路径
– – – – 活动日志路径:newlogpath 镜像日志路径:mirrorlogpath 归档日志设置:logarchmeth1: off/disk/tsm/logretain 归档日志设置2:logarchmeth2
SQLOGDIR
mirrorlogpath
S~3.LOG S~4.LOG S~5.LOG
S~0.LOG
S~1.LOG
S~2.LOG
数据库日志相关的一些参数
Primary log files (LOGPRIMARY) Secondary log files (LOGSECOND) Log size (LOGFILSIZ) New log path ? + ?
16
日志存放位置
Instance /your/choice
NODE0000
newlogpath
S~3.LOG S~4.LOG S~5.LOG
SQL0000n
/2nd/choice
Different disk drive and potentially a different disk controller unit
Student exercise
• 数据库恢复 • Db2dart • Patch日志控制文件
崩溃恢复(crash recovery)
• DB2异常终止 • 操作系统异常
需要思考的问题?

如何在Windows CMD里面用命令行操作DB2数据库

如何在Windows CMD里面用命令行操作DB2数据库

如何在Windows CMD里面用命令行操作DB2数据库尽管 DB2 脚本可以包含 SQL 语句、DB2 系统命令和操作系统命令,但它只是有一个或多个 DB2 命令的文本文件。

虽然不是必需的,但通过使用适当的文件扩展名形成一个标准的 DB2 脚本命名约定通常是个很好的方法。

表 1显示了几种最常用的文件扩展名。

表 1. 脚本的常用文件扩展名文件扩展名描述.db2 包含 DB2 命令的 DB2 脚本 .ddl 包含数据定义语言(DDL)语句的 DB2 脚本 .sql 包含 SQL 语句的 DB2 脚本作为说明之用,清单 1包含一个非常简单的 DB2 脚本,该脚本使用数个 DB2 命令备份 sample 数据库。

可以从任一 DB2 命令行工具执行该脚本。

本文中用到的全部脚本都可以下载。

这些脚本使用缺省的 DB2 实例(DB2)和样本数据库(SAMPLE)。

其中的一些脚本将要求您安装 Windows 资源包(Windows Resource Kit)。

清单 1. 备份 sample 数据库的样本 DB2 脚本(db2backup.db2)-- -- This is a sample DB2 Backup Script -- ATTACH TO DB2; BACKUP DATABASE SAMPLE; DETACH; TERMINATE;您可以使用以下语法从 DB2 命令窗口执行以上 DB2 脚本:db2 -tvf db2backup.db2 -l db2backup.log -r db2backup.rpt在上面的示例中,使用了以下 DB2 命令选项来执行 DB2 脚本文件(db2backup.db2 ):-t 指明在缺省情况下用分号(;)终止每条命令-v 指明应将每条命令显示到标准输出-f 指明从输入文件读取命令-l 指明将命令记录到输出文件中-r 指明将结果保存到报告文件中使用-l 选项将所有 DB2 命令记录到日志文件(db2backup.log )并且使用-r 选项将命令的输出保存到报告文件(db2backup.rpt ),这始终是一个很好的方法。

db2开启归档日志

db2开启归档日志
User exit for logging enabled (USEREXIT) = OFF
HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC
First log archive method (LOGARCHMETH1) =
Node 0
UID PID PPID C STIME TTY TIME CMD
db2inst1 6608 6607 0 21:30 pts/1 00:00:00 db2sysc 0
root 6609 6608 0 21:30 pts/1 00:00:00 db2ckpwd 0
db2 update db cfg for db_name using LOGRETAIN ON
运行后结果如下:
Log retain for recovery enabled (LOGRETAIN) = RECOVERY
User exit for logging enabled (USEREXIT) = OFF
db2 update db cfg for db_name using LOGARCHMETH1 "disk:/archive/db_name_db_log"
运行后结果如下:
Log retain for recovery enabled (LOGRETAIN) = RECOVERY
db2inst1 9026 6613 0 23:27 pts/1 00:00:00 db2agent (idle) 0
db2inst1 9124 6613 0 23:34 pts/1 00:00:00 db2agent (idle) 0

db2数据库面试题

db2数据库面试题

db2数据库面试题一、概述DB2数据库是IBM公司开发的一种关系型数据库管理系统。

在DB2数据库的面试过程中,常常会遇到各种各样的问题。

本文将为您总结一些常见的DB2数据库面试题,帮助您更好地准备面试,并提供详细的解答。

本文将从DB2数据库的基本知识、SQL查询、性能调优等方面展开讨论。

二、基本知识1. 什么是DB2数据库?DB2数据库是IBM开发的一种关系型数据库管理系统,它提供了完整的数据库管理和数据操作功能,并支持SQL查询语言。

2. DB2数据库的特点是什么?DB2数据库具有以下特点:- 跨平台性:DB2可以在不同的操作系统和平台上运行,如Windows、Unix、Linux等。

- 具备高可用性:DB2支持数据备份、恢复和高可用性机制,确保数据的安全性和可靠性。

- 扩展能力强:DB2可以支持大规模的数据和用户,并提供有效的扩展机制。

- 性能优越:DB2采用了先进的查询优化技术,能够提供高效的数据检索和处理能力。

- 安全性强:DB2提供了完善的权限管理和安全机制,保证数据的机密性和完整性。

3. DB2数据库的体系结构是什么样的?DB2数据库的体系结构包括以下几个层次:- 应用层:应用程序通过数据库连接器与DB2数据库进行通信。

- SQL层:处理SQL查询,包括查询优化、执行计划生成等。

- 缓冲池管理器(Buffer Pool Manager):管理数据缓存和页面置换。

- 存储管理器(Storage Manager):管理数据的存储和检索。

- 锁管理器(Lock Manager):管理并发访问和资源锁定。

- 日志管理器(Log Manager):管理事务日志的生成和恢复。

4. DB2数据库的对象包括哪些?DB2数据库的主要对象包括表(Table)、视图(View)、索引(Index)、触发器(Trigger)、存储过程(Stored Procedure)等。

三、SQL查询1. 如何创建一个表?在DB2数据库中,可以使用CREATE TABLE语句来创建一个表,语法如下:CREATE TABLE table_name (column1 datatype1 constraint,column2 datatype2 constraint,...);其中,table_name为表名,column1、column2为列名,datatype1、datatype2为列的数据类型,constraint为列的约束条件(如主键、外键等)。

DB2数据库管理最佳实践笔记-10日常运维

DB2数据库管理最佳实践笔记-10日常运维

10.1 日常运维工具概述Runstats是run statistics的缩写,意思是收集统计信息,目的是为DB2优化器提供最佳路径选择;Reorg是重组的意思,目的是减少表和索引在物理存储上的碎片,提供性能;Reorgchk是重组前的检查Rebind是对一些包、存储过程或静态程序进行重新绑定。

几个工具的执行流程:首先通过Runstats收集表和索引的统计信息,然后执行Reorg重组,如果有必要则执行,然后再次收集统计信息。

最后,对于静态语句、存储过程等,执行Rebind绑定。

10.2 Runstats在系统运行一个查询的时候,优化器需要决定用某种方式来访问数据。

只有当DB2对表中的数据有一个大概的了解,才能知道每一步操作大约需要处理多少数据,返回多少行。

当优化器了解了这些信息后,就会根据一系列的运算,判定出各种访问途径所需要消耗的资源,然后从中选择一个消耗资源最少的方法。

最普通的Runstats就是统计表和索引中有多少行数据,有多少不同的数值。

Runstats命令使用DISTRIBUTION参数手机数据分布。

数据分布分为两种,一种叫做频率采样(Frequency),一种叫做百分比采样(Quantile)。

当收集数据分布时,两种采样方式都会被收集。

其中频率采样是手页脚内容1机表中拥有相同数量最多的几行,比如10000行数据中9000行为10,然后500行为9,然后100行为8,剩下的部分平均分布。

如果我们制定Frequency为3的话,那么系统就会记录下来有9000行10,500行9,然后100行8,剩下的部分在估算时则假定平均分布。

而百分比采样则是将整个10000行数据分成相等大小的若干段,然后记录每一段的段首和段尾的数值,当需要查询一个数据段时(比如C1>10 AND C1<15),就可以根据每一个数据段的启始数值加上段落的大小,估算出符合查询条件的记录数量。

理论上,数据分布收集的越细致越好。

安全指南--DB2安全配置

安全指南--DB2安全配置

目录1. 范围 (2)2. 术语和定义 (2)3. 安全检查列表 (2)3.1 检查系统及DB2数据库版本 (2)3.2 检查DB2数据库补丁 (2)3.3 检查DB2数据库配置信息 (3)3.4 检查权限 (3)3.5 检查数据库调试和开发环境是否分开 (5)3.6 认证 (5)3.7 审计 (5)3.8检查备份策略 (7)3.9检查是否建立良好的日志管理策略 (7)1.范围本部分规定了网络系统中所使用的DB2数据库应用所应该遵守的安全检查指南。

2.术语和定义无。

3.安全检查列表3.1 检查系统及DB2数据库版本1)oslevel命令检查系统版本2)在DB2 5.2及以上版本中,db2level命令的输出提供了有关DB2实例的版本及修补级别的详细信息。

3.2 检查DB2数据库补丁通过db2level获取的修补代码及修订包发行号进行比较。

如果两者结果不同,那么意味着没有安装相应的修订包查找最近的DB2 FixPaks:3.3 检查DB2数据库配置信息1.检查安全的密码策略加强密码设置,设置最小的密码长度为8个字符以上,含字符、数字和特殊字符(1).检查用户口令修改时间(2).定期修改用户密码2.是否实施严格的口令3.检查帐号策略1)检查是否存在不必要的默认用户或测试用户2)检查是否存在不必要的用户及用户所拥有的对象3)检查是否有DBA或其他帐号的密码写于应用程序或者脚本中4. 检查数据库配置文件权限1)系统中的实例不是越多越好,如果在系统中创建的实例过多,不仅会造成额外的资源消耗(内存、硬盘空间等),也会增大管理开销。

检查每个实例在创建后的配置文件、每个数据库创建后的配置文件是否采取了安全保护措施2)检查恢复历史文件是否采取了安全保护措施3)检查数据库软件安装目录是否合理管理3.4 检查权限DB2访问控制的层次结构检查对DB2的用户赋于不同级别的权力和各种特权。

1.检查SYSADM、SYSCTRL 和 SYSMAINT权限的分配情况2.检查DBADM 和 LOAD 权限的分配情况3.检查是否每个实例有单独的权限控制,不同的实例是否设定不同的管理人员4.检查用户对象特权的使用情况,如:CONTROL、INSERT、DELETE、CREATEIN、DROPIN、REFERENCES 和 SELECT 等5.检查数据库级特权的使用情况,如:3)CREATETAB:允许用户在数据库内创建表。

DB2数据库命名规范

DB2数据库命名规范

DB2数据库命名规范篇一:DB2日常操作规范DB2数据库日常操作规范(2007年5月第一稿)1 目的本规范的主要目的是为DB2数据库管理员的日常操作提供标准,保障DB2数据库的日常稳定运行。

2 适用范围本规范的适用人员范围为我司所有应用DB2数据库的管理员。

本规范的适用操作范围为我司DB2数据库管理员的日常操作,并不涵盖DB2故障处理内容,故障处理见所附的各技术操作手册。

3 日常操作内容标准的DB2数据库日常操作分为四类:每日、每周、每月、每年。

3.1 每日数据库instance状态检查和database活动性和一致性检查数据库日志文件的检查数据库每日备份检查和数据库日志归档检查数据库HADR状态检查数据库表空间分配情况和使用情况检查数据库用户数检查数据库总体性能检查数据库服务器的 CPU 使用监控数据库服务器的 I/O 使用监控数据库的每日备份数据库的统计优化3.2 每周数据库系统信息的备份数据库临时文件的清理数据库日志文件的归档和清理数据库每周增长空间的统计数据库关键大表空间和记录数的周增长统计记录读写最活跃的10张表数据库的统计优化3.3 每月数据库表空间的维护数据库的定期健康检查数据库恢复的定期演练3.4 每年数据库的安全检查数据库的容量增长预测4 日常操作详述4.1 每日操作4.1.1 数据库instance状态检查和database活动性和一致性检查4.1.1.1 每日必须检查数据库instance和database运行状态是否正常,用户是否可以正常连接database。

如果状态不正常,按照运维流程报4008进行处理。

4.1.2 数据库日志文件检查4.1.2.1 数据库日志文件notification log(<instance_ID>.nfy)和DB2DIAG.LOG、内存自动调优的日志(stmmlog目录下的stmm.#.log文件中)的检查(转载于: 小龙文档网:db2,数据库命名规范)4.1.3 数据库每日备份包括日志备份检查4.1.3.1 每日必须检查数据库的备份是否成功,如成功则将备份磁带按照相关管理要求出库并异地保存;如果备份不成功,重新发起备份,如果处理后还不能备份成功,按照运维流程报4008进行处理。

DB2日志归档与备份还原

DB2日志归档与备份还原
四、还原数据库
#还原备份
db2 restore db AFCDB2 from /home/db2inst1/db2backup/ taken at 20140212190154 to /backup/log17
#前滚日志
db2 rollforward db AFCDB2 to end of logs and complete
三、备份数据库
#冷备:停止再开启数据库进行冷备
db2 force application all
db2 terminate
db2 backup db AFCDB2 to /home/db2inst1/db2backup/
db2 ARCHIVE LOG FOR DATABASE AFCDB2
#热备
db2 backup db AFCDB2 online to /home/db2inst1/db2backup/
#通过使用 and delete 参数,可以在清理条目的同时删除对应的归档日志文件。
#使用 db2 prune logfile 命令可以清除活动日志目录下的在线归档日志文件,但对离线归档日志文件无效
DB2日志归档与备份还原
一、查看归档是否打开
su - db2inst1
db2 connect to AFCDB2
db2 get db cfg for AFCDB2 |grep ห้องสมุดไป่ตู้i log
二、开启归档日志
#创建一个归档日志专用目录
mkdir /home/db2inst1/db2archlog
#开启归档日志
#查看是否能连接数据库
db2 connect to AFCDB2
附:查看归档日志
#手工归档日志(前提不能有连接)

Db2数据库归档日志很频繁

Db2数据库归档日志很频繁

Db2数据库归档日志频繁解决方法问题现象:数据库dbbde执行命令:Db2 db2stop forceDb2 db2start运行一段时间后发现,归档日志目录中日志增长很快,日志个数很多,但是日志均未写满。

每个日志只有约3M.如图S0224497.LOG-S0*******.LOG查看实际配置Log file size (4KB) (LOGFILSIZ) = 10000Number of primary log files (LOGPRIMARY) = 10Number of secondary log files (LOGSECOND) = 20一个归档日志的大小为:4KB*10000=40M 由配置看归档日志大小正常,则可能是犹豫数据库提交事物过于频繁导致归档频率加快。

解决方法:db2 activate database dbbde归档日志恢复正常。

整理:由activate database命令初始化的数据库可以由deactivate database命令关闭,也可以通过stop database manager(或db2stop)命令关闭。

如果使用activate database命令初始化一个数据库,那么最后一个与数据库断开连接的应用就不会关闭数据库。

由于命令db2stop关闭了数据库实例,重新启动数据库没有进行激活操作activate会导致每一个连接断开后会提交事物并归档,导致了日志归档频率大的问题。

同时,如果在database没有激活之前,就在应用中使用connect to database_name或隐式连接,那么应用就必须要进行等待,直到数据库管理器启动了你要连接的数据库。

一般第一个应用会引发等待数据库管理器执行数据库启动的所有开销。

可以使用activate database database_name这样的命令启动特定的数据库。

这个命令就会免除第一个应用程序连接上来的时候等候数据库初始化所花费的时间。

DB2的日志分为两种模式

DB2的日志分为两种模式

DB2的日志分为两种模式,日志循环与归档日志,也就是非归档和归档模式。

下面就具体介绍一下这两种方式以及和备份归档设置的关系。

一、日志循环这是默认方式,也就是非归档模式,这种模式只支持(backup offline)脱机备份,在备份过程中需要DB2停止服务。

在DB2中查看数据库设置,如发现如下信息$db2 get db cfg for db_name |grep -i log结果如下:Log retain for recovery enabled (LOGRETAIN) = OFFUser exit for logging enabled (USEREXIT) = OFFHADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC First log archive method (LOGARCHMETH1) = OFF 则说明为非归档模式,默认情况下为循环日志在这种模式下进行脱机备份需要注意:1、停止应用对DB2的访问。

可以通过db2 list applications命令查看现有的连接,然后通过db2 force application命令来结束连接。

另外通过db2 deactivate database命令来确保数据库未处于活动状态。

2、通过db2 backup db 数据库名命令来对数据库进行备份。

二、归档日志归档日志不是默认的,需要配置后才会生效,这种模式下的数据库是可恢复的数据库,支持在线备份、前滚恢复和崩溃恢复。

配置DB2归档日志模式主要是要修改Log retain for recovery enabled和First log archive method这两个参数。

修改参数(update更新参数)后,查看数据库是如下设置$db2 get db cfg for db_name |grep -i logLog retain for recovery enabled (LOGRETAIN) = RECOVERYUser exit for logging enabled (USEREXIT) = OFFHADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC First log archive method (LOGARCHMETH1) = LOGRETAIN 注意这里First log archive method的参数LOGRETAIN只表明你开启了归档,还需进一步设置才能正常备份下面需要进一步指定归档目录的路径更改归档目录:$db2 update db cfg for db_name using LOGARCHMETH1"disk:/archive/db_name_db_log"使用归档日志,当日志文件满时,会自动对它进行归档,归档的目的地就是Logarchmeth1设置的位置。

db2开启归档日志、记录表等对象日志的方法

db2开启归档日志、记录表等对象日志的方法

db2开启归档⽇志、记录表等对象⽇志的⽅法⼀.windows平台下:1.开启归档1.1.logretain⽅式win -》开始 -》所有程序 -》 IBM DB2 -》BD2copy -》⼀般管理⼯具 -》控制中⼼-》右键库名“TDB” -》数据库配置找到 “⽇志” -》 logarchmeth1 -》左键点击“值” -》-》更改数据库配置参数-logarchmeth1 -》选择 “logretain” 确定(但这时,还没⽣效)。

1.2.⾮logretain⽅式同上,在更改数据库配置参数-logarchmeth1 选择 DISK,并添加上备份路径即可,例如:F:\DB2\arch\2.备份重启在控制中⼼界⾯ -》备份数据库,做⼀次全备并重启数据库,就ok了。

(注:备份数据库 db2 backup database basename to d:\basename还原数据库 db2 restore database basename from d:\basename taken at 20190316083915 on d:\basename dbpath on d )3.结果验证db2 get db cfg |findstr -i log使⽤上述命令,分别显⽰如下:3.1 logretain⽅式logretain = RECOVERYlogarchmeth1 = LOGRETAIN3.2 ⾮logretain⽅式logretain = OFFlogarchmeth1 = DISK:F:\DB2\arch\即OK.⼆.linux平台下:1.归档⽅式选择1.1 logretain⽅式db2 update db cfg DB_NAME using LOGRETAIN ON1.2.⾮logretain⽅式db2 update db cfg DB_NAME using LOGARCHMETH1 “DISK:/opt/DB2/arch"2.重启连接数据库,如有连接挂起,做⼀次离线全备就ok了,否则在线备份即可。

DB2总结——精选推荐

DB2总结——精选推荐

DB2总结⼀、DB2笔记d b2⾥需要⽤到⼀个系统环境变量:d b2c o de p a g e,缺省值是1386,在江苏电⼒,⼀般情况下d b2c o d e p a g e=437。

新安装数据库客户端的机器在D B2C O M M A N DW I N D O W S中执⾏语句:D B2S E T D B2C O D E P A G E=437,否则⽆法正确连上服务器。

设置环境变量命令:D: db2set db2codepage=1386查看环境变量命令:db2setd:\winnt\system32\drivers\etc\services⽂件是对机器名到IP地址的解析。

d:\winnt\system32\drivers\etc\hosts⽂件是对端⼝名到端⼝号的解析。

以上两条上⾮DB2的,但在DB2中使⽤到。

DB2⾥对⼀个命令的HELP是:>db2 ? 该命令db2 连接到远程数据库第⼀步建⼀个结点:>db2 catalog tcpip node 结点名 remote 数据库服务器IP地址 server 端⼝(50000)第⼆步建⼀个到库的联结别名:>db2 catalog db 库名 as 别名 at node 结点名第三步建⽴联结:>db2 connect to 别名 user ⽤户名 using ⽤户密码db2⾥需要⽤到⼀个系统环境变量:db2codepage,缺省值是1386,此值⾮常重要,客户端于数据库端的db2codepage不⼀样时客户端就⽆法连上数据库端。

电⼒部门,⼀般情况下db2codepage=437。

DB2⾥⼀个表的全名是:schema.表名,缺什情况下不同的⽤户看到的表是不⼀样的,在程序的sql语句⾥必需⽤表的全名(切记)。

查看有哪些程序在使⽤该数据库:>db2 list application其结果中有⼀个字段application-handle在杀死该引⽤中⽤到杀死⼀个程序对该数据库的使⽤:>db2 force application {all | (application-handle)}在库被使⽤时db2stop不能执⾏DB2命令后所带参数:-t 以;作为⼀句结束-f 指向⼀个⽂件(即执⾏⼀个⽂件中的语句,在command窗⼝⾥有些命令⽆法执⾏,可先⽤notepad建⼀个⽂件然后执⾏它)-v (我不知道是什么)注释:-v⽤于显⽰当前所执⾏的sql命令。

DB2报“数据库日志已满”问题解决

DB2报“数据库日志已满”问题解决

DB2报“数据库日志已满”问题解决用控制中心直接改会比较容易一点,在数据库名称上点右键-->配置-->日志-->日志文件大小、主日志文件数、辅助日志文件数改大一点。

也可用命令行db2cmddb2 update db cfg for mymakro using LOGFILSIZ 512 --日志文件大小db2 update db cfg for mymakro using LOGPRIMARY 20 --主日志db2 update db cfg for mymakro using LOGSECOND5 10 --辅助日志要将与此数据库的所有连接断开后才会生效。

执行批处理时,DB2 报数据库的事务日志已满的错误,解决办法辅助日志文件的数目(LOGSECOND) = 25已更改的至日志文件的路径(NEWLOGPATH) =日志文件路径= D:\DB2\NODE0000\SQL00003\SQLOGDIR\溢出日志路径(OVERFLOWLOGPATH) =镜像日志路径(MIRRORLOGPATH) =首个活动日志文件= S0000005.LOG磁盘上已满的块日志(BLK_LOG_DSK_FUL) = NO事务使用的最大活动日志空间的百分比(MAX_LOG) = 01 个活动UOW 的活动日志文件的数目(NUM_LOG_SPAN) = 0组落实计数(MINCOMMIT) = 1软检查点前回收的日志文件的百分比(SOFTMAX) = 100启用的恢复的日志保留(LOGRETAIN) = RECOVERY启用的日志记录的用户出口(USEREXIT) = OFFHADR 数据库角色= STANDARDHADR 本地主机名(HADR_LOCAL_HOST) =HADR 本地服务名称(HADR_LOCAL_SVC) =HADR 远程主机名(HADR_REMOTE_HOST) =HADR 远程服务名称(HADR_REMOTE_SVC) =远程服务器的HADR 实例名(HADR_REMOTE_INST) =HADR 超时值(HADR_TIMEOUT) = 120HADR 日志写同步方式(HADR_SYNCMODE) = NEARSYNC第一个日志归档方法(LOGARCHMETH1) = LOGRETAIN logarchmeth1 的选项(LOGARCHOPT1) =第二个日志归档方法(LOGARCHMETH2) = OFFlogarchmeth2 的选项(LOGARCHOPT2) =故障转移日志归档路径(FAILARCHPATH) =错误时重试日志归档次数(NUMARCHRETRY) = 5日志归档重试延迟(秒)(ARCHRETRYDELAY) = 20供应商选项(VENDOROPT) =启用的自动重新启动(AUTORESTART) = ON索引重新创建时间和重做索引构建(INDEXREC) = SYSTEM (RESTART) 在索引构建期间记录页(LOGINDEXBUILD) = OFFloadrec 会话的缺省数目(DFT_LOADREC_SES) = 1要保留的数据库备份的数目(NUM_DB_BACKUPS) = 12恢复历史保留时间(天数)(REC_HIS_RETENTN) = 366TSM 管理类(TSM_MGMTCLASS) =TSM 节点名(TSM_NODENAME) =TSM 所有者(TSM_OWNER) =TSM 密码(TSM_PASSWORD) =自动维护(AUTO_MAINT) = OFF自动数据库备份(AUTO_DB_BACKUP) = OFF自动表维护(AUTO_TBL_MAINT) = OFF自动runstats (AUTO_RUNSTATS) = OFF自动统计信息概要分析(AUTO_STATS_PROF) = OFF自动概要文件更新(AUTO_PROF_UPD) = OFF自动重组(AUTO_REORG) = OFFdb2 => quitDB20000I QUIT 命令成功完成。

数据库解决db2事务日志已满及日志磁盘空间已满的问题

数据库解决db2事务日志已满及日志磁盘空间已满的问题

数据库解决db2事务⽇志已满及⽇志磁盘空间已满的问题事务⽇志满指当前事务⽆法写⼊到活动⽇志中(主⽇志⽂件和辅助⽇志⽂件已全部⽤完或者没有⾜够当前事务写⼊的空间)⽇志磁盘空间已满指辅助⽇志⽂件还未使⽤完,磁盘空间已经满了。

db2数据库事务⽇志⽂件分为主⽇志⽂件和辅助⽇志⽂件,主⽇志⽂件已分配空间,辅助⽇志⽂件使⽤时再分配。

查看事务⽇志配置(mid为数据库名称):db2 get db cfg for mid运⾏结果:⽇志⽂件⼤⼩(4KB) (LOGFILSIZ) = 1024主⽇志⽂件的数⽬ (LOGPRIMARY) = 13辅助⽇志⽂件的数⽬ (LOGSECOND) = 4已更改的⾄⽇志⽂件的路径 (NEWLOGPATH) =⽇志⽂件路径 = D:\DB2\NODE0000\SQL00003\SQLOGDIR\总事务⽇志容量⼤⼩=(LOGPRIMARY+LOGSECOND)*LOGFILSIZ*4kps:(13+4)*1024*4kb=68mbDB2事务⽇志满解决办法:(1)增⼤⽇志⽂件⼤⼩:db2 udpate db cfg for mid using LOGFILSIZ 8192或者增⼤主⽇志⽂件个数:db2 update db cfg for mid using LOGPRIMARY 15或者增⼤辅助⽇志⽂件个数:db2 update db cfg for mid using LOGSECOND 10(2)停掉引起这个错误的应⽤程序或者停掉所有的应⽤程序,再重启数据库db2 force applications alldb2 force application (应⽤程序句柄通过db2 list applications获取)db2stopdb2start。

db2安装手册

db2安装手册

DB2安装手册上海屹通网络工程有限公司未经上海屹通网络工程有限公司明确的书面许可,本文的任何部分不得以任何方式或手段进行复制或传播,或用于任何用途。

对于本文涉及的任何主题,本公司已用于专利、专利应用程序、商标、版权或其他知识产权。

提供本文,并不意味着向您授予这些专利、商标、版权或其他知识产权的任何许可。

©2002-2003 上海屹通网络工程有限公司版权所有。

©2002-2003 Shanghai P&C Network Project Co. Ltd. All Right Reserved.这里提及的其他产品或公司是它们各自所有者的商标。

修订记录DB2安装手册1.简介本部分手册介绍了DB2安装全过程和验证安装的方法以及安装会遇到问题的解答。

“DB2企业服务器版”(ESE)或“DB2工作组服务器版”(WSE)需要的磁盘空间取决于您选择的安装类型和磁盘驱动器的类型。

在具有较大群集大小的FAT驱动器上,需要的空间可能会显著增加。

当使用“DB2安装向导”来安装“DB2企业服务器版”时,估计的大小是由安装程序根据选择的安装类型和组件来动态提供的。

1.1. 安装类型“DB2安装向导”提供了“典型”、“压缩”和“定制”安装类型。

典型安装使用典型配置来安装具有大多数功能部件和功能的DB2。

典型安装包括图形工具(例如,“控制中心”和“配置助手”)。

还可以选择安装一组典型的数据入库或卫星功能部件。

压缩安装只安装基本的DB2功能部件和功能。

压缩安装不包括图形工具或对IBM数据源的联合访问。

定制安装定制安装允许您选择想要安装的功能部件。

“DB2安装向导”将估计您选择的安装选项所需的磁盘空间。

一定要记住包括必需的软件、通信产品和文档所需的磁盘空间。

在“DB2版本8”中,HTML文档和PDF文档是在单独的CD-ROM上提供的。

处理空间不足若安装所选组件所需的空间超过了为安装这些组件而指定的路径中的空间,安装程序会发出关于空间不足的警告。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、load 方法装入数据:export to tempfile of del select * from tablename where not 清理条件;load from tempfile of del modified by delprioritychar replace into tablenamenonrecoverable;说明:在不相关的数据表export数据时,可以采取并发的形式,以提高效率;tablename指待清理table的名称;modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况; replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容;nonrecoverable无日志方式装入;2、查找当前的应用:db2 list application grep btpdbs;3、删除当前正在使用的application:db2 "force application (id1,id2,id3)"id1,id2,id3 是list显示的应用号;4、查看当前应用号的执行状态:db2 get snapshot for application agentid 299 grep row5、查看数据库参数:db2 get dbcfg for //当前数据库可以省略6、修改数据库的log数据:db2 update dbcfg using <参数名><参数值>7、db2stop force的用法:在进行bind的时候出现如下错误:sql0082can error has occurred which has terminated processing.sql0092nno package was created because of previous errors.sql0091nbinding was ended with "3" errors and "0" warnings.主要是表文件被加锁,不能继续使用;在进行stop的时候报错:db2stop8/03/2005 21:46:530 0 sql1025nthe database manager was not stopped because databases are still active.sql1025nthe database manager was not stopped because databases are still active.需要使用如下命令可以解决这个问题:db2stop force08/03/2005 21:47:49 0 0 sql1064ndb2stop processing was successful.sql1064ndb2stop processing was successful.然后启动数据库db2start,连接数据库db2s后,重新进行bind即可。

8、缓冲池参数修改:db2 alter bufferpoolibmdefaultbp size 10240查看本表的数据内容如下:db2 "select * from syscat.bufferpools";9、db2 日志处理:db2日志是以文件的形式存放在文件系统中,分为两种模式:循环日志和归档日志。

当创建新数据库时,日志的缺省模式是循环日志。

在这种模式下,只能实现数据库的脱机备份和恢复。

如果要实现联机备份和恢复,必须设为归档日志模式。

目前在综合业务系统中,设置的均是归档日志模式;其它系统(如事后监督、经营决策、中间业务等)一般都设置为循环日志模式。

至于采用何种模式,可以通过修改数据库配置参数(logretain)来实现:归档日志模式:db2 update dbcfg for using logretain on注:改为on后,查看数据库配置参数logretain的值时,实际显示的是recovery。

改变此参数后,再次连接数据库会显示数据库处于备份暂挂(backup pending)状态。

这时,需要做一次对数据库的脱机备份(db2 backup db),才能使数据库状态变为正常。

循环日志模式:db2 updatedbcfg for using logretain off10、db2 日志处理必须按照以下正确的步骤进行操作:要求必须使用db2命令prune进行清理,不建议使用rm命令删除。

删除前应保证应用已停止(即联机已下来)。

查看当前使用的日志文件目录及第一活动日志文件用“db2 get dbcfg for ”命令查看日志文件目录(path to log files)参数,确定数据库当前使用的日志文件目录。

例如:path to log files = /db2log/,说明db2日志存放目录是/db2log用“db2 get dbcfg for ”命令查看第一活动日志文件(first active log file)参数,该参数对应的日志文件之前的日志文件均为归档日志文件,如果确认没有用,可以删除。

例如:first active log file = s0015913.log,说明当前第一活动日志文件是s0015913.log。

备份好要删除的归档日志删除归档日志以应用用户(如btp)登录,执行:&#36; db2 connect to&#36; db2 prune logfile prior to s???????.log注:s???????.log为查看到的第一活动日志文件。

此命令可以将当前第一活动日志文件之前的归档日志文件全部删除。

11、如何清理db2diag.log文件db2diag.log,是用来记录db2数据库运行中的信息的文件。

可以通过此文件,查看记录的有关db2数据库详细的错误信息。

此文件也是不断增大的,需要定期进行清理。

可以通过查看实例的配置参数diagpath,来确定db2diag.log文件是放在哪个目录下:db2 get dbmcfg如果diagnostic data directory path(diagpath) = /home/db2inst1/sqllib/db2dump,则此文件是放在/home/db2inst1/sqllib/db2dump目录下。

当文件系统/home的使用率达到80%-90%左右时,应及时删除db2diag.log文件。

请按以下正确步骤操作:确认应用(如btp)、db2已经停止。

将原db2diag.log文件备份到其它文件系统下。

删除db2diag.log文件。

删除后,db2会自动创建一个新的文件。

12、load 操作在进行load的时候db2 "load from acmmst.txt of del modified by coldel replace into acmmstnonrecoverable ”由于数据不规范出现错误,强行中断以后,进行操作的时候出现如下错误:sql0668noperation not allowed for reason code "3" on table "btp.acmmst".sqlstate=57016此时,进行反方向操作即可:db2 "load from /dev/null of del terminate into acmmstnonrecoverable"。

如果没有使用参数nonrecoverable,则会出现数据库状态不正确的情况,使用:db2 list tablesapces show detail 查看状态,如果不是正常状态,则脱机状态进行备份即可。

两个表文件之间update的方法:db2 "update cdmcrd set offset = (select cdmlsl.offset from cdmlsl where cdmlsl.crdno=cdmcrd.crdno) where cdmcrd.crdno in (select cdmlsl.crdno from cdmlsl)13、多字段条件查询和修改表a中的字段有actno, cnlno,bal,pwd;表b中的字段为actno,cnlno,txnamt;目的是将a 表中的bal修改为b表中的txnamt,命令:db2 "update a set bal=(select txnamt from b where actno=a.actno and cnlno=lno) wherelnoin (select actnocnlno from b );14、多条件匹配查询查询某个表中条件是b?aaa的记录:db2 "select * from a where actno like 'b_aaa%'".查询数据中存在某些字符的记录:db2 "select * from a where actno like '%-aaa%".15、数据库恢复的处理进行数据库恢复的时候使用以下的命令:restore db db1 to /tstdb2/catalog into dbnewlogpath /tstdb2/db2log buffer 2048replace 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时报如下的错误:p570:>db2ssql1117n a connection to or activation of database "db" cannot be madebecause of roll-forward pending. sqlstate=57019db21034e the command was processed as an sql statement because it was not avalid command line processor command. duringsql processing it returned:sql1024n a database connection does not exist. sqlstate=08003解决办法如下:p570:>db2 rollforwarddbdb to end of logs and completerollforwardstatusinput database alias = dbnumber of nodes have returned status = 1node number = 0rollforward status = not pendingnext log file to be read =log files processed = -last committed transaction = 2005-11-20-10.59.23.000000db20000i the rollforward command completed successfully.db2日志管理(完成)---归档日志db2 update dbcfg for dbtest usinglogretain recovery userexit ondb2 update dbcfg for dbtest using logarchmeth1 DISK:D:/DB2/Arch_logdb2 update dbcfg for dbtest using logarchmeth2 DISK:D:/DB2/Arch_log2db2 update dbcfg for dbtest using LOGPRIMARY 100 LOGSECOND 50 LOGFILSZ 65535 ;(此时单个日志文件的大小为:65535 *4K ,可用日志的个数为: 100+50 )---循环日志/*Logretaim=Recovery --(Logretaim/userexit两个值任选一个)userexit=Yes*/db2 update dbcfg for edw using logarchmeth1 off logarchmeth2 offdb2 update dbcfg for edw using logretain NO userexit NOdb2 update dbcfg for edw using LOGPRIMARY 100 LOGSECOND 50 LOGFILSIZ 65535 ;(此时单个日志文件的大小为:65535 *4K ,可用日志的个数为: 100+50 )--重启数据库才生效(或者断开所有链接)set instance=db2inst4db2stop forcedb2startdb2 activate dbedw--更改联机日志的路径(更改后logpath的值发生改变)db2 update dbcfg for edw usingnewlogpath /dw/edwdata/db2log一.日志概述任何数据库管理系统都必须拥有确保数据一致性和可恢复性的机制。

相关文档
最新文档