sunfull 发表于 2016-11-18 08:31:55

DB2使用笔记

  1、赋予用户LOAD权限的步骤
  使用实例用户db2inst1登录数据库;
   使用命令db2 update dbm cfg using sysadm_group dasadm1给管理员用户组dasadm1赋予SYSADM权限;
   使用命令db2 connect to databaseName连接数据库;
   使用命令db2 grant secadm on database to user dasusr1给管理员用户dasusr1赋予SECADM权限;
   使用命令db2 disconnect pom_ct断开当前数据库的连接;
   使用命令db2 connect to databaseName user dasusr1 using 123456使用管理员用户dasusr1连接数据库;
   使用命令db2 grant load on database to user db2inst1赋予用户db2inst1 LOAD权限;
  2、常见错误解决方式
  错误码1 解决:SET INTEGRITY FOR table_name IMMEDIATE CHECKED
 错误码3 解决:LOAD FROM *.txt OF DEL TERMINATE INTO 表名
  3、临时禁用外键
  共有三种方式
  1)set integrity for table_name off
   set integrity for table_name foreign key immediate unchecked
  2)禁用:ALTER TABLE <table-name> ALTER FOREIGN KEY <constraint-name> NOT ENFORCED
   启用:ALTER TABLE <table-name> ALTER FOREIGN KEY <constraint-name> ENFORCED
  
  3)禁用:ALTER TABLE TABLENAME DISABLE CONSTRAINT CONSTRAINTNAME;
   启用:ALTER TABLE TABLENAME ENABLE CONSTRAINT CONSTRAINTNAME;
  
4、错误清单及解决方式
  1) SQL30081N检测到通信错误。正在使用的通信协议:"TCP/IP"。正在使用的通信API:"SOCKETS"。检测到错误的位置:"172.16.2.140"。 检测到错误的通信函数:"connect"。协议特定的错误代码:"10060"、"*"、"*"。SQLSTATE=08001
  解决:
  找到此C:/WINDOWS/system32/drivers/etc/路径下的hosts文件,并用记事本打开
  在文件中添加你要连接的服务端主机的IP及 主机名:如127.0.0.1       localhost
  2) 找不到数据库别名或数据库名称""或数据库别名 "" 已存在于本地数据库目录或系统数据库目录中。
  解决:
  db2 list database directory   查看系统数据库目录,看不到要找的数据库,表示该数据库不在系统数据库目录中
  db2 list database directory on D:(在系统数据库目录找不到的情况下执行该指令,这里是盘符d),然后发现有sample和source的别名。说明在本地数据库目录中。
  db2 catalog database 数据库名 on d: 将数据库编目到节点上
  db2 drop database 数据库名 删除数据库
  3)db2在更新表结构的时候报以下错误

  SQLCODE: -443, SQLSTATE: 38553
打开db2命令行,切换到本机db2的/bnd”目录下,
  1、db2connect to 数据库名 user 用户名 using 密码

  2、执行db2 bind db2schema.bnd blocking all grant public

  
页: [1]
查看完整版本: DB2使用笔记