![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
oracle技术
文章平均质量分 83
cn_chenfeng
希望结交技术朋友,探讨MySQL/Oracle/NoSQL技术。
展开
-
哪些初始化参数影响Oracle系统性能
系统全局区(SGA)是一个分配给Oracle 的包含一个 Oracle 实例的数据库的控制信息内存段。主要包括数据库高速缓存(the database buffer cache),重做日志缓存(the redo log buffer),共享池(the shared pool),数据字典缓存(the data dictionary cache)以及其它各方面的信息。 db_block_bu转载 2005-09-28 10:10:00 · 1140 阅读 · 0 评论 -
如何控制客户端访问oracle9i的ip地址
在NET8采用TCP/IP协议时,在oracle9i服务器的sqlnet.ora中进行下列参数的设置可以限制或允许用户从特定的客户机连接到数据库中。tcp.validnode_checking=yes|notcp.invited_nodes=(ipaddress|hostname)tcp.excluded_nodes=(ipaddress|hostname)其中tcp.validnode_chec原创 2005-12-14 16:56:00 · 2670 阅读 · 3 评论 -
How to lookup Oracle ORA-600 Internal Errors
The ORA-00600 (ORA-600) error is a generic internal error from Oracle, and you must look-up the numeric arguments to understand the nature of the internal error. A typical ORA-00600 error does not i转载 2006-05-15 22:53:00 · 1141 阅读 · 0 评论 -
global cache cr request等待事件分析及优化
在RAC环境中,和全局调整缓存相关的最常见的等待事件无非就是:global cache cr request,global cache busy和equeue在XX电信做了一次数据库巡检中发现,spreport中的top 5 wait events中出现了global cache cr request等待事件,那么这个等待事件是什么原因引起的呢? 首先,我们来看看这个等待事件是如何转载 2007-07-04 12:22:00 · 8180 阅读 · 0 评论 -
ORACLE10g柱状图信息对执行计划的影响
我们知道,在Oracle Database 10g中,Oracle优化器的缺省模式由以前的CHOOSE,更改为现在的ALL_ROWS.SQL> show parameter optimizer_mode NAME TYPE VALUE------------------------------------ ---原创 2007-07-30 14:57:00 · 992 阅读 · 0 评论 -
select语句写redolog的条件
通过测试,我们发现select 语句在执行for update的时候会写REDOLOG,以下是测试结果:SQL> desc test Name Null? Type ---------------------------------------------------原创 2007-08-07 16:44:00 · 1180 阅读 · 0 评论 -
一个资深DBA提出的面试题及答案
原题:1. 数据库切换日志的时候,为什么一定要发生检查点?这个检查点有什么意义?答:触发dbwr的执行,dbwr会把和这个日志相关的所有脏队列写到数据文件里,缩短实例恢复所需要的时间。另外,当日志文件被覆盖的时候一定要确保相关dirty buffer一定被写入 数据文件, 所以日志的切换必须引起 检查点。2. 表空间管理方式有哪几种,各有什么优劣。答:字典管理方式和本地管理方式,本原创 2007-08-08 15:03:00 · 2243 阅读 · 0 评论 -
几种删除重复记录的方法
对于下面一张表:SQL> desc test Name Null? Type ----------------------------------------- -------- ---------------------------- NAME原创 2007-08-13 13:26:00 · 1036 阅读 · 0 评论 -
常用的批量插入和删除语句
创建测试表:SQL> create table test(id number(10),name varchar2(10),time date); Table created.1).批量插入语句(总共插入10000条记录,每500条COMMIT一次)SQL>declare l_num number;beginfor i in 1..10000loopinsert into te原创 2007-08-10 16:47:00 · 3889 阅读 · 0 评论 -
oracle9i rac环境下如何更改归档模式
在oracle9i rac下,更改归档模式不像单机或主/备模式下那么容易更改,主要是因为cluster_database参数的缘故。通过将cluster_database参数从true改为false,可以顺利用更改单机归档模式的方式来更改归档设置。更改完毕后,再将cluster_database参数改回true即可。至于归档日志,可以通过nfs共享来保存两边共有的归档日志,当然也可以用rman直接转载 2005-12-14 09:57:00 · 1929 阅读 · 0 评论 -
EXP-00024错误的解决方法
I am running oracle 9.2.0.4 on solaris8. I am exporting all and is getting the following error message.#su - oracle$exp system/manager file=oracle_1127_clear.dmp full=y indexes=y consistent=y log=orac原创 2005-11-27 23:35:00 · 3047 阅读 · 1 评论 -
关于重做日志缓冲区(REDO Log Buffer)中内容的一点研究
对于数据库内所有被更改的数据块(segment),Oracle会把所有更改内容清楚记录在REDO日志缓冲中。 所谓所有更改内容,当然包括数据段,还有索引段和回滚段(rollback segment)。 数据库内任意数据块所发生的一个更改,会被写成一个变更向量(Change Vector)。 修改向量里包含了更改的数据块的地址与更新的数据。数据库的更改的最小记录单位是变更向量,一连串的变转载 2005-10-08 17:20:00 · 2197 阅读 · 0 评论 -
如何提高insert大批量数据的效率
我们在生产库中经常会遇到insert大批量数据到某一个表的情况,在数据库业务繁忙的时候,insert效率往往会很低,插入数据很慢,数据库出现严重等待。那么,结合自己的实际工作经验,简单来谈谈如何提高insert大批量数据的效率:1. 准备一个私有的,大的回滚段,可以用以下命令来实现:set transaction use rollback segment ...;insert ...commit;原创 2005-10-02 19:26:00 · 6247 阅读 · 0 评论 -
用裸设备扩数据库表空间
硬件环境:小型机 IBM P670,存储:IBM SHARK F-20 软件环境:操作系统 AIX5.1 数据库oracle9i 主题思想:物理卷PV->卷组VG->逻辑卷LV(类型:raw)->添加表空间 操作过程: 一、 首先 #lsvg – o //查看所有可用卷组 datavg03 datavg02 datavg01 datavg00转载 2005-10-02 22:05:00 · 1228 阅读 · 0 评论 -
statspack内容解释
Instance Efficiency Percentages Data Buffer Hit Ratio#Buffer Nowait Ratio#Library Hit Ratio#In Memory Sort Ratio#Redo Nowait Ratio#Soft Parse Ratio#Latch Hit Ratio#Percent Non-Parse CPU#Percent Pars转载 2005-10-26 17:17:00 · 1255 阅读 · 0 评论 -
如何实现关系表的级联删除(ON DELETE CASCADE的用法)
以下面两张表为例:SQL> desc person 名称 是否为空? 类型 ----------------------------------------- -------- ------------------------ PERSONID NOT NUL原创 2005-11-06 12:58:00 · 26211 阅读 · 2 评论 -
回滚段的常见错误及解决方法
(1).回滚段空间不够 ORA-01562 - failed to extend rollback segment number string 回滚段空间不够的原因一般有以下几种情况: A. 回滚段所在表空间剩余的空闲空间太小, 无法分配下一个EXTENT. B. 回滚段扩展次数已经达到MAXEXTENTS限制 解决方法: A. 扩大回滚段所在表空间 B. 设置较大的MAXEXTENTS参数 C.原创 2005-11-14 13:20:00 · 3140 阅读 · 0 评论 -
用重建控制文件的方法修改oracle数据文件路径
1.查看数据文件的路径:SQL> col file_name format a55 SQL> set line 120 pagesize 2000SQL> select file_name,tablespace_name from dba_data_files;FILE_NAME TABL原创 2005-11-09 10:54:00 · 2804 阅读 · 0 评论 -
truncate,delete,drop的异同点
truncate,delete,drop的异同点 注意:这里说的delete是指不带where子句的delete语句 相同点:truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger转载 2005-12-01 11:22:00 · 1039 阅读 · 0 评论 -
analyze表或索引会不会产生Histogram信息?
下面做实验来验证,analyze表或索引的时候,会不会产生Histogram信息.数据库版本: 9.2.0.4.0操作系统平台: Solaris 9SQL> desc test Name Null? Type ----------------------------------------- -------原创 2007-08-10 14:19:00 · 1022 阅读 · 0 评论 -
enqueue等待事件优化一例
数据库版本:Oracle 9.2.0.4.0操作系统: Solaris 10今天在测试库上跑一个SQL语句,目的是为了删除重复记录,但执行却异常的慢,等了20分钟都没返回结果.该SQL语句如下:SQL>delete from test where rowid in(select rid from(select rowid rid,row_number() over(partitio原创 2007-08-13 13:33:00 · 2346 阅读 · 0 评论 -
数据库性能优化一例之Hash Join
登陆操作系统,发现有一个Oracle进程CPU占用率达到99%.Memory: 2617704K (860220K) real, 2774560K (942392K) virtual, 38440908K free Page# 1/19CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMA原创 2007-08-14 13:56:00 · 1441 阅读 · 0 评论 -
重建控制文件时,与数据文件相关的Checkpoint信息来自何处
背景: 关闭数据库,启动数据库到Mount状态,查询此时数据文件头,控制文件中记录的各数据文件的Checkpoint; 再次关闭数据库,备份所有数据文件; 然后打开数据库,执行各转载 2007-09-17 16:06:00 · 1228 阅读 · 0 评论 -
Oracle中表的连接及其调整
只有对这些问题有了清晰的理解后,我们才能针对特定的查询需求选择合适的连接方式,开发出健壮的数据库应用程序。选择合适的表连接方法对SQL语句运行的性能有着至关重要的影响。下面我们就Oracle常用的一些连接方法及适用情景做一个简单的介绍。一、嵌套循环连接(Nested Loop) 嵌套循环连接的工作方式是这样的: 1、Oracle首先选择一张表作为连接的驱动表,这张表也称为外部表(Outer转载 2007-09-18 20:29:00 · 910 阅读 · 0 评论 -
数据库面试题目研究
一:SQL tuning 类1. 列举几种表连接方式Answer:等连接(内连接)、非等连接、自连接、外连接(左、右、全)Or hash join/merge join/nest loop(cluster join)/index join ?? ORACLE 8i,9i 表连接方法。 一般的相等连接: select * from a, b where a.id转载 2007-09-21 12:33:00 · 5336 阅读 · 1 评论 -
Oracle时间日期操作详细步骤
sysdate+(5/24/60/60) 在系统时间基础上延迟5秒sysdate+5/24/60 在系统时间基础上延迟5分钟sysdate+5/24 在系统时间基础上延迟5小时sysdate+5 在系统时间基础上延迟5天add_months(sysdate,-5) 在系统时间基础上延迟5月add_months(sysdate,-5*12) 在系统时间基础上延迟5年上月末的日期:select las转载 2007-09-25 13:52:00 · 1171 阅读 · 0 评论 -
alter system switch logfile和alter system archive log current的区别
alter system switch logfile 是强制日志切换,不一定就归档当前的重做日志文件(若自动归档打开,就归档前的重做日志,若自动归档没有打开,就不归档当前重做日志。)alter system archive log current 是归档当前的重做日志文件,不管自动归档有没有打都归档。主要的区别在于:ALTER SYSTEM SWITCH LOGFILE对单实例数据库或RAC中的转载 2007-10-25 22:23:00 · 32017 阅读 · 0 评论 -
RMAN备份慢故障处理一例
今天接到上海TAC电话,报告说最近一周的RMAN备份速度很慢, 数据量很小,但做一次增量备份大概需要3天。数据库版本:Oracle9204 RAC操作系统版本:Solaris 9RMAN备份语句为:RMAN> run{allocate channel c1 type disk;backup incremental level 1 database plus archivelo原创 2007-10-12 16:40:00 · 4314 阅读 · 0 评论 -
Oracle DBA的几种境界
初级的DBA碰到一个问题解决一个问题,永远都是在等问题,头疼医头,脚疼医脚。 中级的DBA知道怎么样去避免一些常规问题的发生,防止重复性错误。 高级的DBA知道了问题的原因与发生途径,能从流程规范等领域避免问题的出现。 资深的DBA知道了问题的本质,还能从规划设计上避免问题的出现。 顶级的DBA在问了,“什么是问题?我没有问题”。转载 2008-01-01 18:26:00 · 964 阅读 · 0 评论 -
Rman中的format格式介绍
可以参考如下:%c 备份片的拷贝数 %d 数据库名称 %D 位于该月中的第几天 (DD) %M 位于该年中的第几月 (MM) %F 一个基于DBID唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII为该数据库的DBID,YYYYMMDD为日期,QQ是一个1-256的序列 %n 数据库名称,向右填补到最大八个字符 %u 一个八个字符的名称代表备份转载 2008-07-23 13:50:00 · 1042 阅读 · 0 评论 -
参数session_cached_cursors的详细解释
SESSION_CACHED_CURSORS,就是说的是一个session可以缓存多少个cursor,让后续相同的SQL语句不再打开游标,从而避免软解析的过程来提高性能。(绑定变量是解决硬解析的问题),软解析同硬解析一样,比较消耗资源.所以这个参数非常重要。oracle有一个概念,那就是session cursor cache,中文描述就是有一块内存区域,用来存储关闭了的cursor。当一个c原创 2007-09-17 14:48:00 · 9886 阅读 · 2 评论 -
关于scn的深入理解
SCN(System Change Number):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。系统检查点scn(v$database(checkpoint_change#)) 数据文件检查点(v$datafile(checkpoint_change#)) 数据文件终止scn(v$datafile(last_change转载 2007-09-17 13:23:00 · 1322 阅读 · 0 评论 -
Oracle 11g 新特性详解
新一代的oracle又将增加很多激动人心的新特性。下面介绍一些 Oracle11g的新特性。 1. 数据库管理部分 · 数据库重演(Database Replay) 这一特性可以捕捉整个数据的负载,并且传递到一个从备份或者standby数据库中创建的测试数据库上,然后重演负责以测试系统调优后的效果。 · SQL重演(SQL Replay) 和前一特性类似。但转载 2007-08-14 16:29:00 · 863 阅读 · 0 评论 -
触发DBWR进程写脏数据块到数据文件的几个条件
DBWR作为一个后台进程,只有在某些条件满足了才会触发。这些条件包括:1) 当进程在辅助LRU链表和主LRU链表上扫描以查找可以覆盖的buffer header时,如果已经扫描的buffer header的数量到达一定的限度(由隐藏参数:_db_block_max_scan_pct决定)时,触发DBWR进程。_db_block_max_scan_pct表示已经扫描的buffer header的原创 2007-09-04 13:36:00 · 4585 阅读 · 1 评论 -
oracle读书笔记
如磁盘上数据文件的最小io单元叫block一样,buffer cache的最小单元(或者说结构)叫buffer,每个buffer跟x$bh中每条记录有一一对应关系。从使用维护buffer这个角度讲,存在一些链表主要的有LRU list 和dirty list(checkpoint queue),当从磁盘读取数据到buffer中时,需要到LRU list上寻找free buffer,如果没有则采用L转载 2007-09-04 14:43:00 · 1034 阅读 · 0 评论 -
Oracle中SQL语句解析的步骤
我们都知道在Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析。那么这两种解析有何不同之处呢?它们又分别是如何进行解析呢?Oracle内部解析的步骤又是如何进行的呢?下面我们就这些话题进行共同探讨。在Oracle中存在两种类型的SQL语句,一类为DDL语句,他们是从来不会共享使用的,也就是每次执行都需要进行硬解析。还有一类就是DML语句,他们会根据情况选择要转载 2007-09-04 16:25:00 · 1520 阅读 · 1 评论 -
Log actively being archived by another process的问题解决思路
今天遇到一个RMAN备份的错误,报错信息如下:Starting backup at 2007-09-03:08:19:42user interrupt receivederror occurred in source file: krmk.pc, line: 7635text of failing SQL statement: alter system archive log currentO原创 2007-09-06 16:25:00 · 2666 阅读 · 0 评论 -
TimesTen6.0 for Solaris installation manual
# groupadd -g 600 timesten# useradd -g 600 -u 600 timesten# passwd timestenNew Password: Re-enter new Password: passwd: password successfully changed for timesten# mkdir -p /etc/TimesTen原创 2007-06-14 16:39:00 · 1872 阅读 · 0 评论 -
Setup Cache Connect Step by Step on Solaris
1. Install TimesTen with Cache Connect option and access control.2. Install Oracle10g Client.3. Setup environment variable.$ cd /export/home/timesten$ vi .profileORACLE_HOME=/disk01/ap原创 2007-06-14 16:43:00 · 1126 阅读 · 0 评论 -
关于Oracle数据库热备份原理深入分析
我们都知道oracle的备份有几钟方式,冷备,热备,rman,imp等,我们注意到当我们采取热备的时候,需要对每个要备份的表空间置为backup模式。通常的热备脚本都是这样的: alter tablespace XXX begin backup;cp XXX ....alter tablespac转载 2007-09-14 15:19:00 · 1341 阅读 · 0 评论