随笔分类 - Oracle
摘要:<<写完之后,忽然发现之前的理解不够啊.... Oracle会隐式地给表上加锁的,获取share mode的锁之后,如果更改了该表的数据,这个时候相当于获取了exclusive的锁了,而不再是share lock了... >>有这么一道题目:Which of the following lock modes permits concurrent queries on a t...
阅读全文
摘要:两者的区别:1。v$rollstat 显示每个undo segment的情况,v$undostat 显示系统当前的一个统计,主要用处估计当前系统需要多少的undo空间2。如果数据库处于回滚段手动管理状态,那么v$undostat 中没有内容,而v$rollstat 始终有数据3。v$undostat 视图每隔10分钟系统自动作一个更新,插入一条新数据,保留最多1008行记录,或者说7天的历史数据可...
阅读全文
摘要:假设我有如下一张表 test_sort_comp, 注意列NAME上有一个索引。[代码]现在如果我需要查找Name为frank的记录,很简单,如下 (注意,设置了autotrace,方便查看执行计划)[代码]很显然,查询结果返回了一条记录,而且采用了index scan的方式。如果现在我想得到name为frank的记录,但是不管字母的大小写,只要是f,r,a,n,k这几个字母按照这个顺序拼出来就可以,很显然表test_sort_comp中有3条记录满足条件 -- frank, Frank, frAnk.很容易想到一种方法,通过upper或lower函数,把name转成要么是大写要么是小写,但
阅读全文
摘要:关于参数 NLS_LENGTH_SEMANTICS这个参数的说明可以参见Oracle Online Doc --http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14237/initparams127.htmNLS_LENGTH_SEMANTICSenables you to createCHARandVARCHAR2col...
阅读全文
摘要:1. What Is Data Pump Export?简单来说,Data Pump Export是Oracle提供的从数据库导出(unload)数据及元数据(metadata)到一系列的文件中(dump file set)的这么一种工具(utility). 这些生成的dump file set只可以被Data Pump Import导入到目标数据库中, 目标数据库既可以是在同一个Sever上,也...
阅读全文
摘要:今天同事遇到个问题,他手动删除了一些数据文件(本来尝试去drop一个schema的,但是发现太耗时了,所以来个“暴力”方法,直接删除数据文件),从而导致数据库不能打开了。 这个是很容易理解的,因为在数据库open阶段,会进行数据库一致性检查 (control文件记录的文件都应该存在),在这种情况下control文件中记录了数据库中有这个数据文件,但是数据库却发现该文件丢失了...
阅读全文
摘要:首先来看几个简单的FQA,对Data Pump有个大概的了解,(1) Data Pump 在哪个版本被引入的 ? Oracle 10g 引入了Data Pump 技术, 包含两个utilities: Data Pump Export (expdp), Data Pump Import (impdp), 用来取代之前版本的emp 和 imp。(2) Data Pump 主要作用是啥? Data Pu...
阅读全文
摘要:最近在一个测试数据上设置了参数db_recovery_file_dest_size (也就是flashback recovery area的大小),并且把archive log destination 指向了这个flashback recovery area, (USE_DB_RECOVERY_FILE_DEST)[代码]由于flashback recovery area的大小设置不够大,归档日志...
阅读全文
摘要:1. 关于视图命名的单复数问题 动态性能视图(v$xxx)的名字一般都是单数形式,而静态视图(ALL/USER/DBA)一般是复数形式 examples: user_tables, user_views v$instance, v$version, v$database, v$session, v$process... 发现一个特例:v$timezone_names 这个动态视图是个复数形式, 用...
阅读全文
摘要:在另一篇Blog里提到怎么用RMAN来复制数据库,本篇Blog在简单谈谈如何手动来实现复制Oracle数据库。复制数据库可以从一个主数据库创建,无论这个数据库是打开的还是关闭的。为了创建一个复制数据库,来自打开或者关闭的备份文件可以用作数据库文件的副本。关闭备份的数据库文件备份不需要恢复(recover),因为所有的数据文件头的SCN是一致的,而打开备份的数据库文件是需要进行恢复的,因为各个文件相互之间不一致。当clone数据库的时候,将必须创建一个新的控制文件。数据库控制文件可以用CREATE CONTROLFILE命令来创建。很多情况下,这个命令是有用的或者是必要的,比如说在如下情况下就需
阅读全文
摘要:在网上看到有人问如下问题,已知表TB的数据如下[代码]现在要得到如下的结果,该怎么来解决,[代码]想了半天也没想到啥好办法,首先自然而然想到用MAX和MIN函数,但是显然这两个是聚集函数,是要作用在同一个column的一个Group上面的,而现在要得到的MAX和MIN的值却是作用于每一行上面的,如果要借助于MAX()和 MIN()的话,还需要对原表的数据结构进行下处理(先进行转列操作unpivot...
阅读全文
摘要:Adrian Billington 在他的个人网站www.oracle-developer.net上给出了一个很有意思的小工具,Mystats Utility, 用来帮助我们查看某个操作消耗的系统资源。 下面是他的代码 (mystats_pkg), 其实也很简单,主要就是在待考察操作执行前后各采一个样(snapshot),然后比较这两个snapshot统计数据的差值,就可以得出待考察操作消耗的资...
阅读全文
摘要:有时候可能需要去创建一个跟target数据库一样的一个数据库副本, 用RMAN可以很方便地通过Target数据库的备份文件(backup sets)来clone一个同样的数据库。 本文主要讲述如何用RMAN在同一个Host上duplicate一个数据库, (target database and duplicated database reside in the same machine). 因...
阅读全文
摘要:在Windows平台上启动多个Instance比在UNIX环境下要繁琐一点,需要用到ORADIM来创建新的ORACLE_SID. 现在假设在一台Windows PC上装了一个名字为ORCL的Oracle数据库,默认情况下启动的都是这个对应于这个ORACLE_SID的instance, 现在如果我需要在这台机器上启动另外一个instance (假设名字叫ORCL2),该怎么办呢? 首先先创建另外一...
阅读全文
摘要:Adrian Billington 在他的文章collection extensions in 10g 中对10g增加的对collection增加的类似在SQL语句中的UNION, MINUS等集合操作有着详细的介绍。在10g之后,我们就可以像对两个SQL语句(其实也就是两个集合)那样来求两个collection的并集,差集等等。 下面是对该篇文章的摘要, 1. 比较两个collection是...
阅读全文
摘要:有时候在用Enterprise Manager DB Console的时候(Windows平台下)会遇到如下问题, RemoteOperationException: ERROR: Wrong password for user 如下所示, 解决这个问题的方法如下, Control Panel-->Administrative Tools-->Local Security Poli...
阅读全文
摘要:关于Oracle 10g 中的Recylebin,有两篇文章说得很详细, (1) Flashback Table by Arup Nanda (2) Using Oracle's recycle bin by Natalka Roshak 本篇blog只是简单介绍如何去追溯recyclebin的本质。 Recyclebin是Oracle 10g中新加入的一个feature, 就像Windows操作...
阅读全文
摘要:我们知道查询一条SQL的执行计划,一般可以通过如下两种方式(当然还有其他方式) (1) Explain plan for / DBMS_XPLAN.DISPLAY (2) Set autotrace on Explain plan for 和 Set autotrace 都是SQL*PLUS命令,DBMS_XPLAN是Oracle提供的查询执行计划相关的包。 这两种方法在Oracle10g都得...
阅读全文
摘要:之所以把Explain Plan 和 Autotrace的设置放到一起来说,是因为这2者都依赖于同一张表PLAN_TABLE,因此都需要首先创建PLAN_TABLE. 1. Create Table PLAN_TABLE 有时候貌似不需要手动去创建这张表,PLAN_TABLE在数据库安装过程中已经被创建好了。我们可以首先测试下PLAN_TABLE是否已经存在, scott@ORCL> d...
阅读全文
摘要:Sql*Plus的重要性不用多说,但是由于Sql*Plus默认的设置往往使得结果显示不是那么友好,比如说linesize, pagesize。 因此,很多时候都要手动去重复设置这些参数。那么有没有一劳永逸的方法呢,glogin.sql就是答案! Sql*Plus每次启动的时候都会自动运行文件glogin.sql中的设置,因此如果我们把常用的参数设置都放在这个文件里面,我们就不用每次都要重复去设置...
阅读全文

浙公网安备 33010602011771号