Oracle AWR速查
摘要: 1.查看当前的AWR保存策略
select * from dba_hist_wr_control;
DBID,SNAP_INTERVAL,RETENTION,TOPNSQL
860524039,+00 01:00:00.000000,+07 00:00:00.000000,DEFAULT
以上结果表示,每小时产生一个SNAPSHOT,保留7天
阅读全文
posted @
2008-07-10 23:18 一江水 阅读(859) |
评论 (0) 编辑
ORA-01555
摘要: 0. 开始先看看rollback segment是否有分配不当的问题,例如莫一个rollback segment(报错的那个)太小。
如果有,先recreate rollback segment以保持所有的回滚段大小一致,并且size不要太小。
1. 看查询的执行计划是否正确。ORA-01555错误发生的概率和查询所需的时间成正比,查询时间越长,发生ORA-01555的概率越大。
如果执行计划不正确,首先进行sql tuning,如果执行计划正确,但进行fts,考虑是否可以并行来跑(server load不是很高的情况下)
总之一句话就是尽量缩短query的时间
阅读全文
posted @
2008-07-08 10:36 一江水 阅读(303) |
评论 (0) 编辑
进程事务量过大导致undo空间满而影响整个系统
摘要: 早上过来发现一个库上的一直在提示回退段扩展失败:Failure to extend rollback segment because of 30036 condition。同时,相关的事务都无法正常结束。检查undo空间使用情况,发现使用率已经达到100%,剩余空间为0。进一步检查回退段的空间使用情况,发现其中有一个回退段特别大,接近整个undo空间的分配大小:
阅读全文
posted @
2008-07-08 10:01 一江水 阅读(299) |
评论 (0) 编辑
详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库
摘要: 一、数据库名
什么是数据库名?
数据库名就是一个数据库的标识,就像人的身份证号一样。他用参数DB_NAME表示,如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名。在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。格式如下:
DB_NAME=myorcl
...
在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。因为,数据库名还被写入控制文件中,控制文件是以二进制型式存储的,用户无法修改控制文件的内容。假设用户修改了参数文件中的数据库名,即修改DB_NAME的值。但是在Oracle启动时,由于参数文件中的DB_NAME与控制文件中的数据库名不一致,导致数据库启动失败,将返回ORA-01103错误。
阅读全文
posted @
2008-07-04 14:40 一江水 阅读(3525) |
评论 (0) 编辑
常用DBA SQL[转]
摘要: 查询最耗时的SQL
查找最占用资源的查询(基于V$SQL视图)
查找最占用资源的查询(基于V$SQLAREA 视图)
阅读全文
posted @
2008-05-06 22:44 一江水 阅读(130) |
评论 (0) 编辑
解决ORACLE被锁定的资源两法
摘要: select distinct t2.username,t2.sid,t2.serial#,t2.logon_time,t2.terminal
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time
阅读全文
posted @
2008-04-13 00:26 一江水 阅读(127) |
评论 (0) 编辑
ORACLE SQL TUNING
摘要: 一.优化器模式
ORACLE的优化器共有3种:
a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性)
为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须定期更新统计信息,以保证数据库中的对象统计信息(object statistics)的准确性.
如果数据库的优化器模式设置为选择性(CHOOSE),那么实际的优化器模式将和是否运行过analyze命令有关. 如果table已经被analyze过, 优化器模式将自动成为CBO , 反之,数据库将采用RULE形式的优化器。
阅读全文
posted @
2008-04-08 23:59 一江水 阅读(153) |
评论 (0) 编辑
使用SQL_TRACE进行数据库诊断
摘要: SQL_TRACE是Oracle提供的用于进行SQL跟踪的手段,是强有力的辅助诊断工具.在日常的数据库问题诊断和解决中,SQL_TRACE是非常常用的方法。
本文就SQL_TRACE的使用作简单探讨,并通过具体案例对sql_trace的使用进行说明.
阅读全文
posted @
2008-04-07 10:58 一江水 阅读(38) |
评论 (0) 编辑
Oracle索引原理
摘要: Oracle提供了大量索引选项。知道在给定条件下使用哪个选项对于一个应用程序的性能来说非常重要。一个错误的选择可能会引发死锁,并导致数据库性能急剧下降或进程终止。而如果做出正确的选择,则可以合理使用资源,使那些已经运行了几个小时甚至几天的进程在几分钟得以完成,这样会使您立刻成为一位英雄。这篇文章就将简单的讨论每个索引选项。
阅读全文
posted @
2008-04-07 10:55 一江水 阅读(78) |
评论 (0) 编辑
用java调用oracle存储过程总结
摘要: 一:无返回值的存储过程
存储过程为:
CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS
BEGIN
INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2);
END TESTA;
阅读全文
posted @
2008-03-11 10:23 一江水 阅读(95) |
评论 (0) 编辑
Oracle分页查询
摘要: 1. 最好还是利用分析函数
row_number() over ( partition by col1 order by col2 )
阅读全文
posted @
2008-03-07 16:52 一江水 阅读(64) |
评论 (0) 编辑
Oracle数据库游标使用大全
摘要: SQL是用于访问ORACLE数据库的语言,PL/SQL扩展和加强了SQL的功能,它同时引入了更强的程序逻辑。 PL/SQL支持DML命令和SQL的事务控制语句。DDL在PL/SQL中不被支持,这就意味作在PL/SQL程序块中不能创建表或其他任何对象。较好的PL/SQL程序设计是在PL/SQL块中使用象DBMS_SQL这样的内建包或执行EXECUTE IMMEDIATE命令建立动态SQL来执行DDL命令,PL/SQL编译器保证对象引用以及用户的权限。
阅读全文
posted @
2008-03-07 16:47 一江水 阅读(46) |
评论 (0) 编辑
SQL Tuning学习杂记
摘要: 1、实例 + 数据库 构成了“Oracle数据库”
(1)实例:Instance = Share Memory + Process(共享内存 + 守候进程)
(2)数据库:Database = 数据文件 + 控制文件 + 重做日志文件
数据文件:
存放数据,占据最大的一块。
阅读全文
posted @
2008-03-07 15:32 一江水 阅读(90) |
评论 (0) 编辑
Oracle教材 SQL性能优化系列讲座之一
摘要: 1. 选用适合的ORACLE优化器
ORACLE的优化器共有3种:
a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性)
阅读全文
posted @
2008-03-07 15:29 一江水 阅读(72) |
评论 (0) 编辑
维护常用SQL语句收集[ZT]
摘要: 1、查看表空间的名称及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
阅读全文
posted @
2008-03-05 23:58 一江水 阅读(72) |
评论 (0) 编辑
Oracle表空间的创建
摘要: ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象.否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地方存放,Oracle会提示:没有存储配额.
因此,在创建对象之前,首先要分配存储空间.
分配存储,就要创建表空间:
创建表空间示例如下:
CREATE TABLESPACE "SAMPLE"
LOGGING
DATAFILE D:\ORACLE\ORADATA\ORA92\LUNTAN.ora SIZE 5M
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
阅读全文
posted @
2008-03-03 23:29 一江水 阅读(155) |
评论 (0) 编辑
Oracle创建序列,删除序列,得到序列的例子
摘要: 序列的创建
create sequence seq_newsId
increment by 1
start with 1
maxvalue 999999999;
得到序列的SQL语句
select seq_newsid.nextval from sys.dual;
删除序列的SQL
DROP SEQUENCE seq_newsId;
阅读全文
posted @
2008-03-03 23:28 一江水 阅读(2326) |
评论 (0) 编辑
oracle创建表空间,创建用户
摘要: //创建临时表空间
create temporary tablespace test_temp
tempfile 'E:\oracle\product\10.2.0\oradata\testserver\test_temp01.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
阅读全文
posted @
2008-03-03 23:24 一江水 阅读(792) |
评论 (0) 编辑
Oracle中用创建表时Storage中参数的含义
摘要: 建议PCTINCREASE参数设置为0,可使碎片最小化,使每一个Extent都相同(等于NEXT值)
一旦建立了某个对象,它的INITIAL和MINEXTENTS参数不能修改(Oracle 816中可修改MINEXTENTS参数)
对于NEXT和PCTINCREASE的任何修改都只影响后来分配的那些Extent
阅读全文
posted @
2008-03-03 23:16 一江水 阅读(209) |
评论 (0) 编辑
oracle DBA 基础培训教程-从实践中学习oracleDBA
摘要: 第一章 oracle 的体系结构
1.2 oracle 数据库中的常用术语
进程: (process)
后台进程: (background process)
缓冲区: (buffer)
主机: (host)
服务器: (server)
客户机: (client)
阅读全文
posted @
2008-03-03 23:10 一江水 阅读(281) |
评论 (0) 编辑
Oracle联机日志文件丢失或损坏的处理方法
摘要: 经验总结:
联机日志分为当前联机日志和非当前联机日志,非当前联机日志的损坏是比较简单的,一般通过clear命令就可以解决问题。
损坏非当前联机日志:
1、启动数据库,遇到ORA-00312 or ORA-00313错误,如:
ORA-00313: open failed for members of log group 4 of thread 1
ORA-00312: online log 3 thread 1: '/opt/oracle/db04/oradata/ORCL/redo03.log'
从这里我们知道日志组1的数据文件损坏或丢失了
从报警文件可以看到更详细的信息
阅读全文
posted @
2008-03-03 23:05 一江水 阅读(59) |
评论 (0) 编辑
Oracle DBA 基本语句
摘要: 一、修改共享池的大小:
SQL>alter system set shared_pool_size=32M scope=spfile;
二、修改数据库高速缓冲区的大小:
SQL>alter system set db_cache_size=400M scope=spfile;
阅读全文
posted @
2008-03-03 22:59 一江水 阅读(70) |
评论 (0) 编辑
Oracle 存储过程的基本语法
摘要: 1.基本结构
CREATE OR REPLACE PROCEDURE 存储过程名字
(
参数1 IN NUMBER,
参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN
END 存储过程名字
阅读全文
posted @
2008-03-03 22:07 一江水 阅读(32) |
评论 (0) 编辑
Oracle exp/imp导出导入工具的使用
摘要: 一. 导出工具 exp
1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin
exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移
它有三种模式:
a. 用户模式: 导出用户所有对象以及对象中的数据;
b. 表模式: 导出用户所有表或者指定的表;
c. 整个数据库: 导出数据库中所有对象。
阅读全文
posted @
2008-03-03 22:05 一江水 阅读(107) |
评论 (0) 编辑
Oracle数据库文件中的导入\导出(imp/exp命令)
摘要: Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径, 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
阅读全文
posted @
2008-03-03 22:03 一江水 阅读(128) |
评论 (0) 编辑
Oracle数据关联查询
摘要: 关联在Oracle数据查询时会经常用到,灵活的应用关联可以解决很多实际应用的问题.下面给出一些示例:
阅读全文
posted @
2008-03-03 21:49 一江水 阅读(106) |
评论 (0) 编辑
详细解读 STATSPACK 报告
摘要: 说在前面,很容易被忽略的几个点:在读报告的时候,我们首先需要看清楚,留意3个内容,这份报告所对应的数据库版本,cluster方式,以及报告的时间段。尤其需要注意的就是时间段,脱离了时间段的statspck将是毫无意义的,甚至会得出错误的结果。
阅读全文
posted @
2008-03-03 21:33 一江水 阅读(768) |
评论 (0) 编辑
Oracle回滚段概念用法规划及问题的解决
摘要: 回滚段管理一直是ORACLE数据库管理的一个难题,本文通过实例介绍ORACLE回滚段的概念,用法和规划及问题的解决。
回滚段概述
回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。
回滚段的作用
事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值。
阅读全文
posted @
2008-03-03 21:30 一江水 阅读(34) |
评论 (0) 编辑
CREATE TABLESPACE命令详解
摘要: 语法描述:
CREATE [UNDO] TABLESPACE tablespace_name
[DATAFILE datefile_spec1 [,datefile_spec2] ......
[ { MININUM EXTENT integer [k|m]
| BLOCKSIZE integer [k]
|logging clause
|FORCE LOGGING
|DEFAULT {data_segment_compression} storage_clause
|[online|offline]
|[PERMANENT|TEMPORARY]
|extent_manager_clause
|segment_manager_clause}]
阅读全文
posted @
2008-03-03 21:23 一江水 阅读(62) |
评论 (0) 编辑
Oracle 段的查看和管理
摘要: Oracle 数据库系统总是将系统用的回滚取名为SYSTEM(不要与SYSTEM用户相混),而且该回滚段都建立在 SYSTEM表空间内。比如可以从下面查询中看到系统的所有回滚段的基本信息:
SQL> select segment_name,tablespace_name,bytes,next_extent
2 from dba_segments where segment_type='ROLLBACK';
SEGMENT_NAME TABLESPACE_NAME BYTES NEXT_EXTENT
---------------- ----------------- ---------- ------------
SYSTEM SYSTEM 409600 57344
RBS0 RBS 4194304 2097152
RBS1
阅读全文
posted @
2008-03-03 21:22 一江水 阅读(117) |
评论 (0) 编辑
Analyze 命令的使用方法
摘要: ANALYZE
{ TABLE [ schema. ]table
[ PARTITION ( partition ) | SUBPARTITION ( subpartition ) ]
| INDEX [ schema. ]index
[ PARTITION ( partition ) | SUBPARTITION ( subpartition ) ]
| CLUSTER [ schema. ]cluster
}
{ compute_statistics_clause
| estimate_statistics_clause
| validation_clauses
| LIST CHAINED ROWS [ into_clause ]
| DELETE [ SYSTEM ] STATISTICS
} ;
阅读全文
posted @
2008-03-03 21:12 一江水 阅读(143) |
评论 (0) 编辑
linux平台移值数据库到windows平台
摘要: 之前在测试传输表空间时感受了一下跨平台的移值,当时只测试了通过传输表空间的特性复制某个指定表空间,或者是通过RMAN中的CONVERT或TTS复制数据库,测试结束之后,感觉ORACLE10G之后对不同平台(相同字节顺序)的数据文件相互兼容性方面得到大大提升,下意识认为不通过传输表空间直接复制数据文件应该也可以,今天在本地测试了一下,确实相当好使,通过这种方式使得跨平台的移植更加高效,也易于管理和操作,下面记录的为操作过程。
注意:源平台与目标平台的字节顺序(endian format)需要相同。更多概念可以参考我的笔记"使用可传输表空间的特性复制数据"
阅读全文
posted @
2008-03-03 16:23 一江水 阅读(45) |
评论 (0) 编辑
Oracle双机热备方法[ZT]
摘要: 1 、 首先查看 Primary Database 的归档模式( svrmgr>archive log list )若为无归档模式,将数据库转换为自动归档方式,方法如下:
先关闭 Primary Database :
svrmgr>shutdown immediate
再以 mount 方式启动 Primary Database :
svrmgr>connect internal/password
svrmgr>startup mount
svrmgr>alter database
archivelog
svrmgr>shutdown
阅读全文
posted @
2008-03-03 14:20 一江水 阅读(333) |
评论 (0) 编辑
MySQL show的用法
摘要: a. show tables或show tables from database_name; // 显示当前数据库中所有表的名称
b. show databases; // 显示mysql中所有数据库的名称
c. show columns from table_name from database_name; 或show columns from database_name.table_name; // 显示表中列名称
d. show grants for user_name@localhost; // 显示一个用户的权限,显示结果类似于grant 命令
e. show index from table_name; // 显示表的索引
f. show status; // 显示一些系统特定资源的信息,例如,正在运行的线程数量
g. show variables; // 显示系统变量的名称和值
阅读全文
posted @
2008-03-01 10:44 一江水 阅读(54) |
评论 (0) 编辑
sqlldr使用
摘要: sqlldr userid=test/test control='a.ctl'
OPTIONS ( ROWS=100000)
LOAD DATA
INFILE 'a.dat'
BADFILE 'a.bad'
INTO TABLE z
Append
FIELDS TERMINATED BY X'9'
TRAILING NULLCOLS
(a ,
b ,
c DATE "yyyymmdd")
阅读全文
posted @
2008-03-01 01:40 一江水 阅读(66) |
评论 (0) 编辑
一些问题
摘要: 1、为什么UNION ALL比UNION更快
你如果还记得,union操作是将两个数据集合并在一起。它不会产生重复或者多余的行。为了完成这样的效果,需要对这两张表执行SORT操作。这个SORT操作明显是计算密集的,并且会使用大量的内存。相反,UNION ALL仅仅是将两个集合的数据任意的合并在一起,而不管行是否重复。
阅读全文
posted @
2008-02-25 00:15 一江水 阅读(30) |
评论 (0) 编辑
PL/SQL 快速建立DB_LINK
摘要: 2)建立属于公开的(public)或者是专属的db link object
SQL> CREATE PUBLIC DATABASE LINK MYTEST
2 CONNECT TO APPLE IDENTIFIED BY APPLE
3 USING 'life02'
Database link created.
阅读全文
posted @
2008-02-24 17:35 一江水 阅读(131) |
评论 (0) 编辑
找出最耗资源的sql
摘要: 要找出最耗资源的sql,我们可以首先使用top等工具,找到最好资源的进程(记住进程号),例如,操作系统进程号为2796,然后根据这个进程号(v$process.spid)在v$process中找到进程地址(v$process.addr),然后根据这个地址在v$session中找到相应的sid(v$session.sid),然后根据这个sid找到相应的hash alue(v$session. sql_hash_value),然后根据这个hash alue在v$sqltext,$sql,v$sqlarea等视图中找到对应的sql语句(sql_text)
阅读全文
posted @
2008-02-24 17:06 一江水 阅读(96) |
评论 (0) 编辑
ETL学习心得:探求数据仓库关键环节ETL的本质[转]
摘要: 做数据仓库系统,ETL是关键的一环。说大了,ETL是数据整合解决方案,说小了,就是倒数据的工具。回忆 一下工作这么些年来,处理数据迁移、转换的工作倒还真的不少。但是那些工作基本上是一次性工作或者很小数据量,使用access、DTS或是自己编个小程 序搞定。可是在数据仓库系统中,ETL上升到了一定的理论高度,和原来小打小闹的工具使用不同了。究竟什么不同,从名字上就可以看到,人家已经将倒数据的 过程分成3个步骤,E、T、L分别代表抽取、转换和装载。
阅读全文
posted @
2008-02-22 21:38 一江水 阅读(96) |
评论 (0) 编辑
Oracle内存参数调优技术详解[转]
摘要: 前言
近来公司技术,研发都在问我关于内存参数如何设置可以优化oracle的性能,所以抽时间整理了这篇文档,以做参考.
目的
希望通过整理此文档,使公司同事对oracle内存结构有一个全面的了解,并在实际的工作中灵活应用,使oracle的内存性能达到最优配置,提升应用程序反应速度,并进行合理的内存使用.
阅读全文
posted @
2008-02-17 11:10 一江水 阅读(118) |
评论 (0) 编辑
几种oracle数据库恢复的练习示例[转]
摘要: 作为一个dba,最重要的工作莫过于保证数据库中数据的安全,当一个数据库down掉之后,恢复旧变成了至关重要的事情。能否成功的恢复,并不在于数据库down掉时采取的恢复策略,要保证数据的万无一失,一套完整的备份方案是必须的。但作为dba,还应该了解和掌握各种情况下应该采取哪些恢复措施,并且清楚的指导每一种恢复方式的会产生什么样的结果。以下是几种常用的的备份和恢复方式的具体示例,是入门的dba必须掌握的。
阅读全文
posted @
2008-02-05 18:16 一江水 阅读(1101) |
评论 (1) 编辑
MySQL中创建用户及授权[转]
摘要: GRANT 语句的语法如下:
GRANT privileges (columns)
ON what
TO user IDENTIFIEDBY "password"
WITH GRANT OPTION
阅读全文
posted @
2008-02-05 18:09 一江水 阅读(387) |
评论 (0) 编辑