您现在的位置:首页
--> Oracle
如果想更改数据库名,即修改db_name参数。在Oracle 9iR2提供了一个工具nid,可以通过它来完成这项工作,这样就避免了重建控制文件等繁琐方式来实现了。nid工具可以只用来更改数据库名(db_name),或者只更改数据库的id(dbid),或者两个同时更改。当涉及到更改db_name的时候,由于数据库名还存在与参数文件中,因此,更改数据库名时也要更改相应的参数。如果你使用了spfile,那么要重建它。另外,还需要重建密码文件。有个nid工...
概述Oracle的sequence,就是序列号,它提供一系列的按照事先指定的方式进行增长的数字。oracle sequence的最大值是38个整数。【Sequences are database objects from which multiple users can generate unique integers.】。一般来说,sequence常用于生成数据库的主键。 Oracle将sequence的定义存储在数据字典之中,因此,所有的sequence都在数据库的SYSTEM表空间里面。 引用sequence的当前值使用CURRVAL,而生成sequence的下一个...
Oracle的SGA包括以下几个部分,可以通过show sga命令或者是通过查看v$sga视图来查看SGA的大概组成:17:39:48 SQL> show sgaTotal System Global Area 1048576000 bytesFixed Size 1223392 bytesVariable Size 847250720 bytesDatabase Buffers 192937984 bytesRedo Buffers 7163904 bytes17:42:05 SQL> select * from v$sga;NAME VALUE------------------------------ -------------Fixed Size 1223392.00Variable Size 8472...
前面已经解释了events的含义、分类等信息,那么在oracle中到底有多少events呢?下面我就来解释一下这个问题。oracle每个版本中所拥有的events可能是不一样的,甚至是同一个event在不同的版本中所包含的含义和功能也是不一样的,这点是需要注意的。很多event会改变oracle的行为,在前面的分类中我已经做过这类event的含义解释了,有些event甚至会导致数据库crash,因此在使用event的使用要特别小心。在没有oracle support明确允许和...
event的分类和dumporacle中的event根据它们的用途,可以分为如下四类,分别是:1. immediate dump2. on-error dump3. change behavior4. trace 这四类event,分别对应下面四种不同的用途:1. dump diagnostic information on request2. dump diagnostic information when an error occurs3. change database behavior4. produce trace diagnostics as the database runs 那么,如何设置这四类event呢?或者说如果dump这四类event...
我们经常会发现某些人会问如下面的这些问题:“这个oracle块里面到底是怎么存这些数据的?”“死锁发生的时候,我怎么知道是哪几个对象发生的死锁?”“oracle是怎么执行这个操作的?”“oracle的library cache是什么个样子?”……这个时候,可能就有人会如下的回答这样的问题:“你dump一下这个块吧!”“你可以设置60事件跟踪一下吧。”“你做一个10046事件跟踪一下吧。”“你可以dump一下内存的library cache啊。”…… 等等如...
有这样的一类需求,快速复制一张表,而这张表的数据量又非常的大。比方说本来是分区表,要把它重新变成非分区表,怎么能够快速的完成这样的操作呢?我下面给出2种大致的方法:第一,就是利用CTAS方式来创建一张新表,当然要想加快速度,在数据库不是force logging的前提下,可以使用nologging方式来创建表SQL> create table auction_auctions_bak 2 tablespace tbs_taobao 3 nologging 4 as 5 select * from auction_auctions;T...
有些时候,我们可能会遇到这样一种现象,将一个字段“不小心”定义为varchar2类型,而后来插入里面的数据都是数字,之后发现这个字段确实应该为number类型,而此时你又想在不影响用户使用的前提下,或者说尽量小的影响用户,保证数据不丢失的情况下,来更改这个数据类型,这个时候如果你用普通的alter table modify命令,你可能就要遇到错误了。
Oracle 11g 出来有好长时间了,一直没时间去了解它增加哪些新的功能和特性,今天刚好有时间和机器于是就来体验一把Oracle 11g的新\"魅力\",并且记录下来. 整个安装过程和安装oracle 10g 没有本质上的区别.一:创建 oracle 用户[root@dbasky ~]#groupadd oinstall[root@dbasky ~]#groupadd dba[root@dbasky ~]#mkdir -p /home/oracle[root@dbasky ~]#useradd -d /home/oracle -g oinstall -G dba oracle[root@dbasky ~]#chown oracle:...
Bbed就是英文block browse block edit的缩写,用来直接查看和修改数据文件数据的一个工具。在windows上没有提供这个工具,在linux上面有,需要编译: db2-> cd /opt/oracle/product/11.0.13/rdbms/libb2-> make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbeddb2-> ./bbedPassword: #默认的密码:blockedit.BBED: Release 2.0.0.0.0 - Limited Production on Wed Aug 12 16:01:03 2009Copyright (c) 1982, 2007, Oracle. A...
遇到了一个开发数据库在不正常的关机的情况下重新启动数据库的时候报了\"ORA-03113: end-of-file on communication channel\",其实这个错误经常会遇到的,被很多DBA们认为是\"经典的错误\". 导致这个错误的原因有很多种(大约):系统的核心参数设置不恰当oracle环境变量和权限SQL,PL/SQL引起的错误磁盘空间满防火墙问题其它因素 根据上面的几种情况,在寻问了开发人员在出现错误之前都做了什么操作(越详细越好),在看下alert.log里面...
SQL>startup mountTotal System Global Area 2097152000 bytesFixed Size 1268436 bytesVariable Size 536872236 bytesDatabase Buffers 1543503872 bytesRedo Buffers 15507456 bytesDatabase mountedSQL> alter database open;alter database open*ERROR at line 1:ORA-16038: log 3 sequence# 498 cannot be archivedORA-19809: limit exceeded for recovery filesORA-00312:...
有一段时间没到E-Delivery的主页上看看了,今天上去一看发现了更新Oracle Enterprise Linux 5.3。还等待什么了赶快的去下载并安装。这么多说二句,Oracle Enterprise Linux 是以redhat enterprise linux为基础, 并加入了自己的linux补丁。 一:整个下载过程到Oracle E-Delivery下载,不能直接下载需要注册用户信息:例:要注册,填一些个人信息并同意两个协议; (注册是免费的,下次登陆时,同一账号,需要填写相同的信息,包括...
大家都知道要查询表空间的使用情况可以通过查询其视图写长长的一段脚本,我想大家都会写了。可是否有简便的方法呢?接下来我们看下如下例子:db1-> sqlplus / as sysdbaSQL*Plus: Release 10.2.0.4.0 - Production on Thu Sep 24 14:59:14 2009Copyright (c) 1982, 2007, Oracle. All Rights Reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - ProductionWith the Partitioning, Real Appli...
今年所做的优化,大的涉及到体系架构改造,涉及到利用cache,涉及到更改实现方式,小的如加hint,建索引更改sql语句等,一年下来,大大小小算下来也超过100个了。我稍微总结一下优化要具备什么,怎么来做? 为什么要优化? 举个简单的例子,某个sql每小时执行了300万次,逻辑读如果我们能从500下降到100,每小时就可以节省了上亿个逻辑读,优化可以让服务器更节约资源,优化可以让sql执行速度更快,提高用户体验。1.理论...
Shared pool latch用来保护共享池内部结构,在分配和释放共享池时需要获得latch,在老化或释放空间时也需要 latch。Oracle9i之前,共享池内存结构是由单独的Shared pool latch保护,从9i开始,如果服务器有4个以上的cpu且shared_pool_size大于250M,Oracle会动态将共享池分为多个子池,最多可以达到7个sub pool。子池的数量也可以通过_kghdsidx_count参数来手动调整,每个子池有自己的结构,lru列表和shared pool latch。查看Shared...
当你接手一个系统时,通常是从检查系统负载,cpu、内存使用率开始,查看statspack top5等待事件,逻辑读、物理读排名靠前的sql语句等等,然后进行初步的优化。而随着业务的深入了解,你开始从系统的角度去考虑据库设计,考虑应用实现的合理性,是否有更好的改进方案等。假设通过statspack报表找到了很耗资源的sql,表分析过,执行计划也是走索引,这种情况下怎么去判断 sql是优化的呢?1.提取逻辑读排名靠前的sql 6,813,699 ...
Dbms_stats是oracle8i新增的程序包,它使统计数据的生成和处理更加方便,很多人都在推荐使用dbms_stats替代analyze,我倒是不怎么用过,记录一下 estimate_percent --估算抽样百分比 method_opt:for table --只统计表 for all indexed columns --只统计有索引的表列 for all indexes --只分析统计相关索引 --创建统计信息历史保留表 sql> exec dbms_stats.create_stat_table(ownname => \'scott\',stattab => \'stat_tab...
这个问题在面试中曾被问倒过,网络上能找到的资料也比较少,后来和yyxup,久游的一个puber讨论了半天,总算搞懂了一点 library cache object在内存中是分成2部分来存储的,第一部分是头信息,叫做handle,头信息里保存了指向具体保存该对象的地址,这个叫做heap.一个对象可能分为很多个heap要访问或者修改一个对象,首先要锁住其头信息,也就是handle,以防止其他session同时访问或者修改该对象,这是library cache lock...
Index Full ScansA full scan is available if a predicate references one of the columns in the index. The predicate does not need to be an index driver. A full scan is also available when there is no predicate, if both the following conditions are met:All of the columns in the table referenced in the query are included in the index.At least one of the index columns is not null.A full scan can be use...
近3天十大热文
- [54] 如何拿下简短的域名
- [54] Go Reflect 性能
- [54] IOS安全–浅谈关于IOS加固的几种方法
- [53] android 开发入门
- [53] Oracle MTS模式下 进程地址与会话信
- [51] 图书馆的世界纪录
- [49] 【社会化设计】自我(self)部分――欢迎区
- [48] 读书笔记-壹百度:百度十年千倍的29条法则
- [39] 程序员技术练级攻略
- [30] 视觉调整-设计师 vs. 逻辑
赞助商广告