informix操作

informix操作:

  1. 检查是否开启fullrowlog :
oncheck -pt dbname:tabname (输出结果存在TBLspace flagged for Log Snooping即为开启)  
  1. 查看分区表
select t1.tabname,t2.fragtype
from systables t1,sysfragments t2
where t1.tabid=t2.tabid
and t2.fragtype='T'
and t1.tabname='tablename'
  1. 查看分配页数
select round(npdata/16777215,3),* from sysmaster@hebei_hdr:Sysptnhdr 
where partnum in (select partnum from hbuserdb@hebei_hdr:systables 
where tabname='tablename')
  1. 查看数据库下所有数据表\
select tabname from systabnames where dbsname='databasename' and tabid > 99
  1. 查询死锁
select * from syslocks where dbsname='databasename' and tabname='tablename'
  1. 查询统计更新时间:
SELECT * FROM systables a WHERE a.tabname = lower("tablename")
  1. informix dbschema用法:用dbschema工具导出Informix数据库的结构的具体步骤
(1)导出数据库中所有的表结构到文件db.sql
$>dbschema -d your_database_name -t tablename all db.sql
(2)导出数据库中所有的存储过程到文件db.sql
$>dbschema -d your_database_name -f all db.sql
(3)导出数据库中的所有对象(包含表,存储过程,触发器。。。)到文件db.sql
$>dbschema -d  db.sql
(4)导出数据库中一个表的结构到文件db.sql
$>dbschema -d your_database_name -t your_table_name db.sql
(5)导出一个存储过程定义到文件db.sql
$>dbschema -d your_database_name -f your_PRocedure_name db.sql
(6)如果导出更多的表的信息(EXTENT...)
$>dbschema -d your_database_name -ss db.sql
(7)导出数据库中对用户或角色的授权信息
$>dbschema -d your_database_name -p all
$>dbschema -d your_database_name -r all
(8)导出数据库中的同义词
$>dbschema -d your_database_name -s all
(9)导出数据结构以及索引、权限信息
$>dbschema -d ha4600car3gdb@ha_4600_cb_hdr  -p all ha4600car3gdb.sql
(10)导出库级别所有信息
dbschema -d bj1100prplpdb@bj_1100_lp_hdr -ss > bj_prplp.sql
  1. informix dbload使用
dbload
       -d  数据库名
       -c  命令文件名(在这里我们的命令文件就是Load.db)
       -l   日志文件
       -n  每次要导入的数据量
       -e   运行中超过多少错误就退出(一般是1条)
       -i   本次导入数据从第i条导起
       -r  导入时不锁表
       -k  导入时所表
————————————————
      需要注意的是:用DbLoad导入时,如果不指定-n,也就是不指定每次要导入多少条数据,默认的是每次导入100条,还有就是如果不指定是否锁表,一般情况下是锁表的;而锁表后导入数据的速度就比较慢了。所以在导入时,记得加-r,还有一点值得关注的是,如果这里要拿Load命令导入的话,超过一定的数据量,Informix为其分配的锁就会不足,导致导入数据失败(具体的锁的数目是在Informix的onconfig文件中设定的)。
————————————————
dbload命令的语法为:
dbload  -d   数据库名  -c   命令文件名   -l   日志文件名
示例:
(1)一次导入10w条,报错100000000此后停止执行此脚本:
dbload -d yn5300car3gdb -c load.cmd -l error.log -e 100000000 -n 100000;
此前大数据表清理方案:可供参考:
一、urldata数据表缓存表方案:

1.停止应用(需先停业务,根据自己实际情况来)

2. 数据备份

   1)备份urldata表invalidtime>=(date(current)-2)数据
	unload to urldata.unl select * from urldata where invalidtime>=(date(current)-2);

3. 重建表

   1)将urldata表重命名

	 rename table urldata to urldata_20210225;

   2)重新建urldata表
        
 create table urldata 
  (
    comcode varchar(255),
    riskcode varchar(3) not null ,
    datakey varchar(255),
    datakey_all varchar(255),
    licenseno varchar(20),
    datakey3 varchar(255),
    requesttext lvarchar(4000),
    resposetext lvarchar(4000) not null ,
    resposetext2 lvarchar(4000),
    resposetext3 lvarchar(4000),
    startdate date,
    starthour smallint,
    operatedate date not null ,
    enddate date,
    endhour smallint,
    operatorcode varchar(10),
    licensetype varchar(3),
    tcol1 varchar(255),
    tcol2 varchar(255),
    tcol3 varchar(255),
    remark varchar(255),
    querytime datetime year to second not null ,
    invalidtime datetime year to second not null ,
    ip varchar(100),
    mac varchar(100),
    inserttimeforhis datetime year to second 
        default current year to second,
    operatetimeforhis datetime year to second 
        default current year to second,
    flag varchar(10),
  primary key (datakey_all) constraint pk_urldata_new)  --建立唯一约束pk_urldata_new
  extent size 2048000 next size 102400 lock mode row;  --创建表,数据库分给该表空间2G,第一个分配的空间使用完毕之后每次新增100M,行锁

  grant select on urldata to "chmdo" as "user3g";   --指定执行此查询的chmdo主体要从 user3g主体派生授予该权限的权利。

4.将备份的数据分批次导入urldata表中(每次10w条),需要从下面两个方案中选择最优方案(需分公司在测试库验证)
(重建索引可以与此步骤调换,减少占用锁资源,28个字段、200多万条数据,大概占用1450万锁资源)

     1). 方案1:
	 
        a). 创建load.cmd文件

        b). 编辑load.cmd,输入如下命令
	      
                    file "urldata.unl" delimiter "|" 28 ; insert into urldata;

        c).执行如下命令,导入数据databasename需指定(一次导入10w条,报错100000000此后停止执行此脚本)
		
		dbload -d databasename -c load.cmd -l error.log -e 100000000 -n 100000;

     2). 方案2:load from urldata.unl insert into urldata;


5. 重建索引:分公司注意create创建新表之后需要重建索引并统计更新
  
	create index idx_urldata_dall_new_invalidtime on urldata (datakey_all,invalidtime) using btree;

	create index urldataidx_new_flag on urldata(flag) using btree;

6. 统计更新

	 update statistics for table urldata;
  
7. 验证:
      1)确认是否有数据
	
	     select count(*) from urldata;

      2)做业务查看表中urldata是否新增数据

             select count(*) from urldata; ---确认是否有新增数据

二、回退过程

rename table urldata_20210225 to urldata;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值