DB2 SQL Error: SQLCODE=-1585, SQLSTATE=54048

DB2 执行SQL报错: DB2 SQL Error: SQLCODE=-1585, SQLSTATE=54048

你建的db2数据库没有建足够大的临时表空间,新建一个足够大的临时表空间

1.创建数据库

db2 "create database testdb automatic storage yes on /dbauto dbpath on /database using codeset UTF-8 territory cn collate using system"

dbpath on 表示数据库目录 using codeset   XXXX terriory XXX 指定数据库编码集和区域

1.1显示实例下创建的数据库

db2 list db directory

2.数据库连接

db2 connect to testdb

3.创建缓冲池

db2 "create bufferpool bp32k size 10000 pagesize 32k"   size表示页数,pagesize表示页大小,size*pagesize就是缓冲池的内存大小

4.创建数据库管理(DMS)的数据表空间

db2 "create large tablespace tbs_data pagesize 32k managed by database using (file ‘/data1/tbs_data/cont0‘ 100M, file ‘/data1/tbs_data/cont1‘ 100M) extentsize 32 prefetchsize automatic bufferpool bp32k no file system caching"

5.创建系统管理(SMS)的临时表空间

db2 "create temporary tablespace tbs_temp pagesize 32k mamaged by system using  (‘/data1/tbs_temp‘)  bufferpool bp32k"

using 指定表空间的容器,SMS支持的容器类型只是目录

6.创建(SMS)管理的用户临时表空间

db2 "create user temporary tablespace tbs_user_temp pagesize 32k managed by system using (‘/data1/tbs_usertemp‘) bufferpool bp32k"

7.创建自动存储管理(Automatic Storage)的表空间

7.1 db2 "create tablespace tbs_index pagesize 32k bufferpool bp32k"

7.2 db2 "create tablespace tbs_data2 initialsize 100M increasesize 100M maxsize 1000G"

只有建库时启用了automatic storage yes,表空间才支持自动存储管理

8.显示每个表空间核心信息

db2 list tablespaces

8.1显示指定表空间相关信息

db2 list tablespace containers for <tablespace_id> show detail

8.2比list tablespaces更详细的显示表空间信息

db2 get snapshot for tablespaces on <db_name>

9.显示表空间的配置信息,使用情况和容器信息

db2pd -d <db_name> tablespaces

10.表空间容器的更改

10.1alter tablespace <db_name> add/drop/extend/reduce/resize

//add和drop操作,表空间会发生数据重新平衡(rebalance),对于reduce和resize操作,需要确保更改后的表空间容器有足够的空间,否则db2会拒绝该操作。

10.2alter tablespace <db_name> begin new stripe set

//begin new stripe set 选项是当已有容器使用完后,再使用新增加的容器,该选项不会在容器间做Rebalance ,不会对系统造成性能影响,但它会造成数据偏移。

使用方法:db2 "db2 alter tablespace data_ts2 add(file ‘/data1/ts2/cont2‘ 50G)"

10.3db2 alter database db_name add storage on db_path3

//对于自动存储管理的表空间,无法在表空间级进行容器更改,只能在数据库级别,因为自动存储路径是在建库时指定的。可以使用add storage on 选项为数据库添加新的存储路径。

建库脚本:

DB2安装默认用户:
db2inst1
db2iadm1

第一步新建用户,添加至DB2用户,并切换至新建用户
----------------------------------------------------------------------------------
[[email protected] ~]# useradd -g db2iadm1 -u 1017 -d /usr/slsadmin -m slsadmin
[[email protected] ~]# passwd slsadmin
[[email protected] ~]# ####slsadmin789

[[email protected] ~]# cd /opt/ibm/db2/V10.5/instance/
[[email protected] instance]# ./db2icrt -u slsadmin slsadmin
[[email protected] instance]# su - slsadmin
------------------------------------------------------------------------------------
设置环境配置,允许远程TCP/IP访问。此处数字为端口号,需要用vi去etc/services中查找此用户的最小的端口号
------------------------------------------------------------------------------------
[[email protected] ~]$ db2 update dbm cfg using SVCENAME 60012
[[email protected] ~]$ db2set DB2COMM=TCPIP
[[email protected] ~]$ db2
----------------------------------------------------------------------------------
启动db2命令窗
----------------------------------------------------------------------------------
db2 => db2start
db2 => create db faldb using codeset GBK territory CN
db2 => list db directory
db2 => connect to faldb

--db2 => CREATE SCHEMA "hbreport" AUTHORIZATION "hbreport"

--size表示页数,pagesize表示页大小,size*pagesize就是缓冲池的内存大小
db2 => create bufferpool poolname immediate size 10000 pagesize 32k

--创建数据库管理(DMS)的数据表空间
db2 => create tablespace faldb pagesize 32k managed by system using (‘/usr/slsadmin/NODE0000/sqlt0003.0‘) bufferpool poolname
db2 => create temporary tablespace faldb_temp pagesize 32k managed by system using  (‘/usr/slsadmin/NODE0000/faldb_temp‘)  bufferpool poolname

db2 => commit work
db2 => connect reset
db2 => terminate

执行建库SQL语句
----------------------------------------------------------------------------------
[[email protected] ~]$ db2 -tvf /home/WGJ/faldb20160215.sql
[[email protected] ~]$ db2move faldb import -u slsadmin -p slsadmin789

