DB2不允许访问表空间解决

DB2不允许访问表空间解决
DB2不允许访问表空间解决

1. DB2进行异常操作后,如命令未执行完将其中断,或对DB2表进行

load/restore操作后,DB2将只能select,不能update,altet,insert,报错如下:

DB2 SQL Error: SQLCODE=-290, SQLSTATE=55039, SQLERRMC=null,

DRIVER=3.50.152

消息:不允许访问表空间。. SQLCODE=-290, SQLSTATE=55039, DRIVER=3.50.152

2. 可查看DB2的表空间状态,确认状态后进行相应的处理解决

$ db2 "list tablespace show detail"

Tablespaces for Current Database

Tablespace ID = 0

Name = SYSCATSPACE

Type = System managed space

Contents = Any data

State = 0x0000

Detailed explanation:

Normal

Total pages = 2519

Useable pages = 2519

Used pages = 2519

Free pages = Not applicable

High water mark (pages) = Not applicable

Page size (bytes) = 4096

Extent size (pages) = 32

Prefetch size (pages) = 32

Number of containers = 1

Tablespace ID = 1

Name = TEMPSPACE1

Type = System managed space

Contents = System Temporary data

State = 0x0000

Detailed explanation:

Normal

Total pages = 1

Useable pages = 1

Used pages = 1

Free pages = Not applicable

High water mark (pages) = Not applicable

Page size (bytes) = 4096

Extent size (pages) = 32

Prefetch size (pages) = 32

Number of containers = 1

Tablespace ID = 2

Name = USERSPACE1

Type = System managed space

Contents = Any data

State = 0x0004 这个代码意义就是“停顿的独占”,正常状态为0x0000,

非0就是有问题,都可以用下面方法解决。

Detailed explanation:

Quiesced: EXCLUSIVE

Total pages = 687

Useable pages = 687

Used pages = 687

Free pages = Not applicable

High water mark (pages) = Not applicable

Page size (bytes) = 4096

Extent size (pages) = 32

Prefetch size (pages) = 32

Number of containers = 1

Number of quiescers = 1 注意下面几行

Quiescer 1:

Tablespace ID = 2

Object ID = 50 “object id是造成死锁表的id”

3. 若处于0X0004“停顿的独占”,可执

行db2 => select tabname from syscat.tables where tableid=50 通过所住的id号找出是哪个表

TABNAME

--------------------------------------------------------------------------------------------------------------------------------

SYSINDEXEXTENSIONPARMS

TEST 就是这个表

2 record(s) selected.

db2 => quiesce tablespaces for table test reset 执行该命令清除错误的状态

DB20000I The QUIESCE TABLESPACES command completed successfully.

4. 若处于0X0020“备份暂挂”,对整个数据库进行backup后即可将其恢复正常db2 "backup db enms tablespace(userspace1) online include logs"(需等待较长时间,然后会echo出备份的时间戳)

db2look命令详解

db2look 今天整理了一下db2look命令参数说明 db2look Command syntax | |>>-db2look-- -d--DBname--+-----+--+--------------+--------------> | '- -e-' '- -u--Creator-' | |>--+-------------+--+-------------------------------------+-----> | '- -z--schema-' '-+----------------+--+-------------+-' | | .-------. | '- -tw--Tname-' | | V | | | '- -t----Tname-+-' | |>--+----------------+--+-----+--+------------+--+-----+---------> | | .-------. | '- -h-' '- -o--Fname-' '- -a-' | | V | | | '- -v----Vname-+-' | |>--+-----------------------+--+-----+--+-----+--+------+--------> | '- -m--+-----+--+-----+-' '- -l-' '- -x-' '- -xd-' | '- -c-' '- -r-' | |>--+-----+--+-----------------+--+-----+--+-----+--+-----+------> | '- -f-' '- -td--delimiter-' '- -p-' '- -s-' '- -g-' | |>--+----------+--+----------------------------+-----------------> | '- -noview-' '- -i--userid-- -w--password-' | |>--+------------------+--+---------+---------------------------><

DB2表空间已满

