DB2数据库删除表空间
db2删除数据表
●将基于该表的所有视图标记为不可用
●删除的表和从属视图的所有特权被隐式撤销
●会删除在其中为该表父表或从属表的所有引用约束
●从属于删除的表的所有程序包和高速缓存的动态SQL和XQuery语句被标记为无效,且该状态会保持至重新创建了从属对象为止。这包括这样的一些程序包,它们从属于将被删除的层次结构中子表上的任何超表
DB2数据库删除表
[大] [中] [小] 发布人:圣才学习网 发布日期:2012-09-26 16:41 共3276人浏览
DB2删除表操作相信大家都不陌生,这是我们最常用的操作之一,下面就对DB2删除表方面作详尽的阐述,供您参考学习。
DB2删除表
可以使用DROP TABLE语句删除表。当删除一个表时,也会删除SYSCAT.TABLES系统目录中包含有关该表的信息的那一行,并会影响从属于该表的任何其他对象。例如:
DROP TABLE <表名>
CREATE TABLE <表名> <字段的定义>
如果保存有表的定义语句,或已利用 DB2LOOK 命令获得了表定义的脚本,也可先删除整个表,再重新创建表。如果表较大,用这种方法实现数据清空的速度会快于方法一。
如果要实现truncate table的效果,就用IMPORT FROM 空文件的方法,用其它方法都不好。
或 LOAD FROM <空文件> OF DEL REPLACE INTO <表名> NONRECOVERABLE
在这一方法中,REPLACE 导入方式首先会将表中所有数据清空,然后 IMPORT/LOAD 又向表中导入了空数据,从而实现了数据的清除操作。
db2 sql 教程
Alter table tabname add primary key(col)
删除主键:
Alter table tabname drop primary key(col)
删除表:drop table tabname
3、表空间:
创建表空间:create tablespace tbsname pagesize 4k managed by database using (file ‘file’ size)
语法格式:
Rollback [work]
高级sql简单介绍
一、查询间使用运算词
A: UNION 运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
删除表空间:drop tablespace tbsname
4、索引:
创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname
[color=blue:b36c9124a3]注:索引是不可更改的,想更改必须删除重新建。[/color:b36c9124a3]
表空间加入容器:alter tablespace tablespace_name add(file 'filename' size)
ECC6.0+DB2下DBTABLOG表清理并释放表空间
适用情况:ECC6.0DB2 版本从V9.5升级到V10.1一、从表DBTABLOG中删除数据,只保留1年数据。
(时间自己定)SE38 运行程序RSTBPDEL,后台运行程序。
二、打入DB6CONV程序参考note1513862,下载附件中的文件解压,把解压文件放到如下目录:cp R000016.FW1 /usr/sap/trans/datacp K000016.FW1 /usr/sap/trans/cofiles运行STMS传输即可。
三、运行程序DB6CONV重组表DBTABLOG。
SE38 执行程序DB6CONV,参考note 362325保存即可,选择合适的时间启动后台任务运行。
四、降低高水位高水位降低后表空间大小没有减少。
五、缩小PRD#PROTD表空间1、创建表空间PRD#PROTD1。
CREATE LARGE TABLESPACE "PRD#PROTD1" IN DATABASE PARTITION GROUP SAPNODEGRP_PRD PAGESIZE 16384 MANAGED BY AUTOMATIC STORAGEUSING STOGROUP "IBMSTOGROUP"AUTORESIZE YESINITIALSIZE 32 MMAXSIZE NONEEXTENTSIZE 2PREFETCHSIZE AUTOMATICBUFFERPOOL "IBMDEFAULTBP"DATA TAG NONEOVERHEAD 7.500000TRANSFERRATE 0.060000NO FILE SYSTEM CACHINGDROPPED TABLE RECOVERY OFF;2、把表空间PRD#PROTD的数据转移到表空间PRD#PROTD1。
运行会报错,如下:SQL0551N "SAPPRD" does not have the required authorization or privilege to perform operation "CREATE TABLE" on object缺少权限,给用户SAPPRD dbadm权限。
db2常用命令
常用db2命令大全db2 -tvf my.sqldb2level 显示db2的版本号显示SQL出错信息db2 "? sql6031"db2mtrk管理DAS产生:root运行-dascrt -u dasuser1删除:root运行-dasdrop启动:dasusr1运行-db2admin start停止:dasusr1运行-db2admin stopdb2_killipcleandb2start dbpartitionnum 9 restartAIX启动控制中心:db2ccDB2用户管理:db2 use os to manage users.You can use following steps to add a db2 user:1,add a user on os.2,grant rights to user.GRANT CREATETAB,CONNECT ON DATABASE TO USER FUJIE;grant select, update, delete on table employee to user john with grant option一,实例产生db2icrt -a AuthType(SERVER,CLIENT,SERVER_ENCRYPT) -p PORT_NAME表空间PREFETCHSIZE的设置,EXTENTSIZE的关系,缓冲池的监控,页清除程序的多少。
临时表空间页面大小与其他表空间页面大小的设置,临时表空间与缓冲池的设置。
example:db2icrt db2 -s ese -p d:\db2 -u Administrator注意:在UNIX 上产生实例时需要产生一个和实例名称相同的用户名,和fencedid 用户。
如:db2icrt -s ese -u db2fenc2 db2inst2 将在db2inst2用户中产生实例db2inst2.缺省创建32位实例,创建64位实例:db2icrt -s ese -w 64 -u db2fenc2 db2inst2删除db2idrop instance-name启动db2start停止db2stop force连接db2 attach to testdb2db2 detach列出实例db2ilist设置当前实例set db2instance=得到当前实例db2 get instance设置实例自动重启动UNIXdb2iauto -ondb2iauto -off获取实例的配置参数db2 get dbm cfg修改配置参数例如:db2 update dbm cfg using authentication server_encryptdb2stop and db2start二,声明注册表和环境变量db2set 注意:设置完成后需要退出用户,再注册进入才能生效。
DB2数据库常用命令数据库学习
db2 list active databases 列出所有活动的数据库
db2 list tables for all 列出当前数据库下所有的表
db2 list tables for schema btp 列出当前数据库中schema为btp的表
注:appl-handler可以从list applicaitions的输出中得到
-查看表级别快照信息
DB2 get snapshot for tables on dbname
注:需要把tables快照开关设为ON才会有作用
-查看锁快照信息
DB2 get snapshot for locks on dbname
1、 以默认分隔符加载,默认为“,”号
db2 "import from btpoper.txt of del insert into btpoper"
2、 以指定分隔符“|”加载
db2 "import from btpoper.txt of del modified by coldel| insert into btpoper"
可以使用时间查看器收集锁事件,SQL语句事件,从而根据事件分析锁原因。
事件类型
使用事件监控器,首先要选定所关注的事件类型,DB2中有很多事件类型,可以用于锁分析的通常会用到以下三种:
DEADLOCKS
DEADLOCKS WITH DETAILS
STATEMENTS
db2 list tablespaces show detail 查看当前数据库表空间分配状况
db2 list tablespace containers for 2 show detail 查看tablespace id=2使用容器所在目录
【数据库】:关于DB2数据库错误提示说明
【数据库】:关于DB2数据库错误提⽰说明SQLSTATE 消息本节列⽰ SQLSTATE 及其含义。
SQLSTATE 是按类代码进⾏分组的;对于⼦代码,请参阅相应的表。
表 2. SQLSTATE 类代码类代码含义要获得⼦代码,参阅...00 完全成功完成表 301 警告表 402 ⽆数据表 507 动态 SQL 错误表 608 连接异常表 709 触发操作异常表 80A 功能部件不受⽀持表 90D ⽬标类型规范⽆效表 100F ⽆效标记表 110K RESIGNAL 语句⽆效表 1220 找不到 CASE 语句的条件表 1321 基数违例表 1422 数据异常表 1523 约束违例表 1624 ⽆效游标状态表 1725 ⽆效事务状态表 1826 ⽆效 SQL 语句标识表 1928 ⽆效权限规范表 212D ⽆效事务终⽌表 222E ⽆效连接名表 2334 ⽆效游标名表 2436 游标灵敏度异常表 2538 外部函数异常表 2639 外部函数调⽤异常表 273B SAVEPOINT ⽆效表 2840 事务回滚表 2942 语法错误或存取规则违例表 3044 WITH CHECK OPTION 违例表 3146 Java DDL 表 3251 ⽆效应⽤程序状态表 3353 ⽆效操作数或不⼀致的规范表 3454 超出 SQL 限制,或超出产品限制表 3555 对象不处于先决条件状态表 3656 其它 SQL 或产品错误表 3757 资源不可⽤或操作员⼲预表 3858 系统错误表 39类代码 00 完全成功完成表 3. 类代码 00:完全成功完成SQLSTATE 值含义00000 操作执⾏成功,并且未产⽣任何类型的警告或异常情况。
类代码 01 警告表 4. 类代码 01:警告SQLSTATE 值含义01002 发⽣ DISCONNECT 错误。
01003 从列函数的⾃变量消去 NULL 值。
01004 字符串值在指定给具有较短长度的另⼀字符串数据类型时被截断。
db2数据库 sql常用命令
DB2数据库 SQL常用命令一、连接数据库1. 从命令行连接数据库- 语法: db2 connect to <database_name> user <username> using <password>- 示例: db2 connect to sample user db2inst1 using passw0rd2. 从命令行断开数据库连接- 语法: db2 connect reset- 示例: db2 connect reset3. 显示当前连接的数据库- 语法: db2 list database directory- 示例: db2 list database directory二、管理数据库对象4. 创建数据库- 语法: db2 create database <database_name>- 示例: db2 create database sample5. 删除数据库- 语法: db2 drop database <database_name>- 示例: db2 drop database sample6. 创建表- 语法: db2 create table <table_name> (<column1_name> <data_type>, <column2_name> <data_type>, ...)- 示例: db2 create table employee (id int, name varchar(50), age int)7. 删除表- 语法: db2 drop table <table_name>- 示例: db2 drop table employee8. 插入数据- 语法: db2 insert into <table_name> values (<value1>,<value2>, ...)- 示例: db2 insert into employee values (1, 'John', 25)9. 删除数据- 语法: db2 delete from <table_name> where <condition> - 示例: db2 delete from employee where id = 110. 更新数据- 语法: db2 update <table_name> set <column_name> =<new_value> where <condition>- 示例: db2 update employee set age = 30 where id = 111. 查询数据- 语法: db2 select <column1_name>, <column2_name>, ... from <table_name> where <condition>- 示例: db2 select * from employee三、管理数据库事务12. 启动事务- 语法: db2 autmit off- 示例: db2 autmit off13. 提交事务- 语法: db2mit- 示例: db2mit14. 回滚事务- 语法: db2 rollback- 示例: db2 rollback四、管理数据库权限15. 创建用户- 语法: db2 create user <username> password <password> - 示例: db2 create user testuser password testpass16. 授权- 语法: db2 grant <privilege> on <object> to <user>- 示例: db2 grant select, insert, update on employee to testuser17. 撤销授权- 语法: db2 revoke <privilege> on <object> from <user> - 示例: db2 revoke select, insert, update on employee from testuser五、管理数据库性能18. 优化SQL查询- 语法: db2expln -d <database_name> -t <sql_statement> - 示例: db2expln -d sample -t "select * from employee"19. 查看数据库锁- 语法: db2 list applications show det本人l- 示例: db2 list applications show det本人l20. 查看数据库表空间使用情况- 语法: db2pd -d <database_name> -tablespaces- 示例: db2pd -d sample -tablespaces六、其他常用命令21. 导出数据- 语法: db2 export to <file_name> of del select * from<table_name>- 示例: db2 export to employee.csv of del select * from employee22. 导入数据- 语法: db2 import from <file_name> of del insert into<table_name>- 示例: db2 import from employee.csv of del insert into employee23. 查看数据库配置参数- 语法: db2 get db cfg for <database_name>- 示例: db2 get db cfg for sample结语以上就是DB2数据库SQL常用命令的介绍,通过掌握这些命令,可以更方便地管理和使用DB2数据库。
db2表空间详解
3.2 表空间设计3.2.1 创建表空间表空间建立数据库系统使用的物理存储设备与用来存储数据的逻辑对象或表之间的关系。
对于非自动存储器表空间,在创建表空间时,必须知道将引用的容器的设备名或文件名。
另外,必须知道与要分配给表空间的每个设备名或文件名及分配空间大小。
对于自动存储器表空间,数据库管理器将根据与数据库关联的存储路径将容器指定给表空间。
在一个数据库内创建表空间,会将容器分配到表空间,并在数据库系统目录表中记录它的定义和属性,然后就可以在此表空间内创建表。
当创建数据库时,会创建3个初始表空间。
这3个初始表空间的页大小基于使用CREATE DATABASE命令时建立或接受的默认值。
此默认值还表示所有将来CREATE BUFFERPOOL和CREATE TABLESPACE语句的默认页大小。
如果在创建数据库时不指定页大小,那么默认大小是4KB。
如果在创建表空间时不指定页大小,那么默认页大小是创建数据库时设置的页大小。
创建表空间可以通过控制中心或命令行创建。
一、使用控制中心创建表空间使用控制中心创建表空间二、使用命令行创建表空间1.创建用户表空间创建SMS表空间:CREATE TABLESPACE <NAME> MANAGED BY SYSTEM USING (‘<path>’)创建DMS表空间:CREATE TABLESPACE <NAME> MANAGED BY DATABASE USING(DEVICE |FILE’<path>’<size>) 创建自动存储器表空间CREATE TABLESPACE <NAME>或CREATE TABLESPACE <NAME> MANAGED BY AUTOMATIC STORAGE例:1.在Windows上,使用3个不同的驱动器上的目录,创建SMS表空间CREATE TABLESPACE TS1 MANAGED BY SYSTEMUSING (‘d:\nxz_tbsp’,’e:\nxz_tbsp’,’f:\nxz_tbsp)2.使用各自有5000页的两个文件容器创建了一个DMS表空间:CREATE TABLESPACE TS2 MANAGED BY DATABASEUSING (FILE’d:\db2data\acc_tbsp’ 5000,FILE’e:\db2data\acc_tbsp’ 5000)在创建DMS表空间时,表空间文件容器不需要重建,DB2自动来创建,但裸设备容器无法自动创建,需要root用户参与。
db2 表空间 状态 DB2_DBA的注意事项
db2 insert into tb2 values(2,’smitty’);
13.查询数据:
db2 select * from tb1
14.数据:
db2 delete from tb1 where id=1
15.创建索引:
db2 create index idx1 on tb1(id);
db2 get dbm cfg|more
5. 更新数据库管理器参数信息:
db2 update dbm cfg using para_name para_value
6. 创建数据库:
db2 create db test
7. 察看数据库配置参数信息
db2 表空间 状态 DB2_DBA的注意事项
activate database <dbname> 显式地激活数据库.
deactivate database <dbname> 显式地使数据库失效.
list active databases 列出活动的数据库和连接数.
…..等有死锁发生后
db2 set event monitor dlmon state 0
db2evmon –d /tmp/dlmon >/tmp/dlmon.out
分析/tmp/dlmon.out文件就可以找到造成死锁的信息,结合应用就可以找到造成死锁的原因了.
================================================== =========================
LOCKLIST 表明分配给锁列表的存储容量
MAXLOCKS 定义了应用程序持有的锁列表的百分比
db2命令大全
Db2 命令练习1 复制表insert into dr_ryqx_em select * from dr_ryqx_em;2 列出所有正在访问roeee数据库的应用程序db2 list applications for db roeee;3 强制终止应用访问db2db2 force application all4 得到当前实例的配置db2 get dbm cfg5 得到表结构信息db2 ‘describe select * from table’6 挂载远程数据库到本地db2 catalog tcpip node 节点名remote 数据库服务器IP server 端口db2 catalog db 远程数据库名as 编目后的名称at node 编目过的节点7 取消挂载的数据库db2 uncatalog database emdbdb2 uncatalog node emnode8 显示数据库,或节点的目录信息db2 list db directorydb2 list node directory9 备份数据库Db2 list history backup all for sample ,可以看到多了这个备份的纪录。
backup db sample to d:\;backup db sample online to d:\;backup db sample online incremental to d:\;10 恢复数据库restore db <dbname> [from <path>] taken at 时间戳11 更新db2的配置db2 update dbm cfg using <parameter> <value>例如:db2 update dbm cfg using INTRA_PARALLEL YES12 更新特定数据库配置db2 update db cfg for <dbname> using <parameter> <value>13 显示所有的用户表或者是系统表Db2 list tables for user/system14 新方法创建表create table zjt_tables as(select * from tables) definition only;CREATE TABLE "ADMINISTRATOR"."chuan"("id" CHARACTER(10) NOT NULL,"name" CHARACTER(30),) IN "USERSPACE2";15 创建视图create view V_zjt_tables as select tabschema,tabname from zjt_tables;16 显示当前数据库db2 list active databases17 修改表结构alter table chuan alter column empno set data type varchar(30); alter table chuan add chuantype varchar(20);alter table chuan drop chuantype;18 使用db2帮助信息的命令db2 ? attach19 连接实例attach to sample user db2inst3 using db2inst3;20 断开数据库connect reset21 断开数据库,并清空后台连接缓存terminate22 创建模式create schema db2admin authorization administratorComment on schema db2admin is 'Default Schema'23 创建缓冲池(立即生效使用IMMEDIATE ,推迟生效使用DEFERRED ,下同)create bufferpool DATA_BP immediate size 25600 pagesize 4 K24 修改缓冲池大小alter bufferpool DATA_BP immediate size 2560025删除缓冲池drop bufferpool DATA_BP26 创建用户常规表空间CREATE TABLESPACE USERSPACE2PAGESIZE 32KMANAGED BY SYSTEMUSING ('d:\aa')EXTENTSIZE 64PREFETCHSIZE 32BUFFERPOOL RODE;27 创建系统表空间(用于临时表等)CREATE system TEMPORARY TABLESPACE tmptableSPACE4PAGESIZE 32KMANAGED BY SYSTEMUSING ('d:\bb')EXTENTSIZE 64PREFETCHSIZE 32BUFFERPOOL RODE;28 修改表空间大小,扩充容器alter tablespace DATA_TBresize ( FILE 'D:\DB2\Container\TestDB\UserData\UserData' 30000 )29 删除表空间(警告!请谨慎执行该命令。
DB2之上机操作和问题解决
DB2学习笔记DB2上机操作命令1实例相关:查询实例:db2ilist查看当前实例:db2 get instance创建实例:db2icrt instance_name(windows)db2icrt -u fenced_user_IDinstance_name(linux)使用实例:set db2instance=实例名称删除实例:db2idrop -finstance_name迁移实例:db2imigr instance_name更新实例:db2iupdt instance_name连接实例:db2 attach to instance_name断开实例:db2 detach启动实例:db2start关闭实例:db2stop [force]2数据库相关:查询数据库:db2 list database directory [on /home/db2inst1]db2 list active databases创建数据库:db2 create database yzht using codeset ISO8859-1 territory cn pagesize 4096 db2 create database itp using codeset GBK territory cn pagesize 8192db2CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32db2 CREATE DATABASE DB2TEST1 USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM PAGESIZE 4096删除数据库:db2 drop database db_name连接数据库:db2connect to db_name user user_name using password;连接复位:db2 connect reset查看连接:db2 list application for db db_name[show detail]关闭连接:db2 force applications alldb2force application(id1,id2)读数据库管理程序配置:db2 get dbm cfg写数据库管理程序配置:db2 update dbm cfg using 参数名参数值读数据库的配置:db2 get db cfg for db_name写数据库的配置:db2 update db cfg for db_name using 参数名参数值获取数据库的权限:db2GET AUTHORIZATIONS停止启动数据库:db2activate/deactivate db db_name3缓冲池相关:查询缓冲区:db2 SELECT BPNAME FROM SYSCAT.BUFFERPOOLSdb2select BPNAME , NPAGES from sysibm.sysbufferpools 创建缓冲区:db2 create bufferpool bp_name [immediate] size 5000[automatic] pagesize 8k/16k/32kPS: DEFERRED不会立刻激活缓冲池;immediate立即激活32k为缓冲池页大小,这边创建了32*100=3.2m的缓冲池空间修改缓冲池:db2 alter bufferpool bp_name SIZE bp_size删除缓冲池:db2 drop bufferpool bp_name4表空间相关:查询表空间:db2 list tablespaces [show detail]db2pd -tablespaces –db db_namedb2listtablespace containers for tbs_id show detail创建表空间:db2 CREATE REGULAR TABLESPACE tp_name PAGESIZE 4K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL bp_namedb2CREATE [SYSTEM/USER] [TEMPORARY]TABLESPACE tp_name IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 32K MANAGED BY SYSTEM USING ('/home/exoa2/exoacontainer32k') EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL bp_name OVERHEAD 24.10 TRANSFERRATE 0.90DROPPED TABLE RECOVERY OFF;GRANT USE OF TABLESPACE tp_nameTO PUBLIC;PS:create tablespace datatblsp pagesize 32Kmanaged by databaseusing (device '/dev/rdata0' 30720M ,device '/dev/rdata1' 30720M ,)extentsize 8 prefetchsize 48bufferpool databp;device:指的是设备路径。
DB2常见指令
**************************************************************************************************
client
administration client 包括图形化工具和运行环境
USING SYSTEM CATALOG TABLESPACE MANAGED BY DATABASE USING ( FILE 'C:\sql001' 1024 ) *存储系统表 大小为1024*4K
USER TABLESPACE MANAGED BY DATABASE USING ( FILE 'C:\sql001' 1024 ) *存储用户创建的表
DMS表空间
容器类型 文件/裸设备
特点 管理复杂,性能高
表,索引,大对象可以分别存储在不同表空间提高性能
可以增加新的容器,做rebanlance重新分配空间
CREATE DATABASE dbname ON 'D:' USING CODESET GBK TERRITORY CN COLLATE
db2stop 停止实例
db2admin create 创建管理服务器
db2admin drop 删除管理服务器
in start 启动管理服务器
db2admin stop 停止管理服务器
db2 get dbm cfg 获得实例的参数
1024G 单位为G
*********************************************************************************************************
db2中delete删除数据后释放表空间
db2中delete删除数据后释放表空间在DB2数据库中,delete语句用于删除表中的数据。
然而,当我们使用delete语句删除数据时,并不会立即释放表空间。
这是因为DB2数据库采用了一种称为“延迟删除”的机制。
所谓延迟删除,是指当我们执行delete语句删除数据时,DB2并不会立即从磁盘上删除这些数据所占用的空间,而是将这些空间标记为可重用。
这样做的目的是为了提高删除操作的性能,避免频繁地进行磁盘操作。
当我们执行delete语句删除数据后,DB2会将这些被删除的数据所占用的空间标记为可重用,并将这些空间的信息记录在一个称为“回收链表”的数据结构中。
回收链表中记录了可重用空间的位置和大小等信息。
当我们执行insert语句插入新数据时,DB2会首先查找回收链表,看是否有足够的可重用空间。
如果有,DB2会将新数据插入到这些可重用空间中,而不是分配新的空间。
这样做可以减少磁盘操作,提高插入操作的性能。
然而,当回收链表中的可重用空间不足以容纳新数据时,DB2就会分配新的空间。
这时,我们就会发现,虽然我们执行了delete语句删除了数据,但是表空间的大小并没有减少。
这是因为被删除的数据所占用的空间并没有被立即释放,而是被标记为可重用。
那么,如何释放被删除数据所占用的空间呢?在DB2中,我们可以使用reorg命令来重新组织表空间,从而释放被删除数据所占用的空间。
reorg命令会重新组织表空间,将被删除数据所占用的空间释放出来。
具体来说,reorg命令会重新组织表空间中的数据,将有效数据移到一起,将被删除数据所占用的空间释放出来。
这样做可以减少表空间的大小,提高数据库的性能。
使用reorg命令释放表空间的步骤如下:1. 首先,我们需要连接到DB2数据库,并切换到要操作的数据库中。
2. 然后,我们可以使用reorg命令来重新组织表空间。
具体的命令格式如下:reorg tablespace 表空间名其中,表空间名是要重新组织的表空间的名称。
db2数据库表空间迁移的实施过程经验分享(适用于v.9.7以下版本)
)
检查结果:没有发现引用迁移表的约束。
处理方法:无
5、表引用检查,检查涉及引用的迁移表
SELECT * FROM SYSCAT.REFERENCES T1 WHERE EXISTS (
SELECT * FROM SYSCAT.TABLES T2 WHERE T2.TBSPACE='USERSPACE1' AND T2.TABSCHEMA NOT IN ('SYSTOOLS')
6、XSR对象检查,检查涉及引用的迁移表
SELECT * FROM SYSCAT.XSROBJECTDEP T1 WHERE EXISTS (
SELECT * FROM SYSCAT.TABLES T2 WHERE T2.TBSPACE='USERSPACE1' AND T2.TABSCHEMA NOT IN ('SYSTOOLS')
CELL
SPE_ORGANIZATION_SEARCH
CELL
TP_ORGANICFERT_SPE_ORG
处理方法:备份找出的4个视图的DDL,并在迁移过程重命名表名步骤前,删除这些视图,迁移后重新创建。
2、触发器检查,检查涉及引用的迁移表
SELECT * FROM SYSCAT.TRIGDEP T1 WHERE EXISTS (
处理方法:无
3、自定义函数检查,检查涉及引用的迁移表
SELECT * FROM SYSCAT.FUNCDEP T1 WHERE EXISTS (
SELECT * FROM SYSCAT.TABLES T2 WHERE T2.TBSPACE='USERSPACE1' AND T2.TABSCHEMA NOT IN ('SYSTOOLS')
db2常用命令DB2基础之常用命令
db2 import to c:\dftz.ixf of ixf commitcount 5000 replace into dftz
db2 import to c:\dftz.ixf of ixf commitcount 5000 create into dftz (仅IXF)
db2 catalog tcpip node <接点名称> remote <远程数据库地址> server <端口号> --把远程数据库映射到本地接点一般为50000
db2 catalog db <远程数据库名称> as <接点名称> at node PUB11 --远程数据库名称到本地接点
db2 import to c:\dftz.ixf of ixf commitcount 5000 insert into dftz
db2 import to c:\dftz.ixf of ixf commitcount 5000 insert_update into dftz
除此之外,还会在etc/services file发现类似下面的结构:service文件里面专门说明了操作系统各进程所对应的网络端口号。从下面可以看出来:实例DB2对应的端口就是50000。(60000-60003对应下面注释里面的)client和server的services文件中都可能有下面的内容。
9.备份数据库
db2 force application all
db2 backup db o_yd to d:
(db2 initialize tape on \.\tape0)
(db2 rewind tape on \.\tape0)
db2清理大批量数据的实践分享
“案发”当日(2月29日,四年才相逢的日子):ecif数据库中一张关键表crossindex(ecif客户与其他源系统客户对照关系表,下文均用表A代替)在批量作业处理时异常增大,停止时该表数据为1.4亿条数据。
数据异常增大的原因本文就不在赘述了,详细原因足够写一个长篇回忆录了,说多了全是眼泪。
之前做过统计,此表正常数据应当为1200万条左右。
看到下图结果的时候,有点小崩溃。
一个简单的count(1)后查询“仅”用了3分20秒,异常数据总条数在1.3亿条左右,并且查看了当时的表空间,数据表空间已剩余不多,索引表空间全部被占满了。
确切的说是因为索引表空间占满了,批量数据才得以停止,否则数据量会更大。
命题:一个有业务系统使用的数据库,需要将其中的一张表,从1.4亿条数据中删除1.3亿,最终只保留有用的1200万数据,且索引表空间已满,无法增加表空间。
磁盘空间不足,无法备份。
前提:幸运的是,数据库之前做过优化。
具体有以下几个参数:db2set DB2_SKIPINSERTED=ondb2set DB2_EVALUNCOMMITTED=on这两个参数主要是提高数据库的并行处理能力,确保批量程序处理过程中,其它应用可以查询数据。
其实就是延迟行锁定,当在表扫描或索引扫描期间执行行锁定时,DB2 会先锁定已扫描的每一行然后再确定该行是否符合查询要求,直到确定某行符合查询要求为止。
调整数据库锁列表比例,控制应用在过多情况占用锁资源;update db cfg for ecifdb using MAXLOCKS 30(目前生产环境大多数系统是采取自动配置,大小为97%)调整锁资源大小;update db cfg for ecifdb using LOCKLIST 204800(目前生产环境大多数系统是采取自动配置,大小为496864页)调整锁等待超时时长;update db cfg for ecifdb using LOCKTIMEOUT 40(目前生产环境大多数系统是采取自动配置,大小为1800秒)直白的说,有了以上数据库参数的调整,即使我们去进行数据删除时,也不会导致数据库的崩溃,毕竟数据量有点大。
DB2指令集
1. 建立数据库DB2_GCB 网管联盟CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCBUSING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32 中国网管论坛2. 连接数据库中国网管联盟www、bitsCN、comconnect to sample1 user db2admin using 8301206中国网管论坛3. 建立别名create alias db2admin.tables for sysstat.tables;CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWScreate alias db2admin.columns for syscat.columns;create alias guest.columns for syscat.columns; 网管网bitsCN_com4. 建立表create table zjt_tables as(select * from tables) definition only;create table zjt_views as(select * from views) definition only; 5. 插入记录中国网管论坛insert into zjt_tables select * from tables;insert into zjt_views select * from views; 网管网6. 建立视图中国网管联盟www、bitsCN、comcreate view V_zjt_tables as select tabschema,tabname from zjt_tables;网管网7. 建立触发器中国网管论坛CREATE TRIGGER zjt_tables_delAFTER DELETE ON zjt_tablesREFERENCING OLD AS OFOR EACH ROW MODE DB2SQLInsert into zjt_tables1 values(substr(o.tabschema,1,8),substr(o.tabname,1,10)) 中国网管联盟www_bitscn_com8. 建立唯一性索引CREATE UNIQUE INDEX I_ztables_tabname[size=3]ON zjt_tables(tabname);9. 查看表select tabname from tableswhere tabname='ZJT_TABLES';中国网管论坛10. 查看列中国网管联盟www_bitscn_comselect SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 类型,LENGTH as 长度from columnswhere tabname='ZJT_TABLES';网管联盟11. 查看表结构中国网管联盟www、bitsCN、comdb2 describe table user1.departmentdb2 describe select * from user.tables网管网12. 查看表的索引db2 describe indexes for table user1.department 中国网管联盟www、bitsCN、com 13. 查看视图网管网select viewname from viewswhere viewname='V_ZJT_TABLES';中国网管论坛14. 查看索引select indname from indexeswhere indname='I_ZTABLES_TABNAME'; 中国网管联盟www、bitsCN、com 15. 查看存贮过程网管联盟SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15)FROM SYSCAT.PROCEDURES; 16. 类型转换(cast) ip datatype:varcharselect cast(ip as integer)+50 from log_comm_failed17. 重新连接connect reset 18. 中断数据库连接disconnect db2_gcb 网管联盟19. view application 网管网bitsCN_comLIST APPLICATION;20. kill applicationFORCE APPLICATION(0);db2 force applications all (强迫所有应用程序从数据库断开) 网管网 21. lock table 中国网管联盟lock table test in exclusive mode中国网管联盟www_bitscn_com22. 共享中国网管联盟www、bitsCN、comlock table test in share mode 中国网管论坛23. 显示当前用户所有表网管网list tables中国网管论坛24. 列出所有的系统表list tables for system网管网bitsCN_com25. 显示当前活动数据库list active databases26. 查看命令选项list command options 27. 系统数据库目录LIST DATABASE DIRECTORY 中国网管论坛 28. 表空间网管网list tablespaces 中国网管联盟www_bitscn_com29. 表空间容器LIST TABLESPACE CONTAINERS FORExample: LIST TABLESPACE CONTAINERS FOR 1 中国网管联盟www_bitscn_com 30. 显示用户数据库的存取权限GET AUTHORIZATIONS 网管联盟【转自】31. 启动实例DB2START 中国网管联盟www_bitscn_com32. 停止实例中国网管联盟www_bitscn_comdb2stop 33. 表或视图特权中国网管联盟www_bitscn_comgrant select,delete,insert,update on tables to usergrant all on tables to user WITH GRANT OPTION34. 程序包特权GRANT EXECUTEON PACKAGE PACKAGE-nameTO PUBLIC35. 模式特权中国网管联盟www、bitsCN、comGRANT CREATEIN ON SCHEMA SCHEMA-name TO USER36. 数据库特权中国网管论坛grant connect,createtab,dbadm on database to user 中国网管联盟www_bitscn_com 37. 索引特权中国网管联盟www_bitscn_comgrant control on index index-name to user38. 信息帮助(? XXXnnnnn ) 中国网管联盟www、bitsCN、com例:? SQL3008139. SQL 帮助(说明SQL 语句的语法) help statement例如,help SELECT 网管网40. SQLSTATE 帮助(说明SQL 的状态和类别代码)中国网管联盟www、bitsCN、com? sqlstate 或? class-code41. 更改与"管理服务器"相关的口令中国网管联盟db2admin setid username password 中国网管论坛42. 创建SAMPLE 数据库网管联盟db2sampldb2sampl F:(指定安装盘) 43. 使用操作系统命令! dir中国网管联盟www_bitscn_com44. 转换数据类型(cast) 中国网管联盟SELECT EMPNO, CAST(RESUME AS V ARCHAR(370))FROM EMP_RESUMEWHERE RESUME_FORMAT = 'ascii'45. UDF 中国网管联盟www、bitsCN、com要运行DB2 Java 存储过程或UDF,还需要更新服务器上的DB2 数据库管理程序配置,以包括在该机器上安装JDK 的路径中国网管联盟db2 update dbm cfg using JDK11_PA TH d:sqllibjavajdkTERMINATEupdate dbm cfg using SPM_NAME sample 网管网46. 检查DB2 数据库管理程序配置中国网管论坛db2 get dbm cfg47. 检索具有特权的所有授权名SELECT DISTINCT GRANTEE, GRANTEETYPE, 'DA TABASE' FROM SYSCA T.DBAUTHUNIONSELECT DISTINCT GRANTEE, GRANTEETYPE, 'TABLE ' FROM SYSCA T.TABAUTHUNIONSELECT DISTINCT GRANTEE, GRANTEETYPE, 'PACKAGE ' FROM SYSCA T.PACKAGEAUTHUNIONSELECT DISTINCT GRANTEE, GRANTEETYPE, 'INDEX ' FROM SYSCAT.INDEXAUTHUNIONSELECT DISTINCT GRANTEE, GRANTEETYPE, 'COLUMN ' FROM SYSCAT.COLAUTHUNIONSELECT DISTINCT GRANTEE, GRANTEETYPE, 'SCHEMA ' FROM SYSCA T.SCHEMAAUTHUNIONSELECT DISTINCT GRANTEE, GRANTEETYPE, 'SERVER ' FROM SYSCA T.PASSTHRUAUTHORDER BY GRANTEE, GRANTEETYPE, 3 中国网管联盟www_bitscn_comcreate table yhdab(id varchar(10),password varchar(10),ywlx varchar(10),kh varchar(10));create table ywlbb(ywlbbh varchar(8),ywmc varchar(60)) 网管联盟48. 修改表结构alter table yhdab ALTER kh SET DA TA TYPE varchar(13); alter table yhdab ALTER ID SET DA TA TYPE varchar(13); alter table lst_bsi alter bsi_money set data type int;insert into yhdab values('20000300001','123456','user01','20000300001'),('20000300002','123456','user02','20000300002');网管联盟49. 业务类型说明insert into ywlbb values('user01','业务申请'),('user02','业务撤消'),('user03','费用查询'),('user04','费用自缴'),('user05','费用预存'),('user06','密码修改'),('user07','发票打印'),('gl01','改用户基本信息'),('gl02','更改支付信息'),('gl03','日统计功能'),('gl04','冲帐功能'),('gl05','对帐功能'),('gl06','计费功能'),('gl07','综合统计') 网管联盟【转自】DB2上机操作指令指南1. 启动实例(db2inst1):db2start 中国网管联盟www_bitscn_com2. 停止实例(db2inst1):db2stop 3. 列出所有实例(db2inst1)db2ilist5.列出当前实例:db2 get instance4. 察看示例配置文件:db2 get dbm cfg|more 网管联盟5. 更新数据库管理器参数信息:db2 update dbm cfg using para_name para_value6. 创建数据库:db2 create db test中国网管联盟www_bitscn_com7. 察看数据库配置参数信息db2 get db cfg for test|more 中国网管联盟 8. 更新数据库参数配置信息db2 update db cfg for test using para_name para_value 10.删除数据库:db2 drop db test中国网管联盟11.连接数据库db2 connect to test网管网bitsCN_com12.列出所有表空间的详细信息。
db2表空间不足及处理
TIM4.6日志DB2表空间检查及处理1 日志表空间检查处理对应的版本为:TIM4.6 、DB2V81.1 表空间检查# su – db2inst1$ db2db2 => list tablespaces show detailTablespaces for Current DatabaseTablespace ID = 0Name = SYSCATSPACEType = System managed spaceContents = Any dataState = 0x0000Detailed explanation:NormalTotal pages = 6048Useable pages = 6048Used pages = 6048Free pages = Not applicableHigh water mark (pages) = Not applicablePage size (bytes) = 4096Extent size (pages) = 32Prefetch size (pages) = 32Number of containers = 1Tablespace ID = 1Name = TEMPSPACE1Type = System managed spaceContents = System Temporary dataState = 0x0000Detailed explanation:NormalTotal pages = 1Useable pages = 1Used pages = 1Free pages = Not applicableHigh water mark (pages) = Not applicablePage size (bytes) = 4096Extent size (pages) = 32Prefetch size (pages) = 32Number of containers = 1Tablespace ID = 2Name = USERSPACE1Type = System managed space Contents = Any dataState = 0x0000Detailed explanation:NormalTotal pages = 34Useable pages = 34Used pages = 34Free pages = Not applicableHigh water mark (pages) = Not applicablePage size (bytes) = 4096Extent size (pages) = 32Prefetch size (pages) = 32Number of containers = 1Tablespace ID = 3Name = ENROLE_DATAType = Database managed space Contents = Any dataState = 0x0000Detailed explanation:NormalTotal pages = 16384Useable pages = 16352Used pages = 16352Free pages = 0High water mark (pages) = 16352Page size (bytes) = 32768Extent size (pages) = 32Prefetch size (pages) = 16Number of containers = 1Tablespace ID = 4Name = ENROLE_INDEXES Type = Database managed space Contents = Any dataState = 0x0000Detailed explanation:NormalTotal pages = 8192Useable pages = 8160Used pages = 3648Free pages = 4512High water mark (pages) = 3648Page size (bytes) = 32768Extent size (pages) = 32Prefetch size (pages) = 16Number of containers = 1Tablespace ID = 5Name = TEMP_DATAType = Database managed spaceContents = System Temporary dataState = 0x0000Detailed explanation:NormalTotal pages = 8192Useable pages = 8160Used pages = 64Free pages = 8096High water mark (pages) = 64Page size (bytes) = 32768Extent size (pages) = 32Prefetch size (pages) = 16Number of containers = 1Tablespace ID = 6Name = SYSTOOLSPACEType = System managed spaceContents = Any dataState = 0x0000Detailed explanation:NormalTotal pages = 99Useable pages = 99Used pages = 99Free pages = Not applicableHigh water mark (pages) = Not applicablePage size (bytes) = 4096Extent size (pages) = 32Prefetch size (pages) = 32Number of containers = 1Tablespace ID = 7Name = SYSTOOLSTMPSPACEType = System managed spaceContents = User Temporary dataState = 0x0000Detailed explanation:NormalTotal pages = 1Useable pages = 1Used pages = 1Free pages = Not applicableHigh water mark (pages) = Not applicablePage size (bytes) = 4096Extent size (pages) = 32Prefetch size (pages) = 32Number of containers = 11.2 表空间处理方法一如果不需要详细的TIM控制台操作信息及相关统计,则执行此方法及步骤。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在创建数据库时遇到数据库别名已存在的问题时,可以通过以下方法解决:
首先用db2 list database directory命令看在系统数据库目录(System Database Directory)中有没有该数据库。
如果有,应该在确定该数据库是没有用的数据库之后用db2 drop database 数据库名将其删除。
如果没有,再用db2 list database directory on location 看在本地数据库目录(Local Database Directory)中有没有该数据库,location指定数据库的位置(如Windows下的C: ,Unix下/home/db2inst1)。
如果有,先用db2 catalog database 数据库名on location将数据库编目到节点上,再对其进行删除处理。
解决过程:
1、db2 list database directory 查看系统数据库目录,看不到要找的数据库,表示该数据库不在系统数据库目录中
2、db2 list database directory on D:(在系统数据库目录找不到的情况下执行该指令,这里是盘符d),然后发现有sample和source的别名。
说明在本地数据库目录中。
3、db2 catalog database 数据库名on d: 将数据库编目到节点上
4. drop database 数据库名删除数据库。