- 博客(79)
- 资源 (6)
- 收藏
- 关注
原创 GROUP BY中ROLLUP/CUBE/GROUPING/GROUPING SETS使用示例
oracle group by中rollup和cube的区别:Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。CUBE ROLLUP 是用于统计数据的。使用SCOTT用户的EMP表测试1.仅使用GROUP BY分组,GROUP BY后的单列可以用括号,也可以不用。以下两种写法作用一样:SCOTT@bys1>SELECT deptno, avg
2013-10-31 21:44:03 2160 2
原创 SQLPLUS中autotrace traceonly stat统计信息解读
BYS@bys1>set arraysize 200BYS@bys1>set autotrace traceonly statBYS@bys1>select * from test2 order by 3;72465 rows selected.Elapsed: 00:00:00.57Statistics-------------------------------
2013-10-30 13:37:24 2100
原创 测试SQLPLUS的ARRAYSIZE对性能的影响
ARRAY SIZE,它表示从Oracle服务器端一次只传递多少行记录到客户端(SQLPLUS),比如set arraysize 15就一次传递15行。其它的JDBC,WEBLOGIC等也有自己的行预取参数。结论:实验用表是由dba_objects;创建。通过设置arraysize为1、15、200,可以通过最后的汇总表格得出将arraysize设置为200,可以得到更好的查询性能。具
2013-10-30 12:48:30 1628
原创 SQL语句执行顺序及建议--归纳整理
一、SQL语句准备执行阶段当SQL 语句进入Oracle 的库缓存后1) 语法检查:检查SQL 语句拼写是否正确和词序2) 语义分析:核实所有的与数据字典不一致的表和列的名字3) 轮廓存储检查:检查数据字典4) 生成执行计划:使用基于成本的优化规则和数据字典中的统计表来决定最佳执行计划5) 建立二进制代码:基于执行计划一旦为执行准备好了SQL以后的执行将很快发生,因为O
2013-10-30 12:03:20 11648 2
原创 一条简单SQL语句的构成及语句解析
SQL语句的构成基础元素(数据类型、数据格式、NULL等)、伪列、操作符、函数、表达式、条件包含以上元素的一条简单SQL–SQL> select rownum, empno, ename, mgr, sal+300 newsal, decode(mgr,null,'大老板','下级员工') jd from emp where ename in ('KING','SCOTT',
2013-10-30 10:29:09 1648
原创 goldengate的HANDLECOLLISIONS参数
HANDLECOLLISIONS 是一个 replicat 进程参数,主要在 initial load 中使用。在 replicat 进程中使用该参数时,即使目标数据库环境中存在数据完整性问题(如 update、delete 操作遇到缺失行或重复的插入操作),replicat 进程仍然能够继续处理 trail 中的数据。如果使用了 HANDLECOLLISIONS 参数,则 rep
2013-10-29 09:41:37 3367
原创 Oracle使用goldengate分别向Oracle和mysql双路的单向复制
一.Oracle分别向Oracle和mysql双路的单向复制是在:ORACLE-mysql的单向复制基础上做的。http://blog.csdn.net/q947817003/article/details/13294937二.分别再在ORACLE主库及ORACLE目标库上增加相应进程ORACLE源端增加:1.增加配置extract进程按顺序执行以下操作:add ext
2013-10-29 09:41:26 2454
原创 OGG-01668: PROCESS ABENDING:添加DataPump进程时的一个错误
这种情况发生在,先使用EXTRACT不使用数据泵直接同步数据到目标库,进行一些DML操作后,再添加DataPump进程,此时重新启动PUMP和EXTRACT进程后,EXTRACT挂起。GGSCI (bys001.oel.com) 2> info allProgram Status Group Lag at Chkpt Time Since Chkpt
2013-10-29 09:41:11 13711
原创 通过goldengate从ORACLE向mysql的单向复制
环境:我使用VBOX虚拟机,一台已经安装ORACLE数据库与GOLDENDGATE的主机。另一台只安装了ORACLE数据库。配置数据库环境、goldengate用户,安装goldengate等操作参考:http://blog.csdn.net/q947817003/article/details/13293751一.安装MYSQL安装MYSQL数据库客户端:[root@bys2 ~
2013-10-28 16:01:56 2328
原创 配置OGG到MYSQL复制时登陆MYSQL报错解决
1.MYSQL登陆报错[oracle@bys2 mysqlogg]$ mysql -u root -pEnter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)此时使用 mysql -u root 即不使用密码可以登陆。重改密码
2013-10-28 15:49:53 4357
原创 将所配置的初始化参数重置为系统默认值
使用SPFILE启动,如果想把初始化参数恢复为系统默认值,使用类似这样的语句:alter system reset db_create_file_dest ;这个语句修改的是SPFILE中的条目。从实验中执行两次重置参数的语句后的出错提示也可以验证。1.更改参数BYS@bys1>show parameter db_create_fileNAME
2013-10-28 15:43:40 3765
原创 LINUX下ORACLE软件、数据文件等所在的磁盘分区空间不足的解决思路
虚拟机中的ORACLE运行的久了,归档、数据文件不断增长,原来安装ORACLE的分区空间不足。此时可以重新向虚拟机增加一块硬盘,将ORACLE的数据文件或归档的目录挂载到新增加的磁盘分区上。--我这里未新增加磁盘,而是将原磁盘未划分分区的部分重新分区、格式化来挂载使用。--原理和新增加磁盘来分区并格式化再挂载是一样了。1.磁盘空间使用情况的查看--需要经常关注磁盘空间使用情况-
2013-10-28 15:41:22 2846
原创 使用goldengate的数据泵进行Oracle-Oracle的单向复制
配置数据库环境、goldengate用户,安装goldengate等操作,参考http://blog.csdn.net/q947817003/article/details/13293751这里面的1-4步。使用数据泵进行Oracle-Oracle的单向复制所需的配置:--我这里只配置同步test3用户的 test3表。1.主库的配置:#####配置Extract按顺序执行以下操作
2013-10-28 15:36:11 1955
原创 add exttrail 和add rmttail总结
总结:1.使用PUMP--数据泵时:exttrail建立的trail文件是本地的,是给extract进程使用,将捕获的日志数据写入到trail文件中。DataPump进程需要在参数文件中指定本地建立的exttrail文件,然后从这个文件中读取日志数据。然后还要在目标端建立一个rmtrail文件,这个文件是DataPump进程通过网络写入到目标数据库。目标数据库Replicat进
2013-10-28 15:31:31 6805
原创 goldengate不使用数据泵完成Oracle-Oracle的双向复制
配置数据库环境、goldengate用户,安装goldengate等操作,参考http://blog.csdn.net/q947817003/article/details/13293751这里面的1-4步。不使用数据泵完成Oracle-Oracle的双向复制所需的配置:--我这里只配置同步test用户的 test1表。1.主库的配置:#####配置Extract按顺序执行
2013-10-28 15:18:13 1644
原创 两台ORACLE之间配置OGG-未配置同步DDL
环境 :数据库版本Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 VBOX虚拟机主机名、数据库实例、库名及IP规划:源主机IP:192.168.1.213 HOSTNAME:bys001.oel.com目标主机IP:192.168.1.213 HOSTNAME:bys2.oel.com实例名和数据库
2013-10-28 15:12:07 3104
原创 RAC的cache fusion对数据块访问效率的影响
说明:测试RAC的cache fusion对数据块访问效率的影响第一步,创建测试表BYS@ bysrac1>create table test9 as select * from dba_objects;Table created.################################第二步:在节点1进行更新不提交并查询BYS@ bysrac1>conn /
2013-10-28 10:53:11 1586
原创 RAC中通过设置服务名实现业务分割
说明:通过在RAC中新增四个监听服务,来实现通过不同服务名连接到不同的实例。1.查看并使用srvctl来增加服务名[oracle@bysrac1 ~]$ crs_stat -t-bash: crs_stat: command not found[oracle@bysrac1 ~]$ su - gridPassword: [grid@bysrac1 ~]$ crs_s
2013-10-28 10:27:23 3133
原创 构想一个使用手工锁定解决一种业务需求的场景
网上交易时比如货物有3件,在购买时需要按购买数量进行锁定。BYS@dg2>lock table t in share mode;手工锁定一个表,设置锁的级别为4Table(s) Locked. 已经在T表上加上了4号锁,除了当前会话外阻塞其他会话进行修改BYS@dg2> select sid,type,id1,id2,lmode,request,block from v$loc
2013-10-28 09:39:21 1364
原创 模拟RI锁定导致阻塞的场景
1.建表并验证对和表DML操作时的锁定状态a是主表,定义了id字段为主键 b是从表,id字段是引用主表的id字段 结论: BYS@dg2>select distinct sid from v$mystat; SID---------- 17BYS@dg2>create table a(id int primary key);
2013-10-28 09:39:16 1188
原创 11G中FAST_START_MTTR_TARGET参数
默认的fast_start_mttr_target的值为空,在11G中不启用MTTR advisory。设置为0表示关闭自动检查点功能SQL> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle D
2013-10-28 09:39:11 6292 1
原创 数据字典简介
数据字典由ORACLE服务器创建和维护的一组只读系统表。存放了在数据库和数据库对象的信息,ORACLE依靠这些信息管理维护数据库。ORACLE服务器在数据库创建时运行SQL.BSQ自动生成这些基表,通过运行catalog.sql脚本产生数据字典视图,系统运行期间,数据库结构发生的变化会及时的在相应数据字典中修改、记录。DDL、DCL、DML语句能引起变化数据字典分两类:一种为基表,另一
2013-10-28 09:39:06 2347
原创 用外部表的方式查询alert日志文件中ora-错误信息
1.创建外部表所需的目录对象BYS@ bys001>create or replace directory alert as '/home/oracle/' ;Directory created.BYS@ bys001>col directory_path for a15BYS@ bys001>col owner for a10BYS@ bys001>select * fr
2013-10-28 09:38:44 1802
原创 TM表锁各种mode的实验及2-6 的TM锁相互间的互斥示例
BYS@ bys001>select distinct sid from v$mystat; SID---------- 19BYS@ bys001>select * from test;no rows selectedBYS@ bys001>insert into test values(1);1 row created.BY
2013-10-28 09:38:20 2919
原创 导致死锁的SQL示例
首先感谢:leonarding的文章,还有晨_chen。死锁定义:从广义上讲包括操作系统 应用程序 数据库,如果2个进程(会话)相互持有对方的资源,都一直等待对方释放,这种情况会造成死锁。误解:会话的阻塞不是死锁,因为其中有一个会话还是可以继续操作的。释放:Oracle会自动检测死锁并强制干预释放-只释放了死锁的第一个,另一个还在HANG住。1.需要创建一个表,用主键或
2013-10-28 09:37:59 3006 1
原创 模拟insert,update和delete造成阻塞的示例
会话1SIDBYS@dg2>select distinct sid from v$mystat; SID---------- 17会话2SIDBYS@dg2>select distinct sid from v$mystat; SID---------- 49insert造成阻塞的示例
2013-10-28 09:37:35 2754
原创 创建ASSM/MSSM管理表空间及创建表、分区表、大对象段等示例
1.创建ASSM和MSSM管理的表空间SQL> create tablespace users2 datafile 'f:\userdata\users2.dbf' size 10m autoextend on next 1m segment space management manual;Tablespace created SQL> create tablespace users3
2013-10-28 09:37:15 2558
原创 使用sqlloader的直接加载方式和传统加载方式的性能差异
Direct 直接加载特点(1)数据绕过SGA直接写入磁盘的数据文件(2)数据直接写入高水位线HWM之后的新块,不会扫描HWM之前的空闲块(3)commit之后移动HWM他人才能看到(4)不对已用空间进行扫描(5)使用direct几乎不产生redo log,不是完全不产生(安全性差),但会产生undo数据(6)适用OLAP在线分析场景,增 删 改不频繁的场景Conv
2013-10-28 09:36:52 3619
原创 left/right join 与+使用通俗说明
(+)的使用----哪边的行数少,哪边要用+select d.deptno,d.dname,e.ename from emp e,dept d where d.deptno=e.deptno(+);select d.deptno,d.dname,e.ename from emp e,dept d where e.deptno(+)=d.deptno; DEPTNO DNAME
2013-10-27 21:02:22 1183
原创 关于延迟块清除的概念及实验
这一段引自网络:有时候我们在执行select操作的时候也可能会产生redo,其一个可能原因就是oracle块清除。在进行块清除的时候,如果是一个大事务,就会进行延迟块清除块清除就是删除所修改数据块上与”锁定”有关的信息,即事务信息Oracle在事务相关的提交列表中,记录下已修改的块列表,每个列表记录20个块,根据需要可能分配有多个这种列表.这种块列表有一个上限,就是缓冲区缓存大
2013-10-27 20:55:42 3337
原创 Oracle Clusterware的心跳
Oracle Clusterware的心跳Oracle clusterware 使用两种心跳设备来验证成员的状态,保证集群的完整性;一是对votingdisk的心跳,ocssd进程每秒向votedisk写入一条心跳信息;二是节点间的私有以太网的心跳,两种心跳机制都有一个对应的超时时间,分别叫做 misscount和disktimeout:misscount 用于定义节点间心跳通信的
2013-10-27 20:45:34 1633
原创 RAC常用管理命令--集群、实例、资源管理-更新中
在Oracle 11gR2 下的RAC,架构发生了变化。CRS的信息也是放在ASM 实例里的,所以要关asm,必须关闭crs, 如果还使用了acfs的话,一关crs那么acfs里的信息也不能访问了,所以一般不重启机器,不轻易关crs, 其他的service可以根据自己的需要去stop/start。1.整个集群的停止和启动集群方法一:用root用户,在Oracle11gR2中停止和启
2013-10-27 20:43:18 2012
原创 RAC常用管理命令--查询RAC集群各种信息命令-更新中
1.查询RAC集群各种信息命令数据库名:bysrac实例名:bysrac1 bysrac1查集群状态:[grid@bysrac1 crsd]$ crsctl check clusterCRS-4537: Cluster Ready Services is onlineCRS-4529: Cluster Synchronization Services is onlin
2013-10-27 20:14:07 6141
原创 丢失全部控制文件后从RMAN备份集中恢复示例
丢失全部控制文件 后用RMAN恢复的大致步骤可以写为:startup nomount;restore controlfile from autobackup;或者指定的有控制文件 备份的备份集alter database mount;recover database; alter database open resetlogs;1.先备份当前控制文件 [
2013-10-27 19:34:30 4849
原创 某个表空间的数据文件损坏的修复思路
如果索引表空间的数据文件损坏,可以考虑脱机数据文件,打开数据库后直接删除索引表空间及数据文件再重建相应的索引表空间及数据文件。1.新建一个索引表空间SQL> conn bys/bys已连接。SQL> show userUSER 为 "BYS"SQL> select * from user_role_privs;USERNAME
2013-10-27 18:33:58 2433
原创 临时表空间数据文件损坏的解决
临时表空间数据文件丢失的恢复临时表空间数据文件丢失数据库可以打开,可以通过重建一个临时表空间并设置为默认或者新建一个属于临时表空间的数据文件,并删除已经丢失的数据的方法来恢复。1.丢失临时表空间的数据文件 ,数据库可以正常打开。SQL> col file for a25SQL> select f.file#,t.ts#,f.name "file",t.name"table
2013-10-27 18:25:43 3222
原创 数据文件丢失损坏的恢复--
如数据文件丢失,数据库重启时报错,可以根据报错的文件号,先设置报错的数据文件为脱机,然后开启数据库,然后使用备份的数据文件恢复至相应位置或者直接将数据文件重新命名即指定到备份文件。此时执行介质恢复,然后将数据文件联机。注:这种方法只能用于恢复非SYSTEM/SYSAUX/非当前UNDO表空间的数据文件。alter database datafile 9 offline;
2013-10-27 17:57:27 1237
原创 归档模式下联机热备份某个表空间步骤
联机备份步骤:--需要归档模式1.使用数据字典dba_data_files找到需要备份的数据文件及与之对应的表空间。2.使用数据字典v$backup确认数据文件的备份状态——如系统有多个DBA时。3.用alter tablespace 表空间名 begin backup,将要备份的表空间设置为备份状态,此时表空间对应的所有数据文件的文件头被锁住并产生检查点。此时可以查询,进行D
2013-10-27 17:55:07 1574
原创 介质恢复,即磁盘或操作系统文件损坏的恢复-非RMAN方法
介质恢复,即磁盘或操作系统文件损坏的恢复-非RMAN方法1,联机恢复时将要恢复的文件或表空间设为脱机 offline,不包括系统表空间或活动UNDO表空间。2,然后修复restore将数据带回到备份的时间点,即将备份的操作系统文件复制到数据库原位置,仅修复损坏或丢失的操作系统文件,不修复其它任何文件。3,恢复recover从备份到数据文件崩溃这段时间内提交的数据,包括两个步骤:前滚和回
2013-10-27 17:49:56 1387
原创 WIN下的普通备份脚本示例
全库冷备份:是否归档都可以--其实就是物理数据文件的备份可用一个批处理来调用一个冷备份命令集的方法来进行。1.可创建一个批处理,内容如下:C:\app\Administrator\product\11.2.0\dbhome_1\BIN\sqlplus.exe /nolog @f:\coolbackup.sqlexit2.再创建一个备份的命令文件 集,命名f:\coolb
2013-10-27 17:46:32 1049
非IMU模式下一条update语句产生REDO RECORD条数的探究--日志打包
2014-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人