解决方法但由于是双机,所以裸设备需要在hacmp中建,或者建了后两边同步一下,可以找富通和IBM解决。 DB2解决tablespace满的问题 1. 连接到数据库,查看一下tablespace的使用情况 db2 => list tablespaces show detail Tablespaces for Current Database Tablespace ID = 0 Name = SYSCATSPACE Type = System managed space Contents = Any data State = 0x0000 Detailed explanation: Normal Total pages = 4814 Useable pages = 4814 Used pages = 4814 Free pages = Not applicable High water mark (pages) = Not applicable Page size (bytes) = 4096 Extent size (pages) = 32 Prefetch size (pages) = 32 Number of containers = 1 Tablespace ID = 1 Name = TEMPSPACE1 Type = System managed space Contents = System Temporary data State = 0x0000 Detailed explanation: Normal Total pages = 227 Useable pages = 227 Used pages = 227 Free pages = Not applicable High water mark (pages) = Not applicable Page size (bytes) = 4096 Extent size (pages) = 32 Prefetch size (pages) = 32 Number of containers = 1

DB2不允许访问表空间解决

1. DB2进行异常操作后,如命令未执行完将其中断,或对DB2表进行 load/restore操作后,DB2将只能select,不能update,altet,insert,报错如下: DB2 SQL Error: SQLCODE=-290, SQLSTATE=55039, SQLERRMC=null, DRIVER=3.50.152 消息:不允许访问表空间。. SQLCODE=-290, SQLSTATE=55039, DRIVER=3.50.152 2. 可查看DB2的表空间状态,确认状态后进行相应的处理解决 $ db2 "list tablespace show detail" Tablespaces for Current Database Tablespace ID = 0 Name = SYSCATSPACE Type = System managed space Contents = Any data State = 0x0000 Detailed explanation: Normal Total pages = 2519 Useable pages = 2519 Used pages = 2519 Free pages = Not applicable High water mark (pages) = Not applicable Page size (bytes) = 4096 Extent size (pages) = 32 Prefetch size (pages) = 32 Number of containers = 1 Tablespace ID = 1 Name = TEMPSPACE1 Type = System managed space Contents = System Temporary data State = 0x0000 Detailed explanation: Normal Total pages = 1 Useable pages = 1 Used pages = 1 Free pages = Not applicable High water mark (pages) = Not applicable Page size (bytes) = 4096 Extent size (pages) = 32 Prefetch size (pages) = 32

DB2数据库表空间重定向恢复

DB2数据库表空间重定向恢复 一、情况说明 在为某市搭建新营销系统演示环境时,从公司测试环境(以下简称公司环境)备份出来的数据库TCDATA文件无法在某市演示环境(以下简称某市环境)还原,提示容器错误。原因是公司环境服务器的盘符为C、D、E、F,某市环境的盘符为C、D、E。公司环境TCDATA 库的部份表空间容器指向盘符F,在某市环境无法找到盘符F。 二、解决流程 1、在公司环境备份TCDA TA库,并记录备份时间戳20100916122505 Db2 backup tcdata to e:/db2backup 2、将备份文件复制到某市环境,并在某市环境E盘新建一个TCDATA库 db2 create db tcdata on e: 3、用重定向语句还原TCDATA库,还原过程中会提示需要设置容器 db2 RESTORE DATABASE tcdata USER tc USING tcpwd FROM e:\db2backup TAKEN AT 20100916122505 TO e: INTO tcdata redirect 4、在公司环境查看TCDA TA库每个表空间的容器情况,一般容器用path,类型为file的容器用file。注意:每个容器都需要重定向 db2 set tablespace containers for 1 using (path "E:\DB2\NODE0000\SQL00002\SQLT0001.0") db2 set tablespace containers for 2 using (path "E:\DB2\NODE0000\SQL00002\SQLT0002.0") db2 "set tablespace containers for 3 using(File 'e:\db2data\tcdata\userfile\datafile01.dat' 64000,File 'e:\db2data\tcdata\userfile\datafile02.dat' 64000,file 'e:\db2data\tcdata\userfile\datafile03.dat' 64000,File 'e:\db2data\tcdata\userfile\datafile04.dat' 64000,File 'e:\db2data\tcdata\userfile\datafile05.dat' 64000)" db2 "set tablespace containers for 4 using(File 'E:\db2data\tcdata\tmpfile\public_usrtmp01.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_usrtmp02.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_usrtmp03.dat' 32000)" db2 "set tablespace containers for 5 using(File 'E:\db2data\tcdata\tmpfile\public_systmp01.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_systmp02.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_systmp03.dat' 32000)" db2 set tablespace containers for 6 using (path "E:\DB2\NODE0000\SQL00002\SYSTOOLSPACE") db2 set tablespace containers for 7 using (path "E:\DB2\NODE0000\SQL00002\TBSP32K0000") db2 set tablespace containers for 8 using (path "E:\DB2\NODE0000\SQL00002\TBSP32KTMP0000") db2 set tablespace containers for 9 using (path "E:\DB2\NODE0000\SQL00002\SQLT0250.0") 4、继续执行恢复 db2 restore db tcdata continue 5、如数据库不一致就执行一下前滚 db2 rollforward db tcdata to end of logs and complete

