自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

事后诸葛亮的程序人生(微信:zq9017197)

不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

  • 博客(56)
  • 资源 (10)
  • 收藏
  • 关注

原创 绑定变量!

在OLTP系统中,应该尽可能的使用绑定变量。在OLAP系统中,绑定变量不是必须的,相反,如果使用了反而可能带来副作用。下面的例子对比了一下一条sql被执行10000次时,绑定变量和非绑定变量在资源消耗上的情况:SQL> alter session set sql_trace = true;会话已更改。SQL> begin 2 for x in 1 .. 10000

2011-10-31 18:05:32 555

原创 Hint分类总结!

1、和优化器相关的Hint/*+ rule */RBO:基于规则的优化器/*+ first_rows(n) */CBO:基于成本的优化器;(将结果集中的前n条记录以最快的速度反馈回来,而其他的结果并不需要同时返回。)/*+ all_rows */CBO:基于成本的优化器;(用最快的速度将sql执行完毕,将结果集全部返回。)例子:

2011-10-29 16:49:14 1042

原创 oracle的锁总结!

首先介绍一些锁的概念:锁(lock)机制用于管理对共享资源的并发访问。丢失更新:(1) 会话Session1 中的一个事务获取(查询)一行数据,放入本地内存,并显示给一个最终用户User1。(2) 会话Session2 中的另一个事务也获取这一行,但是将数据显示给另一个最终用户User2。(3) User1 使用应用修改了这一行,让应用更新数据库并提交。会话Session1 的

2011-10-28 16:02:50 943

原创 如何查看数据库中的死锁、阻塞!

前面说了“手动释放oracle数据库中死锁的对象锁!” 这里再来进一步的记录详细一点!首先打开一个session1会话SQL> conn u1/u1已连接。SQL> show userUSER 为 "U1"SQL> select distinct sid from v$mystat; SID---------- 144

2011-10-28 11:38:08 2607

原创 解读sql的执行计划!

首先创建测试的表:SQL> show userUSER 为 "U1"SQL> create table t1 (id int,name varchar2(1000));表已创建。SQL> create table t2 (id int,name varchar2(1000));表已创建。SQL> create index ind_t1 on t1(id)

2011-10-27 20:40:56 941

原创 CBO 基于成本的优化器!

CBO基于成本的优化器:让oracle获取所有执行计划的相关信息,通过对这些信息做计算分析,最后得出一个代价最小的执行计划作为最终执行计划。还是前面的例子,让我们再来看看CBO的表现:SQL> select /*+ all_rows */ * from t where id = 1;已选择50600行。执行计划----------------------

2011-10-27 17:11:10 1269

原创 RBO基于规则的优化器!

优化器:oracle中优化器(Optimizer)是sql分析和执行的优化工具,它负责制订sql的执行计划。oracle的优化器有两种,基于规则的优化器(RBO)和基于代价的优化器(CBO),从oracle 10g开始,RBO已经被测底的废弃拉。谓词:就是指一个查询中where限制条件。基于规则的优化器(RBO):就是在优化器里面嵌入若干种规则,执行的sql语句符合哪种规则,则按照哪种规则

2011-10-27 16:21:57 2853

原创 手动释放oracle数据库中死锁的对象锁!

常常有朋友在说他要往数据库中的某张表插入数据,现在表被别人锁住了,半天不释放。首先可以看见数据库中没有对象被锁定。SQL> conn /as sysdba已连接。SQL> select * from v$locked_object;未选定行现在来锁住hr用户的一张表。SQL> conn hr/hr已连接。SQL> select * from

2011-10-27 11:28:07 5267

原创 获取sql的执行计划总结!

1、使用autotrace获取执行计划、解释计划要查看oracle sql 的执行计划有很多种方法:查看执行计划表、使用oracle第三方工具、使用sql*plus、利用sql trace跟踪文件、诊断事件10046等。这里介绍使用sql*plus的autotrace功能来查看sql的执行计划。autotrace功能的启用:SQL> @?/rdbms/admin/utlxp

2011-10-26 20:11:15 1019

原创 导入数据到不同表空间的问题!(unlimited tablespace 权限在作怪)

