sql语句引起的CPU占用国高
SQL效率问题, SQL code 1.用top看下那个进程占cpu资源比较多,记下SPID, 2:查询当前耗时的会话ID,用户名,sqlID等: select sid,serial#,machine,username,program,sql_hash_value,sql_id, to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') as login_time from v$session where paddr in (select addr from v$process where spid in ('5648612','256523')); 3:如果上一步sql_id或者 hash_value不为空,则可用v$sqlarea查出当前正在使用的sql select * from v$sql where sql_id='' select s.sid,s.serial#,p.program,p.spid from v$sessi
重建wmsys
Ceate wmsys and related objests$ORACLE_HOME/rdbms/admin/owminst.plbFor uninstall$ORACLE_HOME/rdbms/admin/owmuinst.plbhttps://support.oracle.com/CSP/ui/flash.html#tab=KBHome(page=KBHome&id=()),(page=KBNavigator&id=(bmDocTitle=How%20to%20De-install%20Oracle%20Workspace%20Manager&viewingMode=1143&bmDocDsrc=KB&bmDocType=HOWTO&bmDocID=263428.1&from=BOOKMARK)) [@more@]
ora-00020超出最大进程数的解决方法
ora-00020超出最大进程数的解决方法 一般原因是因为你的应用程序的连接数超过了ORACLE系统设置的最大连接数。你可以到ORACLE的OEM下,用SYS as/sysdba进入OEM,在Instance的 Configuration下打开All initialization parameters,打到指定的Processes项,该项系统安装一般默认为150,你可以修改到你想需要的,一般200~2000之间。修改之后需要重新启动数据库,建议最好重新启动操作系统。当然你也可以在windows上,在dos命令符下键入:set oracle_sid=xxx ,一样的道理。 ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的
关于索引何时需要重建 [转]
关于索引何时需要重建。通过一个视图(index_stats),参考里面的数值来判断是否需要重建select name,del_lf_rows,lf_rows, round(del_lf_rows/decode(lf_rows,0,1,lf_rows)*100,0)||'%' frag_pct from index_stats where round(del_lf_rows/decode(lf_rows,0,1,lf_rows)*100,0)>10;del_lf_rows:索引删除行数lf_rows:索引总行数这里 round(del_lf_rows/decode(lf_rows,0,1,lf_rows)*100,0) 求的是删除行数除以总行数的百分比,我在相关书籍上看到是,比率大于10%需要重建,当然看情况而定,也可以是是20%,但不要超过30%。当
【INSERT】逐行提交、批量提交及极限提速方法 <转>
在Oracle数据库中,不是提交越频繁越好。恰恰相反,批量提交可以得到更好的性能。这篇文章给大家简单展示一下在Oracle数据库中逐行提交于批量提交两者之间的性能差别。最后再给出一种可以极大改变性能的方法。1.创建表t_ref,并初始化880992条数据,用于后面的实验。sec@ora10g> create table t_ref as select * from all_objects;sec@ora10g> insert into t_ref select * from t;220248 rows created.sec@ora10g> /sec@ora10g> /sec@ora10g> /sec@ora10g> /sec@ora10g> /440496 rows created.2.编写一个简单的PL/SQ
归档和非归档恢复实验,ORA-00312 ORA-00313日志损坏
公司的db是noarchive模 式的 So回家试了一把备份恢复,归档和非归档都有 实验如下 archieve模式 1. 先是最基本的把要做冷备的数据文件和控制文件找到: select name from v$datafile union select name from control file;shutdowm immediatehost copy *******control01.ctl ***back host copy *******users01.dbf ***back环境准备: creat table tt(x number,y varchar2(10)); insert into tt values (1,’a’); 强制切换logfile alter system switch
Fine-Grained Auditing test (精细审计:FGA测试) <转>
1.create table and insert dataSQL> create table TEST 2 ( 3 X NUMBER, 4 Y NUMBER 5 ) 6 / Table createdSQL> insert into test values(1,1); 1 row inserted SQL> commit; Commit complete2.Creating an FGA Policy(disabled)SQL> exec DBMS_FGA.ADD_POLICY(object_schema=>'LPPMTEST' ,object_name=>'TEST' ,policy_name=>'TEST_AUD' ,audit_column=>'X, Y' ,enable=>FALSE ,statement_types=>'UPDATE'); PL/SQL procedure successfully completed3.Enabling an FGA PolicySQ
tkprof 转换trc文件
tkprof 的目的是将sql trace 生成的跟踪文件转换成用户可以理解的格式1. 格式tkprof inputfile outputfile [optional | parameters ]参数和选项:explain=user/password 执行explain命令将结果放在SQL trace的输出文件中table=schema.table 指定tkprof处理sql trace文件时临时表的模式名和表名insert=scriptfile 创建一个文件名为scriptfile的文件,包含了tkprof存放的输出sql语句sys=[yes/no] 确定系统是否列出由sys用户产生或重调的sql语句print=number 将仅生成排序后的第一条sql语句的输出结果record=recordfile 这个选项创建一个名为
Oracle Audit学习与测试 参考文档 <google搜刮来的资料,回家试验好重新整理>
Oracle Audit学习与测试 参考文档 >P643 >P781 目录 1 Overview of Audit 2 Audit Records and the Audit Trail 3 Mechanisms for Auditing 4 Focus Auditing 5 Managing the Audit Trail 6 Viewing Database Audit Trail Information 7 test 8 Notes 1 Overview of Audit 1.1 Auditing is the monitoring and recording of selectedd user database actions. 1.2 Oracle supports three general types of auditing: Statement auditing: AUDIT DDL statement and DML statement. .(for example, AUDIT TABLE audits all CREATE and
Retrieve deleted files on Unix / Linux using File Descriptors [ID 444749.1] <转>
Retrieve deleted files on Unix / Linux using File Descriptors [ID 444749.1]Modified 04-MAY-2009 Type HOWTO Status MODERATEDIn this DocumentGoalSolutionReferencesThis document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process, and therefore has not been subject to an independent technical review.Applies to: Oracle Server - Enterprise Edition - Version: 8.1.7.0 to 10.2.0.1Linux x86-64Sun Solaris SPARC (64-bit)GoalRetrieve deleted datafiles/logfiles from the operating sy
查看oracle数据库是否归档和修改归档模式
首先查看数据库现有模式可使用以下语句select name,log_mode from v$database;也可以用下面的语句archive log list;(该方法需要as sysdba)对于非归档模式的数据库该为归档模式(主要以Oracle 10g为参考)使用以下步骤:1. SQL> alter system set log_archive_dest_1='location=/oracle/oracle10g/log/archive_log';该语句含义是确定归档日志的路径,实际上Oracle 10g可以生成多份一样的日志,保存多个位置,以防不测例如再添加一个日志位置可使用以下语句SQL>alter system set log_archive_dest_2='location=/oracle/oracle10g/log
/****install oracle patch 9169457 for windows****/
/************************************************//****install oracle patch 9169457 for windows****//************************************************/ alter user sys account unlock;alter user system account unlock; alter user sys identified by XXXXXX;alter user system identified by XXXXXX; grant select on v_$session to svs select * from v$instance; select * from v$database; alter database stop logical standby apply; exec dbms_logstdby.apply_set('_MAX_LUBA_STACK', 4
ora-01012 not logged on
在晕倒死下新安装的Oracle报:ora-01012 not logged on 先检查db是不是已经open,如未open,把db open了就好了alter database mountalter database open[@more@]
Patch 9169457
Patch 9169457 Simple Search Advanced Search Quick Links Saved Searches DescriptionORACLE 10G 10.2.0.4.0 PATCH 30 BUG FOR WINDOWS 32 BIT ProductOracle Database Family Release Oracle 10.2.0.4 Platform or Language ---------- Platforms ----------Microsoft Windows (32-bit)Microsoft Windows XPMicrosoft Windows Server 2003Microsoft Windows 2000 Last Updated07-JAN-2010 Size92M (97062196 bytes) Support Level General Support Classification General Download View Readme View Digest Patchsets k
监控Oracle数据库的常用shell脚本
前言 这篇文章介绍了DBA天天在监控Oracle数据库方面的职责,讲述了如何通过shell脚本来完成这些重复的监控工作。本文首先回顾了一些DBA常用的Unix命令,以及解释了如何通过Unix Cron来定时执行DBA脚本。同时文章还介绍了8个重要的脚本来监控Oracle数据库: 检查实例的可用性 检查监听器的可用性 检查alert日志文件中的错误信息 在存放log文件的地方满以前清空旧的log文件 分析table和index以获得更好的性能 检查表空间的使用情况 找出无效的对象 监控用户和事务 DBA需要的Unix基本知识 基本的UNI
oracle 日志文件占空间
运行一段时间后,发现磁盘空间剧减,除了数据占用空间外,日志文件也占用空间.如下两个文件占用空间较大http-web-access.log em-application.log如何清除这些文件呢?1、清除http-web-accesses.log文件安装路劲product10.2.0db_1oc4jj2eeOC4J_DBConsole_ctsrv-dev001_xcomconfig下找到http-web-site.xml文件。修改如下文件配置<access-log path="../log/http-web-access.log"/> 将后面的具体日志文件修改为其他文件,然后将大日志文件删除即可2、清除em-application.log文件停止oracle服务,删除大日志文件,重新创建一个同名
oracle常用经典sql查询
1、查看表空间的名称及大小select t.tablespace_name, round(sum(bytes / (1024 * 1024)), 0) ts_sizefrom dba_tablespaces t, dba_data_files dwhere t.tablespace_name = d.tablespace_namegroup by t.tablespace_name;2、查看表空间物理文件的名称及大小select tablespace_name,file_id,file_name,round(bytes / (1024 * 1024), 0) total_spacefrom dba_data_filesorder by tablespace_name;3、查看回滚段名称及大小select segment_name,tablespace_name,r.status,(initial_extent / 1024) InitialExtent,(next_extent / 1024) NextExt
神奇的RAC
没在生产库上用过,据说是最标准的做法: 开机顺序: srvctl start nodeapps -n srvctl start nodeapps -n srvctl start asm -n srvctl start asm -n srvctl start database -d srvctl start service -d -s crs_stat -t 关机顺序: srvctl stop service -d -s srvctl stop database -d srvctl stop asm -n srvctl stop asm -n srvctl stop nodeapps -n srvctl stop nodeapps -n crs_stat -t[@more@]http://www.cnblogs.com/litianfei/archive/2007/08/10/850823.html
SYSDATE 不变
查询SYSDATE的值一直停留在2005-03-01 11:41:15。感觉很奇怪。select current_date from dual; 的输出是正确的,而select sysdate from dual; 却是不正确的。猜测是某个参数导致了系统日期被固化,让他传来alert文件,果然发现了一个此前未注意到的参数: FIXED_DATE, core_dump_dest = /u01/app/oracle/admin/unicode/cdump fixed_date = 01-MAR-05 sort_area_size = 524288 db_name = unicode文档上的解释为:FIXED_DATEParameter typeStringSyntaxFIXED_DATE = YYYY-MM-DD-HH2
转:Oracle TimeZone
Oracle的时区问题Oracle 9i 开始多了 3 个关于时间的数据类型:TIMESTAMP [(precision)] TIMESTAMP [(precision)] WITH TIME ZONE TIMESTAMP [(precision)] WITH LOCAL TIME ZONE,其中 TIMESTAMP [(precision)] WITH TIME ZONE 保存了时区信息。1. Oracle 的时区设置 Oracle 的时区可以分为两种,一种是数据库的时区,一种是 session 时区,也就是客户端连接时的时区(经过实验,连接以后再修改客户端的时区,session 的时区不会更改)。 数据库的时区在创建数据库时可以通过在 create database 语句中加上 SET TIME_ZONE = ' { {