db2top工具详解

Database (d) Figure 2. Database screen 在数据库屏幕,db2top提供了一组对整个数据库的性能监控单元。 用户可以监视活动会话(MaxActSess),排序内存(SortMemory)和日志空间(LogUsed)。这些监测元素可以帮助用户确定这些元素的当前使用百分比。如果这些因素中的一个开始达到很高甚至100%时,用户应该开始调查发生了什么事。 当前时间和数据库开始时间(Start Time)相比能让我们了解数据库运行了多久。这个值结合其他检测元素去调查那些已存在一段时间的问题是非常有用的。 锁的使用(LockUsed)和升级(LockEscals)对缩小锁定问题非常有帮助。如果LockEscals 数量很大时,则增加LOCKLIST和MAXLOCKS数据库参数是一个好主意或者寻找那些引起这个问题的不良查询语句。 L_Reads,P_Reads和A_Reads代表逻辑读,物理读和异步读取。结合的命中率(HitRatio)值,这些变量对于评估大多数的读取发生在存储器中还是磁盘I / O里是非常重要的。因为磁盘的I / O比存储器存取慢得多,用户更喜欢访问在内存中的数据。当用户看到HitRatio 下降低则可以查看缓冲池(bufferpools)是不是不够大了,或是不是有查询进行了太多的全白扫描而导致页面数据从内存洗冲到磁盘。

和读类似,A_Writes代表异步写入,这表明数据页是由异步页清洁剂之前写的缓冲池空间是必需的。通过db2top 刷新频率这段时间内的写数量我们还能知道有多少写请求发生了。还能计算每次写入的平均花费时间这对分析I/O瓶颈引起的一些性能问题有所帮助。当A_Writes/Writes的比值越高则写I/O性能越高。 SortOvf代表排序溢出。如果用户发现这个数字变为非常高,就需要寻找查询了。排序溢出发生在SORTHEAP不足够大,导致排序(Sort)或HashJoin操作可能会溢出数据到临时空间。有时该值随着SORTHEAP增加而降低,但在其他情况下,可能没有多大帮助,如果进行排序的数据集比可分配给SORTHEAP内存大得多。如果请求的数据量超过缓冲池可容纳的临时空间大小那么就可能需要物理I/O来进行SORT或哈希链接在这种情况下排序溢出将是很大的瓶颈。因此优化查询来减少排序溢出的数量能显著提高系统的性能。 在数据库屏幕的最后四个条目显示的平均物理读取时间(AvgPRdTime),平均直接读取时间(AvgDRdTime),物理平均写入时间(AvgPWrTime)和平均直接写入时间(AvgDWrTime)。这四个项目直接反映I/ O子系统性能。如果用户发现一个意想不到的大量的时间花费在每个读或写操作,进一步的调查应到I/ O子系统。 正常情况下,DB2 排序发生在内存中,这块内存叫做排序堆,即 SORTHEAP。当需要排序的数据超出 SORTHEAP 大小限制时,就会发生排序溢出。溢出的数据会写到临时表中,这会产生更多的I/O,因此对性能会有较大影响。 Tablespace (t) Figure 3. Tablespace screen