一定要关闭防火墙!

导出数据库
----------------------------------------------------------------------------------
[[email protected] ~]$ db2look -d faldb -e -a -x -i slsadmin -w slsadmin789 -0 faldb20160215.sql #导出数据库结构
[[email protected] ~]$ db2move faldb export -u slsadmin -p slsadmin789 #导出数据库数据
时间: 2024-10-10 14:05:02

DB2 SQL Error: SQLCODE=-1585, SQLSTATE=54048的相关文章

DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=2 (转载)

http://blog.csdn.net/xiyuan1999/article/details/5706230 DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=2 . 1.查了下,大概意思是违反了唯一性约束啊! 2.不过,我db2 describe table XX后发现这个表只有ID是不能为空的啊! 3.最后,直接写了条SQL在命令行执行,同样的错和代码 最后,我查了下表的索引,发现建了个组合索引,才恍然大悟. 原来,DBA昨天建了唯

DB2 Error : SQLCODE=-802,SQLSTATE=22003 异常的原因

使用DB2时,报错为 DB2 Error : SQLCODE=-802,SQLSTATE=22003 主要原因: 是我们sql语句使用某个字段*86400后结果非常大,导致无法返回结果:因为某个字段*86400后的结果是一个整数型的数据 ,位数不能超过限定 解决的办法: 在其前面的字段加上double,这样就可以扩大数据值的范围 原文地址:https://www.cnblogs.com/xuyufengme/p/10842450.html

数据库报错: SQLCODE: -418, SQLSTATE: 42610, SQLERRMC: null

我在用org.springframework.jdbc.core.JdbcTemplate执行这样一句sql时报错了: INSERT INTO customerbranch ( id , OPTIMISTIC , frp_id , paymentchannel , customer_id ,bank_id ,updatetime) SELECT NEXT VALUE FOR customerbranch_ID_SEQUENCE , 0, 1005, 'NET' , ?, bankid , CUR

常见DB2 sql错误码积累

DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001:原因:sql中要更新的某个字段的长度超过了数据库表中字段的定义长度. SQLCODE=-407, SQLSTATE=23502:原因:把NULL值插入到定义为NOT NULL的列中.也就是违反了完整性约束异常. SQLCODE=-803, SQLSTATE=23505:原因:自增id违反唯一性约束,使用insert 语句进行插入新的记录时,可以将自增id设为"DEFAULT". 例:insert i

DB2 SQL 错误(SQLCODE:-964,SQLSTATE:57011)处理方法

故障现象描述: 执行 SQL 语句时,出现类似如下错误消息. 指令 SQL:insert into t_stat_file_temp SQLSTATE:57011,供应商错误代码:-964 DB2 SQL 错误:SQLCODE:-964,SQLSTATE:57011, SQLERRMC:空 故障原因说明: 数据库堆中没有足够的存储空间可用于处理该语句,此错误消息是事务日志中耗尽空间的结果. 故障处理方式: 1 方式一:扩展事务日志存储空间 通过类似如下语句调整主日志文件数,以及辅助日志文件数.

DB2:在缓冲池 &quot;1&quot; 中当前没有任何页面可用。. SQLCODE=-1218, SQLSTATE=57011, DRIVER=3.61.75

服务器端DB2数据库最近频繁报错: 在缓冲池 "1" 中当前没有任何页面可用.. SQLCODE=-1218, SQLSTATE=57011, DRIVER=3.61.75 试验发现简单的查询SQL执行没有问题,复杂的SQL就会报上述错误. 百度发现是因为数据库bufferpool太小,需要增加bufferpool大小. 操作步骤: 1.查看默认IBMDEFAULTBP大小: 2.设置IBMDEFAULTBP大小为12800: 3.重启数据库实例,然后执行复杂SQL,发现已经没有问题了

[转]MySQL保留关键字(SQL Error: 1064, SQLState: 42000错误)

在MySQL 中,下表中的字显式被保留.其中大多数字进制被标准SQL 用作列名和/ 或表名( 例如,GROUP ) .少数被保留了,因为MySQL 需要它们,( 目前) 使用yacc 解析程序.保留字 被引起来后可以用作识别符. 你不小心使用了下面的关键字  那么就会报这个错误 “SQL Error: 1064, SQLState: 42000错误” ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY

SQL Error: 1064, SQLState: 42000错误

在MySQL 中,下表中的字显式被保留.其中大多数字进制被标准SQL 用作列名和/ 或表名( 例如,GROUP ) .少数被保留了,因为MySQL 需要它们,( 目前) 使用yacc 解析程序.保留字 被引起来后可以用作识别符. 你不小心使用了下面的关键字  那么就会报这个错误 “SQL Error: 1064, SQLState: 42000错误” ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY

[org.hibernate.engine.jdbc.spi.SqlExceptionHelper]SQL Error: 1064, SQLState: 42000问题的解决办法

[org.hibernate.engine.jdbc.spi.SqlExceptionHelper]SQL Error: 1064, SQLState: 42000问题的解决办法. 出现这种情况的原因可能是表中的列名和MySQL的保留关键字发生了冲突.找到冲突的字段,修改即可. 也可能是列中存在空格,比如TOTAL_  REVENUE,下划线中存在空格,以至于加载列时报错. 原文地址:https://www.cnblogs.com/heyesp/p/8295303.html