首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 数据库 第二书店 程序员

xuejinyoulan/ 


共2728个网摘 [ 1  2  3  4  5  6 ... 91 ]  下一页  |  访问xuejinyoulan的个人空间

WebLogic Server实现双向SSL

xuejinyoulan收录,使用标签:中间件,时间:2008-9-27 15:05:59 | 相关网摘我也收藏

来源:ZDNET软件频道

目前网络上很多描述实现SSL的文章,但是要么是局限于理论,要么是配置单向SSL的,要么是基于Tomcat的,即便是和WebLogic Server相关的,也没有为读者提供一个可依照实现的操作。本文参考其它文档,主要描述了在Windows下如何实现WebLogic Server的双向SSL配置,并且客户端和服务器端采用了不同的证书来源,希望能够为读者提供一个具有可操作性的参考。

  文中的操作在笔者计算机上完全测试通过。

前期准备
  笔者的操作系统是Windows XP SP2,安装的软件有

  Microsoft Visual Studio 6.0(主要是VC++),安装目录MVS_HOME

  BEA的WebLogic Server 8.1.5,安装目录BEA_HOME

  JDK1.4.2.8,安装WebLogic Server后带有,目录为%BEA_HOME%jdk142_08

  在实现过程中需要的软件有:

  Perl for win32

  下载地址http://www.activestate.com/ActivePerl

  Openssl

  下载地址http://www.openssl.org

  在生成证书和私钥时,我们使用了openssl软件,由于openssl软件在windows上安装需要perl环境,因此我们需要下载Active Perl相关软件,并且需要安装VC++或者Delphi,以便编译安装openssl。

  对于各个软件的初始化设置,主要是设置环境变量,通过“我的电脑”右键,“属性”-“高级”-“环境变量”,添加如下:

  Classpath =%BEA_HOME%weblogic81serverlibweblogic.jar

  INCLUDE =%MVS_HOME%VC98Include

  LIB =%MVS_HOME%VC98Lib

  在Path环境变量中增加(编译openssl使用)

  %MVS_HOME%VC98Bin;%MVS_HOME%CommonMSDev98Bin

  在Path环境变量中增加(java相关命令使用)

  %BEA_HOME%jdk142_08in;

安装openssl
安装ActivePerl
  ActivePerl下载的是.msi文件,点击后可以安装,安装后,在path环境变量中增加

  %PERL_HOME%in

安装openssl
  下载openssl的压缩源文件以后,解开压缩到目录openssl-xxxd目录,通过DOS窗口,进入到openssl-xxxs目录后,执行

  perl Configure VC-WIN32 --prefix=c:/openssl

  其中c:/openssl为准备安装openssl的目录,笔者安装在C:openssl目录下,注意要写作/,否则会在编译cversion.c文件时出现错误信息。

  执行msdo_ms

  如果上述执行没有错误,则创建相应的安装目录,然后执行

  nmake -f ms tdll.mak install

  安装openssl,编译的时间比较长,请耐心等待,并且确认没有错误。

环境变量
  Openssl安装成功以后,需要在path中增加如下的环境变量

  %OPENSSL_HOME%in

  增加环境变量OPENSSL_CONF=%OPENSSL_HOME%openssl.cnf

建立自己的CA证书
在BEA_HOME下建立目录ca,重新启动DOS窗口,进入到BEA_HOME目录下。
生成CA密钥
  openssl genrsa -out ca/ca-key.pem 1024

生成待签名的证书
  openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem

  在生成待签名的证书时,会询问个人或者单位的信息,依次会询问国家,省,地区,组织,部门,名称和邮件信息,并且会询问一些附加信息,作为测试,读者可以依据下面的图片填写,也可以输入自己有关的信息。

用CA私钥自签名
  openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 365

  生成WebLogic Server证书

  在WebLogic Server这边,我们会使用它提供的用于demo的私钥和数字证书,在%BEA_HOME%下创建目录server,拷贝%BEA_HOME%weblogic81serverlib下的CertGenCA.der和CertGenCAKey.der文件到%BEA_HOME%server下。

生成证书,DOS窗口下进入目录%BEA_HOME%执行命令:
  java utils.CertGen password serverCertGenCA.der serverCertGenCAKey.der export

  将会生成CertGenCA.der.pem和CertGenCAKey.der.pem文件

建立keystore,并且将证书和私钥装入keystore
  java utils.ImportPrivateKey servermykeystore password myserver password serverCertGenCA.der.pem serverCertGenCAKey.der.pem

将CA证书导入到验证keystore中
  keytool -import -v -trustcacerts -storepass password -alias my_ca_root -file ca/ca-cert.pem -keystore server/cacerts

  此处如果提示找不到keytool,要看一下JDK in的目录是否在path变量中设置正确。

  如果询问是否“信任这个认证”,输入y回车,可以看到信息说明认证已经添加到keystore中。

显示验证keystore内容
  keytool -list -keystore server/cacerts

  输入密码password(我们前面建立keystore是设置的),显示的内容应该类似如下:

C:ea>keytool -list -keystore server/cacerts
输入keystore密码: password

Keystore 类型: jks
Keystore 提供者: SUN

您的 keystore 包含 2 输入

my_ca_root, 2006-11-21, trustedCertEntry,
认证指纹 (MD5): 38:32:AC:05:D9:4B:80:ED:43:43:9D:C5:2C:58:72:63
显示服务器keystore内容
  keytool -list -keystore server/mykeystore

  输入密码password(我们前面建立keystore是设置的),显示的内容应该类似如下:

C:ea>keytool -list -keystore server/mykeystore
输入keystore密码: password

Keystore 类型: jks
Keystore 提供者: SUN

您的 keystore 包含 1 输入

myserver, 2006-11-21, keyEntry,
认证指纹 (MD5): 3D:1E:C1:67:FF:82:5A:4F:AE:18:63:18:97:3C:8E:0D
配置WebLogic Server
  建立一个新的WebLogic Server的Domain。

  启动WebLogic Server,通过console登录进管理界面,进入“myserver”-“Configuration”-“General”,选中“SSL Listen Port Enabled”复选框,并且设定https的端口为7002,进入“myserver”-“Configuration-Keystores & SSL”,点击“Keystore Configuration”后面的“Change”,选择“Custom Identity and Custom Trust”,如下图设置:

  其中目录可根据自己安装的BEA_HOME进行修改,Pass Phrase部分都输入“password”。

  点击“Continue”,在“Private Key Alias”中输入myserver,Pass Phrase部分依然输入“password”,最后点击“finish”结束。

  回到“myserver”-“Configuration”-“Keystores & SSL”配置页面,点击“Advanced Options”后面的“change”,将“Two Way Client Cert Behavior:”部分修改为“Client certs requested and enforced”。

  应用后重新启动WebLogic Server。

  观察WebLogic Server启动时候的控制台,正确配置后应该有如下类似的信息:
生成客户端IE证书
建立自己的Client目录,例如:client
生成Client密钥对
  openssl genrsa -out client/client-key.pem 1024

生成待签名的证书
  openssl req -new -out client/client-req.csr -key client/client-key.pem

  同样在询问中输入个人证书的一些信息,确定后生成。

用CA私钥签名
  openssl x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey client/client-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 365

生成Client端可以导入的个人证书
  openssl pkcs12 -export -clcerts -in client/client-cert.pem -inkey client/client-key.pem -out client/client.p12

  询问设置导出密码时可以不填写,直接回车。

将client证书导入IE
  在资源管理器中选择文件client.p12,鼠标右键,选择“安装PFX”,在密码页,密码部分可以不输入,选择“标志此密钥为可导出的”的复选框,将证书存储于“个人”区域,成功导入后,在IE窗口显示类似如下:

访问WebLogic Server
  通过 https://serverip:7002/console/ 访问WebLogic Server,虽然服务器设置为需要客户端认证,但是由于我们导入了证书,因此可以访问。





  查看WebLogic Server控制台,可以看到如下信息:

  删除导入的证书,重新使用 https://serverip:7002/console/ 访问服务器,则页面无法打开,控制台显示信息如下,说明客户端证书验证失败:





Spring与WebLogic Portal的基本交互

xuejinyoulan收录,使用标签:中间件,时间:2008-9-27 15:03:15 | 相关网摘我也收藏

来源:dev2dev
简介

  BEA WebLogic Portal提供企业门户基础架构,用于简化门户开发。这包括一个用于开发门户的图形环境,以及基于浏览器的组装工具。本文中使用的版本是BEA WebLogic Portal 8.1 with Service Pack 6。

  Spring Framework鼓励使用分层的架构,通过其控制反转容器,这种架构可以集中配置和控制应用程序对象。Spring提供多种抽象层和集成,但是这个例子只演示了Spring的核心功能。本文中使用的版本是Spring Framework 1.2.8。要了解对Spring的基本介绍,请参见Better J2EEing with Spring(Dev2Dev, 2005年7月)一文。

  本文中考虑了两个用例,它们均专注于Spring提供的核心功能。一个例子演示了如何在WebLogic Portal页面流中使用Spring功能,另一个例子则演示了如何在WebLogic Portal 支持文件中使用Spring功能。

  本文逐个考察了上述两个用例,并描述了如何实现它们。

  演示应用程序的架构

  本文附带了一个演示应用程序,它由一个使用BEA WebLogic Workshop创建的单页面门户组成。它是一个基于文件的门户,有4个portlet,排成2列,构成了一个简单的矩阵,如图1所示。  

  图 1. 带有两类portlet的portle矩阵,以两种不同方式对这两类portlet进行声明性配置。

  其中两个portlet是页面流portlet的实例,而其他两个portlet则是使用Java 支持文件的实例。每个portlet都有自己的BeanName portlet参数。这个参数的值就是Spring bean的名称,这个名称定义在Spring配置文件applicationContext.xml中。我们把其中一个Spring bean实现为简单的Java类,其功能是使用Hashtable保存和检索员工记录,而在一个Java类中实现了其他的Spring bean, 这个类的功能是使用JDBC访问安装的默认数据库,从而保存和检索员工记录。

  这4个portlet实例组成了一个简单的矩阵。一个页面流使用Hashtable bean,而另一个页面流则使用JDBC bean。类似地,一个支持文件portlet使用Hashtable bean,而另一个支持文件使用JDBC bean。两个页面流portlet都是同一个portlet实现的实例。惟一的区别在于portlet参数的值是Hashtable还是JDBC bean。类似地,两个支持文件portlet中也使用了相同的代码。

  下面的例子使用了相同的Spring应用程序上下文,而这个上下文是使用web.xml中的一个Spring ContextLoaderListener项创建的。使用这一项,Spring就会使当前的应用程序上下文成为单独可用的上下文。web.xml文件位于应用程序的WEB-INF目录中,而且需要另外的侦听器来初始化上下文。

  这就是web.xml中那个另外的侦听器:  

  org.springframework.web.context.ContextLoaderListener    

  默认情况下,Spring会查找一个位于相同WEB-INF目录下名为applicationContext.xml的应用程序上下文配置文件。对于此演示应用程序,文件定义了两个员工服务bean,其中分别包含对两个员工bean的引用。这两个员工服务的定义是一样的,除了员工服务类名之外。一个bean引用了EmployeeServiceHashtable类,而另一个bean引用了EmployeeServiceJDBC类。这两个类均实现了EmployeeService接口。

  页面流用例

  页面流定义了一个JSP,它带有一个表单,用于接受用户输入的员工ID以便进行查找。这个表单提交给一个Employee Lookup动作,该动作将会检索在portlet参数中指定的Spring bean。如果找到员工信息,就会把员工对象转发给JSP,然后JSP就会显示该员工的详细信息。

  我们编写了一个便捷的方法,用于获取Spring应用程序上下文。这就是上面使用ContextLoaderListener创建的单独应用程序上下文。下面给出这个便捷方法的代码:
  WebApplicationContext getSpringContext() {

  return WebApplicationContextUtils.getWebApplicationContext(

  getServlet().getServletContext());

  }


  下面是员工lookup 动作的代码:
  PortletBackingContext context =

  PortletBackingContext.getPortletBackingContext(getRequest());

  PortletPreferences preferences =

  context.getPreferences(getRequest());

  EmployeeService service= (EmployeeService) getSpringContext().

  getBean(preferences.getValue("BeanName",""),

  com.bea.spring.example.EmployeeService.class);

  Employee emp = null;

  Forward f = null;

  try {

  emp = service.getEmployee(Integer.parseInt(form.employeeLookupId));

  f = new Forward("success", "Employee", emp);

  }

  catch(Exception e) {

  f = new Forward("notFound");

  }

  return f;

  员工查找动作的前两行代码使portlet参数选择变为可用。接下来的一行使用便捷方法获取Spring上下文和参数选择,以便获得bean的名称。Spring getBean()方法返回指定的bean。把类名传递给getBean() 方法是可选的,但是这样做可以实现类型安全,确保返回的对象真正实现了EmployeeService接口。在try块中,员工服务查询了用户在前面表单中输入的员工ID。

  这段代码演示了如何协同使用Spring和WebLogic Portal;它并不知道哪个bean被实例化,只是要求bean实现EmployeeService接口。Portlet参数提供bean的名称,而applicationContext.xml提供bean的定义。Spring框架负责提供bean,而页面流负责获得和显示搜索结果。

  支持文件用例

  与页面流的例子一样,JSP给出一个表单,便于用户输入要查找的员工ID。然而,这个JSP使用handlePostbackData()方法提交到一个Java支持文件。这个方法经历同样的步骤,从Spring应用程序上下文获得portlet参数、Spring应用程序上下文和指定的bean。作为结果的Employee对象以属性的形式附加在请求上,以便于随后进行显示。

  下面是Java支持文件中的代码:
  PortletBackingContext context =

  PortletBackingContext.getPortletBackingContext(request);

  PortletPreferences preferences = context.getPreferences(request);

  String source=(String)preferences.getValue("BeanName","");

  WebApplicationContext wac =

  WebApplicationContextUtils.getWebApplicationContext(

  request.getSession().getServletContext());

  EmployeeService service = (EmployeeService)wac.getBean(source,

  com.bea.spring.example.EmployeeService.class);

  try

  {

  request.setAttribute("Source",source);

  request.setAttribute("Employee",

  service.getEmployee(Integer.parseInt(

  request.getParameterValues("employeeId")[0])));

  }

  catch(Exception e)

  {

  e.printStackTrace();

  return false;

  }

  return true;

  “Source”属性仅用于传递portlet参数中指定的bean名称。与页面流的例子一样,这段代码不知道哪个bean被实例化,只是要求bean实现EmployeeService接口。

  结束语

  这个演示应用程序说明了如何协同使用BEA WebLogic Portal和Spring框架。两个用例演示了如何使用portlet参数和Spring XML配置文件来控制将哪个bean实例化。这种方法让门户可以在应用程序上下文中利用Spring bean提供的功能。结合这两种技术所带来的强大功能可以帮助开发人员交付灵活的应用程序。