可以看见有一个usr用户,有一个t表,是放在users表空间的,里面有705行记录。SQL> conn /as sysdba已连接。SQL> create user usr identified by usr default tablespace users;用户已创建。SQL> select USERNAME,DEFAULT_TABLESPACE from dba_u

2011-10-25 12:55:37 1061

原创 Flashback Database!

闪回数据库的必备条件1.数据库必须启动归档模式SQL> archive log list数据库日志模式 存档模式自动存档 启用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 1下一个存档日志序列 2当前日志序列 22.数据库必须指定

2011-10-20 15:21:15 811

原创 Flashback Table!

闪回表SQL> conn u1/u1已连接。SQL> select * from tab; --现在有一张表TNAME TABTYPE CLUSTERID------------------------------ ------- ----------T

2011-10-20 14:54:19 1014

原创 Flashback Version Query和Flashback Transaction Query!

Flashback Version QuerySQL> conn /as sysdba已连接。SQL> select current_scn from v$database;CURRENT_SCN----------- 475124SQL> conn u1/u1已连接。SQL> select * from t; ID V

2011-10-20 11:37:59 705

原创 Flashback Query!

首先创建一个测试表SQL> conn /as sysdba已连接。SQL> select file_name from dba_data_files;FILE_NAME--------------------------------------------------------------------------------/u01/app/oracle/orad

2011-10-20 11:01:38 637

原创 RMAN备份与恢复(8)——基于日志序列号的不完全恢复!

首先模拟数据库故障。SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME---------- ---------- ---------- ---------- ----------

2011-10-20 09:33:15 1139

原创 RMAN备份与恢复(7)——基于SCN的不完全恢复!

基于SCN的不完全恢复使用情况跟基于时间一样,只是这里是根据scn值来恢复的。首先模拟数据库故障。SQL> select current_scn from v$database;CURRENT_SCN----------- 475351SQL> select file_name from dba_data_files;FILE_NAME-

2011-10-20 09:22:10 5027 1

原创 RMAN备份与恢复(6)——基于时间的不完全恢复!

必须注意:不完全恢复必须是数据库级别的。基于时间的不完全恢复在用户误删除、误截断表时可以使用。首先模拟数据库的故障,删除一个数据文件,然后在mount上数据库。[oracle@linux oracle]$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';[oracle@linux oracle]$ sqlplus /nolog

2011-10-20 09:12:32 808

原创 使用恢复目录(catalog)数据库!

创建恢复目录1、创建表空间SQL> create tablespace rman datafile '/u01/app/oracle/oradata/orcl/rman1.dbf' size 50m;表空间已创建。2、创建用户SQL> cr

2011-10-15 14:23:38 3167

原创 RMAN备份与恢复(5)——将数据文件或表空间还原到新位置!

1、将数据文件还原到新位置。首先删除数据文件,模拟磁盘故障,丢失数据文件。SQL> conn /as sysdba已连接。SQL> ! rm -rf /u01/app/oracle/oradata/orcl/tb1.dbfSQL> conn u1/u1

2011-10-14 17:17:08 1903

原创 通过RMAN备份恢复数据库到其他服务器!!!

1、记录一下源数据库的DBIDSQL> select DBID from v$database; DBID----------1292118315[oracle@linux flash_recovery_area]$ rman target /

2011-10-14 15:24:49 4997

原创 RMAN备份与恢复(4)——恢复无备份的数据文件!

首先模拟数据文件丢失RMAN> shutdown immediate数据库已关闭数据库已卸装Oracle 实例已关闭RMAN> host; [oracle@linux dbs]$ rm -rf /u01/app/oracle/oradata/o

2011-10-14 11:54:16 928

原创 RMAN备份与恢复(3)——恢复归档日志、控制文件、参数文件!

恢复归档日志(会恢复到归档日志所在目录,有初始化参数log_archive_dest_1决定。)RMAN> list backup of archivelog all;备份集列表===================BS 关键字 大小 设

2011-10-14 11:35:33 2367

原创 RMAN备份与恢复(2)——恢复有备份的表空间和数据文件!

