摘要:
下面总结、整理一下RMAN异机恢复这方面的知识点,这篇笔记在个人笔记里面躺了几年了,直到最近偶然被翻看到,遂整理、总结一下。如下所示,个人将整个RMAN异机恢复分为准备工作和操作步骤两大部分。当然,准备工作里面,有些步骤不是必须的,可以跳过或忽略的。这个取决于你的实际环境和你对RMAN异机恢复的熟悉程度。 准备工作 1:了解一下目标服务器与源服务器的操作系统版本信息 需要对比一下目标... 阅读全文
随笔分类 - 数据库技术(Oracle)
ORACLE关于段的HEADER_BLOCK的一点浅析
2017-05-15 15:27 by 潇湘隐者, 2999 阅读, 收藏,
摘要:
在学习段(segment)、区间(extent)时,对段的HEADER_BLOCK有一些疑问,本文记录一下探究的实验过程以及相关总结,,如有不对的地方,敬请指出。以SCOTT.EMP表为例(下面测试环境为Oracle Database 10g Release 10.2.0.5.0 - 64bit Production): SELECT FILE_ID, BLOCK_ID, ... 阅读全文
关系数据库如何快速查询表的记录数
2017-05-09 15:58 by 潇湘隐者, 17928 阅读, 收藏,
摘要:
在数据库中,很多人员习惯使用SELECT COUNT(*)、SELECT COUNT(1)、SELECT COUNT(COL)来查询一个表有多少记录,对于小表,这种SQL的开销倒不是很大,但是对于大表,这种查询表记录数的做法就是一个非常消耗资源了,而且效率很差。下面介绍一下SQL Server、 Oracle、MySQL中如何快速获取表的记录数。 SQL SERVER 数据库 在S... 阅读全文
ORACLE中关于外键缺少索引的探讨和总结
2017-04-17 15:59 by 潇湘隐者, 4909 阅读, 收藏,
摘要:
在ORACLE数据库中,定义外键约束时,ORACLE是不会自动创建对应索引的,必须手动在外键约束相关的列上创建索引。那么外键字段上是否有必要创建索引呢?如果有必要的话,巡检时,如何找出外键字段上没有创建索引的相关表,并生成对应的索引的脚本呢? 外键缺失索引影响 外键列上缺少索引会带来三个问题,限制并发性、影响性能、还有可能造成死锁。所以对于绝大部分场景,我们应该尽量考虑在外键... 阅读全文
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor案例2
2017-04-12 13:39 by 潇湘隐者, 288684 阅读, 收藏,
摘要:
今天使用SQL Developer连接一台测试服务器数据库(ORACLE 11g)时,遇到了“ORA-12514, TNS:listener does not currently know of service requested in connect descriptor”错误,具体提示如下所示: 执行请求的操作时遇到错误: Listener refused the connection ... 阅读全文
关于ORACLE通过file_id与block_id定位数据库对象遇到的问题的一点思考
2017-03-19 00:15 by 潇湘隐者, 4299 阅读, 收藏,
摘要:
在ORACLE中,我们可以通过file_id(file#)与block_id(block#)去定位一个数据库对象(object)。例如,我们在10046生成的trace文件中file#=4 block#=266 blocks=8,那么我可以通过下面两个SQL去定位对象 SQL 1:此SQL效率较差,执行时间较长。 SELECT OWNER, SEGMENT_NAME, ... 阅读全文
ORACLE的Dead Connection Detection浅析
2017-01-17 12:27 by 潇湘隐者, 4258 阅读, 收藏,
摘要:
在复杂的应用环境下,我们经常会遇到一些非常复杂并且有意思的问题,例如,我们会遇到网络异常(网络掉包、无线网络断线)、客户端程序异常(例如应用程序崩溃Crash)、操作系统蓝屏、客户端电脑掉电、死机重启等异常情况,此时数据库连接可能都没有正常关闭(Colse)、事务都没有提交,连接(connections)就断开了。如果遇到这些情况,你未提交的一个事务在数据库中是否会回滚? 如果回滚,什么条... 阅读全文
ORACLE从共享池删除指定SQL的执行计划
2016-12-29 11:14 by 潇湘隐者, 8197 阅读, 收藏,
摘要:
Oracle 11g在DBMS_SHARED_POOL包中引入了一个名为PURGE的新存储过程,用于从对象库缓存中刷新特定对象,例如游标,包,序列,触发器等。也就是说可以删除、清理特定SQL的执行计划,这样在特殊情况下,就避免你要将整个SHARED POOL清空的危险情况。例如某个SQL语句由于优化器产生了错误的执行计划,我们希望优化器重新解析,生成新的执行计划,必须先将SQL的执行计划从共享池中... 阅读全文
SQL*Plus生成html文件
2016-12-27 12:12 by 潇湘隐者, 3237 阅读, 收藏,
摘要:
最近使用SQL*Plus命令生成html文件,遇到一些有意思的知识点,顺便记录一下,方便以后需要的时候而这些知识点又忘记而捉急。好记性不如烂笔头吗! 为什么要用SQL*Plus生成html文件? 有些人肯定会问,我使用SQL*Plus为什么要生成html文件呢? SQL*Plus本身就是一个命令工具,生成html文件有必要吗? 下面是个人的一些看法,如有不对,敬请指正: 有很大一部分ORA... 阅读全文
PMON failed to acquire latch, see PMON dump
2016-12-23 12:18 by 潇湘隐者, 5249 阅读, 收藏,
摘要:
前几天,一台Oracle数据库(Oracle Database 10g Release 10.2.0.4.0 - 64bit Production)监控出现"PMON failed to acquire latch, see PMON dump"错误,连接数据库出现短暂异常,告警日志中具体错误如下所示: Tue Dec 20 09:13:16 2016PMON failed to acquire... 阅读全文
ORACLE中STATUS为INACTIVE但是SERVER为SHARED状态的会话浅析
2016-12-15 16:46 by 潇湘隐者, 2752 阅读, 收藏,
摘要:
我们知道当ORACLE数据库启用共享服务器模式时,通过共享服务器模式连接到数据库的会话是有一些特征的。在v$session里面,其SERVER的状态一般为SHARED和NONE, 为SHARED时,表示当前会话正在执行SQL语句,其占用共享服务器进程,会话的STATUS状态为ACTIVE;当会话状态STATUS处于INACITVE时,它的SERVER字段值一般为NONE,意味着此时并没有共享... 阅读全文
ORA-00821: Specified value of sga_target 3072M is too small, needs to be at least 12896M
2016-12-15 10:23 by 潇湘隐者, 13565 阅读, 收藏,
摘要:
在测试PlateSpine克隆的数据库服务器时,由于资源有限,克隆过来的数据库服务器只给了9G的内存,结果在测试时,老是会出现OOMkiller导致宕机,即out of memory killer,是linux下面当内存耗尽时的的一种处理机制。当内存较少时,OOM会遍历整个进程链表,然后根据进程的内存使用情况以及它的oom score值最终找到得分较高的进程,然后发送kill信号将其杀掉。... 阅读全文
ORA-00600 3020 ORA-10567案例
2016-11-25 15:48 by 潇湘隐者, 2618 阅读, 收藏,
摘要:
PlateSpin克隆复制出的Oracle数据库服务器,往往启动数据库实例都会遇到一些杂七杂八的问题。今天测试DR环境时又遇到了一个特殊场景,在此之前,我已经遇到了下面两起案例: ORA-00600: internal error code, arguments: [kcratr1_lastbwr], [], [], [], [], [], [], [] ORA-00600: internal... 阅读全文
ORA-00600: internal error code, arguments: [4194]
2016-11-21 14:51 by 潇湘隐者, 12206 阅读, 收藏,
摘要:
使用PlateSpin复制出来的一数据库服务器(Oracle 10g)在启动数据库实例时遇到“ORA-00600: internal error code, arguments: [4194].....”错误,实例在启动后,会自然Down掉。具体情况如下所示: Successfully onlined Undo Tablespace 54.Mon Nov 21 11:34:03 2016SMON... 阅读全文
ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'
2016-11-10 11:26 by 潇湘隐者, 2964 阅读, 收藏,
摘要:
凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库。报ORA-12570 TNS:packet reader failure 2. 使用lsnrctl status检查监听,一直没有响应,这个是极少见的情况。 3. 检查数据库状态为OPEN,使用nmon检查系统资源。如下一... 阅读全文
[转载】——故障排除:Shared Pool优化和Library Cache Latch冲突优化 (文档 ID 1523934.1)
2016-10-31 15:59 by 潇湘隐者, 2536 阅读, 收藏,
摘要:
原文链接:https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrlstate=23w4l35u5_4&id=1523934.1用途 提出问题,得到帮助并分享您的心得 排错步骤 什么是shared pool? 专用术语 Literal SQL Hard Parse... 阅读全文
ORACLE推导参数Derived Parameter介绍
2016-10-30 23:46 by 潇湘隐者, 1623 阅读, 收藏,
摘要:
Oracle的推导参数(Derived Parameters)其实是初始化参数的一种。推导参数值通常来自于其它参数的运算,依赖其它参数计算得出。官方文档关于推导参数(Derived Parameters)的概念如下: Derived Parameters Some initialization parameters are derived, meaning that their values... 阅读全文
SQL Challenge ——快速找到1-100之间缺失的数
2016-10-18 17:02 by 潇湘隐者, 5605 阅读, 收藏,
摘要:
有个经典的题目:1-100之间的数字(不重复)存放在表里,共95行一列,但是里面缺了5个数字,怎么用SQL最快找出那五个数字。 我们先来看看Oracle数据库如何实现,如下所示,我们先准备测试环境和数据。 SQL> create table t( id number(10)); Table created. SQL> begin 2 for i in 1 .. 100 3 loo... 阅读全文
ORACLE 物理读 逻辑读 一致性读 当前模式读总结浅析
2016-10-08 23:37 by 潇湘隐者, 9218 阅读, 收藏,
摘要:
在ORACLE数据库中有物理读(Physical Reads)、逻辑读(Logical Reads)、一致性读(Consistant Get)、当前模式读(DB Block Gets)等诸多概念,如果不理解或混淆这些概念的话,对你深入理解一些知识无疑是一个障碍,但是这些概念确实挺让让人犯晕的。下面我们总结、学习一下这方面的知识点。捋一捋他们的关系和特点,希望对你有所帮助。 物理读(... 阅读全文
ORACLE的SQL JOIN方式小结
2016-10-07 12:13 by 潇湘隐者, 54399 阅读, 收藏,
摘要:
在ORACLE数据库中,表与表之间的SQL JOIN方式有多种(不仅表与表,还可以表与视图、物化视图等联结),官方的解释如下所示 A join is a query that combines rows from two or more tables, views, or materialized views. Oracle Database performs a join whenever... 阅读全文