中间件技术相关产品分类及其发展趋势

xuejinyoulan收录,使用标签:中间件,时间:2008-9-27 15:00:20 | 相关网摘我也收藏

出处:RFID中国论坛
中间件技术已经成为应用系统的支撑。相对于操作系统与数据库而言,中间件与应用系统的关系更为密切,因此,应用系统的发展与中间件技术的发展互为因果。应用系统的需求就是中间件技术发展的风向标。

  从2003年应用发展的情况看,许多传统的领域如金融、电信等大型企业的核心业务系统的建设已基本完成,基本数据源已经形成,并继续向互联网领域过渡。新的业务系统如决策系统、增值业务系统等将逐步展开。而在政府领域及中小企业领域,信息系统的发展相对滞后,其基础业务系统的建立正在进行或刚刚开始。同时,信息系统建设的地域性差异很大,沿海地区与内陆地区都有很大差异。由于不同的应用系统类型需要不同的中间件技术,应用发展的不均衡性也导致中间件技术的多样化发展。

  中间件的分类方法繁多,为了便于说明问题,根据2003年前后的发展状况,我们姑且把中间件分为两大类:一类是底层中间件,用于支撑单个应用系统或解决单一类问题,包括交易中间件(TPM)、应用服务器(WAS)、消息中间件(MOM)、数据访问中间件(UDA)等;另一类是高层中间件,更多用于系统整合,包括企业应用集成中间件(EAI Suites)、工作流中间件(Workflow)、门户中间件(Portal)等,它们通常会与多个应用系统打交道,在系统中的层次较高,并大多基于底层中间件运行。 这些种类的中间件,根据应用的场景及发展轨迹的不同,将继续保持多样化发展,并不断衍生出新的格局。

  底层中间件持续走稳

  在强势行业新应用中,特别是在政府、中小企业的基础应用系统的建设中,底层中间件将得到更广泛的应用。作为B/S结构应用基础设施,应用服务器在市场上大行其道。由于应用服务器的标准完备,所遵循的主要规范EJB及J2EE逐渐走向成熟,提供此类产品的厂商又众多,因此竞争也最激烈,其市场价格也会持续走低,继续保持“物品化”的趋向——即产品价格平稳走低,利润增长依赖于增值服务。

  应用服务器由于基本上继承了交易中间件和消息中间件的功能特性,在采用B/S结构及非传统编程语言(C、C++等)的应用中,应用服务器在逐渐蚕食交易中间件及消息中间件的一部分市场,导致后两种中间件在B/S市场中增长放缓。

  作为历史最长、最成熟的中间件,交易中间件在对效率、可靠性等方面要求严格的关键任务系统中仍具有明显优势,在金融、电信、证券等许多行业的核心业务还无法采用B/S结构的情况下,仍将占有重要地位。

  消息中间件的定位、功能及稳定性非常出色,在需要数据可靠传输的系统中牢牢占据一席之地。同时,在各行业的单一应用系统建立起来以后,应用整合已成为新一轮应用系统建设的热点,其中消息中间件扮演了重要的角色。根据Gartner的报告,在各种应用整合的技术中,基于集成代理套件(专用EAI软件)的应用整合技术将成为最主流的技术,而集成代理套件的应用通常都离不开消息中间件。

  数据访问中间件一直是在中间件技术的边缘上,独立的产品不多,大都由数据库厂商随数据库产品一起提供。而中间件与数据库之间的接口标准,如XA及JDBC、ODBC等已经非常成熟。

  高层中间件成为市场新宠

  在单一或基础应用系统已经逐渐成熟的领域,新的应用热点就是对应用系统的整合,并进而实现决策分析系统、增值业务系统等新的建设项目,使企业能够进一步挖掘信息和对外提供多元化的服务。在政府行业,由于具有业务种类繁多、变化快、机构庞杂等特点,使得电子政务虽然不像电信、金融系统那样对系统效率、可靠性等要求甚高,但由于其业务及流程的复杂程度以及变化速度更甚于金融、电信等应用,对中间件软件的功能提出了新的、更高的要求。

  在上述领域的应用系统,需要大量高层中间件的支撑。因此,EAI软件、工作流系统、Portal等已经逐渐成为行业应用的新宠。这些新的中间件通常都不是单一的中间件产品,而是多种中间件技术的融合,需要融合消息传输、事务处理、流程整合、构件化、应用服务器等中间件技术。Web Service技术将融合到应用服务器、EAI软件、工作流系统、Portal等中间件软件中。由于这些中间件技术更加复杂,更加贴近应用,因此需要更多的专业服务,当然他们的单位价格也大大高于底层中间件。

  从2003年的发展来看,高层中间件已经成为许多领域应用的不可或缺的基础架构软件,并因其价值巨大,已成为中间件厂商新一轮竞争的焦点。

  新技术与产品的推出速度放缓

  随着各种中间件技术及产品粉墨登场,中间件技术已经逐渐走向成熟。同时受全球IT不景气的影响,特别是互联网所带来的经济泡沫破灭以后,IT技术的发展又回到理性的轨道上来了,不再一味地更新技术,使用户无所适从,而是更加有节奏、更加踏实地去解决用户的问题。在中间件技术领域,短期内也不会再出现革命性的技术,中间件技术将向着深入、实用、整合的方向发展,而且要持续相当长的一段时间。因此,用户将会更多采用现有的中间件技术。

  实用化是重要的发展趋势

  当前,中间件技术发展的动向是更加适应应用系统的要求,贴近应用,与应用的发展同步。软件平台就是中间件技术发展的一个明显趋势。

  中间件技术的诞生是为了用自身的复杂换取应用开发的简单,但目前的中间件技术本身已经有过于复杂和过于通用的倾向,使得用户在选择和使用时遇到很多麻烦。因此,如何使中间件技术能更简便、明了地满足应用的需要,将成为中间件技术的一个发展方向,也就是中间件软件自身需要整合和调整。一方面,中间件需要提供满足个性化应用的解决方案,形成一种特别适用的支撑环境;另一方面,中间件需要整合,使应用只需面对一个可以解决问题的软件平台,而非一大堆中间件产品。

  当然,对平台整合的理解也不尽相同。国外倾向于把各种中间件进行整合,形成基础架构平台;而国内倾向于除基础架构平台以外,把中间件以外的适应于特定行业应用的通用应用构件融合进来,成为基础应用构件平台,形成贴近行业应用的个性化应用支撑平台。不管如何理解,中间件技术的发展将会更加贴近应用,更加实用。

  在面向某一领域或所谓“垂直市场”的中间件技术也得到了迅猛发展,最典型的例子就是移动中间件。由于移动通信技术及应用将在未来几年内保持强劲的发展势头,各种适合移动应用使用的中间件技术将得到广泛应用。


实例之Visual C#中实现DB2数据库的编程

xuejinyoulan收录,使用标签:数据库,时间:2008-9-27 14:49:38 | 相关网摘我也收藏

来源:比特网
在Visual Studio.NET Beta 1版本中访问IBM DB2等非SQL Server数据库通常是使用ADO.NET的ODBC方法,而在Beta 2中则改用OLE DB方式存取数据库。

Beta1中连接字符串主要需声明数据库的ODBC的DNS名字,但Beta 2中的OLE DB连接的字符串就较复杂了,使用的类也不相同。由于DB2等数据库在大型机等应用中使用非常广泛,.NET自然会全力支持此类编程开发,为此,下文将逐步阐述OLE DB的DB2开发。

OLE DB for DB2驱动

首先,Visual Studio.NET和Windows 2000 Server中并未直接提供DB2的OLE DB驱动,因此需下载Microsoft Host Integration Server 2000软件,该软件包中含OLE DB Provider and ODBC driver for DB2,需下载Server端软件包,并在安装时选择安装Data Integration,安装完成后就可使用其OLE DB的DB2驱动了。

设置数据库连接

首先,我们需配置好DB2的客户端设置,打开视图选单项中的服务器资源管理器,在其数据连接中新增一个连接,指定程序选项时选择Microsoft OLE DB Provider for DB2,下一步连接选项中,填写如下信息:

Data Source: QCDB(请酌情修改)
Network:TCP/IP
IP Address:数据库服务器地址
Network Port:DB2服务端口
Username:数据库访问权限的用户名
Password:该用户口令
Database initial Catalog:QCDB
Package collection:QCDB
default schema:Userid


下一步高级选项中选各自国家语言对应的code page及CCSID,最后按确认键完成创建连接。

假设QCDB这个DB2数据库中有一名为address的新数据表,其包含四个字段:name、email、age和address,我们可用服务器资源管理器打开上述连接及该数据表,可输入数条中文记录,确定中文字符能否正常显示。

为项目增加数据库连接

用Visual Studio新建一个ASP.NET项目,激活服务器资源管理器的上述连接,用鼠标将该连接拖至新建的Web Form上,则OLE DB需要的连接字符参数全部自动写入Web Form程序中,上述连接生成的语句如下:



this.oleDbConnection1.ConnectionString
= @Provider=DB2OLEDB;
Cache Authentication=False;
Integrated Security=;
Password=freebsd9;
Persist Security Info=True;
User ID=userid;Initial Catalog=qcdb;
Data Source=qcdb;Mode=ReadWrite;
Extended Properties=;
APPC Remote LU Alias=;
APPC Local LU Alias=;
APPC Mode Name=QPCSUPP;
Network Transport Library=TCPIP;
Host CCSID=37;PC Code Page=1282;
Network Address=172.23.169.1;
Network Port=4444;Package Collection=qcdb;
Default Schema=userid;Alternate TP Name=;
Process Binary as Character=False;
Units of Work=RUW

用服务器资源管理器工具生成连接可避免错写各种参数,从而可快速地实现数据库连接。

Web Form显示数据库数据

为Web Form新增一个OleDbDataAdapter类的对象oleDbDataAdapter1,为其选择数据连接时选上面建立的连接如:qcdb.qcdb.userid,选择使用SQL语句,生成SQL语句如:Select ?from address,最后提示完成。再为Web Form新增一个DataSet并命名为dataSet1用来放查询得到的数据。新增一个显示数据用的DataGrid命名为DataGird1,最后在Web Form的程序段中的Page_Init部分中增加如下代码:

