db2表空间扩容
DB2表空间类型
DB2表空间类型DB2 表空间类型在介绍如何将数据库管理表空间转换为⾃动存储表空间之前,我们先来回顾⼀下 DB2 表空间的各种类型以及各⾃的特点。
系统管理表空间 (System-Managed Space,SMS):这种类型的表空间由操作系统的⽂件管理系统分配和管理空间。
在 DB2 V9 之前,SMS 表空间是默认选项,如果不带任何选项创建数据库或表空间,数据库管理器会⾃动将表空间建成系统管理表空间。
创建 SMS 时,可以指定多个路径做为表空间的容器,空间的⼤⼩随数据量的变化由数据库管理器⾃动调整。
这种类型的表空间⽐较便于管理,但空间⼤⼩受到⼀定限制,性能在⼤多数情况下不如数据库管理表空间。
数据库管理的空间 (Database-Managed Space,DMS):这种表空间由 DB2 数据库管理器负责管理存储空间。
表空间容器可使⽤⽂件系统或裸设备。
在定义 DMS 表空间时,可以指定多个⽂件名以及每个⽂件的⼤⼩,数据库管理器建⽴并使⽤这些⽂件作为表空间容器。
表空间⼤⼩在创建时确定,空间不够时要⼿⼯添加容器,对于以⽂件作为容器的表空间可以指定 AUTORESIZE,从⽽在容器空间不够时由数据库管理器⾃动增加容器⼤⼩。
这种表空间性能⽐较好,但需要在维护容器⽅⾯花费⼀些⼯作量。
DMS 在需要经常关注和调整底层容器分配的场合有很⼤的灵活性。
⾃动存储表空间 (Automatic Storage Spaces):⾃动存储看起来是⼀种不同类型的表空间,但实际上是 DMS 和 SMS 的扩展。
因为数据库管理的空间 DMS 需要⽐较多的维护,在 DB2 V8.2.2 中引⼊了 DMS ⾃动存储,以简化表空间管理。
这种类型的表空间既保持了 DMS 的⾼性能⼜具有 SMS 表空间易于管理的特点,可以⼤⼤简化 DBA 的管理⼯作。
⾃动存储需要⾸先在数据库级别启⽤,在 DB2 V9 以后,⾃动存储已经成为了 DB2 的默认设置,在建⽴数据库时,DBA 可以提供⼀组路径,在建⽴表空间时,数据库管理器会在这些提供的路径中建⽴需要的容器,容器的⼤⼩根据情况由数据库管理器负责分配和管理。
DB2表空间已满
解决方法但由于是双机,所以裸设备需要在hacmp中建,或者建了后两边同步一下,可以找富通和IBM解决。
DB2解决tablespace满的问题1. 连接到数据库,查看一下tablespace的使用情况db2 => list tablespaces show detailTablespaces for Current DatabaseTablespace ID = 0Name = SYSCATSPACEType = System managed spaceContents = Any dataState = 0x0000Detailed explanation:NormalTotal pages = 4814Useable pages = 4814Used pages = 4814Free 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 = 227Useable pages = 227Used pages = 227Free pages = Not applicableHigh water mark (pages) = Not applicablePage size (bytes) = 4096Extent size (pages) = 32Prefetch size (pages) = 32Number of containers = 1Name = USERSPACE1Type = Database managed spaceContents = Any dataState = 0x0000Detailed explanation:NormalTotal pages = 131072Useable pages = 131056Used pages = 12080Free pages = 118976High water mark (pages) = 12432Page size (bytes) = 4096Extent size (pages) = 16Prefetch size (pages) = 16Number of containers = 1Minimum recovery time = 2006-09-25-07.22.30.000000Tablespace ID = 3Name = USERSPACE2Type = Database managed spaceContents = Any dataState = 0x0000Detailed explanation:NormalTotal pages = 65536Useable pages = 65520Used pages = 65520Free pages = 0High water mark (pages) = 65520Page size (bytes) = 16384Extent size (pages) = 16Prefetch size (pages) = 16Number of containers = 1Minimum recovery time = 2006-08-11-02.52.11.000000Tablespace ID = 4Name = TMPSPACE3Type = System managed spaceContents = System Temporary dataState = 0x0000Detailed explanation:NormalTotal pages = 199Used pages = 199Free pages = Not applicableHigh water mark (pages) = Not applicablePage size (bytes) = 16384Extent size (pages) = 32Prefetch size (pages) = 32Number of containers = 1Minimum recovery time = 2005-12-15-11.09.33.000000发现USERSPACE2 Free pages为0了2. 再看一下USERSPACE2使用的containerdb2 => list tablespace containers for 3 show detailTablespace Containers for Tablespace 3Container ID = 0Name = /dev/rdatacdblv2Type = DiskTotal pages = 65536Useable pages = 65520Accessible = Yes只有一个/dev/rdatacdblv23. 查看一下系统中相关的裸设备#>cd /dev#>ls -l *datacdb*brw-rw---- 1 db2admin db2grp1 10, 10 11月11 2004 datacdblv1 brw-rw---- 1 db2admin db2grp1 10, 12 4月05 2006 datacdblv2 crw-rw---- 1 db2admin db2grp1 10, 10 9月30 15时01 rdatacdblv1 crw-rw---- 1 db2admin db2grp1 10, 12 10月09 18时43 rdatacdblv24. 创建一个新的裸设备#>mklv -y'datacdblv3' -t'raw' db2vg 4rootvg是卷组的名称,可以用lsvg查,16是块的数量,要看OS的PPSIZE,相乘就是裸设备的大小5. 看一下新的的设备#>ls -l *datacdb*brw-rw---- 1 db2admin db2grp1 10, 10 11月11 2004 datacdblv1 brw-rw---- 1 db2admin db2grp1 10, 12 4月05 2006 datacdblv2 brw-rw---- 1 root system 10, 18 10月09 19时56 datacdblv3 crw-rw---- 1 db2admin db2grp1 10, 10 9月30 15时01 rdatacdblv1 crw-rw---- 1 db2admin db2grp1 10, 12 10月09 18时43 rdatacdblv2 crw-rw---- 1 root system 10, 18 10月09 19时56 rdatacdblv36. 修改属主#>chown db2admin:db2grp1 *datacdb*7. 再看一下属主是否已经改了#>ls -l *datacdb*brw-rw---- 1 db2admin db2grp1 10, 10 11月11 2004 datacdblv1 brw-rw---- 1 db2admin db2grp1 10, 12 4月05 2006 datacdblv2 brw-rw---- 1 db2admin db2grp1 10, 18 10月09 19时56 datacdblv3 crw-rw---- 1 db2admin db2grp1 10, 10 9月30 15时01 rdatacdblv1 crw-rw---- 1 db2admin db2grp1 10, 12 10月09 18时43 rdatacdblv2 crw-rw---- 1 db2admin db2grp1 10, 18 10月09 19时56 rdatacdblv38. 连接到数据库9. 为tablespace增加containerdb2 => alter tablespace USERSPACE2 add (device'/dev/rdatacdblv3' 32768)10. 最后确认一下是否增加成功了db2 => list tablespaces show detailTablespaces for Current DatabaseTablespace ID = 0Name = SYSCATSPACEType = System managed space Contents = Any dataState = 0x0000Detailed explanation:NormalTotal pages = 4814Useable pages = 4814Used pages = 4814Free pages = Not applicableHigh water mark (pages) = Not applicable Page size (bytes) = 4096Extent size (pages) = 32Prefetch size (pages) = 32Number of containers = 1Tablespace ID = 1Name = TEMPSPACE1Type = System managed space Contents = System Temporary data State = 0x0000Detailed explanation:NormalTotal pages = 227Useable pages = 227Used pages = 227Free pages = Not applicableHigh water mark (pages) = Not applicable Page size (bytes) = 4096Extent size (pages) = 32Prefetch size (pages) = 32Number of containers = 1Tablespace ID = 2Name = USERSPACE1Type = Database managed space Contents = Any dataState = 0x0000Detailed explanation:NormalTotal pages = 131072Useable pages = 131056Used pages = 12080Free pages = 118976High water mark (pages) = 12432Page size (bytes) = 4096Extent size (pages) = 16Prefetch size (pages) = 16Number of containers = 1Minimum recovery time = 2006-09-25-07.22.30.000000Tablespace ID = 3Name = USERSPACE2Type = Database managed spaceContents = Any dataState = 0x10000000Detailed explanation:DMS rebalancer is activeTotal pages = 98304Useable pages = 98272Used pages = 65520Free pages = 0High water mark (pages) = 65520Page size (bytes) = 16384Extent size (pages) = 16Prefetch size (pages) = 16Number of containers = 2Minimum recovery time = 2006-08-11-02.52.11.000000Tablespace ID = 4Name = TMPSPACE3Type = System managed spaceContents = System Temporary dataState = 0x0000Detailed explanation:NormalTotal pages = 199Useable pages = 199Used pages = 199Free pages = Not applicableHigh water mark (pages) = Not applicablePage size (bytes) = 16384Extent size (pages) = 32Prefetch size (pages) = 32Number of containers = 1。
DB2基础知识(一)
内部资料 注意保密
12
二、DB2的访问
节点目录、系统数据库目录和本地数据库目录间关系
内部资料 注意保密
13
二、DB2的访问
2.1 DB2的登录
通过本地客户端链接DB2服务器
内部资料 注意保密
14
二、DB2的访问
2.2 SQL语句的执行
内部资料 注意保密
15
二、DB2的访问
2.3 SQLSTATE & SQLCODE
说明
– – –
不能修改视图 视图不能创建索引 如果删除了某视图基于的表或另一视图,则该视图在数据库虽然有定义但不起作用
内部资料 注意保密
35
三、DB2数据库对象
视图
创建可更新视图和只读视图
• • •
视图的 SELECT 语句决定视图是只读的还是可更新的 通常,如果视图的行可映射至基表的行,则视图是可更新的。
显式地指定对象的模式名: create table DWAINE.table1 (c1 int, c2 int) 隐式地指定对象的模式名: create table t2 (c1 int) --- table tjadm.t2 created 注:隐式地指定对象的模式名,用户 需要IMPLICT_SCHEMA 特权
内部资料 注意保密
11
二、DB2的访问
2.1 DB2的登录
通过本地客户端链接DB2服务器
安装本地DB2客户端程序 配置本地Catalog(编目)
Db2cmd->db2 connect to bidbdw user scvadm
catalog tcpip node mynode remote 99.1.57.103 server 50000; catalog db bidbdw at node mynode;
DB2表空间扩容
DB2表空间扩容步骤1.打开DB2的控制中心。
如下图:
2.在控制中心左边的树形结构中选择NETDB下面的表空间,如下图:
3.在右边打开的DB2-NETDB-表空间中选择需要扩容的那一个表空间,如下图:
4.找到我们需要扩容的表空间后,选择并双击得到下图的窗口-“改变表空间-NEWS_TAB”:
5.选择“容器”这个窗口,如下图:
6.选中“容器”并双击,得到“更改容器大小”这个窗口,在窗口中选择“更改容器大小”如下图:
7. 在输入栏中输入需要扩充的数值后,点确定完成更改。
如下图:
8.查看DB2表空间。
9.总容量扩充至需要的数值。
烟台项目刘潇宇。
db2表空间扩容
db2表空间扩容DB2表空间扩容1 - Detect what tablespace has size issuesdb2 list tablespaces show detail2 - Check the percentage of use from the tablespacedb2 list tablespace containers for <tablespace_id> show detail3 - Calculating the size of free space neededNow you are able to calculate the percentage of use from the tablespace. To get this number, do (Used Pages / Useable Pages) * 100 and then with this percentage you can continue calculating how many pages you need to increase to obtain the acceptable amount of free pages.4 - Verifying the filesystem and the free spaceContinuing, now you should check the total amount of free space at the fileystem. Do this typingdf -k <tablespace.path>And you'll be able to verify if it's enough space to extend the tablespace. Remember you can check the page size in the output of "db2 list tablespaces show detail" command.5 - Extending the tablespaceFinally, after all checked, you can execute the command to extend the pages of that tablespace. Do this using:db2 "alter tablespace <tablespace_name> extend (all <page_numbers>)"This will extend the size of your tablespace. Be careful when using EXTEND ALL clause when the tablespace has more than one container; in cases where the tablespace has more than one container, divide the total number of pages you intent to increase by the number of total containers.Example:db2 alter "tablespace IBMDB2SAMPLEREL extend (all 1000)"Alternatively, if it's not possible to extend the actual containers, a possibility is to add new containers to the tablespace. For that, you should enter the following command:db2 "alter tablespace <tablespace_name> add (FILE '<new_container_file>' <size>)"Where size can be in pages (only using the numbers you want), in KBytes (using a K following the number), in MBytes (usinga M following the number) or in GBytes (using a G following the number). Also, please note to use single quotes around the name of the file you'll use as a new container.注意事项:(AIX)1、hacmp 单点控制的lv操作,有时候出问题,建议在A 机直接扩lv, 在hacmp 切换到B机 hacmp⾃动importvg 会把lv 信息更新的。
DB2如何调整表空间大小
DB2如何调整表空间⼤⼩DB2如何调整表空间⼤⼩刚刚接到客户那边打的电话,程序⼀直报错,所有的业务都做不了,拷贝了⼀份应⽤服务器(weblogic)的⽇志,⽇志⾥显⽰:WARN : 2009-06-18 16:24:32,421: JDBCExceptionReporter[line:77}: SQL Error: -99999, SQLState: nullERROR: 2009-06-18 16:24:32,422: JDBCExceptionReporter[line:78}: [ibm][db2][jcc][102][10040] ⾮⾃动批处理出现故障。
虽然已经提交了批处理,但是该批处理的某个成员⾄少发⽣了⼀个异常。
使⽤ getNextException() 来检索已经过批处理的特定元素的异常。
WARN : 2009-06-18 16:24:32,422: JDBCExceptionReporter[line:77}: SQL Error: -289, SQLState: 57011ERROR: 2009-06-18 16:24:32,422: JDBCExceptionReporter[line:78}: Error for batch element #1: DB2 SQL error: SQLCODE: -289, SQLSTATE: 57011, SQLERRMC: SMKWARN : 2009-06-18 16:24:32,423: JDBCExceptionReporter[line:77}: SQL Error: -99999, SQLState: nullERROR: 2009-06-18 16:24:32,423: JDBCExceptionReporter[line:78}: Error for batch element #2: [ibm][db2][jcc][t4][1026][11339] 错误检查:WARN : 2009-06-18 16:24:32,423: JDBCExceptionReporter[line:77}: SQL Error: -289, SQLState: 57011ERROR: 2009-06-18 16:24:32,424: JDBCExceptionReporter[line:78}: Error for batch element #2: DB2 SQL error: SQLCODE: -289, SQLSTATE: 57011, SQLERRMC: SMKERROR: 2009-06-18 16:24:32,424: AbstractFlushingEventListener[line:301}: Could not synchronize database state with sessionorg.hibernate.exception.GenericJDBCException: Could not execute JDBC batch updateat org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)at mit(JDBCTransaction.java:106)at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:575)atorg.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662) at mit(AbstractPlatformTransactionManager.java:632)atmitTransactionAfterReturning(TransactionAspectSupport.java:314) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)at $Proxy803.saveApply(Unknown Source)at nct.mp.counterservice.service.CounterServiceService.applySave(CounterServiceService.java:135)at nct.mp.counterservice.ejbAction.ApplySaveEjbAction.perform(ApplySaveEjbAction.java:32)at com.lbs.sieaf.webcontroller.RequestProcessor.processRequest(RequestProcessor.java:245)at com.lbs.sieaf.webcontroller.MainServlet.doProcess(MainServlet.java:65)at com.lbs.sieaf.webcontroller.MainServlet.doPost(MainServlet.java:49)at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)at com.lbs.sieaf.webcontroller.CSSaftyFilter.doFilter(CSSaftyFilter.java:167)at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)at nct.cp.webcontroller.EncodingFilter.doFilter(EncodingFilter.java:66)at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3212)at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)Caused by:com.ibm.db2.jcc.b.ni: [ibm][db2][jcc][102][10040] ⾮⾃动批处理出现故障。
db2命令记录(一)
第一.请问高手,如何查看tablespace里包含哪些表?select tabschema,tabname from syscat.tables where tbspace='TABLESPACEA' and type='T' 这里的TABLESPACEA具体情况定,如用USERSPACE1(158.222.2.110)第二.DB2 CLP从DOS进入db2cmddb2cmd在本地DB2数据库添加一个远程结点db2 catalog tcpip node xdzx1 remote 155.222.2.110 server 60064db2 catalog database xdzx1 at node xdzx1查看版本信息db2licm -l启动,停止db2数据库db2admin start db2admin stopdb2start db2stop执行存储过程db2 " call p01_acct_depacct_y('2007-4-15',?,?)"创建t01_acct_depacct_y表,in dms_data 代表数据存在dms_data命名空间 index in dms_idx代表索引创建在dms_idx里面create table t01_acct_depacct_y(record_date DATE not null,etl_date DATE,dep_acct_no CHAR(15) not null,curr_cd CHAR(3) not null,curr_iden CHAR(1) not null,bank_no CHAR(6) not null,summary_bank_no CHAR(6),xyz_no CHAR(2),dep_categ CHAR(1),acct_name VARCHAR(160),acct_short_name VARCHAR(60),busi_typ CHAR(3),assu_busi_typ CHAR(2),dep_term INT,open_date DATE,close_date DATE,cust_open_date DATE,dep_bal_tsum DEC(24,2),dep_bal_msum DEC(24,2),dep_bal_qsum DEC(24,2),dep_bal_qend_ysum DEC(24,2),year_dep_amt DEC(17,2),year_dep_cnt INT,year_oth_amt DEC(17,2),year_oth_cnt INT,year_d_sum DEC(17,2),year_c_sum DEC(17,2),year_d_cnt INT,year_c_cnt INT,constraint P_pk01_acct_saacct primary key (record_date, dep_acct_no, curr_cd, curr_iden))in dms_dataindex in dms_idx获取数据库中现有存储过程select substr(procschema,1,15),substr(procname,1,15) from syscat.procedures; select * from syscat.procedures where procschema='XXGL'获取当前时间select current time from (values 1) as test;select current date from (values 2) as test;select (current_date)- 2 year,(current_date)+ 1 day,current_timestamp + 1 hour from (values 1) test在列中查询以删除重复的记录我们有一个表,字段A有重复的记录,我们想要编写一个SQL 查询来让字段A作为主键。
修改表空间大小的步骤_概述及解释说明
修改表空间大小的步骤概述及解释说明1. 引言1.1 概述本文旨在提供关于修改表空间大小的步骤的概述和解释说明。
表空间是数据库中存储数据的逻辑结构,它包含了表、索引以及其他数据库对象。
当数据库中存储的数据量超过当前表空间的容量时,就需要对表空间进行调整来满足需求。
1.2 文章结构本文将分为四个部分进行讨论和阐述。
首先,在引言部分(第一部分),我们将介绍本文的目的和结构,为读者提供整体观念。
其次,在第二部分中,我们将详细介绍修改表空间大小的具体步骤。
接着,在第三部分,我们将对涉及到的关键概念进行解释说明,包括表空间的定义、大小对数据库性能影响及修改的目的解释等。
最后,在第四部分,我们将总结修改表空间大小的重要性和步骤,并给出一些建议和注意事项;同时展望未来可能出现问题和挑战。
1.3 目的本文旨在帮助读者理解并掌握修改表空间大小所需采取的必要步骤,并提供相关解释说明以加深对此过程中涉及到概念和原理的理解。
读者通过阅读本文,将能够了解表空间的定义、大小对数据库性能的影响以及修改表空间大小的目的。
此外,我们也将提供一些提示、注意事项和建议,以便读者在实际操作中避免可能出现的问题。
以上为撰写“1. 引言”部分的内容,请根据需要进行修改和完善。
2. 修改表空间大小的步骤2.1 步骤一修改表空间大小的第一步是登录到数据库管理系统,确保具备足够的权限执行表空间修改操作。
2.2 步骤二在数据库管理系统中,使用ALTER TABLESPACE语句来修改表空间大小。
该语句的基本语法如下:ALTER TABLESPACE tablespace_nameRESIZE [SIZE size_value];其中,tablespace_name是要修改的表空间的名称,size_value是指定的新大小。
可以使用不同的单位(如MB、GB等)来指定大小值。
2.3 步骤三执行ALTER TABLESPACE语句后,数据库管理系统将开始对表空间进行调整。
db2_表空间状态
表 1. 到版本 8.1.4 为止的 DB2 UDB 所有支持版本中定义的表和表空间状态
状态
范围
Backup Pending Backup in Progress Check Pending DMS Rebalance in Progress Disable Pending Drop Pending Load Pending Load in Progress
表状态。
Information returned for USERSPACE1 返回的
信息显示,该表空间处于 Load in Progress(和
Backup Pending )状态。
如果表空间不是
处于任何其他
(异常的)表空
间状态,那么该 connect to sample;
表空间的状态就 create tablespace ts1 managed by database using (file
State = Backup Pending + Load in Progress
图 2. 可以使用 LIST TABLESPACES 命令确定连接数据库中表空间的当前状态。
表 2. 受支持的表空间状态
状态
十六进制状 态值
描述
示例
在执行指定时间
点的(point-intime)表空间前 滚操作之后,或 者在执行指定了
至于说明该表空间状态的示例,已经超出了本文 的范围。
已知载入的输入文件 staffdata.del 有大量数据
(例如,20000 条或更多记录): 这是一种只在执 update db cfg for sample using logretain recovery; 行指定了 COPY connect to sample; NO 选项的载入 load from staffdata.del of del insert into newstaff 操作(针对可恢 copy no;
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表空间的页大小和容量关系
8 KB 8 101 1 012 128 GB
16 KB 12 677 1 012 512 GB
很多人很难会计算出 容量怎么计算的,我前几天找了一些资料和大家分享,
首先说db2 的寻址空间,db2 v8 中寻址空间3个字节,也就是3×8位,
4K 16 TB
8 K 32 TB
16 K 64 TB
32 K 128 TB
表空间大小: dms数据库管理表空间的大小为 pagesize * 所有容器大小总和;
sms系统管理表空间的最大空间可以理解成 “容器路径” 所在文件系统的大小缓冲池大小: 就是 创建语句中的 size*pagesize
下面是ibm官网上的数据,是db2v8的数据资料
页大小(Page size)
定义表空间所使用的页大小。所支持的大小为 4K、8K、16K 和 32K。
页大小根据下表限定了可放到表空间中的表的行长度和列数:
表 1. 页大小的含义 页大小 行大小限制 列数限制 最大容量
4 KB 4 005 500 64 GB
一共可以寻找到2的24此方个地址,即这些页,比如4k的页大小,最大容量为 2的24此方 * 4 /1024/1024 = 64
得到了页大小为4K的最大表空间容量
db2v9中,寻址空间增加了一个自己 即4字节 2 的 32 次方 增加了 8倍 ,
页大小还是原来的四种,可以算出v9中表空间的最大容量
db2自动调整表空间的大小
db2自动调整表空间的大小在DB2® 数据库系统中存在两种类型的基本表空间:系统管理的空间(SMS)和数据库管理的空间(DMS)。
与SMS 表空间相关联的容器是文件系统目录,而这些目录中的文件会随着表空间中对象的增长而增长。
文件会增加至达到其中一个容器上的文件系统限制或达到数据库的表空间大小限制(请参阅db2.udb.admin.doc/doc/r0001029.htm">SQL and XQuery limits)。
DMS 表空间由文件容器或原始设备容器组成,它们的大小是在将容器指定给表空间时设置的。
当容器中的所有空间都已被使用时,则认为表空间已满。
但是,与SMS 不同,您可以使用ALTER TABLESPACE 语句来添加或扩展容器,从而允许将更多的存储器空间提供给表空间。
DMS 表空间还具有称为“自动调整大小”的功能。
当可以自动调整大小的DMS 表空间中的空间被消耗时,DB2 数据库系统可能回扩展一个或多个文件容器。
SMS 表空间具有类似于自动增长的功能但术语“自动调整大小”专门用于DMS。
启用和禁用自动调整大小(AUTORESIZE)缺省情况下,不会对DMS 表空间启用自动调整大小功能。
下列语句创建不启用自动调整大小功能的DMS 表空间:CREATE TABLESPACE DMS1 MANAGED BY DATABASEUSING (FILE '/db2files/DMS1' 10 M)要启用自动调整大小功能,将AUTORESIZE YES 子句指定为CREATE TABLESPACE 语句的一部分:CREATE TABLESPACE DMS1 MANAGED BY DATABASE USING (FILE '/db2files/DMS1' 10 M) AUTORESIZE YES在已创建DMS 表空间之后,还可以通过在ALTER TABLESPACE 语句上使用AUTORESIZE 子句来启用或禁用自动调整大小功能:ALTER TABLESPACE DMS1 AUTORESIZE YESALTER TABLESPACE DMS1 AUTORESIZE NO有两个其他属性(MAXSIZE 和INCREASESIZE)与自动调整大小的表空间相关联。
db2增大存储空间命令
db2增大存储空间命令DB2是一种关系数据库管理系统,用于存储和管理大量数据。
随着数据量的增加,可能会需要增大DB2的存储空间。
本文将介绍一些常用的命令和步骤,以指导您如何有效地增大DB2的存储空间。
首先,要增大DB2的存储空间,您需要了解数据库的当前使用情况以及所需的存储空间大小。
这可以通过使用一些DB2提供的命令来获得。
下面是一些常用的命令及其作用:1. `db2pd -db <database_name> -tablespace`:此命令用于显示指定数据库的表空间信息。
可以查看当前每个表空间的使用量以及剩余空间。
2. `db2 list tablespaces show detail`:此命令显示所有表空间的详细信息,包括表空间名称、类型、大小等。
3. `db2 list tablespaces show detail | grep -i "tablespace_name"`:通过此命令,您可以检索特定表空间的详细信息,只需将“tablespace_name”替换为要检索的表空间的名称。
根据您获得的表空间信息,可以决定是否需要增加存储空间。
如果发现某个表空间接近或已经达到其最大值,需要采取相应措施。
接下来是一些常用的命令和步骤来增加DB2存储空间:1. 首先,使用管理员权限登录DB2数据库。
2. 使用`db2stop`命令停止正在运行的数据库实例。
3. 运行`db2 connect to <database_name>`命令连接到要增加存储空间的数据库。
4. 使用`db2pd -db <database_name> -tablespace`命令或`db2 list tablespaces show detail`命令确认要增加存储空间的表空间。
5. 运行`db2 "alter tablespace <tablespace_name>autoresize yes"`命令以启用表空间自动调整大小功能。
db2表空间容器扩容步骤
db2表空间容器扩容步骤db2表空间容器扩容步骤1、切换到db2用户su - db2inst12、连接db2的数据库这里所使用的数据库为WAREHOUS,根据实际情况连接到需要的数据库db2 connect to WAREHOUS备注:db2 LIST DATABASE DIRECTORY 可以查看实例下有哪些数据库3、查看表空间使用率,确认需要扩容的表空间db2 "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"4、查看表空间信息db2 "LIST TABLESPACES"5、通过Tablespace ID查找表空间容器例如:查找Tablespace ID =8 的表空间使用的容器[db2inst1@GZDC-SVR-TIVOLI ~]$ db2 list tablespace containers for 8 show detailTablespace Containers for Tablespace 8Container ID = 0Name = /home/db2inst1/db2inst1/NODE0000/SQL00002/TGKLZ_CPU Type = FileTotal pages = 134072Useable pages = 134016Accessible = Yes6、扩容容器大小扩容有多种方式,这种方式就是将相应的容器都扩大1000页,也就是增加1000页。
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创建数据库及表空间语句1、⾸先在windows安装完DB2以后,打开DB2的命令⾏,然后依次执⾏下⾯代码.(下⾯有⼀句话脚本会提⽰你⼀个类似异常的信息,不予以理会,继续执⾏下⾯别的代码)1. db2 "CREATE DB TestDB using codeset UTF-8 territory us"2.3. db2 "UPDATE DB CFG FOR TestDB USING applheapsz 4096"4.5. db2 "UPDATE DB CFG FOR TestDB USING app_ctl_heap_sz 1024"6.7. db2 "UPDATE DB CFG FOR TestDB USING stmtheap 8192"8.9. db2 "UPDATE DB CFG FOR TestDB USING dbheap 2400"10.11. db2 "UPDATE DB CFG FOR TestDB USING locklist 1000"12.13. db2 "UPDATE DB CFG FOR TestDB USING logfilsiz 1000"14.15. db2 "UPDATE DB CFG FOR TestDB USING logprimary 12"16.17. db2 "UPDATE DB CFG FOR TestDB USING logsecond 20"18.19. db2 "UPDATE DB CFG FOR TestDB USING logbufsz 32"20.21. db2 "UPDATE DB CFG FOR TestDB USING avg_appls 5"22.23. db2 "UPDATE DB CFG FOR TestDB USING locktimeout 30"24.25. db2 CONNECT TO TestDB26.27. db2 "CREATE BUFFERPOOL icmsbuffer SIZE 1000 PAGESIZE 32K"28.29. db2 "CREATE TABLESPACE icmsspace PAGESIZE 32K MANAGED BY SYSTEM USING ('D:\db2admin\sqlt0003.0') BUFFERPOOL icmsbuffer"(根据实际情况确定是否是D盘下的db2admin\sqlt0003.0⽬录,如果没有,请先创建)30.31. db2 "CREATE SYSTEM TEMPORARY TABLESPACE ICMSBUF PAGESIZE 32 K MANAGED BY SYSTEM USING ('D:\db2admin\sqlt0004.0') BUFFERPOOL ICMSBUFFER"据实际情况确定是否是D盘下的db2admin\ sqlt0004.0⽬录,如果没有,请先创建)32.33. db2 "DISCONNECT icms"34.35. db2 "TERMINATE"下⾯说在linux下的创建⽅法:其实脚本⼀样数据库是从 DB2 命令界⾯创建的。
DB2创建表、操作表等常用命令
DB2创建表、操作表等常⽤命令⼀、创建库表1、创建库1).创建数据语句CREATE DATABASE MEDIA ON /db2data USING CODESET UTF-8 TERRITORY CN ;2).创建BUFFERPOOLCONNECT TO MEDIA user db2admin using password;CREATE BUFFERPOOL "BP_MEDIA_32K" SIZE 100000 PAGESIZE 32768 NOT EXTENDED STORAGE;COMMIT WORK;CONNECT RESET;TERMINATE;;3).创建表空间connect to media user db2admin using password;CREATE REGULAR TABLESPACE "TB_MEDIA" IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 32768 MANAGED BY DATABASEUSING (FILE '/db2data/TB_MEDIA_C1'320000) EXTENTSIZE 32 PREFETCHSIZE 32 BUFFERPOOL BP_MEDIA_32K OVERHEAD 12.500000TRANSFERRATE 0.130000 FILE SYSTEM CACHING DROPPED TABLE RECOVERY OFF;CREATE LARGE TABLESPACE "TB_MEDIA_LOB" IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 32768 MANAGED BY DATABASEUSING (FILE '/db2data/TB_MEDIA_LOB_C1'640000) EXTENTSIZE 32 PREFETCHSIZE 32 BUFFERPOOL BP_MEDIA_32K OVERHEAD 12.500000TRANSFERRATE 0.130000 FILE SYSTEM CACHING DROPPED TABLE RECOVERY ON;CREATE REGULAR TABLESPACE "TB_MEDIA_IDX" IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 4096 MANAGED BY DATABASEUSING (FILE '/db2data/TB_MEDIA_IDX_C1'1280000) EXTENTSIZE 32 PREFETCHSIZE 32 BUFFERPOOL IBMDEFAULTBP OVERHEAD 12.500000TRANSFERRATE 0.130000 FILE SYSTEM CACHING DROPPED TABLE RECOVERY OFF;CREATE SYSTEM TEMPORARY TABLESPACE "TB_MEDIA_TMP" IN DATABASE PARTITION GROUP IBMTEMPGROUP PAGESIZE 32768 MANAGED BY SYSTEM USING ('/db2data/TB_MEDIA_TMP_C1' ) EXTENTSIZE 16 PREFETCHSIZE 16 BUFFERPOOL "BP_MEDIA_32K" OVERHEAD 12.5 TRANSFERRATE 0.13; DROP TABLESPACE USERSPACE1;-- Mimic tablespace-- ALTER TABLESPACE SYSCATSPACE PREFETCHSIZE AUTOMATIC OVERHEAD 7.500000 FILE SYSTEM CACHING TRANSFERRATE 0.060000;-- ALTER TABLESPACE TEMPSPACE1 PREFETCHSIZE AUTOMATIC OVERHEAD 7.500000 FILE SYSTEM CACHING TRANSFERRATE 0.060000;COMMIT WORK;CONNECT RESET;TERMINATE;;⼆、备份数据库1)、按表备份与恢复备份:a、导出创建表语句db2look -d media -e -c -o media.ddl -i db2admin -w passwordb、导出数据db2 connect to media user db2admin using password db2 "EXPORT TO B_NEWS.IXF OF IXF MESSAGES B_NEWS.LOG SELECT * FROM DB2ADMIN.B_NEWS"也可以,上⾯内容复制到export.sh中,执⾏以下命令./export.sh恢复:a、导⼊表结构db2 -tvf media.ddlb、导⼊数据db2 connect to MEDIA user db2admin using passworddb2 IMPORT FROM B_NEWS.IXF OF IXF MESSAGES B_NEWS.MSG INSERT INTO DB2ADMIN.B_NEWS也可以,上⾯内容复制到import.sh中,执⾏以下命令./import.sh2)、整库备份与恢复备份:a、⾸先要断开所有链接。
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表空间不足及处理
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 tablespaces show detail
LIST TABLESPACE CONTAINERS for 5 show detail 查看表空间容器
1)直接添加一个容器的例子:
db2 " ALTER TABLESPACE PAYROLL ADD (DEVICE '/dev/rhdisk9' 10G,) "
注意这种方式就是将原有的相应容器都改成大小是2000页
db2 "ALTER TABLESPACE TS1 RESIZE (ALL 2000)"
db2 "ALTER TABLESPACE CMSSPACE RESIZE (ALL 4000)"
这种方式就是把表空间中所有的容器大小都改成2000页
加容器之后DB2会有一个自动balance的过程,可能会持续几个小时!!!
2)改变现有容器的大小(该方法不会触发balance,但如果表空间建立在裸设备上,则要扩冲裸设备空间):
Hale Waihona Puke db2 " ALTER TABLESPACE TS1 RESIZE (FILE '/conts/cont0' 2000, DEVICE '/dev/rcont1' 2000, FILE 'cont2' 2000) "
Number of LOGICAL PARTITIONS (这个值是卷组pp size的块数,所以要先查一下vg的pp size)
Logical volume TYPE (输入RAW)
新增裸设备,,更改裸设备权限
增加container
db2 " ALTER TABLESPACE IBSDATA ADD (DEVICE '/dev/ribsdata1' 10G,DEVICE '/dev/ribsdata2' 10G,DEVICE '/dev/ribsdata3' 10G,DEVICE '/dev/ribsdata4' 10G) "
db2 " ALTER TABLESPACE TS1 EXTEND (FILE '/conts/cont0' 1000, DEVICE '/dev/rcont1' 1000, FILE 'cont2' 1000) "
这种方式就是将相应的容器都扩大1000页,也就是增加1000页。
db2 " ALTER TABLESPACE DATA_TS EXTEND (ALL 1000)"
smitty lv--->set lv ---> add lv size--> lv name (选择)-- >回车 输入增加的PP数
--------------
用smitty lv 命令来创建裸设备
选择Add a Logical Volume
按F4 选择卷组datavg
输入裸设备名称 : 例如hduser
DB2现有表空间扩容方法 博客分类: 知识库
DB2.DB2现有表空间扩容方法
db2 "ALTER TABLESPACE TEST RESIZE (FILE '/home/db2inst1/test_tbsp' 2000)"; 改变现有的容器大小
db2 "ALTER TABLESPACE TEST ADD (FILE '/home/db2inst1/test_tbsp2' 1000)"; 在增加一个表空间容器
db2 ALTER TABLESPACE CMSSPACE EXTEND (ALL 1000)
这种方式就是将所有的容器都增加1000页。
db2 " ALTER TABLESPACE USERSPACE1 EXTEND (ALL 100)"
39257
------------------------------------------------------------------------------