Oracle FailSafe与rac的联系与区别(zt)
Oracle failsafe和RAC均为ORACLE公司提供的高可靠性(HA)解决方案。然而之两者之间却存在着很大区别:1.操作系统: failsafe系统局限于WINDOWS平台,必须配合MSCS(microsoft cluster server),而RAC最早是在UNIX平台推出的,目前已扩展至LINUX和WINDOWS平台,通过OSD(operating system dependent)与系统交互。对于高端的RAC应用,UNIX依然是首选的平台。 [@more@]2.系统结构: FAILSAFE采用的是SHARE NOTHING结构,即采用若干台服务器组成集群,共同连接到一个共享磁盘系统,在同一时刻,只有一台服务器能够访问共
ASSM管理(BMB段管理)的内部机理
在920以前,表的剩余空间的管理与分配都是由链接列表freelist来完成的,因为freelist存在串行的问题因此容易引起往往容易引起段头的争用与空间的浪费(其实这一点并不明显),最主要的还是因为需要DBA 花费大量的精力去管理这些争用并监控表的空间利用。 [@more@] 自动段空间管理(ASSM),它首次出现在Oracle920里。有了ASSM,链接列表freelist被位图所取代,它是一个二进制的数组,能够迅速有效地管理存储扩展和剩余区块(free block),因此能够改善分段存储本质,ASSM表空间上创建的段还有另外一个称呼叫Bitmap Managed Se
本地管理表空间与字典管理表空间的比较
本地治理表空间与字典治理表空间相比大大提高了治理效率和数据库性能,其优点如下: 1.减少了递归空间治理 本地治理表空间是自己治理分配,而不是象字典治理表空间需要系统来治理空间分配,本地表空间是通过在表空间的每个数据文件中维持一个位图来跟踪在此文件中块的剩余空间及使用情况。并及时做更新。这种更新只对表空间的额度情况做修改而不对其他数据字典表做任何update操作,所以不会产生任何回退信息,从而大大减少了空间治理,提高了治理效率。同时由于本地治理表空间可以采用统一大小分配方式(UNIFORM),因此也大大减小了空间治理
ORA-20003 , procedure存储过程失效问题
.[@more@] a. 修改存儲過程調用的table結構會造成procedure 需用重新編譯 (10g 會自動編譯,不需要人為) 。 b. 存儲過程調用另外一個存儲過程,另外一個修改了其中的object,那么兩個存儲過程都需要重新編譯 (10g 會自動編譯,不需要人為) 。 c. 存儲過程中調用的table如果他的同義詞有其他object同名,修改了同名的objects 也注意導致procedure invalid .应当尽量避免创建与PUBLIC同义词 同名的对象 臨時解決方法: 把 alter pro_name compile 賦給一個字符串變量, 然后在程序中 EXECUTE IMMEDIATE (類似于執行SQL一樣)
nologging 在什么情况下生效
.[@more@] REDO 记录发生在oracle数据库中的一举一动,当你往表里插入数据时候,如果表上存在索引,oracle会自动帮你维护这些索引。但是这个看似简单的维护索引的工作背后有许多动作要做的,redo 就会生成这些全过程。对于 nologging 参数:也只是在特定的条件下才会大大减少redo 生成的数量.例如:以下摘自<expert one-on-one oracle>ndex creations and ALTERs (rebuilds). Bulk INSERTs using a 'direct path insert' via the /*+ APPEND */ hint. LOB operations (updates to large objects do not have to be logg
Linux下kernel.shmall参数的设置(zt)
.[@more@] Linux X86-64操作系统,Oracle 10g数据库,由8G加到16G,把kernel.shmmax参数改到17179869184(16G)后,发现只要修改sga_max_size和sga_target参数到超过8G,Oracle就会报内存不够无法启动,检查另外两个共享内存参数相关参数:kernel.shmall和kernel.shmmni,kernel.shmall参数是控制共享内存页数,kernel.shmmni参数是控制共享内存段总数,目前的参数值是4096,足够大了,那么问题应该是出在kernel.shmall上,用8589934592(8G)除以当前的参数值2097152,结果是4096,说明页大小是4K,现在要把SGA调到大于8G,就要调
学 SAP Basis 九年来的一点心得
第一章: SAP Basis的第一步- 如何入门自序这本书写了近二年,改了十多次。因为这三年来SAP推出太多新的东西,更改变或重新组合了许多旧有的产品。我希望这本书,旧的功能必须含盖、新的产品能够介绍。故一托再托,实在是因求好心切。这本书不是要取代那些英文BASIS的技术书,而是经验传授故事叙述。[@more@]在两岸及欧美计算机公司工作了十五个年头,回顾近十年来拿了四个不同SAP的认证,辛辛苦苦的念书考试,到头来仍需再考试升级。年纪不小了,记忆力愈来愈差。想想应该将自己一路走来的经验写下,走对的路可让大家参考,曾犯的错,各位
varchar2 与 nvarchar2 区别
.[@more@]national character ser一般指unicode模式的字符集,如utf8, utf16等,用这种类型的字符集,可以在数据库中时存储,英文,中文,韩文,日文,阿拉伯,德文,印度文,法文等世界上的主流语言的字符。所以我们称它为national character ser。SQL >insert into parameter ( p_name,p_value) values 21:22:55 2 (N'up_address','ftp://10.42.10.1/ai')21:22:55 3 ;已创建 1 行。提交完成。已用时间: 00: 00: 00.10 实际上Nvarchar和varchar没有什么区别,但使用Nvarchar时要在前面加N.
ora-12638 身份证明检索失败 解决方式
今天登入一个Windows2003 系统下安装的Oracle9i ,ora-12638 身份证明检索失败,后来发现是因为两台机器在不同的域下面。客户机是在WLAN域名中,测试数据库在DEPT002 域中 。初步了解发现如果两台机器都有 sqlnet.ora 文件,且其中都有 SQLNET.AUTHENTICATION_SERVICES= (NTS) ,这时候会出现: ora-12638 身份证明检索失败 错误 。一般方式是注释掉DB段或客户端的 # SQLNET.AUTHENTICATION_SERVICES= (NTS) 或 设置 SQLNET.AUTHENTICATION_SERVICES= (NONE), [@more@]详细解释: http://afy.itpub.net/post/980/48931 o
Standby Database的工作原理
1. Oracle 与 High Availability, Disaster Recovery 及 Data Duplicate 相关功能的产品概述 Oracle 的 High Availability 功能,Oracle 是从下面几个方面来诠释的:(1) System faults and crashes(2) Application and middleware failures [@more@](3) Network failures(4) Media failures(5) Human Error(6) Disasters and extended outages(7) Planned downtime, maintenance and management tasks上述第六项就包含了disaster recovery 在内。因此 disaster recovery 应该算做 high availability 的一个方面了。总的来说,除了以Oracle
Standby建立时候的Forced Logging模式
.[@more@]将primary数据库置为FORCE LOGGING模式。通过下列语句: SQL> alter database force logging; 提示:关于FORCE LOGGING 有一些DDL语句可以通过指定NOLOGGING子句的方式避免写redo log(目的是提高速度,某些时候确实有效),指定数据库为FORCE LOGGING模式后,数据库将会记录除临时表空间或临时回滚段外所有的操作而忽略类似NOLOGGING之类的指定参数。如果在执行force logging时有nologging之类的语句在执行,则force logging会等待直到这类语句全部执行。FORCE LOGGING是做为固定参数保存在控制文件中,因此其不受重启
实例恢复及介质恢复
备份与恢复 : a. 实例恢复: cache recovery(roll forward) + roll back b. ...
Oracle9i (9.2.0.4.0) Installation on Red Hat Enterprise Linux 5
环境: Red Hat Enterprise Linux 5 (RHEL5), Oracle9i (9.2.0.4.0) RHEL5 安装可参考 [url=http://ox0spy.googlepages.com/rhel5install.txt]Red Hat Enterprise Linux 5 (RHEL5) 安装说明 [@more@]下面以 $ 开头的命令都是由oracle执行的 # 开头的命令都是由root执行的 [color=DarkGreen][size=4]文章中提到的包都给出了获取方法,请认真阅读文章[/size][/color] 更多内容可阅读我blog : [url=http://ox0spy.blogspot.com/2008/03/oracle9i-92040-installation-on-red-hat.html]http://ox0spy.blogspot.com/2008/03/oracle9i-
如何创建合适的索引(zt)
当你接手一个系统时,通常是从检查系统负载,cpu、内存使用率开始,查看statspack top5等待事件,逻辑读、物理读排名靠前的sql语句等等,然后进行初步的优化。而随着业务的深入了解,你开始从系统的角度去考虑据库设计,考虑应用实现的合理性,是否有更好的改进方案等。假设通过statspack报表找到了很耗资源的sql,表分析过,执行计划也是走索引,这种情况下怎么去判断sql是优化的?看下面的实际案例:[@more@]1.提取逻辑读排名靠前的sql6,813,699 336 20,278.9 10.1 66.72 80.45 3039661161module
Linux AS3.0 u6 报错, 系统Hang住 :kernel: (6747) ERROR: status = -999
Linux AS3.0 u6 版本, 2.4.21-37.ELsmp Oracle9.2.0.4 RAC OCFS 4/22 下午 17:50左右发生问题,节点2系统hang住,只有按电源才能重新启动,后来重启后OK . [@more@]------------------------------------------------------------------------- 节点2上的 Linux Log : Apr 22 00:43:57 DELL-RAC02 telnetd[6710]: ttloop: peer died: EOFApr 22 00:48:51 DELL-RAC02 telnetd[6813]: ttloop: peer died: EOFApr 22 00:53:50 DELL-RAC02 telnetd[6953]: ttloop: peer died: EOFApr 22 00:57:43 DELL-RAC02 kernel: (6747) ERROR: stat
Oracle中触发器的应用 (zt)
触发器(此文为greenfish原创,转载请注明)触发器是指存放在数据库中,并且被隐含执行的存储过程。当发生特定事件时,Oracle会自动执行触发器的响应代码。触发器又分为DML触发器、INSTEAD OF触发器和事件触发器三种。[@more@]一、 DML触发器 DML触发器是指基于 DML操作所建立的触发器。在建立了DML触发器之后,如果执行了关于DML语句,那么Oracle会隐含的执行触发器代码。DML触发器包括语句触发器和行触发器两种类型。1.1 语句触发器语句触发器是指当执行DML语句时被隐含执行的触发器。在建立了语句触发器之后,如果执行了相关的DML语
关于提高Oracle数据库性能的四个误区
为了提高性能,我们针对Oracle数据库本身提供了的方法或方案进行过不少的尝试,主要包括: 共享服务器模式(MTS); 集群技术(Clustering)RAC; 分区; 并行处理(主要是并行查询)。 [@more@] Oracle提供的这些特性确实是用来进行性能改善的,但我们往往忽略了对自身应用特性的分析,它们是否适合于我们。最近,通过对这方面知识的深入了解,发现我们以前存在一些错误的认识。我觉得有必要,大家一起来改变这种误解。 分析之前,先明确一下我们的应用特性。数据库应用大体可以分为OLAP和OLTP两大类,即:联机事务分析(数据仓库)和联
Oracle9i中的PGA
1、PGA的结构Oracle的内存结构,除了SGA(System Global Area)之外,Oracle进程还使用下面三个全局区:The Process Global Area (PGA)The User Global Area (UGA)The Call Global Area (CGA)[@more@]很多人都搞不清楚PGA和UGA两者之间的区别,实际上两者之间的区别跟一个进程和一个会话之间的区别是类似的.尽管说进程和会话之间一般都是一对一的关系,但实际上比这个更复杂.一个很明显的情况是MTS配置,会话往往会比进程多得多.在这种配置下,每一个进程会有一个PGA,每一个会话会有一个UGA.PGA所包含的信息跟会话是无任何关联的,而UGA包含的信息是
建立与Oracle数据库服务器连接的两种连接模式(专用服务器与共享服务器)
在建立Oracle数据库的时候,应该会在数据库建立助手向导上面看到这么一个选项,就是数据库的连接模式采用什么方式。在Oracle9i或者10g中,可以看到有2种连接模式,一种叫做专用服务器连接(dedicated server) ,另外一种叫做共享服务器连接(shared server)。下面我们来分类说一下这两种连接方式的不同点。[@more@] 专用服务器模式就是说每次在对Oracle进行访问的时候,Oracle服务器的Listener会得到这个访问请求,然后回为这个访问创建一个新的进程来进行服务。所以说,对于每一个客户端的访问,都会生成一个新的
Oracle重做日志丢失的故障处理 (zt)
.[@more@]Oracle重做日志Oracle的重做日志文件(Online redo logfile)循环记录了数据库所有的事务。它的大小、个数和存储位置对数据库性能和恢复有重要影响。它一般由大小相同的几组文件构成。我们可以查看数据库视图v$logfile知道redo logfile的个数和存储位置。对每一个Oracle数据库都要求至少具有两个联机重做日志。每一次新的事务提交时,Oracle将该事务写入日志文件,但并非此时也将修改的数据块写回原数据文件。由于内存读写和磁盘I/O存在几个数量级的效率差别,Oracle通过减少数据文件的物理I/O读写来大大提高数据库的性能;同时,又