oleDbConnection1.Open();
//打开数据库连接
oleDbDataAdapter1.Fill(dataSet1,Address);
//将得来的数据填入dataSet
DataGrid1.DataBind();
//绑定数据
oleDbConnection1.Close();
//关闭连接


编译运行后,可见address表中内容被显示于Web Form的DataBrid中。OleDbConnection1等属性设置都在生成的Web Form设计代码中。

增加数据库数据

在Web Form上新增对应字段数量个数的TextBox,及一个button,为该按键增加Click响应事件代码如下:

this.oleDbInsertCommand1.CommandText
= INSERT INTO ADDRESS(NAME, EMAIL, AGE, ADDRESS) VALUES (+TextBox1.Text+,+TextBox2.Text+,
+TextBox3.Text+,+TextBox4.Text+);
oleDbInsertCommand1.Connection.Open();
//打开连接
oleDbInsertCommand1.ExecuteNonQuery();
//执行该SQL语句
oleDbInsertCommand1.Connection.Close();
//关闭连接


实际编程中,我们需注意SQL语句的单引号问题以及数字和字符串处理问题。



删除数据库数据

在Web Form上新增一个TextBox5及一个按键,要执行删除时,在TextBox5中填入要删除记录的name字段的值,然后按该按键执行删除。该按键代码如下:



System.Data.OleDb.OleDbCommand oleDeleteCommand1
new System.Data.OleDb.OleDbCommand();
this.oleDbDataAdapter1.DeleteCommand
= oleDeleteCommand1;
//声明为oleDb命令
oleDeleteCommand1.CommandText
=DELETE FROM ADDRESS WHERE NAME=+TextBox5.Text+;
oleDeleteCommand1.Connection
= this.oleDbConnection1;
//指明连接
oleDeleteCommand1.Connection.Open();
//打开连接
oleDeleteCommand1.ExecuteNonQuery();
//执行SQL语句
oleDeleteCommand1.Connection.Close();
//关闭连接

对于增加、更新和删除操作后的DataGrid刷新,可执行类似的Select SQL语句即可。

上述代码可供各种非SQL Server数据库编程参考和使用,微软为此提供了如OLE DB Provider for Oracle、AS/400和VSAM等众多驱动,OLE DB方式确实提供了较ODBC方式更为广泛的数据存取范围,如可存取Access库中的数据、邮件系统中的数据、Web上的文本及图形、目录服务等等,符合ODBC标准的数据源就是符合OLE DB标准的数据存储的子集,而且OLE DB的API是符合COM标准和基于对象的API,这些都是较原ODBC方式有大幅改进,从而为综合的数据集成处理提供了更广泛的支持。



通过以上讲解,笔者希望使读者初步了解在Visual Studio.NET中,以DB2为后台数据库时应用系统的开发步骤,也希望读者举一反三,领会思想和方法,以便更好地应用到自己的系统开发中。

上述程序在中文Windows 2000 Server、IBM DB2和Visual Studio.NET Beta 2环境中编译并正常运行。


利用typeperf工具收集SQL Server性能数据

xuejinyoulan收录,使用标签:数据库,时间:2008-9-27 14:47:27 | 相关网摘我也收藏

出处:IT专家网
通常DBA在监控和优化SQL Server数据库DBA,都想利用命令行工具。其中经常要做的一件事情,就是收集服务器性能数据,包括CPU ,内存和磁盘利用率以及SQL Server特定数据。这时你就可以利用TypePerf.exe这个命令行工具来帮你捕获这些性能数据。

  TypePerf.exe是一个命令行工具,包括把Windows操作系统的性能计数器数据输出到命令窗口或写入到支持该功能的日志文件格式中。

  Windows操作系统以对象及其相关联的计数器的形式,提供了非常多的性能数据。例如, SQL Server提供了sqlserver统计对象的详细报告,包括了登录、注销、数据库连接等信息;有些对象摆脱了计数器方式,转化为特定的实例。还是以sqlserver为例:数据库对象详细提供了每一个数据库的数据文件和事务日志文件大小,已使用事务日志的百分比,活动事务等。您可以指定一个单一的数据库或所有数据库结合在一起,作为该实例。

  需要提醒的是,在SQL Server实例有个特殊的含义,即命名实例。

  作为是典型的命令行工具,typeperf也有许多参数供选择,让您根据实际需要进行调整。打开一个命令提示符并输入以下命令:


  typeperf -?


  您会看到下面的输出:

用法:
typeperf {

| -cf

| -q [object]

| -qx [object]

} [选项]

参数:

要监视的性能计数器。

选项:

-? 显示跟上下文相关的帮助。

-f 输出文件格式。默认值是 CSV。

-cf 含有监视的性能计数器的文件,一个计数器一行。

-si <[[hh:]mm:]ss> 示例间的时间。默认值是 1 秒。

-o 输出文件或 SQL 数据库的路径。默认值为 STDOUT。

-q [object] 列出已安装的计数器(无范例)。要列出某个对象的计数器,
包括对象名,如 Processor。

-qx [object] 列出已安装的计数器(带范例)。要列出某个对象的计数器,
包括对象名,如 Processor。

-sc 要收集的示例数量。默认值为,在 CTRL+C 之前都进行采样。

-config 含有命令选项的设置文件。

-s 在计数器路径中没有指定服务器的情况下要监视的服务器。

-y 不用提示对所有问题都回答 yes。


使用typeperf的最终目标,是采用一种可重复的方式来捕捉性能数据。例如:指定您选择在一个批处理文件,执行特定操作;默认情况下该命令执行后,性能数据将输出到命令窗口,您也可以使用- f选项指定一个CSV文件(逗号分隔值) , TSV文件(制表符分隔值)将性能数据输出到指定文件中。

  使用typeperf捕捉性能数据之前,我们需要明确哪些性能对象时可用的。采用以下两个选项,您可以获得指定的机器上的性能对象列表:

  -q [object] 列出已安装的计数器(无范例)。
  -qx [object] 列出已安装的计数器(带范例)。
  在上述两个选项中,[object]是可选的参数,如果指定了该参数,将对对象列表进行过滤。默认是显示当前机器上的性能对象,你可以用-s 来指定其他的机器。

  输入以下命令可以获得SQL Server缓冲管理器对象的所有技术器列表:


  TYPEPERF -q "SQLServer:Buffer Manager"


  你可以看到类似以下的输出内容:


  \SQLServer:Buffer Manager\Buffer cache hit ratio
  \SQLServer:Buffer Manager\Page lookups/sec
  \SQLServer:Buffer Manager\Free list stalls/sec
  \SQLServer:Buffer Manager\Free pages
  \SQLServer:Buffer Manager\Total pages
  \SQLServer:Buffer Manager\Target pages
  \SQLServer:Buffer Manager\Database pages
  \SQLServer:Buffer Manager\Reserved pages
  \SQLServer:Buffer Manager\Stolen pages
  \SQLServer:Buffer Manager\Lazy writes/sec
  \SQLServer:Buffer Manager\Readahead pages/sec
  \SQLServer:Buffer Manager\Page reads/sec
  \SQLServer:Buffer Manager\Page writes/sec
  \SQLServer:Buffer Manager\Checkpoint pages/sec
  \SQLServer:Buffer Manager\AWE lookup maps/sec
  \SQLServer:Buffer Manager\AWE stolen maps/sec
  \SQLServer:Buffer Manager\AWE write maps/sec
  \SQLServer:Buffer Manager\AWE unmap calls/sec
  \SQLServer:Buffer Manager\AWE unmap pages/sec
  \SQLServer:Buffer Manager\Page life expectancy


  输入以下命令可以获得tempdb这个数据库实例所有的计数器列表:

TYPEPERF -qx "SQLServer:Databases" | FIND "tempdb"


  你可以看到类似以下的输出内容:


  \SQLServer:Databases(tempdb)\Data File(s) Size (KB)
  \SQLServer:Databases(tempdb)\Log File(s) Size (KB)
  \SQLServer:Databases(tempdb)\Log File(s) Used Size (KB)
  \SQLServer:Databases(tempdb)\Percent Log Used
  \SQLServer:Databases(tempdb)\Active Transactions
  \SQLServer:Databases(tempdb)\Transactions/sec
  \SQLServer:Databases(tempdb)\Repl. Pending Xacts
  \SQLServer:Databases(tempdb)\Repl. Trans. Rate
  \SQLServer:Databases(tempdb)\Log Cache Reads/sec
  \SQLServer:Databases(tempdb)\Log Cache Hit Ratio
  \SQLServer:Databases(tempdb)\Bulk Copy Rows/sec
  \SQLServer:Databases(tempdb)\Bulk Copy Throughput/sec
  \SQLServer:Databases(tempdb)\Backup/Restore Throughput/sec
  \SQLServer:Databases(tempdb)\DBCC Logical Scan Bytes/sec
  \SQLServer:Databases(tempdb)\Shrink Data Movement Bytes/sec
  \SQLServer:Databases(tempdb)\Log Flushes/sec
  \SQLServer:Databases(tempdb)\Log Bytes Flushed/sec
  \SQLServer:Databases(tempdb)\Log Flush Waits/sec
  \SQLServer:Databases(tempdb)\Log Flush Wait Time
  \SQLServer:Databases(tempdb)\Log Truncations
  \SQLServer:Databases(tempdb)\Log Growths
  \SQLServer:Databases(tempdb)\Log Shrinks


  上面这个实例( - x选项)报告了每个SQL Server数据库所包含的所有的SQLServer:Databases对象(所有与数据库相关联的所有实例)的性能计数器。上面的输出结果,通过FIND管道命令对结果进行过滤,只包含了tempdb数据。

  当您正在使用一个命名的SQL Server实例,性能对象将反映的SQL Server实例的名称。例如我的计算机运行的一个实例的SQL Server 2000 Enterprise Edition的是名为sql2000ee ;则性能对象就被命名为mssql$sql2000ee,而不是上面所示的sqlserver。

  使用- Q或- qx选项,可以获得性能计数器列表,可以将该列表重定向到一个文本文件(如MyCounters.txt),如果你只想捕获其中几个性能计数器,可以编辑该文件。


  TYPEPERF -qx "SQLServer:Databases" | FIND "tempdb" >>MyCounters.txt


  本例中我们对MyCounters.txt 文件进行编辑,编辑后的计数器列表如下图所示:

\SQLServer:Databases(_Total)\DBCC Logical Scan Bytes/sec
\SQLServer:Databases(tempdb)\Percent Log Used
\SQLServer:Buffer Manager\Buffer cache hit ratio
\SQLServer:General Statistics\User Connections
\SQLServer:Locks(_Total)\Lock Requests/sec
\SQLServer:SQL Statistics\Batch Requests/sec


  执行typeperf命令行时,带上- CF选项,这样该命令执行时,就将从制定的文本文件中读取计数器列表了。上面这个命令将从MyCounters.txt这个文本文件中读取计数器信息,并显示技术器数值,每隔一秒钟刷新一次。该命令将一直重复执行,直至用户按下了Ctrl+C快捷键。


  TYPEPERF -f CSV -o MyCounters.csv -si 15 -cf MyCounters.txt -sc 60


  上面这个例子,从MyCounters.txt这个文本文件中读取计数器信息,将技术器数值写入到MyCounter.csv文件中,每隔15秒钟执行一次,共执行60次(15分钟后执行完)。


SQL 2008 FileStream数据类型

xuejinyoulan收录,使用标签:数据库,时间:2008-9-27 14:34:28 | 相关网摘我也收藏

在SQL Server 2008 中,新的FILESTREAM 数据类型,允许像文件和图片这种大型的二进制数据可以直接在NTFS文件系统中进行存储;文档或图片将作为数据库的一部分整体进行维护,并可以维护事务的一致性。FILESTREAM允许大型二进制数据的存储,通常都是由数据库进行管理,并以单独文件的方式在数据库外面进行存储,它可以使用NTFS文件流的API进行访问。使用NTFS文件流API使得文件的访问更加高效,并且可以保持数据库整体的安全性性与备份等特性。

在本实验中,我们将使用FileStream数据类型存储视频文件,并使用代码访问该文件,从而发布在Web上,并使用一个客户端工具进行访问。

创建FILESTREAM存储区

打开C:\SQLHOLS 文件夹,然后打开FILESTREAM目录当中的 “FILESTREAM.ssmssln”文件。
此时,将打开SSMS窗口,并提示连接到服务器,在Server Type中选择“Database Engine”, Server Name中指定”(local)”,然后点击Connect按钮。

