动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.Shrink Undo表空间,释放过度占用.
.在字符集移值之前使用CSSCAN工具.
.一步步教你在RHEL AS 3安装Oracl.
.Oracle9i中的电子商务平台开发一.
.ABOUT : 字符数组.
.[技术]dba管理,探索常用的语句!.
.在RHAS3上成功安装Oracle9204.
.Oracle数据库系统使用经验六则.
.建立实验数据库模型.
.如何安装配置Oracle 9i网络环境一.
.Oracle中巧取指定记录与巧用外关.
.参数文件.
.如何有效地利用数据字典.
.Oracle 数据库 10g 企业版数据表.
.Oracle数据库的空间管理技巧.
.linux 下oracle9i的安装.
.ORACLE备份一(ORACLE BACKUP STR.
.Oracle10g安装升级以及新特性介绍.
.客户端不安装 Oracle 也可以连接.
.性能分析工具的使用.

忘却Oracle的5个方面

发表日期:2008-2-9 |



  新版本可以给软件带来更高效率的技术现在我们可以忘却Oracle数据库的5个方面。
  
  1.只有DBA可以恢复数据
  以SQL数据库——DBAs直接工作的人们以及IT资讯人员都可以因为一个不匹配的命令而导致数据库的破坏或者数据的丢失。事实上,对于Oracle,用户的错误操作是导致数据库停止工作的主要原因。从数据库而不是开发过程得到的一个表单可以造成程序及其所有用户操作的瘫痪。而且,一个不合适的更新也有可能破坏数据库操作的结果。
  
  直到现在,从这些错误中恢复数据是一个极其耗时的差事,并且只有DBA可以实现。但自从Oracle 9i以来,用户可以通过SQL命令来修正很多这样的错误。其中的机制是引入了新的Oracle 9i的名为闪回查询(Flashback Query)的特性。
  
  这里是一个在SCOTT schema中操作的范例。范例中,一个职工记录被删除,并提交更改结果:
  
  DELETE FROM emp WHERE empno = 7934;
  COMMIT;
  
  代码行丢失了SELECT语句,而且一个ROLLBACK也不能恢复这一行。然而,一个闪回查询可以显示10分钟之前的表单内容:
  
  SELECT * FROM emp
    AS OF TIMESTAMP (SYSTIMESTAMP – INTERVAL '10' MINUTE)
    WHERE empno = 7934;
  
  SELECT语句可以使用INSERT语句的子查询来载入被删除的数据。然而,请注重到,这一INSERT操作必须受限于表单中的约束。
  
  为了将整个会话返回到特定的时间,可以使用DBMS_FLASHBACK包:
  
  EXEC DBMS_FLASHBACK.ENABLE_AT_TIME(TIMESTAMP ‘yyyy-mm-ddhh:mi:ss’);
  
  在一个闪回查询过程中,被访问的数据不能被更改,只能被读取。这有点象科幻小说中的时间追踪:你可以访问过去,但你不改变过去。为了获得过去的会话,可以键入:
  
  EXEC DBMS_FLASHBACK.DISABLE;
  
  为了使得闪回查询得以工作,数据库必须使用自动删除治理(AUM, Automated Undo Management),并建立一个删除表。用户可以“闪回”的时间限度取决于undo_retention参数和删除表大小的初始化。
  
  虽然这一特性对于IT咨询者来说是福音,但是Oracle的主要目的是使得用户直接键入SQL就可以从他或她的错误中得以恢复。闪回查询是一个很好的功能,所以它可以通过系统权限来恢复单一表单或者所有表单。
  
  FLASHBACK ANY TABLE
  
  但是你还可以等待:在Oracle 10g会做得更好。在9i版本中,闪回查询受限于数据操作语言(DML,Data Manipulation Language)命令,比如SELECT, INSERT, UPDATE, and DELETE。但在10g中,即使一个dropped表也可以通过闪回来恢复。
  
  2.Oracle不能保存小数点的时间
  Oracle的DATE数据类型只能以秒来存储时间数据。需要更精确时间的开发人员只能使用NUMBER数据类型。这一操作使得时间间隔的计算更加困难。
  
  自从9i版本之后,Oracle包含了一个与1999 SQL相互兼容的时间/日期数据类型。为了声明诸如一个时间列,可以使用TIMESTAMP数据类型,并显示需要的小数点个数(缺省情况下为6):
  
  CREATE TABLE event_ts (
   event_id NUMBER(6)
   ,event_name VARCHAR2(40)
   ,start_time TIMESTAMP(2)
   ,elapsed_time TIMESTAMP(2)
  );
  
  对于一个TIMESTAMP字面意义,比如DATE,必须被一个单引号包括。以下的字面代表着March 23, 2004,在午夜的半秒时刻:
  
  TIMESTAMP ‘2004-03-23 00:00:00.50’
  
  虽然标准的DATE字面意义没有包含时间,而一个TIMESTAMP字面意义的标准格式却需要包含时间。NLS_TIMESTAMP_FORMAT参数控制格式,同样,NLS_DATE_FORMAT设定了标准DATE格式。一个新的转换函数,即TO_TIMESTAMP,可以从其它输入格式建立一个TIMESTAMP,并且TO_CHAR函数可用于显示一个TIMESTAMP的组成。
  
  为了以TIMESTAMP格式获得当前日期和时间,可以使用SYSTIMESTAMP函数,而不是使用SYSDATE函数,例如:
  
  SELECT SYSTIMESTAMP FROM DUAL;
  
  3.一个损坏的块就需要放弃一个对象
  IT资讯人员最害怕这样的Oracle错误信息,即ORA-1578,“Oracle data block corrupted(Oracle数据块损坏)”。其中一个数据库块的内部结构将不能被修正。
信息可以通过文件数量和块数量来识别块的错误。一般而言,补救的方法通过运行以下这样的查询:
  
  SELECT owner, segment_name, segment_type
  FROM dba_extents
  WHERE file_id = <filenumber>
  AND <blocknumber> BETWEEN block_id AND block_id + blocks - 1;
  
  这里,<filenumber> 和 <blocknumber>为从错误信息得到的数量。这一查询可得到哪些对象包含被损坏的块。然后就可以恢复这些损坏的块,然而这些恢复要么是直接的(对于索引和临时成分),要么是混乱的(对于表单),要么是十分混乱的(对于动态的roolback部分和部分数据字典)。
  
  然而,在Oracle 9i Enterprise Edition中,一个名为BLOCKRECOVER的恢复治理器(RMAN)的命令,可以正确地修正这些块,而不需要放弃和重新建立所涉及的对象。当进入RMAN并连接到目标数据库之后,键入:
  
  BLOCKRECOVER DATAFILE <filenumber> BLOCK <blocknumber>;
  
  一个新的查看,名为V$DATABASE_BLOCK_CORRUPTION,可以使得在RMAN备份过程中获得更新,并且当执行一个BLOCKRECOVER时,可以列出块的内容。为了恢复所有被损坏的块,可以使用以下的RMAN:
  
  BACKUP VALIDATE DATABASE;
  BLOCKRECOVER CORRUPTION LIST;
  
  假如只需要恢复几个块,这一方法非常有用。对于大规模的损坏块,需要重新存储数据文件的一个先前图像,然而恢复整个数据文件,这样效率更加高。对于任何新的特性,在使用到正式的数据库之前,请认真地测试,这是有必要的。
  
  4. 列不能被重命名或者重新组织
  重新命名一个表格的列或者改变它的数据类型,通常这意味着建立一个新的表格和复制旧的数据到新表格。列根本不能重新命名,数据类型只有在没有数据(只能为NULL数值)时才能被改变。
  
  Oracle 9i具有两种方法以克服这些限制。现在,ALTER TABLE命令可以直接地重新命名列:
  
  ALTER TABLE books RENAME COLUMN tiitle TO title;
  
  同样,一个名为DBMS_REDEFINITION的PL/SQL工具包可以使一个DBA改变表格的列结构。这是一个复杂的过程,但通常情况下遵循以下的步骤即可实现:
  
  1 使用DBMS_REDEFINITION.CAN_REDEF_TABLE来检查表格满足在线的重新定义,并指定重新定义是否遵循主要的键或者遵循行Ids。
  
  2在相同规划中建立一个空表格,但结构是一样的。省略你想要放弃的列,包含你想要建立的新的列。
  
  3使用DBMS_REDEFINITION.START_REDEF_TABLE来开始重新定义过程。这一过程的参数说明了旧的表格,新的表格,以及如何将现成的列映射到新表格的列。
  
  4建立任一约束,索引。
  
  5使用DBMS_REDEFINITION.FINISH_REDEF_TABLE来完成这一过程。当重新定义在两个表格之间交换时,无论原来表格的大小,都必须将表格锁定为一小段时间。
  
  6. 放弃在重新定义中使用的临时表格,而不再使用它。
  
  当然,重新定义一个表格不会自动地更新任何可以访问表格的程序代码。程序必须分开地更新和调试。然而,DBMS_REDEFINITION does所可以做的就是缩短时间,这正是用户的需求。
  
  5.只有表格的主人才能分配使用权限
  当我提到Oracle安全特性时,客户都无法相信DBA不能将使用权限分配给表格,除非表格的主人已经将其分配给DBA。然而,在以前就是这样的情况。这些限制是Oracle设计的一部分,但它使治理更加困难。在Oracle 9i,一个新的系统权限改变了这一点。
  
  现在的DBA具具备一个名为GRANT ANY OBJECT PRIVILEGE的系统权限。在过去,一个如此的语句
  
  GRANT SELECT ON scott.emp TO giselle;
  都会无法通过,除非SCOTT已经将DBA 的SELECT权限分配给他的表格 WITH GRANT OPTION。现在,相同的语句却可以正确运行。
  
  保持忘却状态
  正如Visa的创始人Dee Hock所说的,“问题不是你如何去获得创新的思想,而是如何去忘却旧的东西。”所以,请保持忘却状态。
上一篇:在9i里对基于函数的索引进行仅索引扫描 人气:597
下一篇:ORACLE SGA分配 人气:568
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成