DB2数据库定时自动清理表数据的脚本语句

DB2数据库定时自动清理表数据的脚本语句,第1张

这个根据数据量来的:

若数据不大:

用crontab 写个脚本语言,先获取当前时间 比如php 为$day=inter(date("d",time()))//获取当前日期

if($day=1){//判断是否是月初

do{//数据大分页删除;根据时间取

$return = delData(time<strtotime(“-3 month”));

}while($total >(page-1)*每页数量)

}

2.定时存储过程

CREATE EVENT `e_call` ON SCHEDULE EVERY 3 MONTH eENDS 'time' ON COMPLETION NOT PRESERVE ENABLE DO call p_chk()

查看相应DB2版本的DB2 Quick Beginning,都有介绍如何卸载。

可用DB2安装光盘进行卸载,即db2_deinstall的功能。

可以手工删除,具体步骤如下:

1、备份数据库,删除数据库

2、db2admin stop 停管理服务

3、db2stop 停instance

4、/usr/.../instance/dasidrop das_name 删除管理服务

5、/usr/.../instance/db2idrop instance_name 删除instanec

6、smitty remove 删除DB2字样的包

7、删除相应的用户、组,删除/etc/services文件中db2字样的行等等。

1. 首先数据库要可以前滚恢复(数据库配置参数logretain或userexit打开)。

db2 connect to

dbname

db2 update db cfg using logretain on

db2 backup db dbname

(当打开归档日志后,该数据库会处于rollforward pending状态,所以要做一次全备份)

2. 对要实施Drop Table Recovery的表空间(限regular tablespace),执行:

db2 "alter

tablespace 表空间名称 dropped table recovery on "

3. 用 list history dropped table all for 数据库名 得到删除表的tableid(例如

0000000000006d0000020003)和表结构的生成语句(DDL),记录tableid和该语句以便恢复。之后,用drop命令删除的表中的数据可以在前滚恢复时导出。

db2

list history dropped table all for dbname

4. 恢复数据库后,如果想恢复已删除的表,在前滚时加recover dropped table tableid to

目标目录。在该目录下被删除的表中的数据导出。利用上面提到表结构生成语句生成被删除了的表,然后用import命令将数据导入表中。

db2

restore db dbname tablespace(tablespacename) without rolling forward without

prompting

db2 "rollforward db dbname to end of logs and stop

tablespace(tablespacename) recover dropped table table id to path "

cd

path

利用 db2 list history dropped table all for dbname

查出的表结构生成语句生成被删除了的表

db2 import from data of del insert into tablename


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9971242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存