dictionary
oracle查看所有数据字典select table_name from dictionary;[@more@]
v$parameter
oracle数据库数据字典查看参数类型,静态参数或动态参数IMMEDIATE 动态参数FALSE 静态参数DEFERRED LEVEL级别动态参数[@more@]
rman完全恢复
export nls_date_format=yy-mm-dd hh24:mi:ssrman target /Recovery Manager: Release 11.1.0.7.0 - Production on Thu Sep 6 21:57:00 2012Copyright (c) 1982, 2007, Oracle. All rights reserved.connected to target database (not started)RMAN> set DBID=3817408875executing command: SET DBIDRMAN> startup nomountOracle instance startedTotal System Global Area 1068937216 bytesFixed Size 2166536 bytesVariable Size 427819256 bytesDatabase Buffers 624951296
oracle编译无效对象
alter function function_name compile;alter package package)name compile;alter type type_name compile;alter index index_name rebuild;[@more@]select substr(object_name,1,40) object_name,substr(owner,1,15) owner,object_type from dba_objects where status='INVALID' order by owner,object_type; 1. Oracle SQL *Plus 中 —— 用 spool 生成脚本文件,然后 @ 调入执行,代码如下:spool ExecCompProc.sqlselect 'alter procedure '||object_name||' com
批量删除Oracle数据库的数据
在使用delete语句删除数据时,数据库是要做日志记录的,以便将来可以恢复数据,可是我在删除上百万条数据时,十分缓慢甚至死机,请问有没有什么好方法?[@more@] 网友观点一:create or replace procedure delete_tableisi number(10);begin for x in (select * from emp where DEPTNO like 'a%') loop delete emp where emp.id = x.id i:=i+1; if i>1000 then commit; i:=0; end if; end loop;exception when others then dbms_out.put_line(sqlcode); rollback;end dele
oracle recyclebin和flashback
select * from dba_recyclebin where owner = 'GAPS1' and type = 'TABLE'flashback table YW_CUPSATM_HXDZMX to before dropselect * from dba_audit_trail查看所有用户权限select * from dba_role_privs t where t.granted_role='DBA'[@more@]Oracle10G以前执行drop table后表就即被删除了。10G后引入了垃圾回收站的概念recyclebin。如果仍只是drop table xxx,表不会立即被删除,而是被暂时放入回收站。 可以保障某些误操作后还可以将表还原。 1.查看数据库是否开户recyclebin功能 SQL> show parameter recyclebin; NAME
找回Oracle中Delete删除的记录
想找回被删除的记录,还必须了解SCN(系统改变号),它的英文全拼为:System Change Number ,它是数据库中非常重要的一个数据结构。 SCN提供了Oracle的内部时钟机制,可被看作逻辑时钟,这对于恢复操作是至关重要的 注释:Oracle 仅根据 SCN 执行恢复。[@more@]它定义了数据库在某个确切时刻提交的版本。在事物提交时,它被赋予一个唯一的标示事物的SCN 。一些人认为 SCN 是指, System Commit Number ,而通常 SCN 在提交时才变化,所以很多情况下, 这两个名词经常被交替使用。 究竟是哪个词其实对我们来说并不是最重要的,
oracle SGA配置和管理
Oracle对内存的管理的 优化从未间断,从8i到11g不断地提出新的管理概念。每个本版都对内存管理进行了简化: 8i->9i:PGA的自动管理; 9i->10g:SGA的自动管理; 10g->11g:MEMORY(SGA+PGA)的自动管理。 在11g中oracle引入了自动化内存管理(Automatic Memory Management)概念,仅用两个参数就能完成oracle的内存管理工作。自动内存管理:从9i开始,sga_max_size参数设置SGA 的内存大小,不能动态修改从10g开始,指定了sga_target参数后,所有的SGA组件如:shared pool、 data buffer、 large pool都不用手工指定了,Or
oracle AWR报告提取分析
Oracle 在10g以前的使用的是 Statspack做性能故障诊断的。Oracle Database 10g 提供了一个显著改进的工具:自动工作负载信息库 (AWR)。AWR 和数据库一起安装。数据库装好后,,快照由一个称为 MMON 的新的后台进程及其从进程自动地每小时采集一次(snap)[@more@] 1.查看当前的AWR保存策略、设置:快照间隔、保存时间。SQL> col SNAP_INTERVAL format a20SQL> col RETENTION format a20SQL> select * from dba_hist_wr_control; DBID SNAP_INTERVAL RETENTION TOPNSQL---------- -------------------- --
oracle收集统计信息
查看最新用户表统计信息select owner,table_name,last_analyzed from dba_tables where owner not like '%SYS%' order by 1,3;SELECT Table_Name,Num_Rows,Blocks,Empty_Blocks,Avg_Space,Chain_Cnt,Avg_Row_Len,Sample_Size,Last_AnalyzedFROM Dba_Tables WHERE owner = 'SCOTT' ;oracle是通过维护窗口来完成系统的自动job的,系统的维护窗口通过视图dba_scheduler_windowsSQL> select window_name,resource_plan,comments from dba_scheduler_windows;自从上一次分析统计数据以来,发生了多少次插入、更新和删除操作。SELECT * FROM
oracle导出DDL
dbms_metadata.get_ddl[@more@]dbms_metadata.get_ddl1.得到一个表或索引的ddl语句SELECT DBMS_METADATA.GET_DDL('TABLE','DEPT','SCOTT') FROM DUAL;select dbms_metadata.get_ddl('INDEX','PK_DEPT','SCOTT') from dual; 2.得到一个用户下的所有表,索引,存储过程的ddlSELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, u.object_name)FROM USER_OBJECTS uwhere U.OBJECT_TYPE IN ('TABLE','INDEX','PROCEDURE');3.得到所有表空间的ddl语句SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)FROM DBA_TABLESPACES TS;4.得到所
Some indexes or index partitions of table have been marked unusable
SQL> show parameter indexNAME TYPE VALUE------------------------------------ ----------- ------------------------------ITPUBoptimizer_index_caching integer 0optimizer_index_cost_adj integer 100skip_unusable_indexes boolean TRUE看看是否是10g中存在了一个类似的初始化参数,使得索引在不可用状态下,基表同样可以进行DML操作。查询果然发现了这个参数,而且从名称以及设置的值来看,确认就是要找的初始化参数:SQL> alter ses
Oracle RAC LoadBalance 使用详解
LoadBalance 就是把负载平均的分配到集群中的各个节点,从而提高整体的吞吐能力。 Oracle 10g RAC 提供了两种不同的方法来分散负载:1. 通过Connection Balancing,按照某种算法把用户分配到不同的节点。也可认为是纯技术的分散负载。2. 通过Service,在应用层上进行分散,也可认为是面象业务的分散负载。[@more@]一.Connection BalancingConnection Balancing 这种负载均衡是在用户连接这个层次进行的,也就是在用户请求建立连接时,根据每个节点的负载决定把连接分配给哪个实例,而一旦连接建立之后,会话的所有操作就都在这个实例上完
exp增量备份
exp可以增量备份,inctype=incremental(或者complete,cumulative)不过这个参数已经废除了,8i及以前的版本比较常用inctype=complete #完全导出or inctype=cumulative #导出自完全导出后的累计数据or inctype=incremental #导出上次导出备份有变化的数据。[@more@]exp可以增量备份,inctype=incremental(或者complete,cumulative)不过这个参数已经废除了,8i及以前的版本比较常用inctype=complete #完全导出or inctype=cumulative #导出自完全导出后的累计数据or inctype=incremental #导出上次导出备份有变化的数据。首先在数据库的su
oracle 1455 错误解决办法
ORA-01455: 转换列溢出整数数据类型 [@more@]在用 exp user/pwd@oraclesidfile=e:abc530.dmp 导出oracleDmp时报错了,错误如下EXP-00056: ORACLE error 1455 encounteredORA-01455: converting column overflows integer datatypeEXP-00000: Export terminated unsuccessfully在网上查了查都是:ORA-01455: 转换列溢出整数数据类型 ,Export 命令会将表的statistics 值转成成整形。 当这个statistics值超过2^31-1时,就会报这个错误。最后在exp命令后加 “INDEXES=n STATISTICS=none”这两个参数, exp user/pwd@oraclesid file=e:abc530.d
oracle数据库改坏spfile参数重启处理方法
环境:oracle11g问题:一开始计划将SGA参数由2G调整为4G,SQL> alter system set sga_target = 4096m scope = spfile;重启数据库后数据库报错ORA-00844: Parameter not taking MEMORY_TARGET into account, see alert log for more information[@more@]分析:由于设置了Oracle的MEMORY_TARGET参数的值小于了SGA_TARGET和PGA_TARGET的总和,因此报错解决方法:方法一:1. 创建pfilesqlplus / as sysdbaConnected to an idle instance.SQL> create pfile='/home/oracle/initora11g.ora' from spfile;2. 修改pfileSQL> host echo &q
CRS-0184: Cannot communicate with the CRS daemon. 问题处理
节点1重启后crs连接不上问题现象crs_start -tCRS-0184: Cannot communicate with the CRS daemon. ./crsctl check crsCSS appears healthyCannot communicate with CRSCannot communicate with EV检查日志more /opt/app/crs/log/rac1/crsd/crsd.log[ COMMCRS][6936256]clsc_connect: (0xa181958) no listener at (ADDRESS=(PROTOCOL=ipc)(KEY=OCSSD_LL_rac2_crs))[ CSSCLNT][6936256]clsssInitNative: connect failed,排查对比两节点状态#ps -ef|grep css#crsctl query css vote#ocrcheck#more /etc/inittab#more /etc/oracle/ocr.loc#ls
oracle锁会话
SQL> select * from dba_waiters;set linesize 2001.查看锁会话情况select sid,addr,type,lmode,request from v$lock where request>0 and type <> 'MR'得到sid2.查看等待会话、状态和等待时间col event for a20col p1text for a20col p2text for a30select sid,event,p1text,p2text,state,seconds_in_wait from v$session_wait where sid=3.查看会话信息select sid,serial#,username,program,terminal from v$session where sid=4.查看会话详细select sql_text from v$sql where address in ( select sql_address from v$ses
ORA-00600: [kcratr1_lastbwr]错误的处理办法
出现该错误是因为系统强制关机造成的!症状为数据库无法打开!解决办法:1>shutdown2>startup mount3>recover database4>alter database openfrom:http://www.ixdba.net/article/f9/277.html[@more@]案例1:数据库掉电,重启发现如下错误:查看ALERT日志,发现Errors in file /opt/oracle/admin/billdb/udump/billdb_ora_7186.trc:ORA-00600: internal error code, arguments: [kcratr1_lastbwr], [], [], [], [], [], [], []奇怪,于是先把数据库关闭,然后重新启动,报错如下:SQL> startupORACLE instance started.Total S
查看ORACLE启动时使用spfile还是pfile
Oracle 9i以后启动的时候默认使用的初始化文件是spfile,但是如何判断数据库启动是使用spfile还是pfile初始化文件.可以用3种方法,1、show parameter spfile2、show parameter pfile3、看v$spparameter视图[@more@][oracle@Rhel4 dbs]$ sqlplus /nolog SQL*Plus: Release 11.1.0.6.0 - Production on Fri Jun 18 07:30:49 2010Copyright (c) 1982, 2007, Oracle. All rights reserved.SQL> conn /as sysdba;Connected to an idle instance.SQL> startup;ORACLE instance started.Total System Global Area 422670336 bytesFixed Size