Oracle Trace Events (1)
Oracle Trace Events是对于追踪Oracle很有用,可以通过alter system set events来设置事件追踪。
alter system set events有两种格式
(1) alter system|session set events ‘eventnumber trace name eventname [forever] [[,]level levelnumber] [: ......]’
(2) alter system|session set events ‘immediate trace name eventname [level levelnumber] [: ......]‘
通过冒号(:),可以连续设置多个事件,也可以通过连续使用alter session set events来设置多个事件。
格式说明:eventnumber指触发dump的事件号,事件号可以是Oracle错误号(出现相应错误时跟踪指定的事件)或oralce内部事件号,内部事件号在10000到10999之间。
immediate指命令发出后,立即将指定的结构dump到跟踪文件中,不能与eventnumber、forever关键字同时使用。
eventname指事件名称,即要进行dump的实际结构名。若eventname为context指根据内部事件号进行跟踪。
forever指事件在实例或会话的周期内保持有效状态。
level 为事件级别关键字,levelnumber指事件级别号。
下面是两条示例:
ALTER SYSTEM SET EVENTS '10231 trace name context forever: 1461 trace name errorstack';
ALTER SESSION SET EVENTS 'immediate trace name controlf level 8';
上面的方法只对对内存生效,无法对SPFILE生效,如果要对SPFILE生效要用ALTER SESSION SET EVENT=语句。
ALTER SYSTEM SET EVENT='1461 trace name errorstack level 3' scope=spfile;
用show parameter event可以看到event的值。
如果想取消,可以用下面的语句:
ALTER SYSTEM RESET EVENT scope=spfile sid='*';
获取Oracle跟踪文件的脚本
SELECT parameter.value || '/' || LOWER(RTRIM(thread.instance, CHR(0))) || '_ora_' || process.spid || '.trc' TRACE_FILE_NAME FROM (SELECT process.spid FROM sys.v$mystat m, sys.v$session s, sys.v$process process WHERE m.statistic# = 1 AND s.sid = m.sid AND process.addr = s.paddr) process, (SELECT t.instance FROM sys.v$thread t, sys.v$parameter parameter WHERE parameter.NAME = 'thread' AND ( parameter.VALUE = 0 OR t.thread# = TO_NUMBER(parameter.value) )) thread, (SELECT value FROM sys.v$parameter WHERE NAME = 'user_dump_dest') parameter /
Oracle 10g数据库备份与还原
CREATE PFILE='initDBNAME.ORA' FROM SPFILE; ALTER SYSTEM ARCHIVE LOG CURRENT; $ocopy D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBNAME\TEMP01.DBF D:\ORACLE\BAK\ ALTER TABLESPACE SYSAUX BEGIN BACKUP; $ocopy D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBNAME\SYSAUX01.DBF D:\ORACLE\BAK\ ALTER TABLESPACE SYSAUX END BACKUP; ALTER TABLESPACE SYSTEM BEGIN BACKUP; $ocopy D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBNAME\SYSTEM01.DBF D:\ORACLE\BAK\ ALTER TABLESPACE SYSTEM END BACKUP; ALTER TABLESPACE UNDOTBS1 BEGIN BACKUP; $ocopy D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBNAME\UNDOTBS01.DBF D:\ORACLE\BAK\ ALTER TABLESPACE UNDOTBS1 END BACKUP; ALTER TABLESPACE USERS BEGIN BACKUP; $ocopy D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBNAME\USERS01.DBF D:\ORACLE\BAK\ ALTER TABLESPACE USERS END BACKUP; ALTER SYSTEM ARCHIVE LOG CURRENT; --select name from v$archived_log; host xcopy /s/y D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\DBNAME\ARCHIVELOG D:\ORACLE\BAK\ARCHIVELOG\ ALTER DATABASE BACKUP CONTROLFILE TO 'D:\ORACLE\BAK\CONTROL01.CTL'; -------------------------------- SHUTDOWN IMMEDIATE $ocopy D:\ORACLE\BAK\TEMP01.DBF D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBNAME\ $ocopy D:\ORACLE\BAK\SYSAUX01.DBF D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBNAME\ $ocopy D:\ORACLE\BAK\SYSTEM01.DBF D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBNAME\ $ocopy D:\ORACLE\BAK\UNDOTBS01.DBF D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBNAME\ $ocopy D:\ORACLE\BAK\USERS01.DBF D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBNAME\ host xcopy /s/y D:\ORACLE\BAK\ARCHIVELOG\ D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\DBNAME\ARCHIVELOG\ $ocopy D:\ORACLE\BAK\CONTROL01.CTL D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBNAME\CONTROL01.CTL STARTUP MOUNT RECOVER AUTOMATIC DATABASE UNTIL CANCEL USING BACKUP CONTROLFILE; --ARCHIVEDLOG MODE ALTER DATABASE OPEN RESETLOGS; --USE 'ALTER DATABASE OPEN;' IN NO ARCHIVEDLOG MODE ALTER TABLESPACE TEMP ADD TEMPFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBNAME\TEMP01.DBF'
Oracle用户管理
ALTER USER scott ACCOUNT UNLOCK; CREATE USER gavin IDENTIFIED BY gavin DEFAULT TABLESPACE users TEMPORARY TABLESPACE TEMP; GRANT connect, resource TO gavin; REVOKE UNLIMITED TABLESPACE FROM gavin; ALTER USER gavin QUOTA UNLIMITED ON users; -- ALTER USER gavin QUOTA 100m ON users;
用Notepad2替换Windows记事本
用Notepad2替换Windows记事本的脚本,在使用时需要更改文件名字。
@echo off copy /y %WinDir%\System32\dllcache\notepad.exe %WinDir%\System32\dllcache\notepad0.exe copy /y %WinDir%\ServicePackFiles\i386\notepad.exe %WinDir%\ServicePackFiles\i386\notepad0.exe copy /y %WinDir%\System32\notepad.exe %WinDir%\System32\notepad0.exe copy /y %WinDir%\notepad.exe %WinDir%\notepad0.exe copy /y D:\notepad2.exe %WinDir%\System32\dllcache\notepad.exe copy /y D:\notepad2.exe %WinDir%\ServicePackFiles\i386\notepad.exe copy /y D:\notepad2.exe %WinDir%\System32\notepad.exe copy /y D:\notepad2.exe %WinDir%\notepad.exe
Oracle Autotrace Script
I wrote a simle SQL script. All user can use Oracle Autotrace after you execute this script. I grant select privilege on some userful view to public, e.g. V$SEESION, V$LATCH and so on. RDBMS_ADMIN_utlxplan.sql was modified from
Batch File:
SET ORACLE_HM=E:\oracle\product\10.2.0\db_1 SET SYS_PWD=gavin SET SYSTEM_PWD=%SYS_PWD% REM create PLAN_TABLE table to get AUTOTRACE working. sqlplus system/%SYSTEM_PWD% @RDBMS_ADMIN_utlxplan.sql sqlplus sys/%SYS_PWD% as sysdba @sqlplus_admin_plustrce.sql
RDBMS_ADMIN_utlxplan.sql
create table PLAN_TABLE (
statement_id varchar2(30),
plan_id number,
timestamp date,
remarks varchar2(4000),
operation varchar2(30),
options varchar2(255),
object_node varchar2(128),
object_owner varchar2(30),
object_name varchar2(30),
object_alias varchar2(65),
object_instance numeric,
object_type varchar2(30),
optimizer varchar2(255),
search_columns number,
id numeric,
parent_id numeric,
depth numeric,
position numeric,
cost numeric,
cardinality numeric,
bytes numeric,
other_tag varchar2(255),
partition_start varchar2(255),
partition_stop varchar2(255),
partition_id numeric,
other long,
distribution varchar2(30),
cpu_cost numeric,
io_cost numeric,
temp_space numeric,
access_predicates varchar2(4000),
filter_predicates varchar2(4000),
projection varchar2(4000),
time numeric,
qblock_name varchar2(30),
other_xml clob
);
CREATE OR REPLACE PUBLIC SYNONYM PLAN_TABLE FOR PLAN_TABLE;
GRANT ALL ON PLAN_TABLE TO PUBLIC;
exit
sqlplus_admin_plustrce.sql
drop role plustrace; create role plustrace; grant select on v_$sesstat to plustrace; grant select on v_$statname to plustrace; grant select on v_$mystat to plustrace; grant select on v_$session to plustrace; grant select on v_$latch to plustrace; grant select on v_$lock to plustrace; grant select on v_$fixed_table to plustrace; grant select on v_$parameter to plustrace; grant plustrace to public; exit
Joda Time
Joda Time是很好用的Java日期时间API,下面一段代码演示如何与JDK原有的Date、Calendar转化。
Read more…
积极沟通的六种方法——余世维《有效沟通》读书笔记(二)
跟别人相处有三种行为态度——退缩,侵略,积极
退缩——只会降低工作品质
退缩行为的恶性循环
–>自我评价愈来愈低
–>愤怒、伤心、自怜的感觉日增
–>内在压力增加,包括紧张焦虑,以及
1.更难表现积极行为
2.出现精神官能症状,如头痛
Read more…
我知道我可以
有一个主题为“我知道我可以”的自我建设或自我暗示的清单,共分五步骤:
- 先写下动机,为何要改坏习惯?如果不改你将付出什么代价?
- 找出过去的成功经验,曾经如何克服困难,改正不良习惯。
- 考虑如果要建立习惯,你现在所拥有的内在资源:比如个人的特质、潜力、能力、态度等。
- 你拥有哪些外在的资源可以协助你,比如朋友、爱人、师长……
- 一旦你成功了,愿景是什么?你会有什么改变?谁会注意到你的改变?
这份清单,每一项都要以“我知道我可以”开始,尽可能详细,写完后找好友年给对方听,再请对方提供他的意见,加强“我知道我可以”的内容。
摘选自李开复《一网情深》第17页。


Recent Comments