返回刚才打开的Windows Explorer 窗口,然后双击DB Data 文件夹。
返回SQL Server Management Studio。

在View 菜单中,选择Solution Explorer。
在Solution Explorer 面板中,双击CREATE DB.sql文件。
查看STEP 1下面的T-SQL语句,选中所有代码,然后点击Execute。

返回Windows Explorer 窗口。
10. 浏览C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA目录,此时,将会看到一个名为‘filestream1’的目录,这是SQL Server 2008 创建出来,用来存储FILESTREAM 数据类型的数据目录。

创建FILESTREAM数据类型

返回SQL Server Management Studio 窗口。
在Solution Explorer 面板中,双击CREATE TABLE.sql文件。
在查询窗口中,选择STEP 2下面的T-SQL语句,然后点击Execute执行代码。
注意,FILESTREAM数据列实际上就是在VARBINARY(MAX)上添加了FILESTREAM属性,并且存储这种数据需要一个uniqueidentifier的数据列作为ID。
选择STEP 3 下面的T-SQL代码,然后执行。

查询FILESTREAM数据

返回Windows Explorer 窗口,并点击工具条上的返回按钮,返回到最开始的FILESTREAM目录。
双击 UploadVideos.bat。
等待上传的结束,然后点击任意键退出命令提示窗口。
返回SQL Server Management Studio 窗口。
选择STEP 4 下面的T-SQL 语句然后执行,将可以看到在数据表中已经有了一些数据,并已经存在FILESTREAM数据。

显示FILESTREAM数据

返回Windows Explorer 窗口。
双击MediaLibrary.sln链接,此时,将打开一个解决方案。
在Solution Explorer中,右键单击default.aspx,点击”View in Browser”。
此时,可以看到一个Web页面,它可以将数据库中刚刚上传的视频加载出来,以列表的方式呈现出来。
点击任意项中的Play 链接。
结束视频播放,关闭Internet Explorer 窗口,返回到视频列表页面中。
点击工具条中的Refresh 按钮。

上传FILESTREAM数据

点击Media Library 页面底部的Browse 按钮。
浏览My Documents -> My Videos ,并选择PGR3_E32005_Xbox360_Video.wmv。
点击Open。
在Comment 文本框中随便输入一些注释。
点击Upload Media按钮。
这时,在列表中将可以看到刚刚上传的视频文件。点击Play 按钮可以查看这个文件。
关闭新打开的Windows Media Player 窗口。
关闭Media Library Internet Explorer 窗口。


查看操作FileStream的程序代码

在Windows Explorer中,双击MediaLibrary.sln。
如果Default.aspx.cs 没有在编辑区域打开,则在Solution Explorer 面板中,右击Default.aspx 文件,然后选择View Code菜单项。
浏览StoreUploadedMediaFile 方法中的9个步骤。
关闭Microsoft Visual Studio 2008。


自定义用于ASP Web站点的 SQL 7.0 数据库

xuejinyoulan收录,使用标签:数据库,时间:2008-9-27 14:31:17 | 相关网摘我也收藏

来源:cndw
本文将演示如何使用SQL 7.0服务器的Enterprise Manager创建、配置一个示例数据库。我们还会演示如何增加具有合适权限的用户,以便可以从Web服务器上访问数据。

要做的第一件事是创建一个新的SQL数据库。操作是:从SQL Server 7.0菜单中启动Enterprise Manager,展开SQL服务器组节点,展开要增加数据库的指定SQL服务器,单击数据库图标,然后从Action(动作)菜单项中选择New Database (新建数据库)。

从Action(动作)菜单项中选择New Database在Database Properties(数据库属性)对话框中,输入新数据库的名称,我们把这个示例数据库命名为 WEBPAGES。 该对话框中可以看到SQL 7.0的一个最强大:不用指定数据库的大小,只需指定初始大小。SQL 7.0会在数据库需要扩大时自动扩展数据库文件,扩展的依据是按照指定的增长尺寸或按当前数据库大小的一定百分比。我们接受系统的缺省值,单击OK,新数据库就创建成功了。

下一步,必须配置这个新数据库,以便使用户能够访问它。至少要给两个用户访问权限:管理这台Web服务器的用户和Webmaster(Web站点管理员)。因为不同的用户对数据库有不同的访问需求,所以我们合理配置数据库的用户以反映不同需求。

要增加新用户,首先需要创建服务器登录。操作是:在选定的服务器节点下,单击Login(登录)图标,从Action(动作)菜单中选择New Login(新建登录),所示,弹出SQL 服务器的登录属性-新建登录对话框。

从Action(动作)菜单中选择New Login(新建登录)在这个对话框中,首先选择 Windows NT 认证单选钮,从下拉列表框中选择你所在的域,然后,在名称编辑框中输入用户名。因为不能浏览查找用户,所以要知道Web服务器的用户名。缺省情况下,微软IIS服务器使用的用户名是IUSR_ServerName(在IUSER_后跟所在服务器的名称)。我们例子中的服务器用户名是IUSR_EARTH ,SQL服务器名称是EARTH 。

输入完用户名后,要指定用户的默认数据库和语言。我们要单击Database Access(数据库访问)选项卡以授予该用户对 WEBPAGES 数据库的访问权,并且检查图5中所示的选项。最后,单击OK,完成用户登录的创建。

指定用户的默认数据库和语言

重复以上过程,创建 Webmaster 帐户。因为没有默认的 Webmaster 用户,所以在创建这个登录前,还要确定哪个用户有权管理Web页面。创建Webmaster登录和创建Web服务器登录的区别在于,除了分配给Web服务器登录的public(公用)数据库角色外,还要给Webmaster用户分配db_owner (数据库所有者)服务器角色。


甲骨文推出HP Oracle数据库机系统

xuejinyoulan收录,使用标签:数据库,时间:2008-9-27 14:28:41 | 相关网摘我也收藏

来源:IT168
北京,2008年9月25日——今天,甲骨文公司首席执行官Larry Ellison在美国旧金山召开的甲骨文全球大会上,面对43,000名参会者揭开了HP Oracle数据库机系统的神秘面纱,这是一款为体现极致高速性能而打造的数据仓库。

这款HP Oracle数据库机系统(HP Oracle Database Machine)把支持网格计算的Oracle数据服务器群和最新的Oracle® Exadata 存储服务器组合在一个机柜内。

HP Oracle数据库机系统的推出得益于甲骨文与惠普之间的长期精诚合作。由于采用更大的管道来传输更少数据,Oracle Exadata存储服务器突破了存在于数据库服务器和传统存储技术上的瓶颈。

对用户而言,要达到大型Oracle数据仓库的极致性能运行效果,并不需要改变现有的查询或商务智能应用环境。

其它Oracle Exadata 产品系列

该产品系列包括两个部分:
HP Oracle数据库机系统已有预置和预先调优,并且已获得Oracle商务智能套件企业版工具和Oracle真正应用集群(Oracle Real Application Clusters)的认证。 客户可以从甲骨文定购完整配置的产品,包括由惠普提供的硬件支持。HP-Oracle数据库机系统是一款专为数据仓库打造的高性能计算机系统,包括由8个数据库服务器组成的网格集群,配备有64个英特尔处理器核心、Oracle 企业版Linux(Oracle Enterprise Linux)和14个Oracle Exadata存储服务器,数据存储容量达到168 TB,与数据库服务器之间的通信带宽达到14GB/秒。

HP Oracle Exadata存储服务器是数据库机系统的关键性能配置,客户可单独购买HP Oracle Exadata存储服务器,并可将存储服务器独立地配置到现有的数据仓库中。HP Oracle Exadata存储服务器拥有行业标准的组件,包括两个英特尔处理器,拥有高达12TB的存储容量,能为每个存储服务器每秒提供1GB数据量的InfiniBand连接率,客户利用它能创建数据仓库解决方案。

HP Oracle Exadata存储服务器使用海量并行处理架构,把查询处理中的数据密集部分从Oracle数据库服务器上分离出来,大大提高了Oracle数据仓库的处理速度。

在数据密集的查询处理上,HP Oracle Exadata存储服务器比现行的Oracle数据仓库快十倍以上,而且有不受限制的I/O可扩展性,数据仓库的优化也变得更加容易,关键任务处理的可用性和可靠性也大大提高。

产品信息

HP Oracle数据库机系统和HP Oracle Exadata存储服务器已于今天上市,客户可以从甲骨文定购完整配置的产品。甲骨文公司负责产品的销售与系统支持,惠普公司则负责硬件的交付与服务。


微软完成DATAllegro收购交易 展开数据仓库发展蓝图

xuejinyoulan收录,使用标签:数据库,时间:2008-9-18 13:09:47 | 相关网摘我也收藏

来自:IT专家网

微软收购DATAllegro的交易事宜已经尘埃落定。业界普遍认为微软收购DATAllegro的举措是将SQL Server深度扩展到数据仓库的水平,以便能够为超大容量的数据提供支持。尽管微软对未来将要推出的基于DATAllegro技术的软件其确切特性始终守口如瓶,但还是确认了产品开发的时间表,那就是该产品计划将在2010年问世。

今年7月下旬微软宣布收购数据仓库设备供应商DATAllegro,两个多月后,微软官方宣布已经顺利完成了整个交易事宜,并开始正式描画双方合作的开发蓝图。

微软已经计划在2010年推出以DATAllegro技术为基础开发的软件,而该软件的社区技术预览版会在接下来的12个月内和大家见面。虽然微软官方对产品的具体特性细节问题避而不谈,但还是给出的具体计划表,希望利用DATAllegro的技术帮助微软将SQL Server服务器的规模扩展至数百TB。

微软的SQL Server产品主管Fausto Ibarra在接受国外媒体采访时称,微软早就在SQL Server 2005和2008的数据仓库可扩展性开发上投入非常大的力度,这次的收购将进一步全面完善微软的商业智能技术,让不同规模的企业在使用SQL Server时都能有效的利用商业智能。

微软这次收购DATAllegro事件曾引发了业内人士的广泛猜测,大家都在想会不会导致数据仓库领域新一轮收购战的出现,也有人发出微软是否要进军硬件产业的疑问。不过Ibarra称微软的收购并不是对硬件战略的追求,微软的核心业务还是软件。虽然微软也有像Xbox这样的硬件设备,但并非专业的硬件供应商。DATAllegro的加入让微软扩大了原本就已经相当豪华的硬件供应商合作圈,也给微软带来了可以投放市场的新软件。


Oracle� WebLogic Server 10g发布新版本

xuejinyoulan收录,使用标签:中间件,时间:2008-9-16 15:34:35 | 相关网摘我也收藏


在7月1日公布了Oracle融合中间件策略及BEA产品整合计划后,甲骨文公司今天又提前发布了其世界第一的战略应用服务器Oracle® WebLogic Server 10g的新版本--Oracle WebLogic Server 10g R3。
  
Oracle WebLogic Server 10g R3是首批Oracle融合中间件技术与BEA系统整合的产品之一。这些产品见证了甲骨文公司在将两个公司的领先技术整合为统一产品过程中取得的飞速进展。
  
Oracle WebLogic Server 10g R3是Oracle WebLogic 套件的基础,也是企业应用软件、服务导向架构、支持性横向扩充应用软件栅格、适应性系统管理及可预测效绩的全面基础。
  
Oracle WebLogic Server 10g R3不仅具有新的特点和性能,同时涵盖了与其它战略性Oracle融合中间件产品的整合,如:Oracle JDeveloper, Oracle Coherence, Oracle TopLink, 以及Oracle Enterprise Manager。
  
Oracle WebLogic Server 10g R3(前称BEA WebLogic Server)是甲骨文公司的战略性应用服务器,此次提前发布展示了甲骨文公司的快速整合能力及合并后的战略执行能力。

  基于标准的热插拔性能
  
Oracle WebLogic Server 10g R3使甲骨文公司的热插拔中间件战略更具灵活性,降低了投资风险。热插拔性使客户能快捷方便地将各种Oracle融合中间件产品部署到当前的IT环境中。此版本同时支持Eclipse、Oracle JDeveloper及Oracle WebLogic Workshop 10.3等多种开发环境。
  
Oracle WebLogic Server 10g R3是应用服务器中的一流产品,其新的性能将支持Java S E 6,具有新的安全标准,包括SAML 2.0, WS-Security 1.1及 WS-SecurityPolicy 1.2。在Web services JAX-WS 2.1、WS-Reliable Messaging 1.1 及WS-Policy 1.5中,Oracle WebLogic Server 10g R3早在2007年3月就可以执行Java EE 5。

  新性能
  