DB2数据库表空间修改文档

DB2数据库表空间检查与维护 一、表空间占满故障现象 1、系统上线初期正常,稳定运行半年以后突然出现故障。 2、对数据库进行写入操作时失败:用户的流程计划不能正常提交,录 入数据无法保存。 3、系统应用程序操作响应慢,甚至宕机(死机)。 4、DB2数据库能正常连接,select语句执行正常,insert语句执行失败。 二、表空间状态检查与查看 1、使用DB2管理员账户查看表空间状态:db2 list tablespaces |more , 其中|more 用于分页显示输出结果,按空格键翻页。结果如图1所示。 图1 其中状态0x0000 表示表空间正常。 2、查看表空间及其表空间所属容器的详细信息:

db2 list tablespaces show detail |more ,结果如图2所示。 图2 剩余表空间=可用页数*页大小,如图2中SYSCATSPACE表空间的可用空间大小:=3532*4096(4K)=14M,即该表空间最多还能增加14M的数据,若占满后需要扩充表空间。 三、表空间占满解决方法 1、改变容器大小: db2 alter tablespace idx_data resize(file 'd:\db2\datafile_netdb\idx_data' 32000) 该命令是将表空间idx_data 的大小为1000MB(因为该表空间扩展数 据库大小为32K),d:\db2\datafile_netdb\idx_data是该表空间文件 存放位置。执行结果如图3所示。

图3 2、增加新的容器: db2 alter tablespace idx_data add(file 'd:\db2\datafile_netdb\idx_data_ex1' 640) 该命令是将表空间idx_data 增加新的容器idx_data_ex1,大小为 20MB(因为该表空间扩展数据库大小为32K), d:\db2\datafile_netdb\idx_data_ex1是该新增容器文件存放位置。执行结果如图4所示。 图4

DB2分区表

DB2 V9.7 for Linux, UNIX, and Windows 表分区 表分区功能是一种数据组织方案,即,表数据根据一个或多个表列中的值分布到多个存储对象(称为数据分区或范围)中。每个数据分区都是单独存储的。这些存储对象可以在不同的表空间中,也可以在相同表空间中。 存储对象的行为与单个表的行为非常类似,它通过使用ALTER TABLE ... ATTACH 语句将现有表合并到分区表中,可以很容易实现快速转入。同样,使用ALTER TABLE ... DETACH 语句很容易实现转出。查询处理同样可以利用分离的数据来避免扫描不相关数据,从而使许多数据仓库样式查询具有更好地查询性能。 按照CREATE TABLE 语句的PARTITION BY 子句中指定那样将表数据分区。此定义中使用的列被称为表分区键列。 这种组织方案可以单独地使用,也可与其他组织方案结合使用。通过组合使用CREATE TABLE 语句的DISTRIBUTE BY 和PARTITION BY 子句,可以将数据分布到跨多个表空间的数据库分区。该组织方案包括: ?DISTRIBUTE BY HASH ?PARTITION BY RANGE ?ORGANIZE BY DIMENSIONS 表分区功能可用于DB2? 企业服务器版Linux 版、UNIX 版和Windows 版版本9.1 和更高版本。 表分区的优点 如果下列任何情况适用于您和您的组织,请考虑表分区的许多优点: ?更容易转入和转出表数据使数据仓库受益 ?数据仓库包括大型表 ?您正在考虑从先前发行版或某个竞争数据库产品迁移至版本9.1 数据库 ?想要更有效地使用分层存储管理(HSM) 解决方案 表分区简化了表数据转入和转出以及管理工作,并且提高了索引位置的灵活性和查询处理效率。 有效转入和转出 表分区功能提高了表数据的转入和转出效率。这可通过使用ALTER TABLE 语句的 ATTACH PARTITION 和DETACH PARTITION 子句来实现。通过转入分区表数据,可以方便地将新范围作为附加数据分区合并到分区表中。通过转出分区表数据,可以方便地从分区表中分离出某些范围的数据,以进行后续清除或归档处理。 更容易管理大型表 由于您可以在各个数据分区上执行管理任务,因此表级别管理更灵活。这些任务包括:拆离和重新连接数据分区、备份和复原各个数据分区以及重组各个索引。通过将花费较