首先模拟数据文件丢失SQL> select status from v$instance;STATUS------------OPENSQL> ! rm -rf /u01/app/oracle/oradata/orcl/tb1.dbfSQL

2011-10-13 17:01:15 1035

原创 RMAN备份与恢复(1)——对数据库进行完全介质恢复!

首先开始前对数据库做一个全备份,后面的实验都依赖这个备份集。RMAN> show all;RMAN 配置参数为:CONFIGURE RETENTION POLICY TO REDUNDANCY 2;CONFIGURE BACKUP OPTIMIZATION O

2011-10-13 16:41:31 1015

原创 启用RMAN块修改跟踪&差异备份和增量备份的区别!

启用RMAN块修改跟踪在10g中Oracle提供了一个新的特性:块修改跟踪(Block Change Tracking)。启用块修改跟踪后,RMAN不用再去扫描数据文件中的每一个块了,直接通过块修改跟踪文件就可以获取哪些块发生了修改的信息。SQL> select * fr

2011-10-13 13:12:31 3318

原创 RMAN常用命令汇总!

进入RMAN:$ rman target sys/oracle@orcl   --远程连接到rman$ rman target sys/oracle@orcl @backup_db.ram   --远程连接到rman并执行指定脚本$ rman target sys/o

2011-10-13 12:47:05 3705

原创 RMAN的CONFIGURE配置和FORMAT字符串格式化!!!

RMAN 配置参数为:1、CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default基于冗余数量的保留策略:RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY n;基于时间的保留策略:RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n

2011-10-13 12:40:54 1855

原创 坏块的处理与恢复!

首先构建一个写满数据的表空间SQL> create tablespace tb2 datafile '/u01/app/oracle/oradata/orcl/tb2.dbf' size 1m;表空间已创建。SQL> create user u2 identi

2011-10-12 13:14:42 747

原创 ARCHIVELOG模式下用户管理恢复临时文件!

比如一些排序的操作,oracle会在PGA里面进,如果PGA容纳不下就会采用临时文件。 1、关闭的状态的数据库临时文件丢死了,打开数据库后oracle会自动创建一个。SQL> conn /as sysdba已连接到空闲例程。SQL> startupORAC

2011-10-11 20:00:28 527

原创 ARCHIVELOG模式下用户管理恢复联机重做日志文件(2)——当前活动组所有成员全部损坏!

1、在关闭状态下 当前活动组所有成员全部损坏,需要不完全恢复然后resetlogs打开数据库。恢复完成后会自动创建一个丢失了的online redo logfile。SQL> startupORACLE 例程已经启动。Total System Global Are

2011-10-11 19:34:15 614

原创 ARCHIVELOG模式下用户管理恢复联机重做日志文件(1)——非活动组所有成员全部损坏!

联机重做日志文件至少需要两组,oracle建议每组的成员至少要两个,也需要多路复用的。因为每组的成员的内容的都是一样的。同一组内只要有一个成员还存在就可以保证不丢数据的。 1、在open状态下非活动组所有成员全部损坏,可以重建一个成员。SQL> conn /as sy

2011-10-11 18:02:58 759

原创 ARCHIVELOG模式下用户管理恢复控制文件(2)——使用trace文件重建控制文件!

首先生成控制文件的sql脚本SQL> alter database backup controlfile to trace as '/u01/app/oracle/controlfile/control.sql';数据库已更改。 其实就是生成了一个控制文件的脚

2011-10-11 17:24:22 838

原创 ARCHIVELOG模式下用户管理恢复控制文件(1)——使用二进制控制文件恢复!

在生产数据库中,控制文件一般多路复用的。每个控制文件的内容是一模一样的,只要其中有一个没有丢失,那么就可以复制一下,改一下名字就可以用了。 首先在数据库中备份执行一个二进制的控制文件,也可以使用操作系统的命令直接复制控制文件来备份。SQL> startupORAC

2011-10-11 14:59:16 605

原创 ARCHIVELOG模式下用户管理的不完全恢复(4)——基于备份控制文件的不完全恢复!

基于备份控制文件的恢复只要适用于以下情况:表空间被意外删除;所有控制文件全部损坏。 先关闭数据库,执行一次全库冷备份。SQL> conn /as sysdba 已连接。 SQL> shutdown immediate 数据库已经关闭。 已经卸载