Oracle WebLogic Server 10g R3为开发者和终端用户带来了更高层次的体验,它提供一个轻量级的Footprint以及可选服务的更快速启动,而新的FastSwap功能则提供密封和快速发展-调试-实验的周期。
  
Oracle WebLogic Server 10g R3为Spring的拓展提供支持,Spring开发者将体验Oracle WebLogic更强大、更稳定、易管理的性能。
  
新的HTTP发布/订阅通信特性提供了更具客户化的性能,支持动态更新的Web 2.0风格的用户界面。
  
新版本还支持Java SE 6、JRockit 任务管理,让开发者和终端用户可以体验到更多的卓越性能,并获得更多针对应用软件使用行为及其响应的洞察力。


SQL Server与Oracle实施成本上的差异

xuejinyoulan收录,使用标签:数据库,时间:2008-9-16 15:00:05 | 相关网摘我也收藏

出处:IT专家网
SQL Server 与Oracle这两个数据库,除了在一些技术上有明显的差异外,在实施成本上也有比较大的差别。下面笔者就这方面内容发表一些自己的观点,希望能够跟大家一起交流。

  一、Oracle基于JAVA开发,具有很多开源的工具支持。

  SQL Server 与Oracle数据库两者一个最大的区别,就是其应用平台的差异。现在SQL Server数据库只能够部署在微软的操作系统上。而Oracle数据库其不但可以支持微软的操作系统,而且还可以支持开源的操作系统,如Linux等等。正是因为Oracle数据库是在JAVA技术平台上开发的,所以,让其在跨平台的操作系统上运行成为了可能。

  而因为JAVA程序本身就是免费开源的,如此,很多程序爱好者就可以在这个JAVA平台上开发一些免费的跟Oracle数据库结合很好的辅助工具,如一些报表工具等等。这些免费的开源工具,我们数据库开发人员可以直接拿过来使用,可以为我们节省很多开发时间与开发成本。

  但是,由于SQL Server的开发架构不是基于开源平台的,所以,一些支持SQL Server数据库的第三方工具,往往需要收费的。这无形中就增加了部署SQL Server数据库的成本。

  现在很多Oracle数据库开发人员,在开发数据库系统的时候,都会或多或少的采用一些开源工具。如在报表的设计、菜单的设计方面,都有一些功能性比较强的开源工具。在这些开源工具的帮助下,我们数据库管理人员可以成倍的降低开发时间,从而达到降低开发成本的目的。从这一方面来说,由于Oracle数据库其天然的优势,在第三方工具应用上,从成本的角度考虑,取得了比较大的优势。

  二、Oralce提供了很多收费的工具。

  若单从数据库的价格来说,这两个数据库区别不是很大。但是,在利用Oracle数据库进行开发的时候,往往还需要购买一些其提供的工具才行。如PL*SQL等等。这些都是Oracle数据库提供的收费的数据库开发工具。

  不过,话说回来,这些数据库开发工具虽然需要收费,而且,费用还不低。但是对于大部分数据库开发人员来说,这些工具还真是少不了。因为这些工具的可用性非常的高,可以从很大幅度上减少数据库开发的时间,降低数据库开发的成本。如笔者在开发数据库应用的时候,已经离不开PL*SQL这个工具了。他在笔者做数据库维护、数据库开发、报表制作等方面,都起了很大的帮助。可以说,大部分的数据库开发工作,都可以在这个工具上完成,而且,效率要比在其他工具上高得多。

  而对于SQL Server数据库来说,要在这个数据库系统上开发应用系统的话,一般只需要购买这个数据库软件即可。在数据库软件中,本身就集成了一些免费的数据库开发工具。这就使得我们在开发数据库应用的时候,不需要再花额外的钱去购买其他开发工具。从这一方面来说,SQL Server数据库占优势。

  三、Oracle相关的技术人员比较值钱。

  在人才市场上,企业若要招纳同个档次的Oracle数据库开发或者维护人才的话,往往要比其他数据库管理人员付出更高的人力成本。或者说,同个档次的数据库管理人员,在应聘的时候,Oracle数据库管理人员往往的开价比较高。

  一方面,Oracle数据库设计相对来说比较复杂。这也就导致了Oracle数据库管理员无论是在数据库开发,还是在后续的数据库维护,都需要比其他数据库管理员付出更多。而且,其涉及到的知识也更广泛。

  第二,Oracle数据库管理人员或者开发人员,在掌握Oracle数据库的同时,往往还需要掌握一些Linux等开源操作系统的相关知识。这主要是因为很多大型的Oralce数据库都是在Linux等操作系统上运行的。若光光懂得Oracle数据库,往往是不够的。简单来说,在Linux系统上安装Oralce数据库软件,就比在微软的操作系统上安装要困难,环境变量、系统内核参数等等都要自己进行配置。因此,Oralce数据库管理专家就要比其他数据库管理员值钱。

  第三.从数据库优化方面来讲,Oracle数据库比较复杂,但是,优化的效果比较好。数据库优化是数据库开发与管理人员的一项比较重要的工作。对数据库进行优化后,数据库以及应用软件的执行效率会有一个质的提高。当数据库设计得越复杂,其提高的效果也就越明显。相对于其它数据库来说,Oralce数据库提供了相对较复杂的优化内容。如可以对表空间以及存储文件进行合理规划,以提高输入输出效率;如针对一些大容量的表格,Oralce数据库提供了大表管理模型;在约束、数据类型、查询优化方面,Oracle数据库也提供了一些数据库优化的建议。可见,在数据库优化方面,我们可以看出,Oralce数据库要比其他数据库复杂。所以,对于数据库管理人员的要求也比较高。

正是由于以上原因,所以一般来说,Oralce数据库管理员要比其他数据库管理员值钱一点。

  综上所述,Oracle数据库的实施成本相对于其他数据库来说,可能要高一些。不过,有一个值得我们安慰的就是,若我们能够充分利用现有的一些开源工具,则可以大大的节省我们数据库开发与管理的成本。

  另外,这没有考虑一些隐形的成本。如Oralce数据库加上Linux服务器系统,比起SQL Server数据库加上Windows服务器系统来说,稳定性与安全性较前者好。当然,前期条件是两者都进行合理的配置。若把这些隐性的风险考虑进去,这两个数据库系统部署的时候,谁更加便宜就不好说了。因为数据库应用的安全与稳定性,对于不同的企业来说,其价值往往是不同的。


详解database link的设置和使用

xuejinyoulan收录,使用标签:数据库,时间:2008-9-16 14:58:34 | 相关网摘我也收藏

 
出处:blog

database link,它是用来更方便的一个数据库中访问另一个数据库(包括本地和远程的,道理一样)在本地建立的。即数据库连接只是连到别的数据库的快捷方式。

  一、设置具体有两种

  第一种:

  根据远端的信息用Net Manager设置好能连接远端的服务及监听程序。 

create public database link fwq12
  connect to fzept identified by neu

  using’fjept’//fjept为刚刚配置好的服务名

  第二种:

  直接建立链接:  

create database link linkfwq
  connect to fzept identified by neu
  using ’(DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521))
  )
  (CONNECT_DATA =
  (SERVICE_NAME = fjept)
  )
  )’;


  二、使用

  查询远端数据库里的表

  SELECT……FROM表名@数据库链接名;

  查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。

  附带说下同义词创建:

  CREATE SYNONYM同义词名FOR表名;
CREATE SYNONYM同义词名FOR表名@数据库链接名;

  删除dblink:DROP PUBLIC DATABASE LINK linkfwq。

  假如创建全局dblink,则必须使用systm或sys用户,在database前加public。

  创建Database Link

  1.先创建PUBLIC DATABASE LINK,不用指定用户和密码 

scott@TEST>conn system/test
  Connected.
  system@TEST>CREATE PUBLIC DATABASE LINK orcl USING 'ORCL';
  Database link created.


  2.再在各个用户下创建私有DATABASE LINK(同PUBLIC DATABASE LINK名称相同),指定用户和密码 

system@TEST>conn scott/tiger
  Connected.
  scott@TEST>CREATE DATABASE LINK orcl CONNECT TO scott IDENTIFIED BY tiger;
  Database link created.

  实际上相当于: 

 CREATE DATABASE LINK orcl USING 'ORCL' CONNECT TO scott IDENTIFIED BY tiger;


ORACLE提供的重要的包

xuejinyoulan收录,使用标签:数据库,时间:2008-9-16 14:56:36 | 相关网摘我也收藏

出处:blog

前言

  Oracle提供了几个包,它们可以用来完成很多任务,从内部进程通信到文件I/O,到在PL/SQL块中动态创建和执行SQL语句。所有这些包由SYS用户所拥有—当Oracle最初安装时两个用户中的一个,这些包中最重要的包括:

  DBMS_Alert 不用轮询就允许应用命名并发出警告条件信号的过程与函数

  DBMS_DDL 允许获取PL/SQL程序内部一定数量的DDL语句的过程

  DBMS_Describe 为存储过程与函数描述API的过程

  DBMS_Job 管理BLOBs、CLOBs、NCLOBs与BFILEs的过程与函数

  DBMS_Output 允许PL/SQL程序生成终端输出的过程与函数

  DBMS_Pipe 允许数据库会话使用管道通信(通信频道)的过程与函数

  DBMS_SQL 在PL/SQL程序内部执行动态SQL的过程与函数

  DBMS_Utility

  UTL_File 允许PL/SQL程序读写服务器文件系统上的文本文件的过程与函数

  用DBMS_JOB来实现高级计划任务

  程序有三个参数:需要提交的任务的名字、启动任务的时间已经执行该任务的间隔时间。

  dbms_job.submit(what='statspack_alert.sql;',

  next_date=sysdate+1/24,——在下一个小时后启动

  interval='sysdate+1/24');——每小时运行一次

  问题是,尽管我们在这个程序中指定了任务起始时间和重新执行的时间间隔,但是我们看不到在预定时间运行该任务的机制。例如,如何让一个任务在早上8点启动、每小时 运行一次、最后在下午5点终止呢?

  上面的例子让该任务每小时运行一次,但是为了获得时间间隔,它有必要创建两个其它任务:

  一个任务在下午5点终止(主)任务,

  另一个任务在第二天早上8点启动(主)任务。

  为了实现高级计划任务,我们可以创建自定义间隔,让任务在特定的时间间隔来启动和终止。下面是一个例子: 

Schedule a snapshot to be run on this instance every hour
variable jobno number;
  variable instno number;
  begin
  select instance_number into :instno from v$instance;

 提交任务从6:00开始,每小时运行一次
dbms_job.submit(
  jobno, 'statspack.snap;',
  trunc(sysdate)+6/24,
  'trunc(SYSDATE+1/24,''HH'')',
  TRUE,
  instno);

  提交任务从9:00开始,12小时后运行 
dbms_job.submit(
  jobno,
  'statspack.snap;',
  trunc(sysdate+1)+9/24,
  'trunc(SYSDATE+12/24,''HH'')',
  TRUE,
  instno);

  提交任务从6:00开始,每隔十分钟运行一次
dbms_job.submit(
  jobno,
  'statspack.snap;',
  trunc(sysdate+1/144,'MI'),
  'trunc(sysdate+1/144,''MI'')',
  TRUE,
  instno);

  提交任务从周一到周五早上6:00开始,每小时运行一次 
dbms_job.submit(
  jobno,
  'statspack.snap;',
  trunc(sysdate+1)+6/24,
  'trunc(
  least(
  next_day(SYSDATE,''MONDAY''),
  next_day(SYSDATE,''TUESDAY''),
  next_day(SYSDATE,''WEDNESDAY''),
  next_day(SYSDATE,''THURSDAY''),
  next_day(SYSDATE,''FRIDAY'')
  )
  +1/24,''HH'')',
  TRUE,
  instno);
  commit;
  end;

DBMS_Job包的用法例子:

  1、创建测试表 

SQL> create table a(a date);

  表已创建。

  2、创建一个自定义过程  

SQL> create or replace procedure test as
  2 begin
  3 insert into a values(sysdate);
  4 end;
  5 /

  过程已创建。

  3、创建JOB 

SQL> variable job1 number;
  SQL>
  SQL> begin
  2 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');
  如果要按照分钟来执行最好使用
   'sysdate+5/24/60'执行的间隔时间为5分钟,如果需要10分钟执行,则将5改成10就可以了。 每天
   1440分钟,即一分钟运行test过程一次
  3 COMMIT;
  4 end;
  5 /

  PL/SQL过程已成功完成。

  4、运行JOB  

