db2记录

cat /etc/passwd | grep db2
groupadd db2fgrp3
groupadd db2grp3
useradd -d /home/db2inst3 -g db2grp3 -m -s /bin/bash  db2inst3
useradd -d /home/db2fenc3 -g db2fgrp3 -m -s /bin/bash  db2fenc3
cd /opt/ibm/db2/v10.1/instance/
./db2icrt -p 60000 -a server -u db2fenc3 db2inst3


db2 uncatalog db  ksdbs
db2 uncatalog node db2node 
db2 terminate
db2 catalog tcpip node test remote 10.10.12.187 server 60000
db2 catalog db ksdbs at node test
db2 terminate


db2set -all  --list all  have reseted  
db2 connect to ksdbs user user_name using password
db2 update dbm cfg svcename db2inst3
db2 create db ksdbs using codeset gbk territory cn
db2 connect to ksdbs


su - db2inst3
db2set db2comm=tcpip
db2set db2autostart=on
db2set db2codepage=1386
db2set db2country=86
vim /etc/services
db2inst3   60000/tcp   #db2 port
db2 update dbm cfg using svcename 60000
db2stop
db2strart
db2 create db ksdbs using codeset gbk territory cn
db2 connect to sample
db2 grant connect on database to user test 
db2 connect reset
db2  -tvf crt_db.sql


drop tablespace ac_cur_index_tbs;
create tablespace ac_cur_index_tbs managed by database
using( file '/home/db2inst3/index' 262144) 
extentsize 16
prefetchsize 128;


create bufferpool aclongdata size 5000 pagesize 16384;


create tablespace ac_long_data_tbs
pagesize 16384
managed by database
using( file '/home/db2inst3/acldata' 16384)
extentsize 32 
prefetchsize 256
bufferpool aclongdata;


create system temporary tablespace tempspace2 
pagesize 16384 managed by system
using ('/home/db2inst3/tempcont','/home/db2inst3/tempspace')
extentsize 32
prefetchsize 256
bufferpool aclongdata;


db2 list tablespaces;
db2 list tablespaces show detail;
db2 list tablespace containers for 2;


alter tablespace ac_long_data_tbs add(DEVICE '/dev/rath9' 10000, DEVICE '/dev/rath10' 10000);
alter tablespace ac_long_data_tbs extend(all,10000);
alter tablespace ac_long_data_tbs reduce(file '/home/db2inst3/acldata' 16384);
alter tablespace ac_long_data_tbs resize(DEVICE '/dev/rath9' 8000, DEVICE '/dev/rath10' 8000);
alter tablespace ac_long_data_tbs drop(file '/home/db2inst3/acldata',DEVICE '/dev/rath9');


rename tablespace ts1 to ts2;


drop sequence ac.seq_serial_no;
create sequence ac.seq_serial_no as integer increment by 1 maxvalue 1000000000 minvalue 1 cycle cache 2000;


create table xinzhuang_pic(picno int, pic clob(lg)) in data_sapce index in index_space long in lob_space;
drop tablespace data_space, index_space, lob_space;




create table ac.cust_agent_rel
(
    custid                    bigint         not null with default 0,
    fundaccountid             bigint         not null with default 0,
    begindatetime             timestamp      not null with default current timestamp,
    constraint p_key_1 primary key(custid, fundaccountid, agentid)
)
in ac_cur_data_tbs
index in ac_cur_index_tbs;


comment on table ac.cust_agent_rel                                    is 'cust agent rel';
comment on column ac.cust_agent_rel.custid                            is 'custid';
comment on column ac.cust_agent_rel.fundaccountid                     is 'fundaccountid';
comment on column ac.cust_agent_rel.begindatetime                     is 'begindatetime';


drop index ac.i_cfa_ss;
create unique index ac.i_cfa_ss on ac.cust_fund_account(
    showfundaccountid,
    systemtype
);


drop view soc.update_log;
create view soc.update_log as
select serial_no,table_name,key_column,change_type,change_time,note from ac.soc_update_log;
comment on table soc.update_log is 'view with memory update data';




alter table ac.his_cust_trader_accoun add primary key (pbuno);
alter table tablename drop primary key;
alter table ac.cust_info_change alter column operatesource set data type varchar(254);
alter table ac.cust_info_change alter column operatesource set default 'valuse';
alter table ac.cust_trader_account add column openstatus char(1) not null with default '';
comment on column ac.cust_trader_account.openstatus is 'this is a test';
db2 describe indexes for table ac.his_cust_trader_account show detail;
db2ilist -- this command is list all database instance;


db2 list applications
db2 force application all
db2stop force 
db2start
db2 backup db ksdbs
db2 backup db ksdbs online to “/backup/offline” with 4 buffers buffer 1024 parallelism 4 compress without prompting
db2 backup db ksdbs with 4 buffers buffer 1024 parallelism 4 compress without prompting 


