db2视图赋权问题

db2视图赋权问题,第1张

再看看报错,按描述有点“怪”。如果确定赋权失败是因为“无权限”就用如下SQL查一下看看。

db2 "select PRIVILEGE, GRANTABLE from sysibmadm.privileges where authid='user_name' and objectname='view_name' and objectschema='view_schema' and objecttype='VIEW'"

首先在windows安装完DB2以后,打开DB2的命令行,然后依次执行下面代码.

db2 "CREATE DB TestDB using codeset UTF-8 territory us"

db2 "UPDATE DB CFG FOR TestDB USING applheapsz 4096"

db2 "UPDATE DB CFG FOR TestDB USING app_ctl_heap_sz 1024"

db2 "UPDATE DB CFG FOR TestDB USING stmtheap 8192"

db2 "UPDATE DB CFG FOR TestDB USING dbheap 2400"

db2 "UPDATE DB CFG FOR TestDB USING locklist 1000"

db2 "UPDATE DB CFG FOR TestDB USING logfilsiz 1000"

db2 "UPDATE DB CFG FOR TestDB USING logprimary 12"

db2 "UPDATE DB CFG FOR TestDB USING logsecond 20"

db2 "UPDATE DB CFG FOR TestDB USING logbufsz 32"

db2 "UPDATE DB CFG FOR TestDB USING avg_appls 5"

db2 "UPDATE DB CFG FOR TestDB USING locktimeout 30"

db2 CONNECT TO TestDB

db2 "CREATE BUFFERPOOL icmsbuffer SIZE 1000 PAGESIZE 32K"

db2 "CREATE TABLESPACE icmsspace PAGESIZE 32K MANAGED BY SYSTEM USING ('D:\db2admin\sqlt0003.0') BUFFERPOOL icmsbuffer"(根据实际情况确定是否是D盘下的db2admin\sqlt0003.0目录,如果没有,请先创建)

db2 "CREATE SYSTEM TEMPORARY TABLESPACE ICMSBUF PAGESIZE 32 K MANAGED BY SYSTEM USING ('D:\db2admin\sqlt0004.0') BUFFERPOOL ICMSBUFFER"(根据实际情况确定是否是D盘下的db2admin\ sqlt0004.0目录,如果没有,请先创建)

db2 "DISCONNECT icms"

db2 "TERMINATE"

在开始前 请关闭IBM目录服务器 将上下文切换到IBM目录服务器DB 实例拥有者 一般是ldapdb 用户 比如

在Unix系统里 输入

su ldapdb

在Windows系统里 输入

db cmdset DB INSTANCE=ldapdb

为了调节DB 参数 运行db tunings sh脚本 你可以在这里下载: // sofare ibm /ibmdl/pub/sofare/tivoli_support/misc/Security/AMeB/_am /tuning_guide_scripts tar

或者通过ftp地址

ftp://ftp sofare ibm /sofare/tivoli_support/misc/Security/AMeB/am /tuning_guide_scripts tar

Web页面需要注册用户名和密码

这个脚本的文件系统拥有者必须是DB 实例拥有者 一般就是ldapdb 用户 文件系统组应该和实例拥有者相同(一般是dbsysadm) 脚本必须在DB 实例拥有者的上下文中使用

脚本中的ibmdefaultbp和ldapbp参数控制着DB 的缓冲池 db _turnings sh脚本 设置了DB 缓冲池的建议大小 其他一些可选的设置在脚本的注释里写明了 IBM目录服务器的性能随着DB 缓冲池的增长而提高 然而在大多数情况下 通过这样的参数调节方式 你可以预见不超过 %的性能提高

DB 缓冲池是DB 缓存数据表和索引的地方 DB 用户使用索引来在查询时迅速找到该获取哪个表行项 需要更多信息 请参考IBM Directory Server Tuning Guide

显示和验证当前设置

输入如下命令来显示当前的DB 参数调节设置的结果

db get database configuration for ldapdb | \

egrep DBHEAP|SORTHEAP|MAXLOCKS|MINMIT|UTIL_HEAP_SZ|APPLHEAPSZ

db connect to ldapdb

db select bpname npages pagesize from syscat bufferpools

db terminate

如果某个堆配置参数过低 就将出现一些功能性的问题 输入如下命令来显示当前的堆参数设置

db get db cfg for ldapdb | grep HEAP

下面是一个使用了推荐值的多种堆参数的输出例子显示

Database heap ( KB) (DBHEAP) =

Utilities heap size ( KB) (UTIL_HEAP_SZ) =

Max appl control heap size ( KB) (APP_CTL_HEAP_SZ) =

Sort list heap ( KB) (SORTHEAP) =

SQL statement heap ( KB) (STMTHEAP) =

Default application heap ( KB) (APPLHEAPSZ) =

Statistics heap size ( KB ) (STAT_HEAP_SZ) =

如果一个堆参数小于最小值 输入如下命令将其增大到最小值

db update db cfg for ldapdb using parm_name parm_value

这里parm_name是上文输出中的第三栏的字样(无括号) parm_value是最后一栏的值

如果堆参数设置的过高或者过低 IBM的目录服务器都会以失效来提示出现了问题 在这种情况下 需要查看诸如IBM Directory Server V (IDS )的cli error文件或者IBM Tivoli Directory Server V (IDS v )的db cli log或者其他一些文件 在IDS v 系统中 该文件缺省目录在Solaris的/var/ldap/和AIX的/tmp中 在IDS v 和后来系统中 Solaris和AIX的缺省目录都是/var/ldap

注意db look能够在一条命令下提供关于数据库及其配置的足够多的信息 例子如下

db look d ldapdb u ldapdb p o output_file

output_file是存储结果的文件位置

关于IBM目录服务器运行的警告

DB 参数调节使用了db terminate 如果当该命令发出 IBM目录服务器slapd或ibmslapd进程在运行 它将阻止服务器的部分功能 所有缓存的搜索看起来反应正常 其他的搜索将会简单的变为无结果或者出现错误信息 恢复功能将会重启IBM目录服务器 因此最好是在调节DB 参数时关闭IBM目录服务器

   关于缓冲池内存使用的警告

如果任何的缓冲池被设置过高 DB 将会因为缺少足够内存而无法启动 如果出现该问题将会有一个核心转储的文件 但是通常没有错误信息

在AIX系统里 系统错误日志将会报告一个内存分配失败 查看这个日志请输入

errpt a | more

使用太大的缓冲池大小来恢复一个被分在系统里的数据库将会导致恢复失败 查看//publib boulder ibm /infocenter/tivihelp/v r /topic/ ibm itame doc_ /am _perftune #idtrouble来解决这个问题

如果DB 因为缓冲池过大而无法启动 请重新调节DB 参数

关于MINMIT的警告

lishixinzhi/Article/program/DB2/201311/11229


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11925843.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存