SQL> begin
  2 dbms_job.run(:job1);
  3 end;
  4 /

  PL/SQL过程已成功完成。 

SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss')时间from a;

  时间

2001/01/07 23:51:21
  2001/01/07 23:52:22
  2001/01/07 23:53:24

  5、修改下次执行时间(10分钟后执行)  

SQL>begin
  2 dbms_job.next_date (:job1,SYSDATE + 10/(24*60));
  3 end;
  4 /

  6、删除JOB 

SQL> begin
  2 dbms_job.remove(:job1);
  3 end;
  4 /
  PL/SQL过程已成功完成。


数据库自动化弥补数据库管理员的短缺

xuejinyoulan收录,使用标签:数据库,时间:2008-9-16 14:24:16 | 相关网摘我也收藏

出处:IT专家网

随着全球数据量的疯狂增长,市场对资深数据库管理员的需求也节节攀升。据美国劳工部的统计报告显示,一直到2016美国IT市场对数据库管理员的需求量增长都将会超过所有其他职业。数据库管理员具备一整套专业性非常强的技术技能,因此其在数据中心里的地位是最难以替代的。

  数据库自动化在数据库未来的应用中将会发挥重要作用。通过实施数据库自动化技术,数据库管理员才能够将工作重点放在解决战略性问题上,而且可以将一些原本要由具备高级技能的工作人员才能完成的工作交给初级技术人员来执行。对商业决策者而言,这绝对是一举两得的事情:资深的数据库管理员可以将身心完全投入到企业创收的战略当中,而资力浅技能低的技术人员则可以相对独立完成数据库维护工作。

  据资深分析机构得到的调查数据表明,目前数据库管理员大部分时间都耗费在执行一些为了维持数据库正常运作的琐碎任务上。高级数据库管理员已经沦为机械操作员:忠实地遵循运行指南,不断地为支持而升级,不停地应付一波又一波的安全威胁。企业的决策者们无疑都把他们看成“数据专家”,而且也意识到数据的深度发掘将左右着一个企业的成败,但是奇怪的是几乎没有人采取行动来改变这种现状,特别是考虑到以下几个方面的情况:

  1) 数据库和数据的数量都在以指数增长的速度膨胀中。

  2) 由于数据库及存储其中的数据不断增长,数据库环境变得越来越复杂。各种各样的数据库补丁、层出不穷的新版本、眼花缭乱的安全更新,这几乎成了数据库管理员所有的工作内容。

  3) 数据库管理员是高流动性的职位。近半数的数据库管理员会在上任两年之内另谋高就。而且,对于企业来说,数据库管理员是最难找人替任的职位。

  考虑到上述的发展趋势,加上美国劳工部的统计报告(数据库管理员职位需求有望增长37%,有能力有资历的数据库管理员将成为市场上的抢手人才),企业应当如何做到未雨绸缪呢?没有其他出路,只能改变信息管理的方式:数据库管理自动化是正道。

  尽管在数据中心,自动化的应用已经相当广泛,但数据库管理员还没有将这些自动化原理应用到数据库管理上。企业需要实施一套集中式的自动化机制来管理其数据库。通过大量自动化工具的应用,高级数据库管理员才可以从“摁按钮”的惯性中解放出来,将这些翻来覆去的琐碎工作任务交给低级技术人员,转而更专注于企业战略和创收任务中。同时,中级技术人员可以担当原来的IT专家的角色。因为自动化消除了人为错误,对于他们的工作表现,企业领导大可放心。

  我们不仅要意识到自动化的潜在威力,而且要积极的实施。实施一个完整的自动化解决方案的第一步就是创建一个可扩展可维护的框架。该框架必须能够满足多种系统需求,例如将实体部署到服务器、在数据库对象的上下文中执行脚本、以及删除数据库对象等等。不过要创建一个完全满足管理复杂数据库需求并易于使用的框架是相当困难的。要想和一个类似于Oracle数据库管理系统或者SQL Server的复杂应用程序相互协调配合,需要运行多个特殊的命令来确定任务的成败。通常,运行这些特殊的命令又需要执行另外一些命令来判断预行动的结果。该框架必须能够不依赖于架构(例如:集群和非集群)和环境(例如:不同的操作系统,不同的数据库版本等等)的情况下处理这些互作。

  除了管理实际的数据库应用程序以外,各个企业还需要将其他一些自己的东西整合到自动化框架里头。这些需求可能会超过核心数据库自动化的复杂程度。很多情况下,企业可以利用原来已经完成的工作来确保这些应用可以纳入到自动化活动的范畴里。

  花费时间和金钱来设计或开发自己的自动化框架和脚本来管理数据库并不是明智之举。要知道并不是只有你才想要实施数据库管理自动化,所以如果你真的在考虑采用自动化管理,那么最好购买现成的解决方案,而不要去自己构建。很多商业解决方案都具有自动化框架,并提供能够适应不同数据库版本、操作系统和架构的预设自动化管理。根据新的不同需求需要进行一系列的工作来更新自动化框架。此外,由于管理软件的升级,调用来管理应用程序的实际代码也是要与时俱进而并非一成不变的。

  如前所述,为数据库管理员实施数据库自动化管理流程对企业决策者来说是一箭双雕的好事。如果企业能够将自动化战略纳入到企业战略当中,他们才能完善企业既有人才配置,在未来的日子里都不再需要雇用其他的工作人员来弥补短缺。既然高级数据库管理员的市场定位是稀缺人才,给的都是高薪金高福利,企业为什么不“物尽其用,人尽其才”呢?所以,为了更有效地利用数据库,企业应当认真考虑实施自动化数据库管理,以便解放出数据库管理员高价值的“脑力”。




应用管理系列怎么管理Sybase数据库

xuejinyoulan收录,使用标签:数据库,时间:2008-9-16 14:16:59 | 相关网摘我也收藏

来源:泡泡网
Sybase数据库是美国Sybase公司研制的一种关系型数据库系统,是一种典型的UNIX或Windows NT平台上客户机/服务器环境下的大型数据库系统。 Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。

  产品主要具有以下优点:

产品运行稳定,可靠。

支持跨平台部署, 运行效率较高。

有比较全面的解决方案,配套的其他数据库产品。

系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。

Sybase比DB2的界面友好, 比SQLSERVER稳定比ORACLE便宜。

总之,Sybase的性价比比较高。正是基于以上的优点,中国的银行、电信、石化甚至包括一些大型企业,有大量用户都是使用的Sybase数据库,剩下的由Oracle和DB2瓜分。

但是Sybase数据库较于其他数据库也存在以下不可忽略的缺点:

安装、部署和管理需要专门的精通它的数据库管理专家来做。

日常维护非常复杂。

目前Sybase数据库使用现状

目前Sybase数据库的使用现状:

1.大多数部署在UNIX机器上,并且是关键性业务在使用。

2.公司或企业没有专业的Sybase数据库维护人员,数据库的维护靠厂家不定期的巡检。

3.数据库down机后影响到了关键业务的使用时,才知道数据库已经不可用了。

4.对Sybase数据库的运行状态,健康情况,性能指标,数据库运行的瓶颈等信息一无所知,没有一个可视化的界面进行查看。

基于上述问题,如何选择一个有效的办法对Sybase数据库进行监控就显得尤其重要。

一般的监控软件对Sybase数据库的监控有以下不足之处:

1.监控指标少,并且一些关键性的指标是没有办法监控的。

2.虽然实现了可视化监控,但是不能做到一目了然。

3.监控的颗粒度不够细,不能对某个具体的数据库以及它的空间使用情况进行监控。

怎么管理?

Mocha BSM在对Sybase数据库监控这一方面的优势有以下几点:

1.可视化监控,监控指标多,并且可以监控到最关键的指标。

用户不再需要被动的去敲一些sql命令,去漫无目的检查数据库的状态。



2.可以查看Sybase包含多少个数据库,并且各个数据库的空间大小,使用空间,剩余空间,数据库空间使用率一目了然,并且可以实时监控每个数据库的可用性状态。



3.告警方式的多样性。

可以通过页面告警。



也可以通过短信和邮件以及语音进行告警,可以使数据库管理员在第一时间知道数据库存在的潜在风险,并且在第一时间进行排除,从而有效的保护最为关键的数据业务。


MySQL创始人已向Sun提交辞呈

xuejinyoulan收录,使用标签:数据库,时间:2008-9-9 9:58:56 | 相关网摘我也收藏

据国外媒体报道,知情人士透露,MySQL创始人迈克尔·维德纽斯(Michael Widenius)昨日已向Sun递交了辞呈。

  维德纽斯是开源数据库软件MySQL核心开发人员。今年1月,Sun宣布以10亿美元收购MySQL。维德纽斯辞职后,MySQL另一名重要开发人员布莱恩·阿克尔(Brian Aker)很可能接替维德纽斯的工作。

  7月底,阿克尔刚刚发布面向Web 2.0的简化版MySQL“Drizzle”。


甲骨文数据库涨价18% IBM降价抢客户

xuejinyoulan收录,使用标签:数据库,时间:2008-9-1 13:45:28 | 相关网摘我也收藏

来自:eNet硅谷动力
甲骨文宣布调涨数据库软件价格之后,主要竞争厂商IBM是否会进一步调整价格,引人揣测。目前为止,IBM总部虽然没有发布任何价格调整的讯息。不过,为了因应甲骨文的价格调整,IBM决定以项目方式祭出价格战,只要是甲骨文的客户,转换到IBM的数据库平台,IBM就会以实际成交价的一半,接收甲骨文的客户。

甲骨文资深信息经理黄久安表示,这一波价格调整,是甲骨文的全球性策略,并不是单一市场的反应,相较于原本的价格,调涨幅度达到18.75%,授权方式则依旧是采处理器计价。

黄久安表示,不论企业的营运规模是大型或中小型的企业客户,对于价格调涨的反应,绝对不会是开心。不过,甲骨文会尽量弥补,进而让企业的成本负担降到最低。目前甲骨文的整体营收结构,数据库软件的贡献大约占7成左右。

甲骨文的价格调整,未来是否会对市占率造成影响,虽然还需要一段时间观察。不过,IBM现阶段已经提出最佳化平台转移方案,IBM软件产品经理林世伟表示,数据库的发展已经非常成熟,企业对于数据库的评选,也逐渐倾向成本面的思考,这样的情况下,甲骨文的价格异动,成了IBM的契机。

林世伟指出,对于大型企业来说,由于授权数量较多,往往只要价格微幅调涨,就会是一笔庞大的支出,因此,IBM决定锁定甲骨文的全球500大客户,同时并以取得100家客户作为市场目标。

不过,就实务面来说,IBM的想法并不容易达到。因为对于企业来说,在考虑转换平台的过程中,除了必须顾及数据库与应用软件的整合性之外,还必须避免平台转换所带来的风险,除此之外,甲骨文为了稳固市场,自然也会对大型企业客户提供折价优惠。事实上,就有一家电信业者指出,目前甲骨文已经与该公司重新签订协议,对于甲骨文新的调涨措施的做法,并没有增加任何的成本支出。

市场调查机构IDC资深产业分析师薛如珊则是认为,甲骨文调涨数据库价格的做法,短期内虽然不会有太大影响,不过,长期来说,仍会威胁到甲骨文的市占,主要是因为其它数据库厂商为了抢占市场,可能会趁机推出优惠方案,而对于新的企业客户来说,除了数据库本身的系统功能与稳定度之外,成本绝对是另一个重要的考虑关键。



Oracle融合中间件在SPEC测试中刷新纪录

xuejinyoulan收录,使用标签:中间件,时间:2008-8-29 15:06:27 | 相关网摘我也收藏

来源:cnet
2008年8日14日--甲骨文公司日前宣布, 运行于惠普ProLiant服务器上的Oracle融合中间件组件之一的Oracle WebLogic Server及Oracle数据库11g,在SPECjAppServer2004 行业标准基准 下的单节点测试中刷新了世界纪录。

Oracle WebLogic Server 10g R3与Oracle 数据库 11g在测试中得到了3339.94的 SPECjAppServer2004 JPOS@标准结果(jAppServer每秒运作)。该款 Java 应用服务器运行在带有4个四核Intel? Xeon? 2.93 GHz处理器的惠普ProLiant DL580 G5上。Oracle 数据库11g运行在相似的硬件结构上。用于测试的应用服务器和数据库机器都采用Linux操作系统。