db2 drop database ksdbs
db2 restore db ksdbs taken at 20130909163636
db2 restore db ksdbs from /db2home/db2inst1 taken at 20130909163636 
db2 rollforward db ksdbs to end of logs and stop;



<think>嗯,用户这次想了解的是如何在DB2中查询历史操作记录的方法。这个问题确实很有价值,毕竟系统审计和安全排查时经常需要追踪历史操作。不过我需要仔细想想具体实现方式。首先回顾一下DB2常见的日志机制。DB2自带的诊断日志(diag.log)会记录错误信息,但不太适合做操作追踪。更合适的应该是事务日志,但直接查询事务日志并不容易。让我看看系统自带的审计功能。DB2有个audit组件,但默认是关闭的,需要DBA配置审计策略后才能使用。开启后确实能详细记录操作记录,只是需要额外的管理维护成本。又想到系统目录表sysibm.sysdummy1这种视图也不包含操作记录。不过sysibmadm.adm_history视图可能会存储部分运维操作信息,这个可以试试看。用户上次查询的是表结构相关命令,这次转向审计功能说明ta可能在进行安全加固。考虑到企业环境,应该推荐更完整的审计方案。虽然配置稍复杂,但能记录完整的操作者、时间、对象等信息,价值更大。要不要同时提醒权限问题呢?普通用户可能没有查看审计日志的权限,这点很重要。还有时间范围限制也要说明,避免用户误以为能查到所有历史记录。最后准备两个层级的方案:简单查询adm_history作为快捷方案,完整审计作为企业级解决方案。SQL示例要包含关键字段,比如auth_id和action_time这些实用信息。对了,还要特别注意加个警告说明——如果没预先配置审计策略,这些查询都是无效的。用户可能不了解这个前提,容易产生误解。</think> 在 DB2 中查询历史操作记录主要依赖于其内置的审计功能(`AUDIT`)或管理视图`ADMHISTORY`(需事先配置审计策略),以及事务日志(仅记录变更但格式复杂)。常用方法如下: ### 方法 1:使用 `sysibmadm.admhistory` 视图(需配置审计) 此视图记录了配置审计策略后的 **数据库管理操作**(如 DDL、连接、权限变更等),默认可能未启用。 ```sql -- 查询所有历史操作记录 SELECT * FROM sysibmadm.admhistory; ``` #### 常用字段说明 ```sql SELECT event_timestamp, -- 操作发生时间(精确到微秒) auth_id, -- 执行操作的用户 action, -- 操作名称(如 CONNECT, CREATE, DROP, GRANT) object_schema, -- 操作对象所属Schema object_name, -- 操作对象名称 sql_stmt_text -- 执行的SQL语句(长度有限) FROM sysibmadm.admhistory WHERE event_timestamp > CURRENT TIMESTAMP - 7 DAYS -- 查询最近7天的操作 ORDER BY event_timestamp DESC; ``` ### 方法 2:配置DB2审计功能(详细记录) **需管理员预先配置审计策略**: 1. **开启审计**: ```bash db2audit configure datapath '<审计日志目录>' -- 设置审计日志存储路径 db2audit start -- 启动审计 ``` 2. **配置审计策略**: ```sql -- 示例:审计所有用户对表的所有操作 CREATE AUDIT POLICY MyAuditPolicy CATEGORIES EXECUTE STATUS BOTH CATEGORIES OBJMAINT STATUS BOTH; ``` 3. **将策略绑定到数据库**: ```sql AUDIT DATABASE USING POLICY MyAuditPolicy; ``` 4. **查询审计日志**: ```sql SELECT event_timestamp, auth_id, action, object_schema, object_name, event_correlator, sql_text FROM TABLE(SYSPROC.AUDIT_LIST('', -2)) AS T; -- 查看审计日志 ``` ### 方法 3:事务日志(仅技术专家分析) DB2的**事务日志(Transaction Log)** 记录了所有数据变更操作(INSERT/UPDATE/DELETE),但日志是二进制格式,需专用工具解析: ```bash db2dart <DB_NAME> /LHWM ``` > ⚠️ 此操作需高级权限且可能影响性能,生产环境慎用。 ### 📌 关键要点 1. **审计需预配置**:默认未启用审计,需按 *方法2* 配置后才可查询完整历史记录。 2. **权限限制**:查看`admhistory`需`ACCESSCTRL`权限;审计日志需`SECADM`权限。 3. **时效性**:审计日志默认有保留周期,需定期归档。 4. **应用层日志**:对于业务操作记录,建议在应用程序中记录操作日志(如写入日志表)实现更精细的控制 [^1][^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值