物化视图总结
物化视图刷新方式有两种:1 提交刷新(refresh on commit)2 按需刷新(refresh on demand)[@more@]这两种方式区别:1 提交刷新即事务进行提交的时候物化视图进行刷新,所以说这种刷新机制是自动的,不需要人工指定。但同时,这种刷新的速度会相对慢一些,因为本身数据库进行提交就已经要干很多活了,更何况现在又多了一项刷新。2 这种刷新方式比较灵活,可以通过脚本设定时间刷新,也可以手工刷新,刷新使用的包为dbms_mview.refresh对于这两种刷新方式,都有三种刷新类型可供选择:1 fast (refresh fast on commit/demand)2 force
ORA-00001: unique CONSTRAINT (RCAT.TF_U2) violated
每天的备份出错,信息如下:connected to target database: GZDM (DBID=1879443745)connected to recovery catalog databaseRMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15> 16> 17> 18> 19> 20> 21> 22> 23> 24> 25> 26> 27> 28> 29> 30> 31> 32> 33> 34> 35> 36> 37> 38> 39> 40> 41> 42> RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15>
由gc cr multi block request等待事件想到的
gc cr multi block request实际就是global cache cr multi block request,10G以后global cache被简称为gc,在RAC应用系统里面,这是一个常见的等待事件。[@more@]工作原理:当进程请求数据库块时,首先会在本地的CACHE里面查看是否存在,这种查看是根据DBA (Data Block Address) 转化为cache buffers chains,然后再从hash bucket确认是否存在。如果在本地没发现有块的CACHE,进程就会请求resource master授予共享访问给数据块,然后再去获取数据块的CACHE。如果请求的BLOCK CACHE在远程的节点,resource master就会使用内部通讯把远程的CA
ORA-00600: internal error code, arguments: [kssadd_stage: null parent]
安装好了一个客户端,准备连接数据库,却报600错误。[@more@]SQL*Plus: Release 10.2.0.2.0 - Production on Mon Aug 27 10:00:08 2007Copyright (c) 1982, 2005, Oracle. All Rights Reserved.ERROR:ORA-00600: internal error code, arguments: [kssadd_stage: null parent], [], [],[], [], [], [], []Error accessing PRODUCT_USER_PROFILEWarning: Product user profile information not loaded!You may need to run PUPBLD.SQL as SYSTEMERROR:ORA-00600: internal error code, arguments: [kssadd_stage: null parent], [], [],[
oracle10 CMAN配置过程
使用连接管理器(CMAN),可以让客户端通过装有CMAN的服务器来访问DB,而不是直接访问DB,因此CMAN整个配置涉及到三方面:1 客户端配置 2 CMAN服务器配置 3 数据库服务器配置,以下是配置过程[@more@]1 客户端配置这个比较简单,只需要配置TNSNAMES.ORA就可以了,例如:stdm =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =10.243.216.185)(PORT = 1522))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME =stdm)))2 CMAN服务器配置先配置好CMAN服务器的TNSNAMES.ORA文件:STDM =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = T
oracle net连接方式
有些文档说是五种,我看了10g官方文档,只有以下4种,粗略记下。[@more@]1 local naming连接方式如: CONNECT username/password@SERVICE_NAME (我们常用的就是这个)修改tnsnames.ora文件,如下:sales=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com)))sqlnet.ora 文件如下:NAMES.DIRECTORY_PATH=(tnsnames, hostname)2 directory naming创建一个目录,建立SERVICE_NAME的alias,然后再去访问,访问方式和local naming 类似CONNECT username/password@SERVICE_N
expdp进程HANG住了
故障现象如下:$ more zsdump.oradumpfile=testpara_%U.dmpPARALLEL=3DIRECTORY=szdumpTABLES=(BULK.TW_USRCALL_MO_200703,BULK.TW_USR_BUSIOFFICE_DAY_200704,BULK.TW_USR_CELLUSE_DAY_200705,BULK.TW_USR_CELLUSE_DAY_200704,BULK.TW_USR_BUSIUSE_DAY_200705)EXCLUDE=REF_CONSTRAINT,GRANT,INDEX,STATISTICS$ expdp BULK/BULK PARFILE=zsdump.ora logfile=testpara3.log [@more@]Export: Release 10.2.0.2.0 - 64bit Production on Thursday, 31 May, 2007 14:34:34Copyright (c) 2003, 2005, Oracle. All rights reserved.Connected t
DBA_HIST_SQLBIND 视图
在调整SQL的步骤中,使用绑定变量是首选。而使用了绑定变量之后,变量传入的不同值会产生不同的执行计划。在以前使用9I的时候,为了模拟得到和生产环境更为接近的数据,执行计划,我有时候不得不尝试传入不同的变量值去测试。而10G的DBA_HIST_SQLBIND在这方面相信会更有帮助[@more@]先来看看这个视图的详细解释ColumnDatatypeNULLDescriptionSNAP_IDNUMBER Unique snapshot IDDBIDNUMBER Database ID for the snapshotINSTANCE_NUMBERNUMBER Instance number for the snapshotSQL_IDVARCHAR2(13) SQL identifier of the parent
ORACLE并行
设置并行的两个参数 参数名 类型 说明 parallel_max_servers 整型 每个节点的最大并行进程数 parallel_min_servers 整型 每个节点的最小服务器进程数 [@more@]例如设置如下:*.parallel_max_servers=5*.parallel_min_servers=2当服务器启动的时候,会启动两个并行的后台进程ora_p000_sid,ora_p001_sid,在这个服务器中最大只允许5个并行进程。parallel_max_servers的值本来就是CPU的个数,建议这个值设置为CPU个数-1,如果设置了parallel_automatic_tuning 参数,那么parallel_max_servers可以设置大一点,因为
RMAN-06004处理过程
中午,NETBACKUP的工程师说备份有错误,叫帮忙解决Full backup requestedRecovery Manager: Release 10.2.0.2.0 - Production on Thu Apr 19 18:47:02 2007[@more@]Copyright (c) 1982, 2005, Oracle. All rights reserved.connected to target database: BDB (DBID=1955257682)connected to recovery catalog databaseRMAN> RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ==========================================
SP
使用PL/SQL根据条件,对数据库中的表自动进行更新的SP,这是在原来的SP上进行修改后的,原来的比较繁琐,内容冗长,执行效率不高.由于对开发这块涉足不深,许多知识点容易忘记,所以要记录下来,方便以后.[@more@]create or replace procedure timer_onoffshelf as interval NUMBER := 5/1440; v number(1); v_clause varchar2(255); v_sql varchar2(400); type cur_alldata is ref cursor; l_alldata cur_alldata; v_id number; v_bgn_enabled char(1); v_end_enabled char(1); v_type number(1); v_starttime char(5)
ORA-00600的解决过程
今天收到大量邮件,有如下报错ORA-00600: internal error code, arguments: [kkslhsh1], [101], [], [], [], [], [], [][@more@]由于数据库主业务正常,只是其他小功能出现这样的故障,所以看到600,倒也没什么。没有METALINK帐号,我只好从各种日志去看有没有什么发现,基本上所有的警告都是指向UGA Repeat 31 timesC7D6C90 00000000 [....] qmxdplsuga * qmxdplsuga_p [C7D6C94, C7D6C98) = 00000000qmpauga * qmpauga_p [C7D6C98, C7D6C9C) = 00000000qmxtcug * qmxtcuga_p [C7D6C9C, C
ORACLE 10G 新特性之-----端到端跟踪(TRACE)
诊断性能问题的一种常见方法是启用 sql_trace 来跟踪数据库调用,然后使用 tkprof 等工具来分析输出。但是,这种方法在具有共享服务器体系结构的数据库中具有严重的局限性。在这种配置中,创建了若干个共享服务器进程,为用户的请求提供服务。当用户 BILL 连接数据库时,调度程序将连接传递到一个可用的共享服务器进程。如果没有可用的共享服务器进程,则创建一个新进程。如果开始跟踪该会话,则会跟踪由共享服务器进程所进行的调用。[@more@]现在假设 BILL 的会话变为空闲状态,而 LORA 的会话变为活动状态。此时最初为 BILL 提供
ORACLE 10G 新特性之------调度程序(dbms_job )
您是否厌倦了在 dbms_job 中手工管理时间间隔的繁琐,需要数据库内部有个新调度系统? 让我们就着眼于数据库本身来解决这个问题。[@more@]你们中的一部分人可能广泛使用 dbms_job 程序包来将数据库作业提交到后台运行,控制运行的时间或时间间隔,报告故障等等。 然而,我感觉你们中的大部分人不会这么做。 这个程序包存在的问题是它只能够处理 PL/SQL 代码段 — 仅能处理匿名程序块和存储程序单元。 它不能在数据库外部处理操作系统命令文件或可执行文件中的任何东西。 为此,您将不得不求助于操作系统调度实用工具(如 Unix 中的 cron
关于10G新特性的一些看法
这些天,有空的时候都在看关于10G的特性,其实以前也看过,只是由于目前管理的数据库版本几乎都是9I版本的,所以关注的少,很多都忘记了。[@more@]手下管理的数据库,PRODUCT有个版本是10.1.0.2,测试数据库是10.2.0.1的,正好可以帮助我进一步熟悉。TOM就强烈建议对应一个新版本出现,首先应该花时间看看新版本的新特性,10G很多东西都实现智能化,对于DBA的管理更为方便,特别是ADDM和AWR的出现,我在看的过程中一直都在问自己,由于我管理的数据库,对外是不公开的,也就是说,不能直接通过HTTP直接访问数据库,由于ADDM和AWR的价值是通