在过去5年里,甲骨文公司提供了多项创纪录的应用服务器基准,它们可运行于多种硬件、软件平台。在多重SPECjAppServer 2001 及SPECjAppServer2002 基准范畴内,Oracle产品性能最优、性价比最高。2002年7月 的报告表明,在J2EE应用服务器Ecperf(4) 基准上,Oracle产品在性能、性价比方面保持着世界纪录。

SPECjAppServer2004是一种多层级基准测试,用于测试典型J2EE应用软件及其应用环境组件,包括硬件、应用服务器软件、JVM软件、数据库软件、JDBC驱动及系统网络的性能。


Oracle WebLogic Server10g发布新版

xuejinyoulan收录,使用标签:中间件,时间:2008-8-29 15:01:25 | 相关网摘我也收藏

出处:比特网
在7月1日公布了Oracle融合中间件策略及BEA产品整合计划后,甲骨文公司又提前发布了其世界第一的战略应用服务器Oracle® WebLogic Server 10g的新版本——Oracle WebLogic Server 10g R3。

  Oracle WebLogic Server 10g R3是首批Oracle融合中间件技术与BEA系统整合的产品之一。这些产品见证了甲骨文公司在将两个公司的领先技术整合为统一产品过程中取得的飞速进展。

  Oracle WebLogic Server 10g R3是Oracle WebLogic 套件的基础,也是企业应用软件、服务导向架构、支持性横向扩充应用软件栅格、适应性系统管理及可预测效绩的全面基础。

  Oracle WebLogic Server 10g R3不仅具有新的特点和性能,同时涵盖了与其它战略性Oracle融合中间件产品的整合,如:Oracle JDeveloper, Oracle Coherence, Oracle TopLink, 以及Oracle Enterprise Manager。

  Oracle WebLogic Server 10g R3(前称BEA WebLogic Server)是甲骨文公司的战略性应用服务器,此次提前发布展示了甲骨文公司的快速整合能力及合并后的战略执行能力。

  基于标准的热插拔性能

  Oracle WebLogic Server 10g R3使甲骨文公司的热插拔中间件战略更具灵活性,降低了投资风险。热插拔性使客户能快捷方便地将各种Oracle融合中间件产品部署到当前的IT环境中。此版本同时支持Eclipse、Oracle JDeveloper及Oracle WebLogic Workshop 10.3等多种开发环境。

  Oracle WebLogic Server 10g R3是应用服务器中的一流产品,其新的性能将支持Java S E 6,具有新的安全标准,包括SAML 2.0, WS-Security 1.1及 WS-SecurityPolicy 1.2。在Web services JAX-WS 2.1、WS-Reliable Messaging 1.1 及WS-Policy 1.5中,Oracle WebLogic Server 10g R3早在2007年3月就可以执行Java EE 5。

  新性能

  Oracle WebLogic Server 10g R3为开发者和终端用户带来了更高层次的体验,它提供一个轻量级的Footprint以及可选服务的更快速启动,而新的FastSwap功能则提供密封和快速发展-调试-实验的周期。

  Oracle WebLogic Server 10g R3为Spring的拓展提供支持,Spring开发者将体验Oracle WebLogic更强大、更稳定、易管理的性能。

  新的HTTP发布/订阅通信特性提供了更具客户化的性能,支持动态更新的Web 2.0风格的用户界面。

  新版本还支持Java SE 6、JRockit 任务管理,让开发者和终端用户可以体验到更多的卓越性能,并获得更多针对应用软件使用行为及其响应的洞察力。

  甲骨文高管引言

  甲骨文公司融合中间件高级副总裁Thomas Kurian表示:“Oracle WebLogic Server 10g R3 的提早发布,表明我们坚定履行了对BEA客户作出的承诺,即尽快发布与Oracle融合中间件整合的产品。作为首席中间件产品供应商,我们将继续提供完整、预集成的中间件套件,让客户可以在网络上开发、配置应用软件。”

  关于Oracle融合中间件

  Oracle融合中间件是一个全面的、预集成的且可以热插拔的产品组合,在全球各个行业拥有77,000多个客户。这个功能全面、基于标准的中间件基础设施产品组合包括业内排名第一的Java应用服务器、市场领先的Enterprise 2.0门户和内容管理产品,为企业和公共部门提供了所需的技术解决方案。Oracle融合中间件不仅在本产品线各个产品之间进行了预集成,并且与Oracle数据库和应用产品也进行了预集成,从而降低了客户的拥有成本。独特的热插拔功能使客户能够拓展在异构IT环境上的现有投资。Oracle融合中间件获得了11,000多个独立软件开发商、增值经销商和系统集成商的大力支持。


利用SOAPtest进行Web service测试

xuejinyoulan收录,使用标签:SOA,时间:2008-8-29 14:47:21 | 相关网摘我也收藏

来源:构客网
Web services测试对于开发和测试团队来说提出了一系列崭新的问题。JUnits可以创建用来测试Web service的一部分功能,但是确保充分验证所需的总体功能性,它却不能提供,同时它也会使更新数据值变得困难。还有许多需要被测试的Web service组件仍未找到合适的、更加通用的测试工具。由于Web service测试是一个在开发过程中很早就涉及到外部合作伙伴的领域,所以格外危险,可能很快就会变成一场恶梦。

  SOAPtest提供了一套完整的针对Web service的测试工具,使开发团队和(或)测试团队能够利用一个一致的工具,对从Web Service定义语言(WSDL)确认到无需自己构建和更新测试客户端的性能测试,来证明Web services是否合适。

  SOAPtest的一个主要特征是该工具支持大量数据源。生成测试数据可能是耗时的,并易于出错,但是SOAPtest工具有效地减轻了所有这些问题。SOAPtest支持来自任何可通过ODBC/JDBC连接的数据库的测试数据,例如.csv文件、内部表、Excel电子表格,或者任何上述类型文件的集合都支持。增加一个数据源是非常简单的,您只需要选择数据源的类型和位置。我使用的是指南中提供的Excel电子表格。

  首先,我运行一系列WSDL确认。WSDL通过描述服务和标识位置来控制对Web service的访问。屏幕界面相当直观,我能很快就验证一组WSDL文件。

  您也可以检查任何URL链接在WSDL中是否依然有效。最有趣的是该工具能够执行Web Services互操作性组织确认。该工具能够生成一份印象深刻的报告,报告可由开发和测试团队进行分析,并酌情分发给您的合作伙伴。

  该工具还支持WSDL比较和回归测试,使开发团队能够在其他测试之前轻松地获得并确认WSDL变化。

  一旦WSDL得到确认并生效,下一个关键步骤就是确保Web service操作在单元测试层次上的有用性。这是通过创建一组单元测试来完成的,按照逻辑划分每组单元测试都属于一组测试套件。SOAPtest支持正面测试(测试期望的场景)、反面测试(错误条件下的测试)和回归测试(执行改变确认)。利用该工具,测试数据可以全部或部分来自各种数据源,或者由工具快速生成。在数据生成方面,该工具具有大量的功能,并有能力根据用户定义的一系列规则来生成数据。但有一个缺点就是当我试图仅仅保存某个独立测试本身时,却不知道如何完成。

  当开发人员完成了单元测试,SOAPtest工具才能够提供创建实际场景测试的功能。在测试过程中,场景测试表现了业务场景的再现。场景测试可以从头创建,也可以通过一系列已经生成的单元测试与测试团队定义的附加测试相融合的联合体得到。

  SOAPtest提供了数据确认能力的范围。数据可以由元素确认,或者仅由那些您想比较的元素来确认。

  Web services的另一个关键方面是其异步特性。那些期望使用其他应用程序的传统异步响应的测试工具在处理Web services的这个典型方面时遇到了困难。SOAPtest提供了对那些使用Parlay、SCP和WS-Addressing通信协议的异步调用进行测试的功能。这很关键,因为大多数这些服务的性质不能直接得到确认或者响应。SOAPtest包含一台Tomcat服务器,当部署了结果回调异步模式时,Tomcat服务器使SOAPtest能够测试期望的“回调”响应。当使用了回调测试时,一个建议的更新是让Tomcat服务器自动启动。

  Web services时,另一个关键细节与安全的重要性有关。揭示Web services的本质特性需要安全考虑;因此,测试安全特性对任何Web service的确认测试都是不可缺少的。SOAPtest提供了一个加密工具,能够支持对消息的全部或者部分加密。该工具提供的加密标准包括三重DES、AES 128、AES 192和AES 256。这些数字代表密钥的位数。当使用加密测试时, 一定要安装JCE(Java密码术扩展)Unlimited Strength Jurisdiction Policy File,因为没有它测试就无法工作。

  SOAPtest所提供的其他关键安全特性包括XML签字工具、XML 验证工具和对用户名和SAML标志的支持。XML签字工具提供数字签名功能。如果您的Web service需要某种数字签名,该工具能用来验证其功能性。同样,XML验证工具允许用户进行加密/解密/验证数字签名消息,方法是利用公钥/私钥存储文件。支持的密钥存储文件格式包括JKS、PKCS12、BKS和UBER。

  安全声明标注语言(SAML)为交换安全信息提供了一个标准。SAML为Web services提供了一个交换认证和授权声明的方法。这赋予团队在整个组织中提供身份管理服务的机会。在出现一个失败之前,SOAPtest 支持SAML验证。

  如果您的Web service测试不具备上述测试的特征,SOAPtest将通过提供自定义脚本功能来提供最高的灵活性。脚本可使用Java、JavaScript或者Jython,以及支持文件导入的工具来编写。为了完成测试,脚本代码能够完成任意所需的其他测试逻辑。

  在测试Web services时,另一个关键方面是确认性能需求和识别性能的界线。在Web service测试的工具中,SOAPtest相当独特,这是因为它在负载测试领域所提供的强大功能。

  要访问SOAPtest的负载测试工具包,从左侧导航面板中选择Load Test选项卡。现有的场景可以利用以前的功能测试,也可以生成新的测试场景。 该工具提供了通过约束相关机器来在整个网络中运行这些测试的能力。当您能够避免本地机器局限性的时候,这也使得负载水平显著地增加。

  通过创建用户配置文件,可以将功能测试和负载测试合为一体。每个配置文件由一个或者多个功能测试组成,并且能被加入到每个负载测试或者从每个负载测试中删除。我使用的配置文件是基于前面创建的正面和负面测试场景的。

  也可以延迟每个配置文件,以便更好地监视每个功能测试对负载的影响。配置文件比率可以通过使用与该场景相关的Profiles选项卡来调整。在整个计划的测试周期中,它以图形显示信息,允许对用户数量和每秒钟的点击数进行调整。很简单,在图的任何地方点击右键,创建一个点,然后把那个点移到合适的位置。每秒钟的点击数和用户的数量也可以动态地调整。

  我创建的配置文件以用户数量的缓慢增加为初始,随后每分钟都有显著增加,当测试进行到一半时,再缓缓减少。我也改变了我的用户配置文件比率,随着时间的变化来减少正面测试的数量。测试的持续时间也完全由用户决定,且它可以持续数天提供数据。我选择3分钟作为精确度。

  我们也能看到一个基于文本的图形摘要。

  很多操作系统统计数据都可以添加到这个测试工具中并用其进行监视。SOAPtest 支持添加SMNP、Windows Perfmon和JMS监视数据包。我使用的是默认的windows系统。

  SOAPtest的报告根据所有测试结果生成。报告可以生成HTML、XML或者.csv格式。


数据库的三重境界

xuejinyoulan收录,使用标签:数据库,时间:2008-8-29 14:16:55 | 相关网摘我也收藏