2011-10-10 20:09:19 676

原创 ARCHIVELOG模式下用户管理的不完全恢复(2)——基于SCN的不完全恢复!

当用户执行不完全恢复时,如果能够确定恢复点所对应的SCN值,那么可以使用这种方法恢复! 首先关闭数据库执行一个冷全备份SQL> conn /as sysdba已连接。SQL> shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE

2011-10-10 14:54:31 731

原创 ARCHIVELOG模式下用户管理的不完全恢复(1)——基于时间点的不完全恢复!

基于时间点的恢复主要使用于以下情况:误删除表、误截断表、提交了错误的数据。(从oracle 10g利用闪回更easy!) 首先关闭数据库执行一个冷全备份(冷备份的时候用户u1的t表中是有3条记录的。)SQL> conn /as sysdba已连接。SQL> s

2011-10-10 11:52:17 689

原创 ARCHIVELOG模式下用户管理的完全恢复(5)——总结!

首先说一下恢复的命令:1、recover database;是sql*plus的命令,该命令对应的sql命令为alter database recover database; 后面的同理!2、recover tablespace [tablespace name]; 对应

2011-10-09 18:15:42 630

原创 ARCHIVELOG模式下用户管理的完全恢复(4)——在没有数据文件备份的情况下恢复数据文件!

这个情况需要满足两个条件:只从数据文件创建以后,所有的归档日志文件和控制文件都在就可以使用这种方式来恢复数据。假如数据库是关闭的,发现该数据文件丢失了,又没有备份SQL> conn /as sysdba已连接。SQL> create tablespace tb3 da

2011-10-09 16:56:21 662

原创 ARCHIVELOG模式下用户管理的完全恢复(3)——恢复打开的数据库,并且数据库最初是打开的!

回忆一下,user1用户的test表中还是有两条记录SQL> show userUSER 为 "USER1"SQL> select * from test; ID VALUE---------- --------------------

2011-10-09 16:23:47 625

原创 ARCHIVELOG模式下用户管理的完全恢复(2)——恢复打开的数据库,并且数据库最初是关闭的!

继续使用前面的试验环境,可以看见user1用户下面有两条记录SQL> show userUSER 为 "USER1"SQL> select * from test; ID VALUE---------- -------------------

2011-10-09 15:55:30 549

《Oracle Wait Interface性能诊断与调整实践指南》

《Oracle Wait Interface性能诊断与调整实践指南》

2012-12-17

《ORACLE SQL 高级编程》随书脚本

《ORACLE SQL 高级编程》随书脚本 英文版叫《pro oracle sql》 想要精通oracle sql必读书籍!

2012-12-17

ORACLE SQL 高级编程

《pro oralce sql》经典书籍的中文版《ORACLE SQL 高级编程》! 找了好久才找到的书籍,是中文的,英文瞥的童鞋也可以看的!

2012-12-17

java面试宝典

java面试宝典,面试的时候必备资料!

2012-12-17

Linux Shell脚本攻略(pdf书+源码)

Linux Shell脚本攻略(pdf书+源码)

2012-12-17

oracle常用函数大全

oracle常用函数大全 包含了oracle常用的100多个函数

2011-02-13

oracle高级sql学习

1.集合操作 2.EXISTS和NOT EXISTS的使用 3.WITH子句 4.MERGE INTO合并资料 5.层次查询(HIERARICAL RETRIVAL) 6.DECODE函数和行列互换 7.CASE表达式 8.ROWNUM—TOP-N分析 9.相关子查询和非相关子查询 10.增强的GROUP BY 11.分析函数(ANALYTICAL FUNCTIONS) 12.ROWID的使用 13. ORACLE10G正则表达式 14.使用HINT 15.PARITION分区 16.并行操作 17.扩展DDL和DML语句 18.MODEL语句 19.10G闪回查询 20.专题—行列转换 21.专题—连续值和累计值问题 22.专题—NULL和DUAL详 23.专题—时间、数字、字符格式详解 24.专题—ORACLE字符集问题 25.专题-随机值查询

2011-02-13

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除