DB2日常维护手册

DB2 日常维护手册

目录 DB2日常维护手册 ............................................................................................................... - 1 - 一、DB2日常维护操作 ............................................................................................ - 1 - 1.检查管理服务器是否启动.................................................................................... - 1 - 2.检查DB2实例是否已经启动 ............................................................................... - 1 - 3.查看表空间状态是否正常.................................................................................... - 1 - 4.查看表的状态........................................................................................................ - 2 - 5.查看磁盘空间........................................................................................................ - 2 - 6.检查存储管理软件是否正常................................................................................ - 2 - 7.检查数据库备份是否正常.................................................................................... - 2 - 8.检查归档日志是否正确归档了............................................................................ - 3 - 9.查看缓冲池的命中率............................................................................................ - 3 - 10.查看当前运行最频繁的SQL,其命中率是否正常 ......................................... - 3 - 11.查看当前连接的应用程序,有没有非法连接 ................................................ - 3 - 12.检查有没有死锁 ................................................................................................ - 3 - 13.对表和索引进行runstats .................................................................................. - 3 - 14.检查表是否需要重组 ........................................................................................ - 4 - 15.对需要重组的表进行重组 ................................................................................ - 4 - 二、DB2日常维护月操作 ........................................................................................ - 4 - 1.查看DB2日志 ....................................................................................................... - 4 - 2.检查备份和日志是否都保存好了........................................................................ - 4 - 三、DB2日常维护季度操作 .................................................................................... - 5 - 1.通过快照监控器,查看系统性能如何 ................................................................ - 5 - 2.数据库补丁级别.................................................................................................... - 5 - 四、注意事项............................................................................................................ - 5 - 1.不要删除活动日志文件........................................................................................ - 5 - 2.注意交易日志存储空间........................................................................................ - 5 - 3.按照系统的实际工作量配置日志空间 ................................................................ - 5 - 4.设置正确数据库代码页........................................................................................ - 6 -

db2表空间详解

3.2 表空间设计 3.2.1 创建表空间 表空间建立数据库系统使用的物理存储设备与用来存储数据的逻辑对象或表之间的关系。对于非自动存储器表空间,在创建表空间时,必须知道将引用的容器的设备名或文件名。另外,必须知道与要分配给表空间的每个设备名或文件名及分配空间大小。对于自动存储器表空间,数据库管理器将根据与数据库关联的存储路径将容器指定给表空间。 在一个数据库内创建表空间,会将容器分配到表空间,并在数据库系统目录表中记录它的定义和属性,然后就可以在此表空间内创建表。当创建数据库时,会创建3个初始表空间。这3个初始表空间的页大小基于使用CREATE DA TABASE命令时建立或接受的默认值。此默认值还表示所有将来CREATE BUFFERPOOL和CREATE TABLESPACE语句的默认页大小。如果在创建数据库时不指定页大小,那么默认大小是4KB。如果在创建表空间时不指定页大小,那么默认页大小是创建数据库时设置的页大小。 创建表空间可以通过控制中心或命令行创建。 一、使用控制中心创建表空间 使用控制中心创建表空间 二、使用命令行创建表空间 1.创建用户表空间 创建SMS表空间: CREATE TABLESPACE MANAGED BY SYSTEM USING (‘’) 创建DMS表空间: CREATE TABLESPACE MANAGED BY DATABASE USING(DEVICE |FILE’) 创建自动存储器表空间

