
Oracle Fundamental
文章平均质量分 82
aaron8219
专注于Oracle、MySQL等数据库领域的技术,努力成为技术达人。
Focusing on Database Technologies,struggling to become the Acer.
展开
-
执行计划中与分区相关的OP介绍
SQL> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Productio原创 2015-10-31 22:53:03 · 1297 阅读 · 0 评论 -
用Delete与Truncate清除表数据对高水位的影响
众所周知,oracle段都有一个在段内容纳数据块的上限,我们把这个上限称为"High Water Mark"(HWM)。这个HWM是一个标记,用来说明已经有多少没有使用的数据块分配给这个segment。原则上HWM只会增大,不会缩小,即使将表中的数据全部删除,HWM还是为原值。HWM就像一个水库的历史最高水位,这也是为何会称之为“高水位”的缘故。实际环境中随着我们表中数据的不断增长,表的高水位也被不断的推高。当高水位达到一定程度之后,会对该表上的SQL查询效率产生负面影响,因此需要采取有效措施降低高水位。下原创 2014-09-27 17:51:17 · 2620 阅读 · 0 评论 -
Delete删除表数据时对性能的影响分析
上一篇博客中提到,当我们用delete删除数据时,因为无法降低高水位,对表做全表扫描时会带来数据库性能问题,而truncate可以大大改善这一状况,下面来看测试SQL> conn zlm/zlmConnected.--创建表之前先记录下剩余表空间大小SQL> select * from dba_free_space where tablespace_name='原创 2014-09-27 22:29:37 · 4850 阅读 · 0 评论 -
静默方式安装10g数据库软件+升级patch+手工建库
通常我们安装Oracle数据库软件,都是用OUI图形界面来完成的,但有些Unix/Linux系统中并未安装图形系统,也就无法使用图形界面来安装Oracle的产品了,对于这种场景,就只能采用静默方式来安装了,Oracle提供了这种silent方式,主要是通过配置响应文件rsp来完成的。1.静默安装10.2.0.1数据库软件--解压安装包[oracle@prod u01]$原创 2014-08-30 00:17:55 · 2230 阅读 · 0 评论 -
关于 SQLNET.AUTHENTICATION_SERVICES 验证方式的说明
今天去客户那里巡检,客户提出为了提高数据库安全性考虑,需要修改sys/system密码,并通过数据库验证方式来替代默认的操作系统方式,这里,我就把这两种验证方式总结一下。操作系统验证,即通过操作系统账户的权限访问数据库,举个例子,如果已经拥有了windows下的系统管理员administrator的权限,那么当采用该方式验证的话,无需输入用户/密码就可以访问,比如:sqlplus /原创 2014-08-28 21:50:51 · 4011 阅读 · 0 评论 -
Install Oracle 10g on Red Hat Linux 5.3 Step by Step
一、虚拟机配置1、 虚拟机(VBox 4.3.12)2、 配置虚拟机网卡网络,选择host-only,VirtualBox Host-Only Network网卡IP为设置为192.168.1.100二、安装RedHat 5.3操作系统(序列号:9f3013459b745c13)具体过程略,注意在自定义软件包那里选择现在配置,选取“开发工具”、“旧的开发工具”、“X工具”下原创 2014-08-22 16:15:01 · 1572 阅读 · 0 评论 -
ORADIM工具介绍
创建例程:-NEW -SID sid | -SRVC 服务 [-INTPWD 口令] [-MAXUSERS 数量] [-STARTMODE a|m] [-PFILE 文件] [-TIMEOUT 秒]编辑例程:-EDIT -SID sid [-NEWSID sid] [-INTPWD 口令] [-STARTMODE auto|manual] [-PFILE 文件名] [-SHUTMODE转载 2014-07-15 00:33:05 · 1575 阅读 · 0 评论 -
ORACLE 中极易混淆的几个 NAME 的分析和总结
在init.ora中有db_name,instance_name,service_name在操作系统中需要配置oracle_sid在listener.ora中有SID_NAME,GLOBAL_DBNAME,在tnsname.ora中有SERVICE_NAME,SID init.ora中Db_name:对一个数据库(Oracle database)的唯原创 2014-07-29 14:16:42 · 2557 阅读 · 0 评论 -
Deploy Oracle 10.2.0.5 on Red Hat Enterprise Linux 6.4
一、Linux系统安装配置1.安装系统时选Desktop2.设置eth0网卡为静态IP,添加子网掩码,网关,DNS,并配置自动启动3.修改/etc/hosts,添加主机名和对应IP4.禁用firewall和selinuxchkconfig iptables offvi /etc/selinux/configSELINUX=disabled原创 2014-07-28 23:27:17 · 2426 阅读 · 0 评论 -
使用rowid和rownum获取记录时要注意的问题
我们知道,rowid和rownum在Oracle中都是可以被当做伪劣使用的,主要用来定位表中特定的记录,但它们是有区别的,rowid是和行记录的物理地址对应的,而rownum则不是,是通过返回的记录集来判断首条记录,即rownum=1的记录,然后再去fetch之后的记录,rownum=2、rownum=3……,以此类推。下面来看实验:SQL> conn zlm/zlmConne原创 2014-10-09 17:35:25 · 1799 阅读 · 1 评论 -
深入解析10g中SGA_MAX_SIZE和SGA_TARGET参数的区别和作用
SGA_MAX_SIZE是从9i以来就有的作为设置SGA大小的一个参数,而SGA_TARGET则是从10g才有的一个新参数,作为配合10g自动管理SGA而出现的,下面以实验的方式,深入解析这2个参数的区别和作用[oracle@bak ~]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Mon原创 2014-10-13 04:07:35 · 5595 阅读 · 1 评论 -
Install Orace 11g on Solaris 10 Sparc 64 bit
昨天去一客户那里安装11g数据库,把整个安装过程和遇到的一些问题做个记录,分享一下。由于该客户无法用自己的机器远程连接到服务器,也不允许通过U盘、移动硬盘等拷贝任何文件,因此一些记录内容无法做到很详尽,只能凭记忆大致写出。主机:SUN Netra T4-1 M4000CPU:8 core 2.85GHz内存:32G系统:Solaris 10原创 2014-10-16 12:41:05 · 1645 阅读 · 0 评论 -
行链接消除测试
上次博文测试了行迁移的产生以及如何消除,这次我们再来测试一下行链接的产生以及如何消除。通常,产生行链接是因为当一行数据大于一个数据块,则ORACLE会同时分配两个数据块,并在第一个块上登记第二个块的地址,从而形成行链接。[oracle@ora10g ~]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Product原创 2015-10-27 15:21:54 · 865 阅读 · 0 评论 -
Oracle数据块概念及与行之间的关系测试
数据块(Oracle Data Blocks),是Oracle最小的存储单位,Oracle数据存放在“块”中,一个块占用一定的磁盘空间。这里的“块”是Oracle的“数据块”,不是操作系统的“块”,操作系统的块通常为512k。 Oracle每次请求数据的时候,都是以块为单位,也就是说,Oracle每次请求的数据是块的整数倍。如果Oracle请求的数据量不到一块,Oracle也会读取整个块原创 2015-09-22 16:00:44 · 1766 阅读 · 1 评论 -
行迁移的产生、消除和优化测试
当一条记录被更新时,oracle会尝试在它保存的数据块中寻找足够的空闲空间(这个空间由pctfree值确定),如果没有足够的空闲空间可用,这条记录将被拆分为两个部分,第一个部分包括指向第二个部分的rowid,该部分任然保留在原来的数据块中,第二个部分包含所有的具体数据,将保存到另外一个新的数据块中,这就是所谓的行迁移。 简单些,可以这样理解,行迁移是由于更新的行大于数据块的PCTFREE值原创 2015-09-29 15:24:06 · 869 阅读 · 0 评论 -
关于删记录释放表空间的测试
[oracle@ora11g ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Sun May 31 15:50:14 2015Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to an idle i原创 2015-05-31 17:33:10 · 688 阅读 · 0 评论 -
转储日志文件实验
今天实验的内容是对online redo log进行转储,并分析其中内容--创建测试表SQL> conn zlm/zlmConnected.SQL> create table t1(name varchar2(10));Table created.--插入数据SQL> insert into t1 values('abc');1 row created.SQL> commit;Commit complete.原创 2014-12-31 22:26:55 · 1375 阅读 · 0 评论 -
如何利用DBMS_LOGMNR包挖掘在线日志
今天实验内容是日志挖掘工具LOGMNR的使用,我的测试版本是10.2.0.1默认就自带了,无需另外安装。如果未安装过提示无法使用这个dbms包,则可以用SYSDBA登陆,然后依次执行:@$ORACLE_HOME\rdbms\admin\dbmslm.sql;@$ORACLE_HOME\rdbms\admin\dbmslmd.sql;第一个脚本用来创建DBMS_LOG原创 2014-12-26 11:12:21 · 2815 阅读 · 0 评论 -
Oracle 10g 快速手工建库步骤
1. 修改登录标识符和默认编辑器(非必须)修改$ORACLE_HOME/sqlplus/admin/glogin.sql,在文件末尾添加以下内容:set sqlprompt '_user''@''_connect_identifier> 'define _editor=vi原创 2015-01-10 23:35:02 · 1551 阅读 · 0 评论 -
控制文件多路复用时要注意的问题
由于控制文件对于数据库的重要性很高,所以通常在dbca建库以后,都会对控制文件多路复用。如,在oracle10g中,默认控制文件有3份,内容完全一致,通常位于$ORACLE_BASE/oradata/SID/下面,名字为control01.ctl,control02.ctl,control03.ctl,而到了11g,默认只有2个份,一个位于$ORACLE_BASE/oradata/SID/下面,名原创 2014-11-07 02:43:45 · 1289 阅读 · 0 评论 -
11.2.0.1 单实例数据库升级到 11.2.0.3.18 的步骤
11g数据库升级共有3种方式:DBUA,,MANUAL,EXPDP/IMPDP+UPDATE 我们比较熟悉的是前两种升级方式,至于第三种,官方文档是这样说的:Unlike DBUA or a manual upgrade, the Oracle Data Pump Export and Import utilities physically copy data from your current database to a new database. When upgrading fro原创 2014-07-03 01:27:25 · 1522 阅读 · 0 评论 -
Oracle 细粒度审计(FGA)详解及应用示例
安全性和身份管理现实中的细粒度审计作者:Arup Nanda了解如何使用 Oracle 数据库的细粒度审计特性来跟踪对表中特定行的只读访问 — 以及更多信息传统的 Oracle 数据库审计选件允许您在宏观级别上跟踪用户在对象上所执行的操作 — 例如,如果您审计对某个表的 SELECT 语句,则可以跟踪是谁从表中选择了数据。但是,您不知道他们选择了 什么 。利用数据操转载 2014-07-01 14:00:18 · 5375 阅读 · 0 评论 -
Oracle FGA(Fine-Grained Audit)细粒度审计的用法
大家对trigger可能比较熟悉,但Oracle还有一个叫FGA的功能,它的作用和trigger类似,但功能更强大.它的全称是Fine-Grained Audit ,是Audit的一种特殊方式.使用FGA只要调用Oracle的包DBMS_FGA.ADD_POLICY创建一些policy(审计策略)就行.每个policy只能针对一个表或视图.建好策略后所以对表或视图的DML操作(select,ins转载 2014-07-01 13:49:02 · 4125 阅读 · 0 评论 -
Oracle Stream配置详细步骤
1 引言 Oracle Stream功能是为提高数据库的高可用性而设计的,在Oracle 9i及之前的版本这个功能被称为Advance Replication。Oracle Stream利用高级队列技术,通过解析归档日志,将归档日志解析成DDL及DML语句,从而实现数据库之间的同步。这种技术可以将整个数据库、数据库中的对象复制到另一数据库中,通过使用Stream的技术,对归档日志的挖掘,转载 2013-09-04 14:09:37 · 1222 阅读 · 0 评论 -
Stream技术总结及11gR2 Stream Replication同步复制实验(SCHEMA&TABLE)
一、Stream技术特点及与OGG产品的主要区别Stream和OGG都可作为高可用环境中用于复制并同步数据的解决方案。Stream是自9i以来,Oralce数据库提供的一种功能,主要是Oracle的消息队列(也叫Oracle Advanced Queue)技术的一种扩展应用,流复制(Stream replication)只是基于它的一个数据共享技术。不同的是,OGG作为原来的第三方软件,自原创 2013-09-08 10:06:16 · 4832 阅读 · 0 评论 -
ORA-27101shared memory realm does not exist 及 Oracle框架构件
Warming Up: 本文适合Oracle初学者。 在Oracle Start Up 1中我说了几个概念和Oracle数据库的结构,当然在Oracle Start Up 1 里面主要说明的是Oracle数据库的结构(物理组成和逻辑结构)。 本文解决一个初学者很可能常遇到的问题(我遇到了,花了好久才解决)。 本文一切测试实验基转载 2013-08-17 11:14:28 · 1416 阅读 · 0 评论 -
Oracle DBA 知识点和操作命令
查看和修改sgashow parameter sga;alter system set sga_target=’300M’ scope=both;Linux下查看二进制文件spfilestrings spfile.ora动态查看alert日志tail -f alert.logtail -10 alert.log 数据库四种状态查看bdump下转载 2013-08-23 12:59:51 · 1348 阅读 · 0 评论 -
Oracle10g的listener安全验证
Oracle10g开始,增加了另一个listener验证方式Local OS Authentication(本地操作系统验证),设置listener密码已不是安全检查的必要条件。在10g里,即使listener没设置密码。除了启动监听的用户外,其它用户也无法对listener做相关操作,如stop、reload、trace等。一、listener安全验证测试环境:转载 2013-08-23 00:01:42 · 1336 阅读 · 0 评论 -
FLASHBACK TABLE table_name TO BEFORE DROP引发的猜想
ORACLE 10G新增了FLASHBACK特性,其中FLASHBACK TABLE用来对误删的表进行修复。SQL> CONNECT SYSDBA/***** AS SYSDBA已连接。SQL> CREATE TABLE TEST (T VARCHAR2(10) ) ;表已创建。SQL> DROP TABLE TEST;表已删除。SQL> F转载 2013-08-21 23:05:27 · 1174 阅读 · 0 评论 -
Oracle 闪回特性(Flashback Query、Flashback Table)
--==================================================-- Oracle 闪回特性(Flashback Query、Flashback Table)--================================================== Oracle 闪回查询是指针对特定的表来查询特定的时间段内的数据变化情况转载 2013-08-21 23:24:39 · 1002 阅读 · 0 评论 -
高级复制与物化视图的选型
同步技术的选型() 高级复制(Advanced Replication)首先,从总部业务系统的业务需求出发,业务系统只需要对只读的数据进行同步和查询。 Oracle高级复制,也成为对称复制,分为多主体复制、物化试图复制和前两种的混合复制(参考图1-1,图1-2)。高级复制主要是用在对称的、等同的数据库表之间的(单向或双向)的复制,以满足分布式应用的需求。但高转载 2013-09-14 08:19:51 · 998 阅读 · 0 评论 -
The listener supports no services解决一例
今天做Advacned Replication实验的时候碰到一个问题,启动目标库监听时,出现The listener supports no services[oracle@adrep ~]$ lsnrctl startLSNRCTL for Linux: Version 11.2.0.3.0 - Production on 14-SEP-2013 10:11:38原创 2013-09-14 10:47:42 · 59471 阅读 · 2 评论 -
Advanced Replication同步复制实验(基于Trigger&基于Materialized View)
1. 高级复制和流复制介绍 1.1 高级复制(Advanced Replication) 高级复制也称为对称复制,分为多主体站点复制(Multiple Master Rplication)、物化视图站点复制(Materialized View Replication)和前两种的混合复制。高级复制主要是用在对称的、等同的数据库(仅限Oracle数据库之间)表之间的(单向或双向)的复制原创 2013-09-15 14:20:17 · 2528 阅读 · 5 评论 -
Oracle 补丁全集 (Oracle 9i 10g 11g Path)
****************************************** Oracle 补丁全集 (Oracle 9i 10g 11g Path) ****************************************** 俗话说,金无赤足,人无完人。 Oracle 的补丁也是层出不穷。下面将其罗列,或许你就用到了。 从 Oracl转载 2014-06-30 15:15:35 · 886 阅读 · 0 评论 -
SQLPLUS学习总结
一、QuickStartStarting SQL*Plus Command-line:TNS_ADMIN环境变量定义tnsnames.ora文件的位置二、GettingStartSQLPLUS用到的系统环境变量[UNIX]: TWO_TASK:UNIX环境下定义默认的链接串 TWO_TASK=MYDB export TWO_TASK sq转载 2014-02-12 10:29:45 · 2030 阅读 · 0 评论 -
sqlplus连接oracle乱码
RedHat linux AS4.0安装了oracle10g,同时创建数据库实例sc,后来又用dbca建立一个数据库实例st,发现在oracle系统用户下用sqlplus连接st实例时出现乱码,应该是中文无法显示造成的,但连接sc实例时无乱码,显示英文。上网搜集了一下资料,修改了oracle系统用户的环境变量在.bash_profile中新增了以下内容解决:export NLS_LANG=转载 2014-02-07 10:09:32 · 989 阅读 · 0 评论 -
oracle的number类型精度、刻度范围
一、 oracle 的 number 类型精度、刻度范围 number(p,s)p: 1---38s: -84---127有效数位 :从左边第一个不为 0 的数算起,到末位数字为止的所有数字,小数点和负号不计入有效位数。 p>0 ,对 s 分 3 种情况: 1. s>0 精确到小数点右边 s 位,并四舍五入 。然后检验有效数位是否 ; ZW转载 2014-02-07 12:02:50 · 1123 阅读 · 0 评论 -
关于oracle字符集的说明
查看数据库字符集SQL> select * from nls_database_parameters where parameter like '%CHARACTERSET%';PARAMETER VALUE------------------------- ------------------------------NLS_CHARACTE原创 2014-02-07 11:27:25 · 852 阅读 · 0 评论 -
Oracle字符集详解
本文主要记录了Oracle数据库的字符集问题,也涉及作为服务器操作系统的CentOS或者Windows的字符集与Oracle字符集之间的关联关系。 Oracle的字符集,这个问题的提出是因为两个原因:一是工作中遇到一个DMP文件需要恢复到数据库中去,而这个DMP文件的字符集是US7ASCII,第二个原因是一直在学习CentOS,在这个系统上安装Oracle已经能成功转载 2013-11-08 20:44:50 · 1652 阅读 · 0 评论 -
Oracle 补充日志(Supplemental Logging)说明
补充日志:只要是针对 UPDATE 命令的,是对重做日志记录中 变更矢量块的补充信息,增加了变更矢量记载的记录量。日志挖掘器(LogMiner)、闪回事务查询、闪回事务等都需要 补充日志的支持。尤其是 日志挖掘器如果发现未启用补充日志,就拒绝服务。也就是说补充日志主要是为UPDATE 命令服务的,补充的目的是高度还原 UPDATE 命令,避免因为update 命令造成的行迁移和行移动,让转载 2013-11-19 16:21:09 · 12959 阅读 · 0 评论