出处:IT专家网
很难想象,现在还有什么应用跟数据库无关。就连微软的下一代操作系统Vista,也要用其数据库来组织其新式的文件系统。可以说,经过多年的发展,数据已经成为整个信息化进程和下一阶段发展的最可宝贵的资源,而保存和管理数据资源的数据库,其技术的发展和进步,就成为了最值得关心和重视的问题。

  国学大师王国维曾经有过一个著名的“三重境界”之说,他将晏殊的《蝶恋花》、欧阳修的《蝶恋花》和辛稼轩的《青玉案》三首词中各取出一句话,来讲述成功的三重境界。而这样的三重境界,似乎也可以同样被借用来形容数据库管理技术的发展历程。从层次型数据库到管理关系型数据库,乃至目前的同时支持关系型和XML的混合型数据库,数据库管理技术在其发展的将近40年的历程中,走过了一条不断创新的三重境界。

  IMS:为阿波罗号护航

  “昨夜西风凋碧树。独上高楼,望尽天涯路”,这句话用来形容数据库管理系统出现以前的数据管理可以说恰如其分。在数据处理还是穿孔卡片来进行时,彼时的数据管理,只是对卡片进行物理的存储和处理。数据的存储和管理极其麻烦和复杂,根本无法体现出高效性。在1956年IBM生产出第一个磁盘驱动器(Model 305 RAMAC)之后,引发了数据管理的革命,并且因此得以随机存储数据。

  此后,出现了最早版本的数据库,即网状数据库管理系统(DBMS),由通用电气公司1961年开发成功,其IDS(Integrated DataStore,集成数据存储)是世界上第一个网状DBMS,也是第一个DBMS。但是它只能运行于通用电气的主机上,且数据库只有一个文件,所有的表必须通过手工编码生成,有着极大的局限性。

  为此,IBM开发的层次数据库IMS(Information Management System,信息管理系统)受到了极大的欢迎,成为了最著名也是最典型的层次型数据库管理系统。

  1966年,IBM与其客户(北美洛克维尔公司和卡特彼勒公司)合作,共同开发新型数据库,用于帮助NASA管理宏大的阿波罗计划中的繁琐资料,并且在1968年由IBM的工程师完成。1969年,该数据库作为IBM的产品发布时被更名为“IMS(Information Management System,信息管理系统)。

  在1969年,NASA成功发射了阿波罗11号实现了人类首次登月之后,NASA继续在其航天飞机计划中使用着该产品。直至今日,该数据库一直有着用武之地,在如今的互联网应用连接、商务智能等应用中找到了全新的角色。

  RDBMS:IBM打开的新天地

  虽然层次数据库已经可以很好地解决数据集中和共享的问题,但是其在数据独立性和抽象级别上依然有着欠缺。所以,使得数据库管理人员未免“衣带渐宽终不悔,为伊消得人憔悴。”

  还好,就在1970年,IBM研究员E.F.Codd提出了关系模型的概念,由此奠定了关系模型的理论基础。他所发表的论文“A Relational Model of Data for Large Shared Data Banks”也被认为是数据库系统历史上具备划时代意义的里程碑。在经过不断的发展和论证之后,最终使得更具备优势的关系型数据库成为了市场的主流。随后,在1974年,IBM公司的Ray Boyce和Don Chamberlin提出了SQL语言,它实现了数据库生命周期中的全部操作,为关系数据库奠定了另一块里程碑。

  在1979年,IBM完成了第一个实现SQL的DBMS。在20世纪的80年代早期,IBM利用了RDBMS和SQL的第二阶段的技术,创建了新型的数据库产品,并将其命名为DB2,也就是拥有第二代技术的数据库产品。而在过去的岁月中,DB2已经从重要的大型机产品发展成为可在各种服务器平台上运行的产品。尤其是在System 390(即目前所称的System z)中,DB2已经成为分布式计算的核心。

  尽管不断地有同时期厂商的数据库产品的竞争,但是DB2依然在高端企业应用市场受到了广泛的应用及好评。经过多年的发展和进步,在System z和安装了Linux系统的英特尔平台上,已经运行有近50万台的DB2数据服务器。

  IBM DB2 9:成熟的优化大师

  随着信息化进程的发展和企业间、企业内部信息交换的需要,XML作为标准化的数据存储格式,其数据量正面临着巨大的增长。而事实上,每个行业都在实施着XML数据标准,新版的微软Office软件也将以XML格式存储文档。

  此外,正有越来越多的公司开始转向使用XML技术,以便在不同的系统和应用程序之间交换数据并适应快速变化的环境,从而帮助他们逐步实现SOA。

  “众里寻他千百度,回头蓦见,那人正在,灯火阑珊处”,结合了关系型数据库和层次型数据库二者特点的DB2 9(代号Viper)引入了另外一种可能――混合型数据库,该数据库可以非常好地支持XML数据,同时也对其他技术包括SQL、表格数据结构和各种DBMS特性的支持依然存在。

  在此之前,文件系统可以应付简单的任务,但是在需要处理大量文档时它们就表现不佳。并发性、恢复、安全和可用性等问题变得难以管理。尽管商业关系数据库管理系统(DBMS)解决了这些问题,但是在其他方面有所欠缺。DBMS通常只是提供两种基本的数据库设计选项――将每个 XML 文档完整地存储为一个大型对象,或者将它“撕开”,分散存储在多个表的多个列中。这样不仅无法完整体现XML的层次结构,而且效率低下、不够灵活。

  此外,纯粹的XML DBMS 在IT基础设施中引入了一种新型的环境,但是这样的环境还没有经过考验,其集成能力、所需要的人员技能以及未来的生命力也都不确定。

  因此,必须找寻可以高效共享、搜索和管理公司大量XML文档和消息的系统,以便帮助企业减少存储和使用XML数据所需要的时间及工作量,以期减少应用开发费用且提高业务灵活性。混合型数据库DB2 9正好适应了这样的需要。通过DB2 9,用户可以使用同一个数据库对象同时管理“传统的”SQL数据和XML文档,甚至,还可以编写一个查询同时搜索和处理这两种数据形式。

  具有如此特点的DB2,是业界第一款也是惟一一款可以使用行业标准接口的关系数据来管理pureXML的数据库,它在三个领域具备了独到的创新:XML数据管理、数据压缩和SAP优化。其中,最重要的功能即XML数据管理,它使用了IBM的“pureXML”解决方案来管理以XML格式存储的数据。

这意味着DB2 9可以提供XML数据的“原生态”存储,而无需将数据转化成行列格式,更无需将其作为大型对象来存储。为实现这样的功能,IBM对DB2进行了扩展,使DB2 9包含了如下的新技术:

   新的存储技术,可以高效地管理 XML 文档中固有的层次结构。

   新的索引技术,可以提高在 XML 文档之间和内部进行搜索的速度。

   新的查询语言支持(对于 XQuery)、新的图形化查询构建器(对于 XQuery)和新的查询优化技术。

   根据用户提供的模式检验 XML 数据的能力。

   新的管理功能,包括对关键数据库工具的扩展。

   与流行的应用程序编程接口(API)的集成。

  而通过应用压缩技术,DB2 9在客户的实际测试中,可以为客户节约40~80%的存储需求,同时能够维护甚至改善应用程序的性能。

  基于DB2 9的革命性的创新与性能,SAP也为使用mySAP商业应用程序的中小型客户选用了DB2 9作为数据服务器。

  IBM:不断创新的源泉

  可以说,IBM DB2 9只是IBM数据库长期保持其领先历程的最新进展,正是IBM基于市场需求研究基础上的不断创新,推动了数据库技术及其应用的不断进步。如果说上世纪60年代,IBM最初的数据库技术重点是为了高性能应用软件需求提供交易支持,因此使得DB2成为了成熟的优化大师;那么现在的IBM更加注重信息服务管理,是为了企业破除数据孤岛,提供灵活的信息基础设施,DB2 9就是最灵活的、在网络和应用中提供信息的服务大师。

  这不断创新和发展的过程,成就了IBM DB2 9今天无与伦比的领先地位,就像海伦.凯勒所说“我碰到了不可胜数的障碍,跌倒了,我一次次地坚强地爬起来,每前进一步,我的勇气就增加一分,我相信我一定能达那光辉的云端,碧天的深处――我希望的绝顶。”


数据库系统优化--业务逻辑设计优化

xuejinyoulan收录,使用标签:数据库,时间:2008-8-29 13:52:32 | 相关网摘我也收藏

出处:blog
当我们优化一个系统时,有时发现一种情况就是自己修改SQL,索引以及分区是不能解决性能问题的。这时你要考虑业务逻辑优化和表设计的重构。这两点的确和设计结合的很紧密。

  业务逻辑优化

  结合实际,我们先谈谈业务逻辑优化。

  案例一:

  我们的系统一个文档模块,客户点击时很慢,通过性能分析,是点击是去查询数据库,这时系统是通过Hibernate来两步处理:

  1,计算该类型的文档数量总数。

  2,显示最新文档的前20篇文档。

  这时显示第二步的时间是很快的,只取20条记录,但是计算该类型的所有总数很慢。系统的这时的输入是很大的(计算该类型的全部文档,可能有几万篇数据),输出就一条总数。这时因为业务逻辑复杂,即使建立索引,分区等等速度也是无法提高,因为不能真正做到索引覆盖和分区消除。

  客户是点一下要等十几秒是不能容忍的,这时可能输入数据量很大下,数据库很可能采用的是hash联结,而且并发用户一大,数据库服务器压力很大。

  这时常规的优化方法是没有效果的。这时我们也发现,客户其实对以前比较老的数据是不关心的,一般只是对近期的数据比较感兴趣,所有我们就在查询时默认设定半年的时间,然后在时间上设定聚集索引。并默认在此时间上排序,使其使用合并联结,减少输入数据量,结果速度有明显的提升。

  案例二:

  我们在优化一个客户系统时,碰到一种情况,在客户的一选择功能时,客户点击一下选择相关数据,这时页面要要几分钟才能出来,客户很不满意,这时修改sql和索引都没有办法,他的输入的数据量也很大,和上面一下也要计算总数和取最新前几条数据。

  这时我们在查询是关联了人员,通过调查,发现客户只对和自己相关的数据感兴趣。也只是查询自己相关的数据。所以这时在sql语句里增加用户id这条限制,同时在增加userid的索引,这样一来,速度就大大提高。

  总接:

  当然以上两个案例,是从输入入手,减少输入和输出的数据量,主要优化业务逻辑,达到优化系统。当然有些情况要和客户确认和说服他们,有时他们不一定都认可,这时要说明这样做的目的,相信他们也会理解。

  表设计优化

  表设计,在我们开发系统时已经确定,好的设计的确能大大提高性能,我们在优化系统时,碰到一个比较麻烦的问题。

  原文: 数据库重构(一):字段合并

  这条sql是判断5个维度,一个用户id, 一个机构id,一个岗位id, 还有级别判断和是否公共。sql语句里有5个”or“组成查询,表数据一大就表扫描,性能很差,但业务要求和系统要求这样判断。即使在表中这五个字段都建索引,速度也不会快。太多"OR"了,SQL Server 查询分析器无法优化。

  这时由于设计时: 用户id,机构id,岗位id为3个只有一个有数据。所以将这3个字段合并,较少"Or"语句,让数据库能使用索引。

  总结

  表设计是优化是让sql语句能使用到索引,或者增加冗余字段减少其输入和输出数据,或者减少查询数据(如计算静态表),典型的如索引视图,数据仓库等。


分区表、分区索引和全局索引部分总结

xuejinyoulan收录,使用标签:数据库,时间:2008-8-29 13:51:51 | 相关网摘我也收藏

出处:blog
分区表、分区索引和全局索引:

  在一个表的数据超过过2000万条或占用2G空间时,建议建立分区表。

create table ta(c1 int,c2 varchar2(16),c3 varchar2(64),c4 int constraint pk_ta primary key (c1)) partition by range(c1)(partition p1 values less than (10000000),partition p2 values less than (20000000),partition p3 values less than (30000000),partition p4 values less than (maxvalue));


  分区索引和全局索引:

  分区索引就是在所有每个区上单独创建索引,它能自动维护,在drop或truncate某个分区时不影响该索引的其他分区索引的使用,也就是索引不会失效,维护起来比较方便,但是在查询性能稍微有点影响。

create index idx_ta_c2 on ta(c2) local (partition p1,partition p2,partition p3,partition p4); 或者 create index idx_ta_c2 on ta(c2) local ;


  另外在create unique index idx_ta_c2 on ta(c2) local ;系统会报ORA-14039错误,这是因为ta表的分区列是c1,oracle不支持在分区表上创建PK主键时主键列不包含分区列,创建另外的约束(unique)也不可以。

  全局索引就是在全表上创建索引,它可以创建自己的分区,可以和分区表的分区不一样,也就是它是独立的索引。在drop或truncate某个分区时需要创建索引alter index idx_xx rebuild,也可以alter table table_name drop partition partition_name update global indexes;实现,但是要花很长时间在重建索引上。可以通过查询user_indexes、user_part_indexes和user_ind_partitions视图来查看索引是否有效。

create index idx_ta_c3 on ta(c3);


  或者把全局索引分成多个区(注意和分区表的分区不一样):

create index idx_ta_c4 on ta(c4) global partition by range(c4)(partition ip1 values less than(10000),partition ip2 values less than(20000),partition ip3 values less than(maxvalue));


  注意索引上的引导列要和range后列一致,否则会有ORA-14038错误。

  oracle会对主键自动创建全局索引

  如果想在主键的列上创建分区索引,除非主键包括分区键,还有就是主键建在两个或以上列上。

  在频繁删除表的分区且数据更新比