CREATE TABLESPACE 或CREATE TABLESPACE MANAGED BY AUTOMATIC STORAGE 例:1.在Windows上,使用3个不同的驱动器上的目录,创建SMS表空间 CREATE TABLESPACE TS1 MANAGED BY SYSTEM USING (‘d:\nxz_tbsp’,’e:\nxz_tbsp’,’f:\nxz_tbsp) 2.使用各自有5000页的两个文件容器创建了一个DMS表空间: CREATE TABLESPACE TS2 MANAGED BY DATABASE USING (FILE’d:\db2data\acc_tbsp’ 5000,FILE’e:\db2data\acc_tbsp’ 5000) 在创建DMS表空间时,表空间文件容器不需要重建,DB2自动来创建,但裸设备容器无法自动创建,需要root用户参与。 在示例中,为表空间容器提供了显式的名称。但是,如果指定相对容器名,那么将在为该数据库创建的子目录中创建容器。 在创建表空间容器时,数据库管理器会创建任何不存在的目录和文件。例如,如果将容器指定为/prod/user_data/container1,而目录/prod不存在,那么数据库管理器会创建目录/prod和/prod/user_data。 在Linux/UNIX上,数据库管理器创建的任何目录都是使用权限位700创建的。这意味着只有实例所有者才拥有读写访问权和执行访问权。因为只有实例所有者具有这种访问权,所以当正在创建多个实例时,可能会出现下列情况: ·使用与上面描述的相同的目录结构,假定目录级别/prod/user_data不存在。 ·user1创建一个实例(默认情况下命名为user1),接着创建一个数据库,然后创建一个表空间,且/prod/user_data/container1作为该表空间的一个容器。 ·user2创建一个实例(默认情况下命名为user2),接着创建一个数据库,然后创建一个表空间,且/prod/user_data/container2作为该表空间的一个容器。 因为数据库管理器根据第一个请求使权限位700创建了目录级别/prod/user_data,所以user2没有对这些目录级别的访问权,因此不能在这些目录中创建container2.在这种情况下,CREATE TABLESPACE操作将失败。 解决此冲突有两种方法: ·在创建表空间之前创建目录/prod/user_data,并将许可权设置为user1和user2创建表空间所需的任何访问权。如果所有级别的表空间目录都存在,那么数据库管理器不会修改访问权。 ·在user1创建/prod/user_data/container1之后,将/prod/user_data的许可权设置为user2创建表空间所需的任何访问权。 如果数据库管理器创建了一个子目录,那么在删除该表空间时数据库管理器也可能将该子目录删除。 例:1.在AIX上创建了一个使用具有10000页的3个裸设备作为表空间容器的DMS表空间,并指定它们的I/O特征。 CREATE TABLESPACE TS1 MANAGED BY DATABASE USING (DEVICE ‘/dev/rdblv6’ 10000,DEVICE ‘/dev/rdblv7’ 10000,DEVICE ‘/dev/rdblv8’ 10000) OVERHEAD 7.5 TRANSFERRATE 0.06 示例中的裸设备必须已经存在,且实例所有者和SYSADM组必须能够写入这些设备。 2.在Linux和UNIX系统上创建一个具有8KB页大小的SMS表空间。 CREATE TABLSESPACE SMS8K PAGESIZE 8192 MANAGED BY SYSTEM USING (‘FSMS_8K_1’ BUFFERPOOL BUFFERPOOL8K 示例中相关联的缓冲池必须具有相同的8KB页大小。而且只有在激活了创建的表空间

db2数据库

db2 backup db DBNAME online compress include logs 脱机备份 db2 force applications all Db2 backup db DBNAMEE compress 查看表空间 db2 list tablespace show detail //显示很多信息。 High water mark 曾经达到过的占用率 80%左右,要扩表空间或者清理数据 查看表状态 db2 load query table TABNAME 查看归档日志目录 db2 get db cfg for DBNAME|grep LOGARCHMETH1 数据库重整 Runstats ,reorgchk,计算是否需要重整 db2 diag。log文件,看中间是否有异常 Cd 演示 1,增加表空间(文件系统,裸设备) 2,查看表空间 3,循环日志变归档日志 4,脱机备份数据库 5,联机备份数据库 6,归档日志 7,load 数据 8,扩表空间

很多操作都要先关闭数据库,然后再开启,连接后再操作 3: Db2 updte db cfg for sample using Db2stop 停数据库 Db2start 启数据库 Db2 connect to sample 连接到数据库sample Db2 “import from test.del of del insert into DBNAME”从本地的DEL文件中导入数据中Db2 prune logfile prior to dddddd.log 日志 1: Db2 “alter Tablespace dms_dat4k extend //扩展表空间 Db2 termiate //写到当前目录。 空闲时备份 Db2 backup db Db2 list utilities show detail 查看备份信息 Db2 “export to staff.del of del select * from test ”//导出或者备份

db2中的常用命令及使用方法

db2中的常用命令及使用方法 一高(重要度) 1 启动一个db 2实例使用: net start instanceName 2 停止一个db 2实例使用: net stop instanceName 3 启动配置助手: db2=>!db2ca 4 手工配置连接: db2=>catalog node/db 5 删除视图: db2=>drop view view_name 6 创建表: db2=>create table tablename 7 列出活动的数据库和连接数: db2=>list active databases 8 断开所有应用程序与数据库的连接: db2=> force application all 9 以用户 通过使用密码 与标识为 的远程实例连接: db2=> attach to user using 10 创建名为 的数据库: db2=> create database 11 显式地使数据库失效: db2=> deactivate database 12 根据需要,显式地以用户 和密码 与数据库 连接:db2=> connect to [ [user ] using ] 13 断开与当前数据库的连接: db2=> connect reset 14 列出数据库中的表。如果没有指定任何参数,则缺省情况是列出当前用户的表:db2=> list tables[for {user | all | system | schema }][show detail] 15 显示一个表或视图的列信息: db2=> describe table 16确定是否需要对表进行重组。这对于对所有表自动执行runstats 很有用 db2=> reorgchk on table all 17通过重构行来消除“碎片”数据并压缩信息,对表进行重组 db2=> reorg table 18将数据库数据抽取到一个平面文件中 db2=> export 19通过使用IMPORT 实用程序,将数据导入到数据库 db2=> import 20返回LOAD 实用程序的进度 db2=> load query table [to local-message-file][nosummary | summaryonly] [showdelta] 21 创建索引:

db2 表空间统计sql

数据库表空间统计sql: 表空间信息统计: select substr(tbsp_name,1,20) as TABLESPACE_NAME,substr(tbsp_content_type,1,10) as TABLESPACE_TYPE,sum(tbsp_total_size_kb)/1024 as TOTAL_MB, sum(tbsp_used_size_kb)/1024 as USED_MB,sum(tbsp_free_size_kb)/1024 as FREE_MB,tbsp_page_size AS PAGE_SIZE from SYSIBMADM.TBSP_UTILIZATION group by tbsp_name,tbsp_content_type,tbsp_page_size order by 1 表空间中table大小统计sql: select t.tabschema, t.tabname, (t.DATA_OBJECT_P_SIZE + t.INDEX_OBJECT_P_SIZE + t.LONG_OBJECT_P_SIZE + t.LOB_OBJECT_P_SIZE + t.XML_OBJECT_P_SIZE) AS TOTAL_P_SIZE, t.DATA_OBJECT_L_SIZE DATA_OBJECT_L_SIZE, t.DATA_OBJECT_P_SIZE DATA_OBJECT_P_SIZE,

t.LONG_OBJECT_P_SIZE LONG_OBJECT_P_SIZE, t.LOB_OBJECT_P_SIZE LOB_OBJECT_P_SIZE, t.XML_OBJECT_P_SIZE XML_OBJECT_P_SIZE, t.INDEX_OBJECT_P_SIZE INDEX_OBJECT_P_SIZE, t1.card, t1.npages, t1.fpages, t1.tbspace from SYSIBMADM.ADMINTABINFO t, syscat.tables t1 where t.tabname=t1.tabname and t.tabschema=t1.tabschema and t1.tbspace in ( 'DATASPACE1','DATESPACE' ) order by TOTAL_P_SIZE desc

DB2试题及答案

1.1 01下列哪一组实体可以在ERD 中使用?D A. 产品,颜色,高度 B. 黄色,大,长 C. 约翰,狗,飞机 D. 人,动物,植物 02下列关于关系数据库的说法,哪一项是正确的?B ?A. 关系数据库不能存储视频或音频。 ?B. 表是由列和行组成的。 ?C. 同一个表中的行可以拥有不同的列集。 ?D. 行也称为表字段。 03下列哪些实体应该使用ERD 中的一对多关系?B ?A. 人,汽车 ?B. 公司,员工 ?C. 祖父,约翰 ?D. 母亲,孩子 ?B 04下列哪些是关系数据模型的组件?B ?A. 指针,集合,约束 ?B. 关系,属性,元组 ?C. 实例,记录类型,实体 ?D. 表,行,等级

?05下列哪一项表述是错误的?D ?A. 主键唯一地标识表中的行。 ?B. 外键是引用其他表主键的列集。 ?C. 主键和外键用于强制数据完整性。 ?D. 必须始终在表中定义主键。 ?06下列哪一项表述是错误的?A ?A. 关系模型中的属性映射到关系数据库中的行 ?B. 在ERD 中,用长方形表示实体 ?C. 一对一和多对多是可以在ERD 中表示的关系 ?D. 关系模型中的实体映射到关系数据库中的表 1.2 1.对于没有软件投资预算的小型创业公司,下列哪一种DB2 版本是理想选择?A A. DB2 Express-C B. DB2 Express C. DB2 Enterprise D. DB2 Workgroup A2. 假设你已经连接到TESTDB 数据库,下列哪些命令可以列出数据库配置设置?A A. db2 get db cfg B. db2 list db cfg

DB2 用户权限

DB2中的权限管理2008年11月05日星期三下午 09:57数据库权限分为实例权限级别(SYSADM、SYSCTRL、SYSMAINT、SYSMON)和数据库权限级别(DBAMD、LOAD)。SYSCTRL、SYSMAINT、SYSMON权限级别的用户不能访问数据,DBAMD、LOAD权限级别的用户可以访问数据。 数据库权限: CONNECT -允许用户连接数据库 BINDADD -允许用户在数据库中创建新的包 CREATETAB -允许用户在数据库中创建新的表 CREATE_NOT_FENCED -允许用户注册定义为 NOT FENCED 的用户定义函数(UDF)或存储过程IMPLICIT SCHEMA -允许用户在尚不存在的模式中创建对象(它自动地创建模式)* QUIESCE_CONNECT -允许用户连接处于 quiesced 状态的数据库 CREATE_EXTERNAL_ROUTINE -允许用户注册外部例程(用 C 和 Java 等外部语言编写的例程) 表空间特权: USE -允许用户在指定的表空间中创建表 模式特权: CREATEIN -允许用户在模式中创建对象 ALTERIN -允许用户在模式中修改对象 DROPIN -允许用户从模式中删除对象 表/视图特权: CONTROL -授予用户在表和视图上的所有特权,以及将这些特权(除了 CONTROL)授予别人ALTER -允许用户在表中添加列、在表和它的列上添加或修改注释、添加主键或惟一约束以及创建或删除表检查约束 DELETE -允许用户从表或视图中删除行 INDEX -允许用户在表上创建索引 INSERT -允许用户在表或视图中插入数据 REFERENCES -允许用户创建和删除外键,这需要指定关系中的父表 SELECT -允许用户从表或视图中检索行、在表上创建视图以及运行 EXPORT 实用程序UPDATE -允许用户修改表、视图或者表或视图中某些列中的数据;用户可以只在特定列上具有这种特权 索引特权: CONTROL -允许用户删除索引 包特权: CONTROL -允许用户重新绑定、删除或执行包,以及将这些特权(除了 CONTROL)授予别人BIND -允许用户重新绑定现有的包 EXECUTE -允许用户执行包 例程特权: EXECUTE 允许用户调用例程,从例程创建函数(只应用于函数),以及在任何 DDL 语句(比如 CREATE VIEW、CREATE TRIGGER 或定义约束时)中引用例程

相关文档
最新文档