技术开发 频道

2008年SearchOracle最热门问题

【IT168技术分析评论】
  你是否有关于Oracle错误,备份,升级或者任务方面的疑问?不用担心, SearchOracle.com提供了一个专门的专家答疑版块为你提供帮助。今年,我们的专家回答的问题涵盖了所有的方面甚至更多--这里让我们回顾下2008年最热的问题以及专家的解答。

  什么是 ORA-03113 错误?

  问:我们有一个Oracle 10g数据库并时常会报告ORA-03113错误。我们是很科学的从一个vb.net应用程序查询时间序列数据。我们可以用一些参数(位置,变量标识符,和日期范围)成功地查询一整天,但当日期变化超出范围内限制(如2003年至2007年的查询都成功,但2002年至2007年每一次失败)都出现这个错误。当我们使用Oracle sqldeveloper时也得到了类似的错误,只是错误讯息文字不同而已。我们从哪里开始寻找答案?

  答:ORA-3113错误意味着你同数据库的网络连接出现了问题。根据我的经验,有两两方面的原因。一个是,客户和数据库之间的网络出现了问题。二是,一个错误造成的数据库通讯终止并且导致客户端认为是因为网络错误造成的。如果你确信你的网络是良好的,那么,这类错误可能是一个错误导致的。请确保你有安装10.2.0.3 补丁集。在此之后,向甲骨文的技术支持提出服务请求。只有他们将能够帮助你解决ORA-3113错误。

  怎么能从Oracle数据库得到数据修改的历史记录?

  问:怎么能从Oracle数据库得到数据修改的历史记录?

  答:有几个选项可供你选择。出现错误后,你可使用Oracle的日志挖掘工具来挖掘你的归档日志。在出错之前,你可以设置监察记录这些改变...

  DDL和DML指令如何运行?

  问:当我们使用DDL或者DML命令时,会发生什么?

  答:首先,Oracle数据库会分析该命令,并确保该命令是语法正确和语义正确的。下一步,Oracle数据库会验证用户是否有权限来执行该命令。如果用户可以执行该命令,数据库获得所有必要的锁后将完成该命令。一旦锁全部获得,数据库执行该命令。在某些情况下,还将有返回结果。如果执行命令后有结果返回,Oracle数据库获取这些结果并且将该结果保存在一个被称作'cursor'的区域 。并且将游标被回传给应用程序。

  当数据库要销毁时如何让进行热备份

  问:当数据库要销毁时,如何进行热备份?

  答:有两种方法。今天甲骨文公司的数据库最好的方式是使用RMAN 。下面将演示如何通过RMAN进行热备份。

  Oracle数据库什么时候应该被重组?

  问:数据库什么时候应该被重组?

  答:任何时候都不需要。一个设计良好的数据库应永远不需要重组。曾经一个数据库管理员将每周或每月执行重组,以保持数据库的的良好性能。但是,今天的Oracle数据库为保持其良好性能不需要定期重组。但是不良设计的数据库并不适合该理论。

  如何估量Oracle服务器的大小

  问:你有什么建议,我们如何通过服务器硬件规格大小估量Oracle数据库服务器的负载大小?我会使用存储区域网络(SAN)存储。

  • 处理器的数量

  • RAM的大小

  我已经搜查了甲骨文公司的网站,即使有一些白皮书,我还没有见过这像版本9i这样的向导。

  答:我没有看到任何网站或其他信息满足我所要查找的信息。因此我将谨慎对待现有的资料。内存大小,处理器和其他系统资源是不可被数据库中的数据量来支配。

  在SQL中什么时候使用CHECK约束

  问:我如何建立一个约束来防止2007年1月1日之前的数据进入数据库?

  答:使用CHECK约束是一个明智的选择。下面是一个例子:

  create table documents

  ( id integer not null primary key

  , title varchar(99) not null

  , added date not null

  , constraint only_new_ones

  check ( added >= '2007-01-01' )

  );

  什么时候使用手动升级,什么时候使用输入输出方法升级

  问:我准备升级。我的数据库大小是200GB的,并且它是一个不能升级到10g的( 8.1.6.2到10g的)的版本 。它的操作系统是HP - UX操作系统,所以你能告诉我是否非常好的升级方法是按照手动升级过程还是使用输入输出过程升级到新版本的Oracle数据库?如果我按照手动的方法然后我必须安装8i数据库补丁然后升级到10g。如果我按照输入/输出方法那么我需要更多的停机时间。我应该遵循那些过程?

  答:如果你执行手动升级过程,那么你将至少是8.1.7以前的版本才能进行 ,然后才可以开始。所以,从8.1.6.2到10g,这个过程你将需要进行两次升级。如果你使用输入/输出方法,那么你将只需要进行一次升级。平均而言,每次手动升级将需要大约1个小时,但这一时间可以有所不同。因此,没有很好的了解你的环境,该手动升级过程将需要约2个小时的停机时间。利用输入/输出方法为200GB的数据库升级,可能会需要更长的时间。因此,在这里最大的问题是有多少停机时间可以用来此次升级?如果你有更大的停机时间空间,那么你可以使用输入/输出方法进行升级。该输入/输出方法,还可以让你进行像移动一些对象到新的表空间的重组。

  数据库工程师,数据库架构师和数据库管理员三者之间的差别

  问:你能否解释数据库工程师,数据库架构师和数据库管理员三者之间的差别?

  答:很好的一个问题!它可能是想标题一样令人费解(还有更多,包括数据库开发,数据架构师,数据分析,数据模型,数据库设计等),使用不当,或被一些使用他们的公司重新定义。这个定义确实取决于实际的职务说明。我会尽我所能,但区别并简化为你...

  如何存档和废弃一个数据库

  问:什么是最好的方式存档和废弃一个5GB甲骨文7.3版本的数据库?这些数据,监管机构要求必须在未来20年内都可查,我们都害怕在今后我们将无法将其恢复到较新版本的数据库。

  答:我使用Oracle的export的功能来处理这种类型的任务。你的数据库不是过于庞大,那么该功能可行。关于EXP功能的优点是,未来版本的甲骨文数据库仍然能够阅读所产生的转储文件。因此,执行下列工作:

  exp userid=system/manager file=my_db.dmp log=my_db.log full=y

  由此产生的文件就可以写入DVD或其他一些媒体进行长期的存储。

  原文:http://searchoracle.techtarget.com/generic/0,295582,sid41_gci1342609,00.html

0
相关文章