随笔分类 -  OralceRac

研究数据集群跟云计算
摘要:http://www.oracle.com/technetwork/oem/grid-control/downloads/linuxx8664soft-085949.html 阅读全文
posted @ 2012-06-25 10:34 einyboy 阅读(730) 评论(0) 推荐(0) 编辑
摘要:1、添加磁盘组:相信很多人都会使用dbca创建磁盘组了,这里介绍使用SQL*PLUS创建磁盘组。主要是使用CREATE DISKGROUP语句,该语句的语法如下:CREATE DISKGROUP diskgroup_name[ { HIGH | NORMAL | EXTERNAL } REDUNDANCY ][ FAILGROUP failgroup_name ]DISK [ NAME disk_name ] [ SIZE size_clause ] [ FORCE | NOFORCE ] ...;选项描述:首先要指定的就是磁盘组名称(diskgroup_name);指定冗余度,有三个选择:H 阅读全文
posted @ 2012-06-21 13:00 einyboy 阅读(5795) 评论(1) 推荐(0) 编辑
摘要:一、LogMiner的用途日志文件中存放着所有进行数据库恢复的数据,记录了针对数据库结构的每一个变化,也就是对数据库操作的所有DML语句。在Oracle 8i之前,Oracle没有提供任何协助数据库管理员来读取和解释重作日志文件内容的工具。系统出现问题,对于一个普通的数据管理员来讲,唯一可以作的工作就是将所有的log文件打包,然后发给Oracle公司的技术支持,然后静静地等待Oracle 公司技术支持给我们最后的答案。然而从8i以后,Oracle提供了这样一个强有力的工具-LogMiner。LogMiner 工具即可以用来分析在线,也可以用来分析离线日志文件,即可以分析本身自己数据库的重作日志 阅读全文
posted @ 2012-06-16 17:22 einyboy 阅读(1177) 评论(1) 推荐(1) 编辑
摘要:一. 分区表理论知识 Oracle提供了分区技术以支持VLDB(Very Large DataBase)。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。 Oracle的分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间中。查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询。When to Partition a Table什么时候需要分区表,官网的2个建议如下:(1)Tables greater than 2GB should always be considered for 阅读全文
posted @ 2012-06-13 17:50 einyboy 阅读(4568) 评论(0) 推荐(0) 编辑
摘要:现场数据库(oracle -Version 10.2.0.1.0 )隔三差五的出现:ORA-02062: distributed recovery received DBID bf38e3da, expected 7b66439bORA-02062: distributed recovery received DBID bf38e3da, expected 7b66439b这个bug:----查询了下问题是这样滴:/*****清楚这个分布式事务(该事务已经无法完成),不会对数据库有影响***//* 原因也就很容易找到了,是做一个大的通过dblink的两个db间的分布式事务的时候,修改了dbli 阅读全文
posted @ 2012-06-12 09:40 einyboy 阅读(3924) 评论(0) 推荐(0) 编辑
摘要:产生ORA-01555错误主要有三种可能性:1、UNDO段对于系统所运行的工作负荷太小;2、在循环过程中有事务提交是造成ORA-01555错误的最常见的原因;3、block cleanout;解决ORA-01555错误的解决方案有下面几种:1、适当的设置UNDO_RETENTION参数值(大于事务执行可能需要的最长时间);如果UNDO_RETENTION参数值变大,那么同时也需要根据果UNDO_RETENTION参数值大小修改UNDO表 空间的大小也需要做相应的修改;(适合于UNDO管理是自动管理) 网上查询UNDO表空间的大小可以根据公式: Undo Size = Undo_retentio 阅读全文
posted @ 2012-06-11 11:41 einyboy 阅读(3624) 评论(0) 推荐(0) 编辑
摘要:Recovery Manager(RMAN)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的Oracle 工具.RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN也允许您进行增量数据块级别的备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。而且,通过RMAN提供的接口,第三方的备份与恢复软件如veritas将提供更强大的备份与恢复的管理功能。通过RMAN,也提供了其它更多功能,如数据库的克隆、采用RMAN建立备用数据 阅读全文
posted @ 2012-05-21 14:49 einyboy 阅读(833) 评论(0) 推荐(0) 编辑
摘要:<14>. /*+ADD_EQUAL TABLE INDEX_NAM1,INDEX_NAM2,...*/ 提示明确进行执行规划的选择,将几个单列索引的扫描合起来. 例如: SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * FROM BSEMPMS WHERE EMP_NO='CCBZZP' AND DPT_NO='TDC306'; <15>. /*+USE_CONCAT*/ 对查询中的WHERE后面的OR条件进行转换为UNION ALL的组合查询. 例如: SELECT / 阅读全文
posted @ 2012-05-09 23:33 einyboy 阅读(353) 评论(0) 推荐(0) 编辑
摘要:21.什么是STATSPACK,我怎么使用它? Statspack是Oracle 8i以上提供的一个非常好的性能监控与诊断工具,基本上全部包含了BSTAT/ESTAT的功能,更多的信息,可以参考附带文档$ORACLE_HOME/rdbms/admin/spdoc.txt。 安装Statspack: cd $ORACLE_HOME/rdbms/admin sqlplus "/ as sysdba" @spdrop.sql -- 卸载,第一次可以不需要 sqlplus "/ as sysdba" @spcreate.sql -- 需要根据提示输入表空间名 使 阅读全文
posted @ 2012-05-09 23:32 einyboy 阅读(333) 评论(0) 推荐(0) 编辑
摘要:13.怎么样能固定我的执行计划 可以使用OUTLINE来固定SQL语句的执行计划,用如下语句可以创建一个OUTLINE Create oe replace outline OutLn_Name on Select Col1,Col2 from Table where ....... 如果要删除Outline,可以采用 Drop Outline OutLn_Name; 对于已经创建了的OutLine,存放在OUTLN用户的OL$HINTS表下面,对于有些语句,你可以使用update outln.ol$hints来更新outline,如 update outln.ol$hints(... 阅读全文
posted @ 2012-05-09 23:30 einyboy 阅读(402) 评论(0) 推荐(0) 编辑
摘要:18.怎么清理临时段 可以使用如下办法 <1>、 使用如下语句查看一下认谁在用临时段 SELECT username,sid,serial#,sql_address,machine,program, tablespace,segtype, contents FROM v$session se,v$sort_usage su WHERE se.saddr=su.session_addr <2>、 那些正在使用临时段的进程 SQL>Alter system kill session 'sid,serial#'; <3>、把TEMP表空间回缩 阅读全文
posted @ 2012-05-09 23:30 einyboy 阅读(2776) 评论(0) 推荐(0) 编辑
摘要:9.怎么避免使用特定索引 在很多时候,Oracle会错误的使用索引而导致效率的明显下降,我们可以使用一点点技巧而避免使用不该使用的索引,如: 表test,有字段a,b,c,d,在a,b,c上建立联合索引inx_a(a,b,c),在b上单独建立了一个索引Inx_b(b)。 在正常情况下,where a=? and b=? and c=?会用到索引inx_a,where b=?会用到索引inx_b,但是,where a=? and b=? and c=? group by b会用到哪个索引呢?在分析数据不正确(很长时间没有分析)或根本没有分析数据的情况下,oracle往往会使用索引inx_b... 阅读全文
posted @ 2012-05-09 23:29 einyboy 阅读(444) 评论(0) 推荐(0) 编辑
摘要:5.怎么样根据OS进程快速获得DB进程信息与正在执行的语句 有些时候,我们在OS上操作,象TOP之后我们得到的OS进程,怎么快速根据OS信息获得DB信息呢? 我们可以编写如下脚本: $more whoit.sh #!/bin/sh sqlplus /nolog 100,cascade=> TRUE); dbms_stats.gather_table_stats(User,TableName,degree => 4,cascade => true);这是对命令与工具包的一些总结 <1>、对于分区表,建议使用DBMS_STATS,而不是使用Analyze语句。 a) 阅读全文
posted @ 2012-05-09 23:28 einyboy 阅读(367) 评论(0) 推荐(0) 编辑
摘要:1. 查询正在执行语句的执行计划(也就是实际语句执行计划) select * from v$sql_plan where hash_value = (select sql_hash_value from v$session where sid = 1111); 其中id和parent_id表示了执行数的结构,数值最大的为最先执行比如ID PARENT_ID ------------- 0102132435463则执行计划树为 0 1 2 3 6 4 52.如何设置自动跟踪 用system登录 执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建计划表 执行... 阅读全文
posted @ 2012-05-09 23:26 einyboy 阅读(355) 评论(0) 推荐(0) 编辑