如何在DB2建表空间
2个回答
展开全部
一、建表空间和数据库
1.在db2ad、db2db和db2ap上均执行:
[sql] view plaincopy
db2set db2comm=tcpip
db2set db2codepage=1386
2.新建数据库:
[sql] view plaincopy
db2 create db <dbname> using codeset gbk territory CN collate using identity
3.连接上数据库:
[sql] view plaincopy
db2 "connect to <dbname>"
4.创建缓冲池 + 建立表空间;
1).删除旧的表空间:
[sql] view plaincopy
db2 drop tablespace tablespace1, tablespace2, tablespace3
2).新建缓冲池:
[sql] view plaincopy
db2 create bufferpool bp32k all nodes size -1 pagesize 32k
bp32k为该缓冲池的名称;
32K为页大小;
size=-1表示使用缺省的buffpage,而buffpage可以通过db2 get db cfg|grep -i buff参数查看到;
3).新建表空间:
[sql] view plaincopy
db2 "create regular tablespace tablespace1 pagesize 32k managed by database using(file '/usr/yixiayizi/tablespace1' 5g) bufferpool bp32k"
db2 "create regular tablespace tablespace2 pagesize 32k managed by database using(file '/usr/yixiayizi/tablespace2' 10g) bufferpool bp32k"
db2 "create regular tablespace tablespace3 pagesize 32k managed by database using(file '/usr/yixiayizi/tablespace3' 2g) bufferpool bp32k"
注意(file '/usr/yixiayizi/tablespace1' 5g)的设置:
第一个参数:
当指向外置盘时,file改为device;
当指向文件路径时,为file;
第二个参数:需要是绝对路径;
第三个参数:该表空间的大小;
关于表空间和缓冲池的说明见如下网页:
http://www.ibm.com/developerworks/cn/data/library/techarticles/0212wieser/0212wieser.html
5.调整表空间大小:
[sql] view plaincopy
ALTER TABLESPACE <tablespace1> RESIZE ( FILE '/cstp/usr/db2ad/db2ad/ <tablespace1>' 5g )
6.调整缓冲池大小:
[sql] view plaincopy
db2 alter bufferpool bp32k size 2g
--------------------------------------------------------------------------------------------
远程客户端的配置网络:
1.db2ad账户下:
1). 首先查看/etc/services中db2各个服务的端口号:
more /etc/services
可以看到如下信息:
DB2_db2ad 60040/tcp
DB2_db2ad_1 60041/tcp
DB2_db2ad_2 60042/tcp
DB2_db2ad_END 60043/tcp
2).
[sql] view plaincopy
db2 update dbm cfg using SVCENAME DB2_db2ad
这样在服务端实例对应的端口号就是60040;
------------
2.db2db账户下:
1).
[sql] view plaincopy
db2 catalog tcpip node <node_name> remote 172.17.252.214 server 60040
(上面操作的反编目:db2 uncatalog node <node_name>)
2).db2 list node directory可以看到如下信息:
Node Directory
Number of entries in the directory = 1
Node 1 entry:
Node name = <node_name>
Comment =
Directory entry type = LOCAL
Protocol = TCPIP
Hostname = 172.17.252.214
Service name = 60040
3).
[sql] view plaincopy
db2 catalog db <dbname> at node <node_name>
(上面操作的反编目:db2 uncatalog db <dbname>)
4).db2 list db directory可以看到如下信息:
System Database Directory
Number of entries in the directory = 1
Database 1 entry:
Database alias = <dbname>
Database name = <dbname>
Node name = <node_name>
Database release level = c.00
Comment =
Directory entry type = Remote
Catalog database partition number = -1
Alternate server hostname =
Alternate server port number =
--编目系统数据库目录
-----------------------
授权:
在db2ad账户下,给db2db授权使用表空间:
[sql] view plaincopy
db2 "grant use of tablespace <tablespace1> to user db2db"
db2 "grant use of tablespace <tablespace2> to user db2db"
db2 "grant use of tablespace <tablespace3> to user db2db"
二、建表
切换到db2db用户,执行建表的sql语句:
db2 -vf tmp.sql
1.在db2ad、db2db和db2ap上均执行:
[sql] view plaincopy
db2set db2comm=tcpip
db2set db2codepage=1386
2.新建数据库:
[sql] view plaincopy
db2 create db <dbname> using codeset gbk territory CN collate using identity
3.连接上数据库:
[sql] view plaincopy
db2 "connect to <dbname>"
4.创建缓冲池 + 建立表空间;
1).删除旧的表空间:
[sql] view plaincopy
db2 drop tablespace tablespace1, tablespace2, tablespace3
2).新建缓冲池:
[sql] view plaincopy
db2 create bufferpool bp32k all nodes size -1 pagesize 32k
bp32k为该缓冲池的名称;
32K为页大小;
size=-1表示使用缺省的buffpage,而buffpage可以通过db2 get db cfg|grep -i buff参数查看到;
3).新建表空间:
[sql] view plaincopy
db2 "create regular tablespace tablespace1 pagesize 32k managed by database using(file '/usr/yixiayizi/tablespace1' 5g) bufferpool bp32k"
db2 "create regular tablespace tablespace2 pagesize 32k managed by database using(file '/usr/yixiayizi/tablespace2' 10g) bufferpool bp32k"
db2 "create regular tablespace tablespace3 pagesize 32k managed by database using(file '/usr/yixiayizi/tablespace3' 2g) bufferpool bp32k"
注意(file '/usr/yixiayizi/tablespace1' 5g)的设置:
第一个参数:
当指向外置盘时,file改为device;
当指向文件路径时,为file;
第二个参数:需要是绝对路径;
第三个参数:该表空间的大小;
关于表空间和缓冲池的说明见如下网页:
http://www.ibm.com/developerworks/cn/data/library/techarticles/0212wieser/0212wieser.html
5.调整表空间大小:
[sql] view plaincopy
ALTER TABLESPACE <tablespace1> RESIZE ( FILE '/cstp/usr/db2ad/db2ad/ <tablespace1>' 5g )
6.调整缓冲池大小:
[sql] view plaincopy
db2 alter bufferpool bp32k size 2g
--------------------------------------------------------------------------------------------
远程客户端的配置网络:
1.db2ad账户下:
1). 首先查看/etc/services中db2各个服务的端口号:
more /etc/services
可以看到如下信息:
DB2_db2ad 60040/tcp
DB2_db2ad_1 60041/tcp
DB2_db2ad_2 60042/tcp
DB2_db2ad_END 60043/tcp
2).
[sql] view plaincopy
db2 update dbm cfg using SVCENAME DB2_db2ad
这样在服务端实例对应的端口号就是60040;
------------
2.db2db账户下:
1).
[sql] view plaincopy
db2 catalog tcpip node <node_name> remote 172.17.252.214 server 60040
(上面操作的反编目:db2 uncatalog node <node_name>)
2).db2 list node directory可以看到如下信息:
Node Directory
Number of entries in the directory = 1
Node 1 entry:
Node name = <node_name>
Comment =
Directory entry type = LOCAL
Protocol = TCPIP
Hostname = 172.17.252.214
Service name = 60040
3).
[sql] view plaincopy
db2 catalog db <dbname> at node <node_name>
(上面操作的反编目:db2 uncatalog db <dbname>)
4).db2 list db directory可以看到如下信息:
System Database Directory
Number of entries in the directory = 1
Database 1 entry:
Database alias = <dbname>
Database name = <dbname>
Node name = <node_name>
Database release level = c.00
Comment =
Directory entry type = Remote
Catalog database partition number = -1
Alternate server hostname =
Alternate server port number =
--编目系统数据库目录
-----------------------
授权:
在db2ad账户下,给db2db授权使用表空间:
[sql] view plaincopy
db2 "grant use of tablespace <tablespace1> to user db2db"
db2 "grant use of tablespace <tablespace2> to user db2db"
db2 "grant use of tablespace <tablespace3> to user db2db"
二、建表
切换到db2db用户,执行建表的sql语句:
db2 -vf tmp.sql
展开全部
两种方式
1.利用db2信息中心,开始 输入 db2cc 启动图形界面,按照界面去一步步操作
2.利用sql语句,在命令窗口或提示符或第三方工具,里执行语句
首先创建缓冲池 create bufferpool bufp1 immediate size 1000k
然后创建表空间 create tablespace tbspname .....
详细语法自己就不列出来了。
cibcms:/cibcms/ypp/sql>db2 -v "import from /dev/null of del replace into rqb"
import from /dev/null of del replace into rqb
SQL3015N An SQL error "-1585" occurred during processing.
SQL1585N A system temporary table space with sufficient page size does not
exist. SQLSTATE=54048
SQL3015N An SQL error "-1585" occurred during processing.
SQL1585N A system temporary table space with sufficient page size does not
exist. SQLSTATE=54048
没有表空间
表空间不够
最近在项目中用到了DB2数据库,在执行一些复杂查询时,系统报出"不存在具有足够页大小的系统临时表空间 SQLSTATE=54048"的数库问题。原因是数据库系统的临时表空间所用的缓冲池页大小只有4,缓冲池大小不够。但DB2系统默认的临时表空间已经 指定的缓冲池不能改变,DB2系统默认的临时表空间也不能删除,所以只能新加另一个类型是“系统临时”的表空间。
步骤:
1、打开DB2管理工具“控制中心”,以数据库管理员身份登录。
2、创建页大小大于4的缓冲池(如16)。
3、创建别一个类型是“系统临时”的表空间,并把该表空间的缓冲池指定为刚建立的缓冲池。
db2数据导入导出时用到的一些命令 清空表命令
1。快速清空表
db2 alter table tabname activate not logged initially with empty table ;
db2 import from /dev/null of del replace into tabname
2。在用IMPORT命令向数据库插入大量数据时,如何避免日志空间满错误
在执行IMPORT命令时, 如果使用循环日志, 有时会出现日志满错误, 这时可用COMMITCOUNT参数来解决. 因为日志空间满往往是因为所有的日志均处于活动状态导致的.而COMMIT执行后, 会释放所占据的资源, 其中包括日志 .这样, 被当前事务使用的日志在COMMIT命令执行后, 即变成非活动状态了.
3。export
db2 export to staff.ixf of ixf select * from userid.staff
4。import
db2 import from stafftab.ixf of ixf insert into userid.staff
1.利用db2信息中心,开始 输入 db2cc 启动图形界面,按照界面去一步步操作
2.利用sql语句,在命令窗口或提示符或第三方工具,里执行语句
首先创建缓冲池 create bufferpool bufp1 immediate size 1000k
然后创建表空间 create tablespace tbspname .....
详细语法自己就不列出来了。
cibcms:/cibcms/ypp/sql>db2 -v "import from /dev/null of del replace into rqb"
import from /dev/null of del replace into rqb
SQL3015N An SQL error "-1585" occurred during processing.
SQL1585N A system temporary table space with sufficient page size does not
exist. SQLSTATE=54048
SQL3015N An SQL error "-1585" occurred during processing.
SQL1585N A system temporary table space with sufficient page size does not
exist. SQLSTATE=54048
没有表空间
表空间不够
最近在项目中用到了DB2数据库,在执行一些复杂查询时,系统报出"不存在具有足够页大小的系统临时表空间 SQLSTATE=54048"的数库问题。原因是数据库系统的临时表空间所用的缓冲池页大小只有4,缓冲池大小不够。但DB2系统默认的临时表空间已经 指定的缓冲池不能改变,DB2系统默认的临时表空间也不能删除,所以只能新加另一个类型是“系统临时”的表空间。
步骤:
1、打开DB2管理工具“控制中心”,以数据库管理员身份登录。
2、创建页大小大于4的缓冲池(如16)。
3、创建别一个类型是“系统临时”的表空间,并把该表空间的缓冲池指定为刚建立的缓冲池。
db2数据导入导出时用到的一些命令 清空表命令
1。快速清空表
db2 alter table tabname activate not logged initially with empty table ;
db2 import from /dev/null of del replace into tabname
2。在用IMPORT命令向数据库插入大量数据时,如何避免日志空间满错误
在执行IMPORT命令时, 如果使用循环日志, 有时会出现日志满错误, 这时可用COMMITCOUNT参数来解决. 因为日志空间满往往是因为所有的日志均处于活动状态导致的.而COMMIT执行后, 会释放所占据的资源, 其中包括日志 .这样, 被当前事务使用的日志在COMMIT命令执行后, 即变成非活动状态了.
3。export
db2 export to staff.ixf of ixf select * from userid.staff
4。import
db2 import from stafftab.ixf of ixf insert into userid.staff
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询