成都网站建设
|
域名注册
|
虚拟主机
|
网站制作
|
网站案例
|
网站优化
|
网站推广
|
企业邮局
|
服务器租用
|
广告设计
首页
服务器租用
企业邮箱
虚拟主机
网站程序
营销推广
网站建设
域名注册
前端开发
网站备案
网站空间
|
独立ip空间
|
双线主机
|
php虚拟主机
|
免备案空间
|
香港空间
|
云空间
|
vps主机
|
服务器租用
|
服务器托管
|
云服务器
|
jsp空间
|
网站空间报价
虚拟主机
主机管理
主机购买
数据库
主机续费升级
FTP上传
服务器租用
web服务器
FTP服务器
服务器托管
服务器租用
vps主机服务器
企业邮箱
企业邮箱优势
企业邮箱设置
邮箱收发问题
邮箱功能讲解
邮箱其他问题
网站程序
java教程
asp程序
asp.net程序
vb编程
php程序
营销推广
seo优化
网站推广
搜索引擎
免费资源
网站建设
网站方案
网站改版
网页设计
网站维护
网站策划
域名注册
域名转入\转出
英文域名
通用网址
中文域名
域名解析
前端开发
html
jQuery
JavaScript教程
css
div+css
网站备案
备案流程指南
备案资料下载
备案常见问题
各省备案要求
移动互联网
wap手机网站
app应用开发
微网站
当前位置:
创新互联
>>
常见问题
>>
虚拟主机
>>
数据库
>>
详解DB2 9.7中值得DBA关注的几点新特性
详解DB2 9.7中值得DBA关注的几点新特性
作者:创新互联 文章来源:虚拟主机 点击数:
更新时间:2013-01-06
首先声明一点,本文不是DB2 9.7新特性的详尽清单,我仅仅列出了针对DBA或开发人员非常重要的清单。
联机方案修改
请看Burt关于联机方案修改的文章,地址:httpwww.ibm.comdeveloperworksdatalibrarytecharticledm-0907db2outagesindex.html。
CGTT – 创建全局临时表
现在可以创建全局临时表,再也不用在每次会话中声明临时表了,全局临时表有以下几个好处:
1、CGTT根据授权控制
2、可以在CGTT上定义视图,索引和触发器
3、CGTT和DGTT可以包括LOB数据类型
CREATE GLOBAL TEMPORARY TABLE DGTT_TABLE ( EMP_ID INTEGER, HIRE_DATE TIMESTAMP(3)? )? 参数标记
存储过程中的参数可以有默认值。
在调用语句中,你可以直接使用默认值,跳过参数的赋值。
命名参数允许按名称,以任何顺序赋值。
DB2中的SSL连接
DB2允许在Java客户端和
服务器
之间使用SSL连接,但需要同时对客户端和服务器进行配置才能正常使用。
服务器端配置
使用iKeyman GUI工具创建一个证书数据库,即KeyStore文件;
将你从证书颁发机构购买的服务器数字证书导入到证书数据库;
设置下面的DBM配置参数;
◆ SSL_SVR_KEYDB:密钥存储文件
◆ SSL_SVR_STASH:Stash文件
◆ SSL_SVCENAME:SSL端口
另外,选择一个密码套件
◆ SSL_CIPHERSPECS:允许的加密套件
◆ SSL_VERSIONS:允许的SSLTLS版本
开启实例SSL通信功能
db2set DB2COMM=SSL或db2set DB2COMM=SSL,TCPIP
客户端配置
使用ikeyman GUI工具创建一个签名证书
数据库
;
将你从证书颁发机构购买的服务器数字证书导入到证书数据库。
修改连接属性
.... properties.put(sslConnection, true); System.setProperty(javax.net.ssl.trustStore, homedb2inst1client.jks); System.setProperty(javax.net.ssl.trustStorePassword, myPassword); .... con = java.sql.DriverManager.getConnection(url, properties); SSL握手是如何工作的?
客户端请求一个SSL连接,列出它的SSL版本和支持的加密套件;
服务器使用一个选定的加密套件进行响应;
服务器将它的数字证书发给客户端;
客户端验证服务器的证书(服务器验证);
客户端和服务器安全地协商一个会话密钥;
客户端和服务器使用前面选定的密钥安全地交换信息。
XML增强
在XML处理方面有一些增强,值得关注的是:
对pureXML的完整支持;
XDA对象中的XML文档也可以压缩;
XML索引在线重组;
UDF中可以使用XML列;
MDC表中可以使用XML列;
来自查询CLP命令的DECOMP:为了拆分XML文档,可以使用DECOMPOSE XML DOCUMENTS IN select_statement XMLSCHEMA xmlschemaname;
来自查询存储过程的DECOMP:sysproc.xdb_Decomp_XML_From_Query;
ADMIN_IS_INLINED和ADMIN_EST_INLINE_LENGTH可以用于了解XML或LOB是否内联或其长度。
DECOMP示例:
DECOMPOSE XMDOCUMENTS IN 'SELECT DOCID, SALESDOC FROM ABC.SALESTAB' XMLSCHEMA ABC.SALES MESSAGES homemyiderrorserrorreport.xml CALXDB_DECOMP_XML_FROM_QUERY ( 'ABC', 'SALES', 'SELECT DOCID, SALESDOC FROM ABC.SALESTAB', 0, 0, 0, NULL, NULL, 1, hnumInput, hnumDecomposed, herrorreportBuf); 注意:XDA=存储XML文档,且在基础表中没有内联的对象。
CLPPLUS vs SQLPlus
DB2有一个和Oracle的SQLPlus类似的工具,叫做CLPPlus,如果你知道怎么用SQLPlus,那你一定会用CLPPlus。
DB2中的PLSQL
这个听起来似乎最能吸引人们的目光,试想一下你在DB2中使用Oracle PLSQL的感觉,记住Oracle已经有20年的PLSQL开发经验,因此与Oracle比起来还是有差距的,但相信IBM会越做越好。
DB2中的PLSQL编译器是天生的,不是什么屏蔽层,不是将PLSQL转换成DB2 SQL PL,因此可以在代码级调试PLSQL。
支持的DBMS包:
DBMS_OUTPUT
UTL_FILE
DBMS_ALERT
DBMS_PIPE
DBMS_JOB
DBMS_LOB
DBMS_SQL
DBMS_UTILITY
UTL_MAIL
UTL_SMTP
支持的PLSQL特性
所有语言逻辑支持,如IF, WHILE =等;
异常 - Trycatch处理;
用户定义的异常;
常数变量 – 变量不能被设置;
单步调试查询结果集;
单步调试游标结果集;
%TYPE – 锚标数据类型;
%ROWTYPE – 锚标行类型;
BULK COLLECTFETCH – 将结果集聚集到数组中;
FORALL – 将数组输入到SQL语句;
AUTOMONOUS事务 – 在一个独立的TX中执行一个存储过程;
匿名块;
标量函数;
存储过程;
包;
触发器;
包上的同义词。
DB2中的Oracle类型:
NUMBER VARCHAR2 - NULL = '',尾部空白敏感整理 TIMESTAMP(n) - 0 (date + time) = N = 12(日期+时间+皮秒) DATE – 年到秒,sysdate BOOLEAN INDEX BY VARRAY Row Type Ref Cursor – 允许传递和预定义游标
DB2中重要的Oracle函数部分清单
TO_CHAR, TO_DATE, TO_TIMESTAMP, TO_NUMBER, TO_CLOB EXTRACT, ADD_MONTHS, ... INITCAP, RPAD, LPAD, INSTR, REVERSE, ... DECODE, NVL, LEAST, GREATEST, BITAND DB2中的Oracle SQL清单 CONNECT BY (+)-join DUAL ROWNUM NEXTVALCURRVAL MINUS Unnamed inline views TRUNCATE table Public synonym CREATEd temp table 职责分离
SYSADM在DB2中当上帝的日子一去不复还了,现在各个角色的分工非常明确。
有了数据库级的SECADM后,赋予SYSADM的DBADM肯定会移除了;
SECADM现在可以被分配给ROLE和GROUP;
SECADM现在可以授予取消数据库和对象认证;
DBADM可以按这种方式创建,因此它不能看到数据,也不能执行授权撤销授权;
DBADM不能获得间接授予的权限;
创建了新的权限,如EXPLAIN, DATAACCESS, ACCESSCTRL, SQLADM, WLMADM。
自动存储
新增了一些自动化存储方面的功能,值得关注的是:
当现有存储路径被填满后,你可以在线增加一个存储路径,如果你想跨4个存储路径条带化数据以获得高并行能力,可以使用ALTER TABLESPACE myts REBALANCE命令重新平衡数据,另外还可以使用ALTER TABLESPACE myts REDUCE命令减小高水位标记;
你可以使用ALTER DATABASE DROP STORAGE PATH ON 'path1'删除一个存储路径,存储路径被修改成DROP PENDING状态,所有的表空间被标记为“基本存储路径已经被删除”,当所有使用它的表空间通过ALTER TABLESPACE ts1 REBALANCE重新平衡后,DROP PENDING存储路径被移除;
ALTER TABLESPACE ts1 REDUCE命令将会释放截留的空间,不允许高水位标记低于早前的DB2版本;
你可以将非自动化存储数据库转换成自动化存储数据库:
◆ALTER DATABASE ADD STORAGE支持非自动化存储数据库;
◆上面的命令给数据库增加一个存储池;
◆它允许使用自动化存储创建新的表空间。
◆你可以将非自动化存储DMS表空间转换成自动化存储表空间:
◆ALTER TABLESPACE … MANAGED BY AUTOMATIC STORAGE;
◆来自新存储路径的新增长被添加到数据库中;
◆旧容器可以使用DROP或REBLANCE移除。
使用自动化存储,可以从旧的DMS执行REDIRECTED RESTORE恢复到新表空。
在线表移动
在线表移动可以用于许多环境:
你想在线重组或重新分配时;
想做在线表压缩时;
在线改变页面尺寸;
在线转换到大表空间;
将数据索引长数据移动到新的不同的表空间;
增加或移除列,修改列数据类型,扩充列;
增加修改MDC尺寸,范围分区或分区键。
在线表迁移是通过系统存储过程ADMIN_MOVE_TABLE()完成的,这个存储过程允许将数据从现有表迁移到新表对象中,数据移动后,在源表上使用SELECT,INSERT,UPDATE和DELETE操作仍然有效。
这个存储过程分为4个步骤:
1、初始化
选择拷贝索引,创建触发器,创建目标和临时表。创建触发器的目的是捕获源表上的改变。
2、拷贝
一行一行地从源表拷贝到目标表中,也可以使用LOAD。
3、重放
重新从源表拷贝捕获到临时表中的行,可能需要多次往返重复的操作。
4、交换
用于交换的目标表已准备就绪,索引等已经创建完毕,源表为最后的重放以共享模式锁定,然后重命名源表,再将目标表重命名为源表名。
压缩MDC表
DB2中的MDC表有点特殊,通常如果没有删除操作,它一般不需要重组,删除操作让MDC表变得稀疏,如何回收那些未使用的页面回到表空间,以便让其它表可以使用?使用下面的命令即可:
REORG TABLE mdctable RECLAIM EXTENTS ONLY 上面的命令效率非常高,因为它实际上没有进行重组,只不过在MDC表的块映射中将未使用的块标记成了未分配的。
内联LOB
通过内联LOB压缩空间,如:
CREATE TABLE … EMP_PHOTO BLOB(10MB) INLINE LENGTH 20000; ALTER TABLE … ALTER COLUMN EMP_PHOTO SET INLINE LENGTH 20000; LOB比内联长度超出的部分存储在LOB表空间上,但其它的将被单独内联存储,在表中可以有混合的内联或非内联LOB。
即使没有设置内联长度,DB2也可以内联LOB,当一个LOB的真实长度低于其描述符的长度时会发生。
局部范围分区索引
如何更改在Ubuntu下的MySQL数据库存储位置
:上一篇
unique列上插入重复值的MySQL解决方案
:下一篇
数据库相关文章
sql2012无法更改设计数据库...
如何更改在Ubuntu下的MyS...
在T-SQL中使用临时表的注意事...
详解MySQL数据库提升性能的八...
MSSQL使用说明
MYSQL使用帮助
MSSQL和MYSQL有什么区别...
如何限制Mssql数据库占用最大...
创新互联专注虚拟主机/网站空间多年,高速、稳定、安全有保障!虚拟主机首选创新互联。
移动互联网
|
网站备案
|
前端开发
|
域名注册
|
网站建设
|
营销推广
|
网站程序
|
虚拟主机
|
企业邮箱
|
服务器租用
|
热门搜索
服务电话:028-86922220 13518219792 公司地址:成都市太升南路288号锦天国际A幢10楼2号
企业邮箱:
service@cdxwcx.com
版权所有:成都创新互联科技有限公司 蜀ICP备09010846号
成都网站建设
DB2 9.7新特性 DB2 9.7中值得DBA关注的几点新特性