家有DB2初装成

本文记录了在AIX系统中安装DB2过程中遇到的各种错误及其解决方案,包括创建数据库时因空间不足导致的错误、调整文件系统大小、设置中文环境等,并详细介绍了如何通过配置提升数据库性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在家在aix刚装了db2, 很高兴,这下学习db2又近了一步:
话不多说,下面记下操作过程中的各种报错:

1:创建数据库报错:
  #su - db2inst2 (我的实例用户是db2inst2)
  $db2 create db userdb
  
  报错:SQL1043C  Database Services could not initialize the system catalogs.  Error
          "-968" was returned.
    网上查了下,使space 不足,咋办呢?
   
    报错代码:SQLCODE 0968C                          :
    报错信息:File System is full.(文件系统已满)    
    问题原因:超过当前用户标识所允许的最大文件大小。
                                                
    解决方法:                                      
                                                
    切换用户为 db2inst2                             
                                                
    su - db2inst2                                   
                                                
    更改fsize为100G,(209715100块512byte)           
    chuser fsize=209715100 db2inst2                 
                                                
    重启计算机                                      
                                                
    shutdown -Fr                                                                          
    再次登陆系统并切换用户为 db2inst2               
   
    好下面继续创建数据库:
  #su - db2inst2 
  $db2 create db userdb
  
  报错:报一个i/o 错,我去db2diag.log 看了一下,还是报space 不足。
  
  咋办呢?
  ......
  
  继续研究:......
  
  终于找到了一个解决方案,不管成还是不成,试试看呗:
  a) 首先运行#smitty lv和smitty fs建立一个2G左右的文件系统/db/userdb

    b) 然后运行#chmod 777 /db/userdb修改此文件系统的读写权限,

  c) 其次运行#chown db2adm:db2inst1 /db/userdb修改此文件系统的属主

  d) 最后$db2 create db USERDB on /db/userdb using codeset GBK territory CN
  
  上面最后一步要建立在一下的基础上,((设置中文环境))(我的建议还是英文环境,以下几步不用设)
  a)     #su – db2inst2

  b)     $db2set db2codepage=1386

  c)     $db2set db2tcpip=tcpip

  d)     $db2set db2country=86
  
  我没有设置,结果数据库是建好了,连的时候报错:
  $ db2 connect to userdb
  SQL0332N  There is no available conversion for the source code page "1386" to
  the target code page "819".  Reason Code "1".  SQLSTATE=57017
  
  又咋办呢?现在database 建好了,连不上啊?

后来知道是建数据库是建成中文的,没有在command 设置db2set db2codepage=1386
  
  有人建议是$db2set db2codepage=819
  
  我试了一下,还是报同样的错,...... 还是重新建一个吧:
  
  $db2 drop db userdb
  $db2 create db userdb on /db/userdb
  
  再连:success, 一颗心放下.呵呵
  
2增加一些配置:
  2.1
  修改数据库配置,提升数据库性能(将数据库的用户表空间userspaces建立在系统裸设备上,提升数据库性能)

  a) 首先运行#smitty lv建立一个4G左右的raw device(如:lv_userdb)

  b) 其次运行#chown db2adm:db2inst1 /dev/rlv_userdb修改此raw的属主

  c) $db2 connect to userdb

  d) $db2 drop tablespaces userspace1

  e) $db2 create tablespace userspace1 managed by database using ( device ‘/dev/rlv_userdb’ 1000000)   //1000000单位是page,每page大小是4K,所以总大小是4G。
  

说明一下,建表空间报错:原因是ksh 不认识:'('

后来的解决方案是:(先db2,在进行sql)

a) $db2

b) $db2>>create tablespace ..........

当然也有其它的方法:

c) $db2 "create tablespace userspace1 managed by database using ( device ‘/dev/rlv_userdb’ 1000000) "

就是加上引号,please try

  2.2 修改数据库单个日志文件大小20M(20M=4*5000K)、主日志文件数量20个及辅助日志文件数量10个,确保应用产生的日志大小小于系统提供的日志空间大小,保证应用程序的安全运行,不至于应用在较大交易情况下出现日志rollback,导致交易失败的情况发生,提升数据库的稳定性。

  a)         $db2 connect to userdb

  b)         $db2 update db cfg using LOGFILSIZ 5000

  c)         $db2 update db cfg using LOGPRIMARY 20

  d)         $db2 update db cfg using LOGSECOND 10
  上面的修改数据库单个日志文件大小,及相关的设置很重要,可以解决DB2日志文件已满的问题。
  
  还有我看了还有将数据库日志重新定向到新的文件系统,便于系统管理员查看管理
  
  a)     首先运行#smitty lv和#smitty fs建立一个1G左右的jfs2文件系统(如:lv_dblog),并mount此文件系统(如:mount /dblog)

  b)     运行#chown db2adm:db2inst1 /dblog修改此文件系统的属主

  c)     运行#chown 777 /dblog修改此文件系统的读写权限

  d)     $db2 connect to userdb

  e)     $db2 update db cfg using LOGNEWPATH /dblog

  f)     运行exit退出db2inst1用户环境,再利用su – db2inst1进行,当运行db2 connect to userdb时,可以在/dblog目录下看见新产生的日志文件。
  
  我试了一下,没有成功,报错:“LOGNEWPATH”......以后再研究,呵呵。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenghuiping2001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值