Anda di halaman 1dari 100

OracleEBS-R12 DBA

Author:

Jarwang

Create Date: December 5, 2010


Create Location: Beijing AirChina
Update Date:
Control No:
Current Edition:

1.0

If you copy this document,you ought to keep the document completely.

Author:JarWang ()

QQ:jarwang@sina.com
1

Copyright(R):Jarwang

Document Control

Modify Record

December 5,2010

jarwang

1.0

Approved

Distribute

1
2
3
4

Author:JarWang ()

QQ:jarwang@sina.com
2

Copyright(R):Jarwang

Index
Document Control

Modify Record
Approved

2
2

Index

Preface

Foundation Chapter

EBS Architecture
EBS Installation
Multi Note Setup

7
7
7

Prepare OS
Prepare DB
Regedit Cust Application

7
7
9

EBS Startup

12

Database Startup
Apllication Startup

12
13

APPS Maintenance Chapter

14

EBS Clone
AutoConfig
EBS Patch

14
14
15

Apply Chinese Patch


Apply TS Patch

15
19

Password

20

Acquired Pwd of Apps

20

Maintenace

21

EBS CGI Login

Export File Failure


APP-FND-01926
R12 Log

21
23
23
25
26

Optimize

26

Adjust JVM

26

Database Maitenance Chapter

30

Setup

30

Oracle10g For OEL5.5


Oracle11g For RHEL5.5 Using Silent
Sqlplus Unreadable Code
Lsnrctl error
Oracle Upgrade
Modify Pwd of DB
Database10g EM
Database11g EM

30
39
43
44
45
45
46
47

Maintenace

51

Bath Stop Jobs

Is RAC
Grant debug
Audit
Audit Vault
View Hostname
View Tablespace
ORA-12545
Query Lock
Query Row Lock

51
51
51
51
52
52
53
53
53
54
54
55

Tuning Chapter
Author:JarWang ()

57
QQ:jarwang@sina.com
3

Copyright(R):Jarwang

Performance Tools

57

AWR
ASH

57
58

58

Associate Statistics

58
59
61
62
62
62

63

63

63

Explain Plan

AWR
10053

64
64
65
65
65

SQL

67

(Hint)
SQL

SQL

67
67
67
67
67

67

TABLE ACCESS FULL


INDEX FULL SCAN
INDEX FAST FULL SCAN
INDEX UNIQUE SCAN
INDEX RANGE SCAN
INDEX RANG SCAN DESCENDING
TABLE ACCESS BY INDEX ROWID
TABLE ACCESS BY USER ROWID

min/max

67
68
68
68
69
69
70
71
72
72
72
73
75
75
76
76
76
77

78

JDBC

78
78
79
79

79

NESTED LOOPS JOIN

MERGE JOIN
HASH JOIN
INDEX JOIN
HASH JOIN OUTER
PARITTION-WISE JOIN

79
80
80
81
81
82
83
83
83
84

85

Materialized View
Result Cache

Author:JarWang ()

QQ:jarwang@sina.com
4

85
87
88
89
90
Copyright(R):Jarwang

91

92

&

92

CBO Chapter

93

93

dbf_mbrc

93

Dynamic View Chapter

95

V$PROCESS

95

Column
Purpose

95
95

V$SESSION

95

Column
Purpose

95
96

V$LOCK_OBJECT

96

Column

96

V$LOCK
OTHERS

96
97

TOP SQL

Other Notes

Author:JarWang ()

97
98
99

100

QQ:jarwang@sina.com
5

Copyright(R):Jarwang

Preface
Oracle EBS DBADBAPPOracle
DBA2.0DBADBADBA

Author:JarWang ()

QQ:jarwang@sina.com
6

Copyright(R):Jarwang

Foundation Chapter
EBS Architecture
Oracle EBS R12

EBS Installation
EBS-R12.1.150G11iR12DBA11i
rootR12DBA
http://www.itpub.net/thread-1247010-1-1.html

Multi Note Setup


EBS R12
EBSR12.0.4Oracle DB10gOEL5.5-64bit

Prepare OS
EBS DBDB
OEL5.5-64bit

Prepare DB
Oracle Database10g for Linux 64bit
http://www.oracle.com/technetwork/database/10201linx8664soft-092456.html
Oracle10g Companion
Oracle Database10g
1.DBDB

Author:JarWang ()

QQ:jarwang@sina.com
7

Copyright(R):Jarwang

2.Companion

Author:JarWang ()

QQ:jarwang@sina.com
8

Copyright(R):Jarwang

Regedit Cust Application


EBS-R12
1.CUX_DATACUX_INDEXCUX_TEMP
create tablespace CUX_DATA datafile '/opt/oracle/VIS/db/apps_st/data/cux_data01.dbf'
size 200M reuse
autoextend on next 100M;
create

tablespace

CUX_INDEX

datafile

'/opt/oracle/VIS/db/apps_st/data/cux_index01.dbf' size 200M reuse


autoextend on next 100M;
create

temporary

tablespace

CUX_TEMP

tempfile

'/opt/oracle/VIS/db/apps_st/data/cux_temp01.dbf' size 100m;


2.
Application Developer=>Application=>Register

3.
EBS$APPL_TOPCUXCUX

cd $APPL_TOP
mkdir cux
cd cux
mkdir 12.0.0
cd 12.0.0
mkdir package
mkdir sql
mkdir setup
mkdir wf
cd wf
mkdir US
mkdir ZHS
cd ..
mkdir bin
mkdir reports
cd reports
mkdir US
mkdir ZHS
Author:JarWang ()

QQ:jarwang@sina.com
9

Copyright(R):Jarwang

cd ..
mkdir out
mkdir mesg
mkdir log
mkdir html
cd html
mkdir US
mkdir ZHS
cd ..
mkdir lib
mkdir forms
cd forms
mkdir US
mkdir ZHS
cd ..
mkdir admin
ls
4 CUX_TOP
4.1 CUX_TOP
$APPL_TOP$CONTEXT_NAME.env,CONTEXT_FILE
CONTEXT_FILE="/opt/oracle/VIS/inst/apps/VIS_ebs12/appl/admin/VIS_ebs12.xml"
export CONTEXT_FILE
VIS_ebs12.xml
[appltest@ebs ~]$ cd $INST_TOP/appl/admin
[appltest@ebs ~]$ vi $CONTEXT_NAME.xml
$CONTEXT_NAME.xmlAU_TOP
<CUX_TOP

oa_var="s_cuxtop"

oa_type="PROD_TOP"

oa_enabled="FALSE">/opt/oracle/VIS/apps/apps_st/appl/cux/12.0.0</CUX_TOP>
AU_TOP
4.2.bash_profile
CUX_TOP=/opt/oracle/VIS/apps/apps_st/appl/cux/12.0.0
export CUX_TOP
5. Oracle
5.1.
create user cux identified by cux default tablespace CUX_DATA
temporary tablespace CUX_TEMP;
Author:JarWang ()

QQ:jarwang@sina.com
10

Copyright(R):Jarwang

grant resource to cux;


grant connect to cux;
grant create table to cux;
--grant drop any table to cux;
grant create view to cux;
--grant drop any view to cux;
grant create package to cux;
--grant DROP ANY PROCEDURE to cux;
grant create synonym to cux;
--grant drop any synonym to cux;
grant create sequence to cux;
--grant drop any sequence to cux;
5.2 Oracle
System Administrator=Security=>ORACLE=>Register

7.
System Administrator=Security=>ORACLE=>Datagroup

8.
Alert Manager=System=>Installations

Author:JarWang ()

QQ:jarwang@sina.com
11

Copyright(R):Jarwang

9.APPS_DDL
[appltest@ebs ~]$ sqlplus apps/apps
SQL>

@$AD_TOP/admin/sql/adaaddls.pls

system_pword

custom_schema

system_pword

custom_schema

custom_schema_pword
SQL>

@$AD_TOP/admin/sql/adaaddlb.pls

custom_schema_pword
10.EBS
[appltest@ebs ~]$ cd $INST_TOP/admin/scripts
[appltest@ebs ~]$ sh adstpall.sh apps/apps
[appltest@ebs ~]$ sh adstpall.sh apps/apps
11.FormFunctionMenuReponsibilityForm

Metalink 553014.1
$INST_TOP/ora/10.1.2/forms/server/default.env
[appltest@ebs ~]$ vi $INST_TOP/ora/10.1.2/forms/server/default.env
AU_TOP
CUX_TOP=/opt/oracle/VIS/apps/apps_st/appl/cux/12.0.0

EBS Startup
Database Startup
EBS-R12.0.4Oracle Database10gEBS-R12.1.1
Oracle Database11g
Oracle

[oratest@ebs ~]$ lsnrctl start

[oratest@ebs ~]$ sqlplus /as sysdba


SQL>startup
Author:JarWang ()

QQ:jarwang@sina.com
12

Copyright(R):Jarwang

EBS
[oratest@ebs ~]$ cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME
[oratest@ebs ~]$ sh addbctl.sh start
Apllication Startup
1.EBS-R1211i
11i
$COMMON_TOP/admin/scripts/$CONTEXT_NAME
R12
$ADMIN_SCRIPTS_HOME

Database connection could not be established.Either the database is down or the APPS
credentials supplied are wrong

$ADMIN_SCRIPTS_HOMEsqlnet.log
VM
10

500 Internal Server Error


Servlet error: An exception occurred. The current application deployment descriptors do not
allow for including it in this response. Please consult the application log for details

Author:JarWang ()

QQ:jarwang@sina.com
13

Copyright(R):Jarwang

APPS Maintenance Chapter


EBS Clone
EBS CloneDBAEBS Clone
DBclone perl adpreclone.pl dbTier
APPcloneperl adpreclone.pl appsTier
APPDBAPPDB
DBclone perl ./adcfgclone.pl dbTier
APPcloneperl ./adcfgclone.pl appsTier

AutoConfig
EBSIP
Solution
1 - Be sure to have a valid Backup
2 - open a new shell and set your apps environment
3 - cd <ADMIN_SCRIPTS_HOME>
4 - adopmnctl.sh stop or adopmnctl.cmd stop for windows
5 - check if it is really down: ps -ef | grep <USER> grep opm for windows check if all java.exe
processes are gone.
6 - delete the following:
rm -fr $INST_TOP/ora/10.1.3/j2ee/oacore/persistence/*
rm -fr $INST_TOP/ora/10.1.3/j2ee/oafm/persistence/*
rm -fr $INST_TOP/ora/10.1.3/j2ee/forms/persistence/*
7 - execute autoconfig at the Application Tier
cd $ADMIN_SCRIPTS_HOME
sh adautocfg.sh
8 - start all Applications Services
9 - check if the issue has been resolved: adapcctl.sh status or for windows adapcctl.cmd status
Author:JarWang ()

QQ:jarwang@sina.com
14

Copyright(R):Jarwang

EBS Patch
Apply Chinese Patch
EBS
1.Licensesysadmin
System Administration=>Workflow=>Oracle Applications Manager=>Workflow
Manager

Simple Chinese

Submit
2.
Author:JarWang ()

QQ:jarwang@sina.com
15

Copyright(R):Jarwang

[appltest@ebs ~]$ cd $INST_TOP/admin/scripts


[appltest@ebs ~]$ sh adstpall.sh apps/apps
3.EBS
[appltest@ebs ~]$ unset LANG
[appltest@ebs ~]$ adadmin
3.1.
adadmin: error while loading shared libraries: libclntsh.so.10.1: cannot open shared object
file: No such file or directory
$APPL_TOP
APPS$CONTEXT_NAME.env$CONTEXT_NAME.env

. /opt/oracle/VIS/apps/apps_st/appl/APPSVIS_ebs.env
source .bash_profile
3.2 adadmin

SYSTEMmanagerAPPSapps
4.

Author:JarWang ()

QQ:jarwang@sina.com
16

Copyright(R):Jarwang


[5. Change Maintenance Mode] => [1. Enable Maintenance Mode]

5.

[4. Maintain Applications Database Entities menu] => [3. Maintain Muti-Lingual Tables]

ADADMIN
6. /opt/setup/6678700_ZHS
[appltest@ebs ~]$ cd /opt/setup/6678700_ZHS
[appltest@ebs ~]$ unset LANG
[appltest@ebs ~]$ adpatch

SYSTEMmanager
APPSapps
patchAutoPatch driver fileu6678700.drv
Worker8
adpatch12
Author:JarWang ()

QQ:jarwang@sina.com
17

Copyright(R):Jarwang

6.122j ob
FAILED: file XLIFFLoader.class on worker 6 for product xdo username XDO.
ATTENTION: All workers either have failed or are waiting:
FAILED: file XLIFFLoader.class on worker 6.
ATTENTION: Please fix the above failed worker(s) so the manager can continue
adctrlwork
[appltest@ebs ~]$ adctrl
appsapps

[1. Show worker status]

work6
[1. Tell worker to restart a failed job ]
work6
6.2 j ob6Adctrl8j ob
a. 86job
b. JOBSkip& restart

7.
EBS-R12.1.1R12.0.4
8.snap upate
Author:JarWang ()

QQ:jarwang@sina.com
18

Copyright(R):Jarwang

viewPatch
adadmin
[appltest@ebs ~]$ unset LANG
[appltest@ebs ~]$ adadmin

[2.Maintain Applications Files menu] => [4.Maintain snapshot information] => [2.Update
current view snapshot] => [ 1.Update Complete APPL_TOP]
1.5adadmin
9.
EBS
adadmin
[appltest@ebs ~]$ unset LANG
[appltest@ebs ~]$ adadmin

[5. Change Maintenance Mode] [2. Disable Maintenance Mode]


10. EBS
[appltest@ebs ~]$ cd $INST_TOP/admin/scripts
[appltest@ebs ~]$ sh adstrtal.sh apps/apps

Apply TS Patch
EBSTranslation
Synchonization Patches
Patch Wizard Utility [Document 976188.1]
Patch Wizard FAQ [Document 976688.1]
Patch Wizard : Overview [Document 1077813.1
metalink[ID 252422.1]
TShttps://updates.oracle.com/TransSync
Author:JarWang ()

QQ:jarwang@sina.com
19

Copyright(R):Jarwang

Password
Acquired Pwd of Apps
Oracle EBSapps
1.Package
CREATE OR REPLACE PACKAGE CUX_OBTAIN_PWD AUTHID CURRENT_USER
AS
FUNCTION getpwd (orauser IN VARCHAR2, appuserpwd IN VARCHAR2) RETURN
VARCHAR2;
FUNCTION encrypt (orauser IN VARCHAR2, appuserpwd IN VARCHAR2) RETURN
VARCHAR2;

END CUX_OBTAIN_PWD;
CREATE OR REPLACE PACKAGE BODY CUX_OBTAIN_PWD
AS
FUNCTION getpwd (orauser IN VARCHAR2, appuserpwd IN VARCHAR2)
RETURN VARCHAR2
AS LANGUAGE JAVA NAME
'oracle.apps.fnd.security.WebSessionManagerProc.decrypt(java.lang.String,java.lang.String)
return java.lang.String';
FUNCTION encrypt (orauser IN VARCHAR2, appuserpwd IN VARCHAR2)
RETURN VARCHAR2
AS LANGUAGE JAVA NAME
'oracle.apps.fnd.security.WebSessionManagerProc.encrypt(java.lang.String,java.lang.String)
return java.lang.String';
END CUX_OBTAIN_PWD;
2.fnd_user
select fu.user_name,fu.encrypted_user_password from fnd_user fu where
fu.user_name='SYSADMIN'
3.
DECLARE
v_encrypted_pwd VARCHAR2 (100);
v_apps_pwd VARCHAR2 (100);
v_user_pwd VARCHAR (100);
BEGIN

Author:JarWang ()

QQ:jarwang@sina.com
20

Copyright(R):Jarwang

v_encrypted_pwd :
='ZGE792404355D2AE23DB96485B7D40FF5B8ADB184A5F9FAEFF006A213BD571D48FF3789
C11B141A4213DF6D7E6B06C612461';
IF v_apps_pwd IS NULL
THEN
v_apps_pwd := 'APPS';--ORACLEapps,EBS(EBS
)
END IF;
v_user_pwd := CUX_OBTAIN_PWD.getpwd (v_apps_pwd, v_encrypted_pwd);
DBMS_OUTPUT.put_line (v_user_pwd);
END;
4.EBS/APPS
DECLARE
guestUserPwd VARCHAR2(200);
guestUserName VARCHAR2(100);
guestFndPwd

VARCHAR2(100);

guestEncFndPwd VARCHAR2(100);
delim

NUMBER;

BEGIN
guestUserPwd := 'GUEST/ORACLE'; --You can any ebs user password
IF guestUserPwd IS NULL THEN
guestUserPwd := UPPER(fnd_profile.value('GUEST_USER_PWD'));
END IF;
delim

:= INSTR(guestUserPwd, '/');

guestUserName := UPPER(SUBSTR(guestUserPwd, 1, delim - 1));


SELECT encrypted_foundation_password
INTO guestEncFndPwd
FROM fnd_user_view
WHERE user_name = guestUserName
AND (start_date <= SYSDATE)
AND (end_date IS NULL OR end_date > SYSDATE);
guestFndPwd := CUX_OBTAIN_PWD.getpwd(guestUserPwd, guestEncFndPwd);
IF NOT (guestFndPwd IS NULL) THEN
DBMS_OUTPUT.put_line(guestFndPwd);
END IF;
END;

Maintenace
EBS CGI Login
EBS R12CGI
Author:JarWang ()

QQ:jarwang@sina.com
21

Copyright(R):Jarwang

http://ebs12.jarwang.com:8000/forms/frmservlet

1$APPL_TOP/fnd/12.0.0/securetemplate.dbc
[appltest@ebs ~]$ cd $APPL_TOP/fnd/12.0.0/secure
[appltest@ebs ~]$ cp template.dbc $ORACLE_SID.dbc
$ORACLE_SID.dbc
DB_HOST=ebs12.jarwang.com
DB_PORT=1521
DB_NAME=VIS

2
[appltest@ebs ~]$ . /$APPL_TOP/$CONTEXT_NAME.env
[appltest@ebs ~]$ cd $APPL_TOP/fnd/12.0.0/secure
[appltest@ebs ~]$ java oracle.apps.fnd.security.AdminAppServer apps/apps STATUS
DBC=$ORACLE_SID.dbc

Database Server
--------------DATABASE_ID: VIS
AUTHENTICATION: SECURE
Application Server
-----------------APPL_SERVER_STATUS: INVALID
APPL_SERVER_ID: null
3CGI
Author:JarWang ()

QQ:jarwang@sina.com
22

Copyright(R):Jarwang

[appltest@ebs

~]$

java

oracle.apps.fnd.security.AdminAppServer

apps/apps

AUTHENTICATION OFF DBC=$ORACLE_SID.dbc

AUTHENTICATION OFF executed successfully - VIS.dbc


4
[appltest@ebs ~]$ java oracle.apps.fnd.security.AdminAppServer apps/apps STATUS
DBC=$ORACLE_SID.dbc

Database Server
--------------DATABASE_ID: VIS
AUTHENTICATION: OFF
Application Server
-----------------APPL_SERVER_STATUS: INVALID
APPL_SERVER_ID: null
AUTHENTICATION: OFFCGI
Oracle

[appltest@ebs

~]$

java

oracle.apps.fnd.security.AdminAppServer

apps/apps

AUTHENTICATION SECURE DBC=$ORACLE_SID.dbc

EBS R12

sh adcmctl.sh stop apps/apps


sh adcmctl.sh start apps/apps

Export File Failure


FormCTRL
Author:JarWang ()

QQ:jarwang@sina.com
23

Copyright(R):Jarwang


System administrator=>OAM

1.
select count(*) from

apps.FND_LOBS a where A.PROGRAM_NAME='export'

2.
System Administrator=>Security=>Responsibility=>Request
Purge Obsolete Generic File Manager Data

3.

Author:JarWang ()

QQ:jarwang@sina.com
24

Copyright(R):Jarwang


APP-FND-01926
FormAPP-FND-01926

MO: Set Client_Info for DebuggingY


SELECT tl.user_profile_option_name,va.profile_option_value
FROM FND_PROFILE_OPTIONS_TL TL,
FND_PROFILE_OPTIONS OP,
FND_PROFILE_OPTION_VALUES VA
WHERE TL.PROFILE_OPTION_NAME = OP.PROFILE_OPTION_NAME
AND VA.PROFILE_OPTION_ID = OP.PROFILE_OPTION_ID
AND tl.user_profile_option_name='MO: Set Client_Info for Debugging'
Y
update FND_PROFILE_OPTION_VALUES va
set va.profile_option_value = null
where va.profile_option_id =
Author:JarWang ()

QQ:jarwang@sina.com
25

Copyright(R):Jarwang

(select va.profile_option_id
FROM FND_PROFILE_OPTIONS_TL
FND_PROFILE_OPTIONS

TL,

OP,

FND_PROFILE_OPTION_VALUES VA
WHERE TL.PROFILE_OPTION_NAME = OP.PROFILE_OPTION_NAME
AND VA.PROFILE_OPTION_ID = OP.PROFILE_OPTION_ID
AND tl.user_profile_option_name =
'MO: Set Client_Info for Debugging')
R12 Log
R12
1.&$INST_TOP /logs/appl/admin/log
2.$INST_TOP/logs/appl/conc/log
3.$INST_TOP/logs/appl/conc/out
4.OC4J$INST_TOP/ora/10.1.3/j2ee/oacore/config/oc4j.properties
5.Javajava.output.println$
INST_TOP/logs/ora/10.1.3/opmn/oacore_default_group_1/oacorestd.out

Optimize
EBSJavaJVM

Adjust JVM
Metalink362851 Guidelines to setup the JVM in Apps Ebusiness Suite 11i and R12.
R12500
1.$INST_TOP/logs/ora/10.1.3/opmn/oacore_default_group_1/oacorestd.err
11/07/25 16:16:47 j ava.lang.OutOfMemoryError: GC overhead limit exceeded
11/07/25

16:16:47

[Jul

25,

2011

4:15:35

PM

EDT]:1311624935696:-1:-1:crp2.shenzhenair.com:10.10.65.109:oacore.default_group.1:1384386437:1:-1:ANONYMOUS(-1):-1:Thread[AJPRequestHandler-HTTPThreadGroup-52,5,HTTPThreadGr
oup]:1311624680:10.10.65.109:12732:0:24:UNEXPECTED:[fnd.framework.OAException]:Applicati
Author:JarWang ()

QQ:jarwang@sina.com
26

Copyright(R):Jarwang

on:

FND,

Message

Name:

FND_GENERIC_MESSAGE.

oracle.apps.fnd.common.AppsException:

Tokens:

MESSAGE

oracle.apps.fnd.common.PoolException:

Exception

creating new Poolable object.;


2. OC4J JVM
[applcrp2@crp2 conf]$ uname -a
Linux crp2.shenzhenair.com 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:39 EDT 2010 x86_64
x86_64 x86_64 GNU/Linux
[applcrp2@crp2 conf]$ java -mx4096m -version
Invalid maximum heap size: -Xmx4096m
The specified size exceeds the maximum representable size.
Could not create the Java virtual machine.
[applcrp2@crp2 conf]$ java -mx3072m -version
java version "1.6.0_10"
Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
Java HotSpot(TM) Server VM (build 11.0-b15, mixed mode)
3. Steps to change the heap size.
$ORA_CONFIG_HOME/10.1.3/opmn/conf/opmn.xml
<process-type id="oacore" module-id="OC4J" status="enabled"
working-dir="$ORACLE_HOME/j2ee/home">
<module-data>
<category id="start-parameters">
<data id="java-options" value="-server -verbose:gc Xmx2048M Xms512M
-XX:MaxPermSize=360M -XX:NewRatio=2 -XX:+PrintGCTimeStamps -XX:+UseTLAB
-XX:+UseParallelGC -XX:ParallelGCThreads=2 -Dcom.sun.management.jmxremote
-Djava.security.policy=$ORACLE_HOME/j2ee/oacore/config/java2.policy
-Djava.awt.headless=true -Dhttp.webdir.enable=false
-Doracle.security.jazn.config=/oracle/crp2/inst/apps/CRP2_crp2/ora/10.1.3/j2ee/oacore/c
onfig/jazn.xml -Dhttp.cookie.ignoreCommaInCookiesNamed=X_NoMatchingCookies"/>
<data id="java-bin"
value="/oracle/crp2/inst/apps/CRP2_crp2/admin/scripts/java.sh"/>
<data id="oc4j-options" value="-out
/oracle/crp2/inst/apps/CRP2_crp2/logs/ora/10.1.3/opmn/oacorestd.out -err
/oracle/crp2/inst/apps/CRP2_crp2/logs/ora/10.1.3/opmn/oacorestd.err"/>
</category>
<category id="stop-parameters">
<data id="java-options" value="-server -verbose:gc -Xmx512M -Xms128M
-XX:MaxPermSize=160M -XX:NewRatio=2 -XX:+PrintGCTimeStamps -XX:+UseTLAB
-XX:+UseParallelGC -XX:ParallelGCThreads=2
-Djava.security.policy=$ORACLE_HOME/j2ee/oacore/config/java2.policy
-Djava.awt.headless=true -Dhttp.webdir.enable=false"/>
Author:JarWang ()

QQ:jarwang@sina.com
27

Copyright(R):Jarwang

</category>
<category id="security-parameters">
<data id="wallet-file"
value="file:/oracle/crp2/inst/apps/CRP2_crp2/certs/Apache"/>
</category>
</module-data>
<start timeout="600" retry="2"/>
<stop timeout="120"/>
<restart timeout="720" retry="2"/>
<port id="default-web-site" range="21650-21654" protocol="ajp"/>
<port id="rmi" range="20150-20154"/>
<port id="jms" range="23150-23154"/>
<process-set id="default_group" numprocs="1"/>
</process-type>
3.1. The default value for Maximum (-Xmx) and Minimum (-Xms) heap sizes are 512M and
128M respectively.
3.2. opmn.xml also contains jvm configurations for other components oafm & forms.
4. oc4j .properties
[applcrp2@crp2 conf]$ cd $INST_TOP/ora/10.1.3/j2ee/oacore/config
[applcrp2@crp2 config]$ vi oc4j.properties

wrapper.bin.parameters=-Xms[Value]M -Xmx[Value]M -XX:NewSize=256M


-XX:MaxNewSize=256M
5. Edit Applications Context file
[applcrp2@crp2 config]$ cd $INST_TOP/appl/admin/
[applcrp2@crp2 config]$ vi $CONTEXT_FILE

<oacore_jvm_start_options oa_var="s_oacore_jvm_start_options">-server -verbose:gc


-Xmx2048M -Xms512M -XX:MaxPermSize=360M -XX:NewRatio=2 -XX:+PrintGCTimeStamps
-XX:+UseTLAB -XX:+UseParallelGC -XX:ParallelGCThreads=2
-Dcom.sun.management.jmxremote
-Djava.security.policy=$ORACLE_HOME/j2ee/oacore/config/java2.policy
-Djava.awt.headless=true -Dhttp.webdir.enable=false
-Doracle.security.jazn.config=/oracle/crp2/inst/apps/CRP2_crp2/ora/10.1.3/j2ee/oacore/c
onfig/jazn.xml</oacore_jvm_start_options>
6.OPMN
cd $ADMIN_SCRIPTS_HOME
Author:JarWang ()

QQ:jarwang@sina.com
28

Copyright(R):Jarwang

sh adopmnctl.sh stop
sh adopmnctl.sh start
7.CPU-XX:-UseGCOverheadLimit
This message means that for some reason the garbage collector is taking an excessive amount
of time (by default 98% of all CPU time of the process) and recovers very little memory in
each run (by default 2% of the heap).
This effectively means that your program stops doing any progress and is busy running only
the garbage collection at all time.
You can turn this off with the command line option -XX:-UseGCOverheadLimit

Author:JarWang ()

QQ:jarwang@sina.com
29

Copyright(R):Jarwang

Database Maitenance Chapter

Setup
Oracle10g For OEL5.5
Oracle Enterprise Linux Server release5.5
http://edelivery.oracle.com/linux (Oracle10grhel5)
Oracle LinuxRedhat LinuxOracle LinuxRedhat Linux

Linux
/boot 100M ------
/

20G ------

/swap 2G

------

/tmp 3G

------

/opt

150G------

/backup

100G------

Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise Edition for Linux x86-64
http:
//www.oracle.com/technetwork/database/10201linx8664soft-092456.html
http://download.oracle.com/docs/cd/B19306_01/relnotes.102/b15666.pdf
OraclePDFPDFHTML
2.1
binutils-2.17.50.0.6-14.el5.x86_64.rpm
compat-db-4.2.52-5.1.x86_64.rpm
compat-gcc-34-3.4.6-4.x86_64.rpm
compat-gcc-34-c++-3.4.6-4.x86_64.rpm
compat-libstdc++-296-2.96-138.i386.rpm
compat-libstdc++-33-3.2.3-61.i386.rpm
compat-libstdc++-33-3.2.3-61.x86_64.rpm
gcc-4.1.2-48.el5.x86_64.rpm
gcc-c++-4.1.2-48.el5.x86_64.rpm
glibc-2.5-49.i686.rpm
glibc-2.5-49.x86_64.rpm
glibc-common-2.5-49.x86_64.rpm
glibc-devel-2.5-49.i386.rpm
glibc-devel-2.5-49.x86_64.rpm
glibc-headers-2.5-49.x86_64.rpm
Author:JarWang ()

QQ:jarwang@sina.com
30

Copyright(R):Jarwang

libaio-0.3.106-5.x86_64.rpm
libaio-devel-0.3.106-5.x86_64.rpm
libgcc-4.1.2-48.el5.i386.rpm
libgcc-4.1.2-48.el5.x86_64.rpm
libgomp-4.4.0-6.el5.x86_64.rpm
libstdc++-4.1.2-48.el5.x86_64.rpm
libstdc++-devel-4.1.2-48.el5.x86_64.rpm
libXp-1.0.0-8.1.el5.i386.rpm
libXt-1.0.2-3.2.el5.i386.rpm
libXtst-1.0.1-3.1.i386.rpm
make-3.81-3.el5.x86_64.rpm
numactl-devel-0.9.8-11.el5.x86_64.rpm
sysstat-7.0.2-3.el5.x86_64.rpm
rpm
rpm -Uvh *.rpm --aid
2.2 Linux
Linux
# cat /etc/hosts | grep `eval hostname`
192.168.100.16 myhost.us.mycompany.com myhost
/etc/hosts/etc/sysconfig/networkhostname
Linux
2.3 Oracle
Oracle
# more /etc/oraInst.loc

# /usr/sbin/groupadd oinstall
DBA
# /usr/sbin/groupadd dba
ORACLE
# /usr/sbin/useradd -g oinstall -G dba oracle
oracle
# passwd oracle
nobody
# id nobody
2.4 Linux
/etc/sysctl.conf
kernel.shmall = 2097152
Author:JarWang ()

QQ:jarwang@sina.com
31

Copyright(R):Jarwang

kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
/sbin/sysctl p
# /sbin/sysctl -p
2.5 oracleshell
/etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
/etc/pam.d/login
session required pam_limits.so
/etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
2.6 oracle
ORACLE_BASE
# mkdir -p /opt/oasale/app/oracle
# chown -R oracle:oinstall /opt/oasale/app/oracle
# chmod -R 775 /opt/oasale/app/oracle
ORACLE
# mkdir -p /opt/oasale/oradata
# chown oracle:oinstall /opt/oasale/oradata
# chmod 775 /opt/oasale/oradata
ORACLE
Author:JarWang ()

QQ:jarwang@sina.com
32

Copyright(R):Jarwang

# mkdir -p /opt/oasale/flash_recovery_area
# chown oracle:oinstall /opt/oasale/flash_recovery_area
# chmod 775 /opt/oasale/flash_recovery_area
2.7 Oracle
XServer

# xhost +
Access control disabled,client can connect from any host

# xhost 192.168.211.232
192.168.211.232 being add to access control list
# DISPLAY=192.168.211.232:0.0;export DISPLAY
#192.168.211.232IP
2.8 oracle
oracle
# su oracle
$ echo $SHELL
.bash_profile
2.8.1 tmptmpe400MB
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
2.8.2 ORACLE_BASEORACLE_HOMEORACLE_SIDORACLE_DATA
ORACLE_BASE=/opt/oasale/app/oracle;export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_2;export ORACLE_HOME
ORACLE_SID=oasale;export ORACLE_SID
ORACLE_DATA=/opt/oasale/oradata
2.8.3 oracle
umask 022
umaskprofile
linuxumask
022
2.8.4oracle
PATH=$ORACLE_HOME/bin:usr/sbin:$PATH;export PATH
CLASSPATH=$ORACLE_HOME/jre;export CLASSPATH
NLS_LANG=american_america.ZHS16GBK;export NLS_LANG
#LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
#LD_ASSUME_KERNEL=2.4.19;export LD_ASSUME_KERNEL

Author:JarWang ()

QQ:jarwang@sina.com
33

Copyright(R):Jarwang

LD_ASSUME_KERNELLINUX
getconf GNU_LIBPTHREAD_VERSION
2.9 oracle
.gz
$ gunzip

10201_database_linux_x86_64.cpio.gz

$ cpio -idmv < 10201_database_linux_x86_64.cpio


3.Oracle
(Oracle10g rhel5rhel5)
$su root
/etc/enterprise-release
Enterprise Release Enterprise Linux server release 4
/etc/redhat-release
Red Hat Enterprise Linux server release 4
Linuxsshxwinlogonvnc
#su oracle
$ DISPLAY=192.168.211.232:0.0;export DISPLAY
$ ./runInstaller

Advanced Installation

Author:JarWang ()

QQ:jarwang@sina.com
34

Copyright(R):Jarwang

Enterprise EditionEnglishSimplified Chinese

Install database Software only

root
Author:JarWang ()

QQ:jarwang@sina.com
35

Copyright(R):Jarwang

4.Oracle
#su oracle
$ dbca

Create a Database

Author:JarWang ()

QQ:jarwang@sina.com
36

Copyright(R):Jarwang

SID

Author:JarWang ()

QQ:jarwang@sina.com
37

Copyright(R):Jarwang

Author:JarWang ()

QQ:jarwang@sina.com
38

Copyright(R):Jarwang

Oracle11g For RHEL5.5 Using Silent


.RHEL5.5 64bit
.Oracle Database 11g R2 64bit
http://www.oracle.com/pls/db112/homepage
http://download.oracle.com/docs/cd/E11882_01/install.112/e16763.pdf
1.
rpm -q binutils-2.17.50.0.6
rpm -q compat-libstdc++-33-3.2.3
rpm -q compat-libstdc++-33-3.2.3 (32 bit)
rpm -q elfutils-libelf-0.125
rpm -q elfutils-libelf-devel-0.125
rpm -q gcc-4.1.2
Author:JarWang ()

QQ:jarwang@sina.com
39

Copyright(R):Jarwang

rpm -q gcc-c++-4.1.2
rpm -q glibc-2.5-24
rpm -q glibc-2.5-24 (32 bit)
rpm -q glibc-common-2.5
rpm -q glibc-devel-2.5
rpm -q glibc-devel-2.5 (32 bit)
rpm -q glibc-headers-2.5
rpm -q ksh-20060214
rpm -q libaio-0.3.106
rpm -q libaio-0.3.106 (32 bit)
rpm -q libaio-devel-0.3.106
rpm -q libaio-devel-0.3.106 (32 bit)
rpm -q libgcc-4.1.2
rpm -q libgcc-4.1.2 (32 bit)
rpm -q libstdc++-4.1.2
rpm -q libstdc++-4.1.2 (32 bit)
rpm -q libstdc++-devel 4.1.2
rpm -q make-3.81
rpm -q numactl-devel-0.9.8.x86_64
rpm -q sysstat-7.0.2

rpm
rpm -Uvh *.rpm --aid
2
Oracle
# more /etc/oraInst.loc

# /usr/sbin/groupadd oinstall
DBA
# /usr/sbin/groupadd dba
ORACLE
# /usr/sbin/useradd -g oinstall -G dba oracle
oracle
# passwd oracle
nobody
# id nobody
2.
# vi /etc/sysctl.conf
Author:JarWang ()

QQ:jarwang@sina.com
40

Copyright(R):Jarwang


fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
RHEL5.5
/sbin/sysctl -p
3.
# vi /etc/security/limits.conf

oracle

soft

oracle

hard

oracle

soft

oracle

hard

oracle

soft

nproc 2047
nproc 16384
nofile 1024
nofile 65536
stack 10240

4.oracle
# mkdir -p /opt/oracle/
# mkdir p /opt/oracle/product/11.2.0/db_2
# chown -R oracle:oinstall /opt/oracle/
# chmod -R 775 /opt/oracle/
5..bash_profile
# su - oracle
[oracle@db11g ~]$ vi .bash_profile

ORACLE_BASE=/opt/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_2
ORACLE_SID=dev
PATH=$ORACLE_HOME/bin:usr/sbin:$PATH;export PATH
CLASSPATH=$ORACLE_HOME/jre;export CLASSPATH
NLS_LANG=american_america.ZHS16GBK;export NLS_LANG
export ORACLE_BASE ORACLE_SID ORACLE_HOME PATH CLASSPATH NLS_LANG
6.Oracle
Author:JarWang ()

QQ:jarwang@sina.com
41

Copyright(R):Jarwang

XServer

[oracle@db11g ~]$ xhost +


Access control disabled,client can connect from any host

[oracle@db11g ~]$ xhost 192.168.211.232


192.168.211.232 being add to access control list
[oracle@db11g ~]$ DISPLAY=192.168.211.232:0.0;export DISPLAY
#192.168.211.232IP
7.

[oracle@db11g ~]$ ./runInstaller -silent -ignorePrereq -force -noconfig -responseFile


/opt/install/database/response/dev_install.rsp
dev_install.rsp

root
/opt/oraInventory/orainstRoot.sh
/opt/oracle/product/11.2.0/db_2/root.sh
Oracle
8.
[oracle@db11g ~]$ export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
[oracle@db11g ~]$ dbca -silent \ -createDatabase \
-templateName General_Purpose.dbc \
-gdbName dev.jarwang.com \
-sid dev \
-SysPassword "654321" \
-SystemPassword "654321" \
Author:JarWang ()

QQ:jarwang@sina.com
42

Copyright(R):Jarwang

-emConfiguration LOCAL \
-dbsnmpPassword "654321" \
-sysmanPassword "654321" \
-datafileDestination /opt/oracle/oradata \
-storageType FS \
-characterSet ZHS16GBK \
-nationalCharacterSet AL16UTF16 \
-TOTALMEMORY 1024

Sqlplus Unreadable Code


Sqlplus
$ sqlplus '/as sysdba'
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Oct 11 15:15:11 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Author:JarWang ()

QQ:jarwang@sina.com
43

Copyright(R):Jarwang

???:
sqlplusinsertpl/sql developer

[oracle@oasaletest ~]$ echo $LANG


en_US.UTF-8

SQL> select userenv('language') from dual;


USERENV('LANGUAGE')
---------------------------------------------------AMERICAN_AMERICA.ZHS16GBK

.bash_profile
NLS_LANG=american_america.ZHS16GBK;export NLS_LANG

export LANG=zh_CN.UTF-8
Lsnrctl error
1.1
[oracle@db11g ~]$ lsnrctl start
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 18-OCT-2010 17:19:28
.
TNS-12537: TNS:connection closed
TNS-12560: TNS:protocol adapter error
TNS-00507: Connection closed
Linux Error: 29: Illegal seek
/etc/hosts
127.0.0.1

localhost.localdomain localhost

192.168.211.70 oasaletest2.hek.cn oasaletest2


2.2
[oracle@db11g ~]$ lsnrctl start
lsnrctl: error while loading shared libraries: /opt/oracle/product/11.2.0/db_2/lib/libclntsh.so.11.1:
cannot restore segment prot after reloc: Permission denied
selinux

Author:JarWang ()

QQ:jarwang@sina.com
44

Copyright(R):Jarwang

Oracle Upgrade
9i10gexp/imp
1.9i(sales)
salesexp/imp
SQL> grant EXP_FULL_DATABASE,IMP_FULL_DATABASE to sales

$ exp sales/password owner=sales file=dbsale.dmp log=logsale.log


syssystemexport
consistent=y
2.10g
$ scp dbsale.dmp 192.168.211.50:/opt/oracle_setup
3.10g

SQL>create tablespace SALES_SD datafile ' /opt/oasale/oradata/data/sales.dbf' size 2048m

SQL> create temporary tablespace HEK_TEMP tempfile


'/opt/oasale/oradata/data/hek_tmp01.dbf' size 5G
salesexp/imp
SQL> create user sales identified by "123456" default tablespace hek_oa temporary
tablespace hek_temp;
SQL> grant connect,resource ,EXP_FULL_DATABASE,IMP_FULL_DATABASE to sales

$ imp sales/123456 file=dbsale.dmp log=logsale.log full=Y


sale

Modify Pwd of DB
sysOracle
! ^_^
1.10g
# sqlplus /as sysdba
SQL> select du.username,du.password from dba_users du where du.username='APPS'
USERNAME

PASSWORD

-------------------- ---------------------------------------APPS

29A7E4D4FDCD1608

apps
SQL> alter user apps identified by APPS_TEST;
Author:JarWang ()

QQ:jarwang@sina.com
45

Copyright(R):Jarwang

User altered.
SQL> conn apps/apps_test;
Connected.
SQL> select du.username,du.password from dba_users du where du.username='APPS'
USERNAME

PASSWORD

-------------------- ---------------------------------------APPS

85F57A8C9CCDAA40

SQL> alter user apps identified by values '29A7E4D4FDCD1608';


DBA
2. Oracle 10gDESOracle
aaabbbcccaaabbbccc
SQL> create user aaabbb identified by ccc;
SQL> create user aaa identified by bbbccc;
SQL> select du.username,du.password from dba_users du where du.username in
('AAABBB','AAA');

USERNAME

PASSWORD

-------------------- ---------------------------------------AAA

6C6C694839B7D59D

AAABBB

6C6C694839B7D59D

select name ,password from SYS.USER$ where name in ('AAABBB','AAA')


3.11gOracleDBA_USERS
SYS.USER$SPARE410g, password

Database10g EM
1.Oracle10g
[oratest@ebs ~]$ emctl start -dbconsole
EM Configuration issue. /opt/oracle/VIS/db/tech_st/11.1.0/ebs.qr.com_VIS not found.
2.EBSEnterprise Manager
sysmanschemaEMEM(repository)
EM(repository)
emca -repos create EM
emca -repos recreate EM
emca -repos drop EM
emca -config dbcontrol db Database Control
Author:JarWang ()

QQ:jarwang@sina.com
46

Copyright(R):Jarwang

emca -deconfig dbcontrol db Database Control


emca -reconfig ports db controlagent
3.EM
[oratest@ebs ~]$ emca -config dbcontrol db -repos create

SIDOracle SID
1521
SYSapps
DBSNMPDBSNMP
SYSMANapps
ORA-01658: unable to create INITIAL extent for segment in tablespace SYSAUX
3.1sysaux
alter tablespace sysaux add datafile'/d01/oracle/DEVE/db/apps_st/data/sysaux03.dbf' size
50M;
:
[oratest@ebs ~]$ emca -config dbcontrol db -repos create
ORA-20001: SYSMAN already exists..
3.2
alter user sysman account unlock;
alter user mgmt_view account unlock;
drop user sysman cascade;
drop role MGMT_USER;
drop user MGMT_VIEW cascade;
drop public synonym MGMT_TARGET_BLACKOUTS;
drop public synonym SETEMVIEWUSERCONTEXT;

[oratest@ebs ~]$ emca -config dbcontrol db -repos create


40oracle emORACLE
EBSEM
Database11g EM
Oracle11g
1.
Author:JarWang ()

QQ:jarwang@sina.com
47

Copyright(R):Jarwang

[oratest@ebs ~]$ emca -config dbcontrol db -repos create

Could

not

connect

to

SYS/(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=******)(POR
T=1521)))(CONNECT_DATA=(SERVICE_NAME=***))): ORA-01031: insufficient privileges
(DBD ERROR: OCISessionBegin)
Oracle
[oratest@ebs~]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=apps
entries=16
2.drop
[oratest@ebs ~]$ emca -repos drop

drop user SYSMAN cascade;


drop user MGMT_VIEW cascade;
drop role MGMT_USER;
drop public synonym MGMT_TARGET_BLACKOUTS;
drop public synonym SETEMVIEWUSERCONTEXT;
drop user sysman cascade;
drop public synonym MGMT_ADMIN;
drop public synonym MGMT_AS_ECM_UTIL;
drop public synonym MGMT_AVAILABILITY;
drop public synonym MGMT_COLLECTION_PROPERTIES;
drop public synonym MGMT_CREDENTIAL;
drop public synonym MGMT_CURRENT_AVAILABILITY;
drop public synonym MGMT_CURRENT_METRICS;
drop public synonym MGMT_CURRENT_METRIC_ERRORS;
drop public synonym MGMT_CURRENT_SEVERITY;
drop public synonym MGMT_DELTA;
drop public synonym MGMT_DELTA_ENTRY;
drop public synonym MGMT_DELTA_ENTRY_VALUES;
drop public synonym MGMT_DELTA_IDS;
drop public synonym MGMT_DELTA_ID_VALUES;
drop public synonym MGMT_DELTA_VALUE;
drop public synonym MGMT_DELTA_VALUES;
drop public synonym MGMT_GLOBAL;
drop public synonym MGMT_GUID_ARRAY;
drop public synonym MGMT_GUID_OBJ;
drop public synonym MGMT_IP_TGT_GUID_ARRAY;
drop public synonym MGMT_JOB;
Author:JarWang ()

QQ:jarwang@sina.com
48

Copyright(R):Jarwang

drop public synonym MGMT_JOBS;


drop public synonym MGMT_JOB_EXECPLAN;
drop public synonym MGMT_JOB_EXECUTION;
drop public synonym MGMT_JOB_EXEC_SUMMARY;
drop public synonym MGMT_JOB_OUTPUT;
drop public synonym MGMT_JOB_PARAMETER;
drop public synonym MGMT_JOB_SCHEDULE;
drop public synonym MGMT_JOB_TARGET;
drop public synonym MGMT_LOG;
drop public synonym MGMT_LONG_TEXT;
drop public synonym MGMT_MESSAGES;
drop public synonym MGMT_METRICS;drop public synonym MGMT_METRICS_1DAY;
drop public synonym MGMT_METRICS_1HOUR;
drop public synonym MGMT_METRICS_COMPOSITE_KEYS;
drop public synonym MGMT_METRICS_RAW;
drop public synonym MGMT_METRIC_COLLECTIONS;
drop public synonym MGMT_METRIC_ERRORS;
drop public synonym MGMT_METRIC_THRESHOLDS;
drop public synonym MGMT_NAME_VALUE;
drop public synonym MGMT_NAME_VALUES;
drop public synonym MGMT_PREFERENCES;
drop public synonym MGMT_SEVERITY;
drop public synonym MGMT_SEVERITY_ARRAY;
drop public synonym MGMT_SEVERITY_OBJ;
drop public synonym MGMT_STRING_METRIC_HISTORY;
drop public synonym MGMT_TARGET;
drop public synonym MGMT_TARGETS;
drop public synonym MGMT_TARGET_BLACKOUTS;
drop public synonym MGMT_TARGET_MEMBERSHIPS;
drop public synonym MGMT_TARGET_PROPERTIES;
drop public synonym MGMT_TYPE_PROPERTIES;
drop public synonym MGMT_USER;
drop public synonym MGMT_VIEW_UTIL;
drop public synonym MGMT$DELTA_ORACLE_HOME;
drop public synonym MGMT$DELTA_OS_COMPONENTS;
drop public synonym MGMT$DELTA_OS_COMP_DETAILS;
drop public synonym MGMT$DELTA_OS_KERNEL_PARAMS;
drop public synonym MGMT$DELTA_PATCHSETS;
drop public synonym MGMT$DELTA_PATCHSET_DETAILS;
drop public synonym MGMT$DELTA_TABLESPACES;
drop public synonym MGMT$DELTA_VENDOR_SW;
drop public synonym MGMT$DELTA_VIEW;
Author:JarWang ()

QQ:jarwang@sina.com
49

Copyright(R):Jarwang

drop public synonym MGMT$DELTA_VIEW_DETAILS;


drop public synonym MGMT$ECM_CURRENT_SNAPSHOTS;
drop public synonym MGMT$ECM_VISIBLE_SNAPSHOTS;
drop public synonym MGMT$GROUP_DERIVED_MEMBERSHIPS;
drop public synonym MGMT$GROUP_FLAT_MEMBERSHIPS;
drop public synonym MGMT$GROUP_MEMBERS;
drop public synonym MGMT$HA_BACKUP;
drop public synonym MGMT$HA_FILES;
drop public synonym MGMT$HA_INFO;
drop public synonym MGMT$HA_INIT_PARAMS;
drop public synonym MGMT$HA_MTTR;
drop public synonym MGMT$HA_RMAN_CONFIG;
drop public synonym MGMT$HW_NIC;
drop public synonym MGMT$METRIC_COLLECTION;
drop public synonym MGMT$METRIC_CURRENT;
drop public synonym MGMT$METRIC_DAILY;
drop public synonym MGMT$METRIC_DETAILS;
drop public synonym MGMT$METRIC_HOURLY;
drop public synonym MGMT$MISSING_TARGETS;
drop public synonym MGMT$MISSING_TARGETS_IN_GROUPS;
drop public synonym MGMT$OS_COMPONENTS;
drop public synonym MGMT$OS_FS_MOUNT;
drop public synonym MGMT$OS_HW_SUMMARY;
drop public synonym MGMT$OS_KERNEL_PARAMS;
drop public synonym MGMT$OS_PATCHES;
drop public synonym MGMT$OS_SUMMARY;
drop public synonym MGMT$SOFTWARE_COMPONENTS;
drop public synonym MGMT$SOFTWARE_COMPONENT_ONEOFF;
drop public synonym MGMT$SOFTWARE_COMP_PATCHSET;
drop public synonym MGMT$SOFTWARE_DEPENDENCIES;
drop public synonym MGMT$SOFTWARE_HOMES;
drop public synonym MGMT$SOFTWARE_ONEOFF_PATCHES;
drop public synonym MGMT$SOFTWARE_OTHERS;
drop public synonym MGMT$SOFTWARE_PATCHES_IN_HOMES;
drop public synonym MGMT$SOFTWARE_PATCHSETS;
drop public synonym MGMT$TARGET;
drop public synonym MGMT$TARGET_COMPONENTS;
drop public synonym MGMT$TARGET_COMPOSITE;
drop public synonym MGMT$TARGET_PROPERTIES;
drop public synonym MGMT$TARGET_TYPE;
drop PUBLIC SYNONYM SMP_EMD_AVAIL_OBJ;
drop public synonym EMD_MNTR;
Author:JarWang ()

QQ:jarwang@sina.com
50

Copyright(R):Jarwang

drop public synonym SMP_EMD_AVAIL_OBJ;


drop public synonym SMP_EMD_DELETE_REC_ARRAY;
drop public synonym SMP_EMD_INTEGER_ARRAY;
drop public synonym SMP_EMD_INTEGER_ARRAY_ARRAY;
drop public synonym SMP_EMD_NVPAIR;
drop public synonym SMP_EMD_NVPAIR_ARRAY;
drop public synonym SMP_EMD_STRING_ARRAY;
drop public synonym SMP_EMD_STRING_ARRAY_ARRAY;
drop public synonym SMP_EMD_TARGET_OBJ;
drop public synonym SMP_EMD_TARGET_OBJ_ARRAY;
drop public synonym ECM_UTIL;
drop role mgmt_user;
3.Oracle11g11gEMhttps
https://***.***.***:1158/em

Maintenace
Bath Stop Jobs
Jobs
Jobs
Sql>select dj.JOB,dj.SCHEMA_USER,dj.NEXT_DATE,dj.BROKEN from dba_jobs dj

Alter system flush shared_pool

SELECT SID, SERIAL#, STATUS, SERVER


FROM V$SESSION
WHERE STATUS='ACTIVE' ;
Is RAC
RAC
SQL> show parameter cluster
Author:JarWang ()

QQ:jarwang@sina.com
51

Copyright(R):Jarwang

NAME

TYPE

VALUE

------------------------------------ ----------- -----------------------------cluster_database

boolean

cluster_database_instances

FALSE

integer

cluster_interconnects

string

RAC
SQL> show parameters cluster

NAME

TYPE

VALUE

------------------------------------ ----------- -----------------------------cluster_database

boolean

cluster_database_instances
cluster_interconnects

TRUE

integer

string

cluster_database_instances

declare
isRAC boolean;
begin
isRAC:=dbms_utility.is_cluster_database;
if isRAC then
DBMS_OUTPUT.put_line('YES');
else
DBMS_OUTPUT.put_line('NO');
end if;
end;
Grant debug
debug pl/sql
SQL> grant debug any procedure to user;
SQL> grant debug connect session to user;
Audit
11g
1.DB
SQL>ALTER SYSTEM SET AUDIT_TRAIL=DB SCOPE=SPFILE;
SQL> startup force

1.
SQL> AUDIT select,insert,update,delete ON SZA.SZA_AP_INVOICES_ALL

Author:JarWang ()

QQ:jarwang@sina.com
52

Copyright(R):Jarwang


SQL> select * from sys.aud$

SQL
2.SQL
SQL> alter system set audit_trail=db,extended scope=spfile;
SQL> startup force

select sad.userid who,sad.userhost,sad.obj$name,aa.name operation,sad.sqltext from


sys.aud$ sad,audit_actions aa where aa.action=sad.action#

Audit Vault
Oracle audit valutOracle
http:
//www.oracle.com/technetwork/database/options/database-vault/index-090593.html
Audit Valut
select * from v$option where parameter='Oracle Database Vault';
View Hostname
SQLOracle
SET serveroutput on
BEGIN
DBMS_OUTPUT.PUT_LINE(UTL_INADDR.GET_HOST_NAME); -- get local host name
DBMS_OUTPUT.PUT_LINE(UTL_INADDR.GET_HOST_ADDRESS); -- get local IP addr
END;

select SYS_CONTEXT('USERENV', 'IP_ADDRESS', 15) ipaddr from dual;

View Tablespace

select a.tablespace_name,
a.bytes / 1024 / 1024 "Sum MB",
(a.bytes - b.bytes) / 1024 / 1024 "used MB",
b.bytes / 1024 / 1024 "free MB",
Author:JarWang ()

QQ:jarwang@sina.com
53

Copyright(R):Jarwang

round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "percent_used"


from (select tablespace_name, sum(bytes) bytes
from dba_data_files
group by tablespace_name) a,
(select tablespace_name, sum(bytes) bytes, max(bytes) largest
from dba_free_space
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
order by ((a.bytes - b.bytes) / a.bytes) desc
ORA-12545
RACORA-12545

1
LOCAL_LISTERNER
SQL> show parameters LOCAL_LISTENER;
NAME

TYPE

VALUE

------------------------------------ ----------- -----------------------------local_listener

string

LISTENER_EBSRAC2

alter system set


LOCAL_LISTENER="(ADDRESS=(PROTOCOL=TCP)(HOST=<VIP_address>)(PORT=1521))
" scope=both sid='instance_name';
2
hostsIP
10.12.67.42 ebsdb1
10.12.67.44 ebsdb2

Query Lock

SELECT c.owner
Author:JarWang ()

QQ:jarwang@sina.com
54

Copyright(R):Jarwang

,c.object_name
,c.object_type
,fu.user_name locking_fnd_user_name
,fl.start_time locking_fnd_user_login_time
,vs.module
,vs.machine
,vs.osuser
,vlocked.oracle_username
,vs.SID
,vp.pid
,vp.spid AS os_process
,vs.serial#
,vs.status
,vs.saddr
,vs.audsid
,vs.process
FROM apps.fnd_logins fl,apps.fnd_user fu,v$locked_object vlocked,v$process vp ,v$session
vs,dba_objects c
WHERE vs.SID = vlocked.session_id AND vlocked.object_id = c.object_id AND vs.paddr =
vp.addr
AND vp.spid = fl.process_spid(+) AND vp.pid = fl.pid(+)
AND fl.user_id = fu.user_id(+)

alter system kill session 'SID,serial#';

Query Row Lock


.
1.:
select * from apps.fnd_user fu where rownum=1 for update
2.:
select * from apps.fnd_user fu where rownum=1 for update
3.
select row_wait_obj#,
row_wait_file#,
row_wait_block#,
row_wait_row#,
do.OBJECT_NAME
from v$session vs,dba_objects do,v$locked_object vl
where vs.sid =vl.SESSION_ID and do.OBJECT_ID=vl.OBJECT_ID
Author:JarWang ()

QQ:jarwang@sina.com
55

Copyright(R):Jarwang

and do.OBJECT_NAME='FND_USER'
:

4.ROWID
select DBMS_ROWID.ROWID_CREATE(rowid_type

=> 1,

object_number => 78197,--OBJECT_ID


relative_fno => 20, --row_wait_file#
block_number => 70719,--ROW_WAIT_BLOCK#
row_number

=> 8

--row_wait_row#

)
from dual;

5.ROWID
select * FROM FND_USER where rowid = chartorowid('AAATF1AAUAAARQ/AAI')

Author:JarWang ()

QQ:jarwang@sina.com
56

Copyright(R):Jarwang

Tuning Chapter

Performance Tools
AWR
Oracle10gAWRAutomaic Workload Repository
statspack.
1.AWROracleAWR
SQL> show parameters statistics_level;
2.AWR
begin
dbms_workload_repository.modify_snapshot_settings(retention=>21600,interval=>30);
end;
AWR15
3.AWR
[oracle@db10g ~]$ cd $ORACLE_HOME/rdbms/admin
[oracle@db10g ~]$ sqlplus '/as sysdba'
SQL> @awrrpt
Current Instance
~~~~~~~~~~~~~~~~
DB Id

DB Name

Inst Num Instance

----------- ------------ -------- -----------297509400 VIS

1 VIS

Specify the Report Type


~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter 'html' for an HTML report, or 'text' for plain text
Defaults to 'html'
Enter value for report_type: html
Report_typeAWR.
Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing <return> without
specifying a number lists all completed snapshots.
Enter value for num_days:2
Author:JarWang ()

QQ:jarwang@sina.com
57

Copyright(R):Jarwang


Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 147
snap id
Enter value for end_snap: 148
snap id
Enter value for report_name: awr_vis_2011.html
AWR
ASH
AWRASHAutomatic
Session HistoryASHAWRASH
ASHAWRAWR
1.ASH

Select to_char(min(sample_time),'yyyy-mm-dd hh24:mi:ss') from v$active_session_history;

Select to_char(min(sample_time),'yyyy-mm-dd hh24:mi:ss') from


dba_hist_active_sess_history;
2.ASH
[oracle@db10g ~]$ cd $ORACLE_HOME/rdbms/admin
[oracle@db10g ~]$ sqlplus '/as sysdba'
SQL> @ashrpt.sql
Enter value for report_type: html

OracleCBO
1.
select pname, pval1, pval2
from sys.aux_stats$
where sname = 'SYSSTATS_INFO'
2.
2.1
Author:JarWang ()

QQ:jarwang@sina.com
58

Copyright(R):Jarwang

begin
dbms_stats.gather_system_stats(gathering_mode=>'noworkload');
end;

SQL> select pname, pval1 from sys.aux_stats$ where sname = 'SYSSTATS_MAIN';

CPUSPEEDNW

CPU/

IOSEEKIM

10

IOTFRSPEED

4096

2.2
begin
dbms_stats.gather_system_stats(gathering_mode=>'interval',interval=>30);
end;

1.
9iOracledbms_statsanalyze
SQL> exec dbms_STATS.gather_database_stats
Oracle 10gscheduler
scheduler
SQL> select * from DBA_SCHEDULER_JOBS dsj where
dsj.JOB_NAME='GATHER_STATS_JOB'
scheduler:
SQL> exec dbms_scheduler.enable(name=>sys.gather_stats_job);
SQL> exec dbms_scheduler.disable(name=>sys.gather_stats_job);
Oracle11g

SQL> select * from dba_autotask_task where client_name=auto optimizer stats collection


Author:JarWang ()

QQ:jarwang@sina.com
59

Copyright(R):Jarwang

task
SQL>exec dbms_auto_task_admin.enable(client_name=>auto optimizer stats collection,
Opteration=>null,
Window_name=>null);
2.
2.1
create table cux_test(id int primary key,cdate date,ctxt varchar2(100));
insert into cux_test values(1,sysdate,'test1');
insert into cux_test values(2,sysdate,'test2');
insert into cux_test values(3,sysdate,'test3');
insert into cux_test values(4,sysdate,'test4');
insert into cux_test values(5,sysdate+1,'test5');
insert into cux_test values(6,sysdate+2,'test7');
commit;
2.2
select num_rows,blocks,empty_blocks,avg_space,chain_cnt,avg_row_len from
user_tab_statistics uts where uts.TABLE_NAME='CUX_TEST'

num_rows
Blocks
empty_blocksDBMS_STATS
avg_spaceDBMS_STATS
chain_cntDBMS_STATS
avg_row_len
2.3
begin
dbms_stats.gather_table_stats(ownname
tabname

=> 'apps',

=> 'CUX_TEST',

estimate_percent => 100,


method_opt
cascade

=> 'for all columns size skewonly',


=> TRUE);

end;
10%

3.
select column_name,
num_distinct,
Author:JarWang ()

QQ:jarwang@sina.com
60

Copyright(R):Jarwang

low_value,
high_value,
density,
num_nulls,
avg_col_len,
histogram,
num_buckets
from user_tab_col_statistics utcs
where utcs.table_name = 'CUX_TEST'

num_distinct
density0101
density=1/num_distinct
num_nullsNULL
Avg_col_len
HistogramNONEFREQUENCY
HEIGHT BALANCED
Num_buckets
4
select index_name

as name,

blevel,
leaf_blocks
distinct_keys

as leaf_blks,
as dst_keys,

num_rows,
clustering_factor

as clust_fact,

avg_leaf_blocks_per_key as leaf_per_key,
avg_data_blocks_per_key as data_per_key
from user_ind_statistics
where table_name = 'CUX_TEST'

Associate Statistics
Associate Statistics

Author:JarWang ()

QQ:jarwang@sina.com
61

Copyright(R):Jarwang


Oracle
Oracle

frenquency histogram(height-balance histogram)


select endpoint_value,
endpoint_number
, endpoint_number - lag(endpoint_number, 1, 0)
over(order by endpoint_number) as frenquency
from user_tab_histograms uth
where uth.TABLE_NAME = 'CUX_TEST' and uth.COLUMN_NAME='CDATE'
order by endpoint_value;

Oracle11g

whereupper(country)=SWITZERLAND

country=China and language=


Chinese

select dbms_stats.create_extended_stats(ownname => user,


tabname => 'T',
extension => '(upper(pad))'),
dbms_stats.create_extended_stats(ownname => user,
tabname => 'T',
extension => '(val2,val3)')
from dual;

select extension_name, extension


from user_stat_extensions
where table_name = 'T'

begin
dbms_stats.lock_table_stats(ownname=>'APPS',tabname => 'CUX_TEST');
end;

Author:JarWang ()

QQ:jarwang@sina.com
62

Copyright(R):Jarwang

Oracle

optimizer_mode
db_file_multiblock_read_count

optimizer_dynamic_sampling
optimizer_feature_enable
optimizer_secure_view_merging
query_rewrite_enabled
query_rewrite_integrity
start_transformation_enabled

Workarea_size_policy=auto

Workarea_size_policy=manual

Bitmap_merge_area_size
Hash_area_size
Sort_area_size
Sort_area_retained_size

Pga_aggregate_target

Optimizer_index_caching
Optimizer_index_cost_adj

Oracle
1.Explain Plan
Author:JarWang ()

QQ:jarwang@sina.com
63

Copyright(R):Jarwang

2.v$sql_planv$sql_plan_statistics_all
3.AWRStatspack
4.
Explain Plan
1.Explain Plan:
SQL> @$ORACLE_HOME/rdbms/admin/utlxplan.sql
2.
SQL> explain plan for select * from ap.ap_expense_report_headers_all h where
h.report_header_id=111;
SQL
Oracle9iR2
SQL> select * from table(dbms_xplan.display);

3.display_cursor
/*+ gather_plan_statistics*/
select /*+ gather_plan_statistics*/ * from ap.ap_expense_report_headers_all h where
h.report_header_id=10004

select * from table(dbms_xplan.display_cursor(null,null,'iostats last'));

1.sql_idchild_number.
SQL> select sql_id,child_number,sql_text from v$sql where sql_text like
'%ap_expense_report_lines_all%'
2.dbms_xplain.display_cursor
SQL> select * from table(dbms_xplan.display_cursor('42jypbz800st3',0))
Author:JarWang ()

QQ:jarwang@sina.com
64

Copyright(R):Jarwang

User has no SELECT privilege on V$SQL_PLAN


v_$
GRANT SELECT ON v_$sql_plan_statistics_all TO apps;
GRANT SELECT ON v_$sql_plan TO apps;
GRANT SELECT ON v_$sql TO apps;

AWR
AWR
1.AWR
2.dbms_xplan.display_awr
Select * from table(dbms_xplan.display_awr(1hqjydsjbvmwq));
sql_id
10053
1.10053
Alter session set events '10053 trace name context forever'
10053
Alter session set events '10053 trace name context off'
2.10053

select paddr from v$session where sid=(select sid from v$mystat group by sid);
ID
select spid from v$process where addr='000000009F5069B0';

show parameter user_dump_dest


,.

SQL
1.
SQL> select * from ap.ap_invoices_all aia where aia.invoice_id=100 and aia.invoice_num='CA100';
Execution Plan
---------------------------------------------------------Plan hash value: 4154275576
Author:JarWang ()

QQ:jarwang@sina.com
65

Copyright(R):Jarwang

----------------------------------------------------------------------------------------------| Id | Operation

| Name

| Rows | Bytes | Cost (%CPU)| Time

----------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT

1 | 327 |

2(0)| 00:00:01 |

|* 1 | TABLE ACCESS BY INDEX ROWID| AP_INVOICES_ALL |


|* 2 | INDEX UNIQUE SCAN

| AP_INVOICES_U1 |

1|

1 | 327 |
|

2(0)| 00:00:01 |

1(0)| 00:00:01 |

----------------------------------------------------------------------------------------------Predicate Information (identified by operation id):


--------------------------------------------------1 - filter("AIA"."INVOICE_NUM"='CA100')
2 - access("AIA"."INVOICE_ID"=100)

INVOICE_ID=100ID2ID1
ID1INVOICE_NUM"='CA100'ID2ID0
ID0
count stopkey
SQL> select * from ap.ap_invoices_all aia where rownum<10;
Execution Plan
---------------------------------------------------------Plan hash value: 2363061706
-------------------------------------------------------------------------------------| Id | Operation

| Name

| Rows | Bytes | Cost (%CPU)| Time |

-------------------------------------------------------------------------------------| 0 | SELECT STATEMENT |


|* 1 | COUNT STOPKEY

|
|

9 | 2943 |

2 (0)| 00:00:01 |

| 2 | TABLE ACCESS FULL| AP_INVOICES_ALL |

9 | 2943 |

2 (0)| 00:00:01 |

-------------------------------------------------------------------------------------Predicate Information (identified by operation id):


--------------------------------------------------1 - filter(ROWNUM<10)

ID2COUNTS STOPKEYID19
ID2
2.
Union allhash join

Author:JarWang ()

QQ:jarwang@sina.com
66

Copyright(R):Jarwang

3.ID,

Nested loops

SQL
SQLSQL(hint)SQL
SQL

(Hint)
ORACLE R12
SQL
Oracle10gSQL(SQL Tuning Advisor)
SQLSQL

Stored Outlines
Oracle11gSQL
SQL
SQLSQL Plan BaselineSQL

SQL
1.SQL

5=>

10-15=>

Author:JarWang ()

QQ:jarwang@sina.com
67

Copyright(R):Jarwang

15=>

2.xplain.display_cursor
/*+ gather_plan_statistics*/
select /*+ gather_plan_statistics*/ * from ap.ap_expense_report_headers_all h where
h.report_header_id<10004

select * from table(dbms_xplan.display_cursor(null,null,'iostats last'));

SQLBufferers /A-Rows = 5 /3 = 1.7

SQL> alter table test enable row movement;


SQL> alter table t shrink space;

TABLE ACCESS FULL



( optimizer_index_cost_adj )Orac le
Oracle
db_file_multiblock_read_count High Water Mark

SQL> explain plan for select /*+ full(h)*/ h.invoice_num from


ap.ap_expense_report_headers_all h where h.invoice_num is not null
SQL> select * from table(dbms_xplan.display);

INDEX FULL SCAN


INDEX FULL SCAN

Author:JarWang ()

QQ:jarwang@sina.com
68

Copyright(R):Jarwang

SQL> explain plan for select /*+ index(h AP_EXPENSE_REPORT_HEADERS_N4)*/


h.invoice_num from ap.ap_expense_report_headers_all h where h.invoice_num is not null;
SQL> select * from table(dbms_xplan.display);

SQLinvoice_num is not nullB-Tree


nullIndex rang scanrowid
Index fast full scanIndex rang scan
INDEX FAST FULL SCAN
INDEX FAST FULL SCAN

db_file_multiblock_read_count
SQL> explain plan for select /*+ index_ffs(h AP_EXPENSE_REPORT_HEADERS_N4)*/
h.invoice_num from ap.ap_expense_report_headers_all h where h.invoice_num is not null
SQL> select * from table(dbms_xplan.display);

INDEX UNIQUE SCAN


Index unique scan Oracle 0 1
rowid INDEX UNIQUE SCANUnique Index
INDEX UNIQUE SCAN
SQL> explain plan for select h.report_header_id from ap.ap_expense_report_headers_all h
where h.report_header_id=10745;
SQL> select * from table(dbms_xplan.display);

Author:JarWang ()

QQ:jarwang@sina.com
69

Copyright(R):Jarwang

INDEX RANGE SCAN


Index range scanOracle
1 INDEX RANGE SCAN Unique Index
Unique Index INDEX RANGE SCANINDEX RANGE SCAN
=like<>
1Unique Index
SQL> explain plan for select h.report_header_id from ap.ap_expense_report_headers_all h
where h.report_header_id>10745;
SQL> select * from table(dbms_xplan.display);

2Unique Index
SQL> explain plan for select h.invoice_num from ap.ap_expense_report_headers_all h where
h.invoice_num='W11750';
SQL> select * from table(dbms_xplan.display);

3Unique Index
SQL> explain plan for select h.invoice_num from ap.ap_expense_report_headers_all h where
h.invoice_num >= 'W11750';
SQL> select * from table(dbms_xplan.display);

4like %%
SQL> explain plan for select h.report_header_id from ap.ap_expense_report_headers_all h
where h.report_header_id like '%750%';
SQL> select * from table(dbms_xplan.display);

Author:JarWang ()

QQ:jarwang@sina.com
70

Copyright(R):Jarwang

INDEX RANG SCAN DESCENDING


1. index_ascindex_desc

SQL>

explain

plan

for

select

/*+

index_desc(aia

AP_INVOICES_U1)*/

from

from

apps.ap_invoices_all aia where aia.invoice_id>100;


SQL> select * from table(dbms_xplan.display);

2. Order bySQL
2.1
SQL>

explain

plan

for

select

/*+

index(aia

AP_INVOICES_N8)*/

apps.ap_invoices_all aia where aia.CREATION_DATE < trunc(sysdate-100,'dd') order by


aia.CREATION_DATE desc;
SQL> select * from table(dbms_xplan.display);

2.2
SQL>

explain

plan

for

select

/*+

index_desc(aia

AP_INVOICES_N8)*/

from

apps.ap_invoices_all aia where aia.CREATION_DATE < trunc(sysdate-100,'dd');


SQL> select * from table(dbms_xplan.display);

Author:JarWang ()

QQ:jarwang@sina.com
71

Copyright(R):Jarwang

TABLE ACCESS BY INDEX ROWID

Oracle ROWID
TABLE ACCESS BY INDEX ROWID
SQL>

explain

plan

for

select

h.report_header_id,h.description

from

ap.ap_expense_report_headers_all h where h.report_header_id in (10745);


SQL> select * from table(dbms_xplan.display);

TABLE ACCESS BY USER ROWID


whererowid
SQL>

select

h.rowid

from

ap.ap_expense_report_headers_all

where

h.report_header_id=10745;
ROWID
-----------------AAGyi5AAUAAABujAAm
SQL> explain plan for select h.rowid from ap.ap_expense_report_headers_all h where
h.rowid='AAGyi5AAUAAABujAAm';
SQL> select * from table(dbms_xplan.display);

rowid

Oracle
Creating a Cluster: Example
The following statement creates a cluster named personnel with the cluster key column
department, a cluster size of 512 bytes, and storage parameter values:
CREATE CLUSTER personnel
(department NUMBER(4))
SIZE 512
STORAGE (initial 100K next 50K);
Cluster Keys: Example
Author:JarWang ()

QQ:jarwang@sina.com
72

Copyright(R):Jarwang

The following statement creates the cluster index on the cluster key of personnel:
CREATE INDEX idx_personnel ON CLUSTER personnel;

After creating the cluster index, you can add tables to the index and perform DML operations
on those tables.
Adding Tables to a Cluster: Example
The following statements create some departmental tables from the sample hr.employees
table and add them to the personnel cluster created in the earlier example:
CREATE TABLE dept_10
CLUSTER personnel (department_id)
AS SELECT * FROM employees WHERE department_id = 10;
CREATE TABLE dept_20
CLUSTER personnel (department_id)
AS SELECT * FROM employees WHERE department_id = 20;
Hash Clusters: Examples
The following statement creates a hash cluster named language with the cluster key column
cust_language, a maximum of 10 hash key values, each of which is allocated 512 bytes, and
storage parameter values:
CREATE CLUSTER language (cust_language VARCHAR2(3))
SIZE 512 HASHKEYS 10
STORAGE (INITIAL 100k next 50k);

Because the preceding statement omits the HASH IS clause, Oracle uses the internal hash
function for the cluster.
The following statement creates a hash cluster named address with the cluster key made up
of the columns postal_code and country_id, and uses a SQL expression containing these
columns for the hash function:
CREATE CLUSTER address
(postal_code NUMBER, country_id CHAR(2))
HASHKEYS 20
HASH IS MOD(postal_code + country_id, 101);
Single-Table Hash Clusters: Example
The following statement creates a single-table hash cluster named cust_orders with the
cluster key customer_id and a maximum of 100 hash key values, each of which is allocated
512 bytes:
CREATE CLUSTER cust_orders (customer_id NUMBER(6))
SIZE 512 SINGLE TABLE HASHKEYS 100;

Clustering FactorB-Tree

1
1.
Author:JarWang ()

QQ:jarwang@sina.com
73

Copyright(R):Jarwang

create

table

cux_invoice_all(invoice_id

int,invoice_num

varchar2(100),invoice_date

date,amount number,constraint cux_invoice_all_ix primary key(invoice_id));


2.
insert into cux_invoice_all
select * from ( select aia.invoice_id,
aia.invoice_num,
aia.invoice_date,
aia.invoice_amount
from ap.ap_invoices_all aia
order by aia.invoice_id)t;
commit;
3.

4.(buffers)
4.12
SQL> set arraysize 2
SQL> select /*+ index(cia CUX_INVOICE_ALL_IX) gather_plan_statistics*/ * from
apps.cux_invoice_all cia;
SQL> select * from table(dbms_xplan.display_cursor(null,null,'iostats last'))

95764
4.2100
SQL> set arraysize 100
SQL> select /*+ index(cia CUX_INVOICE_ALL_IX) gather_plan_statistics*/ * from
apps.cux_invoice_all cia;
SQL> select * from table(dbms_xplan.display_cursor(null,null,'iostats last'));

Author:JarWang ()

QQ:jarwang@sina.com
74

Copyright(R):Jarwang

min/max
1.minmaxSQL
SQL> explain plan for select /*+ index(aia AP_INVOICES_U1)*/ max(aia.invoice_id) from
apps.ap_invoices_all aia;
SQL> select * from table(dbms_xplan.display);

INDEX FULL SCAN (MIN/MAX)INDEX FULL SCANINDEX FULL


SCAN (MIN/MAX)
2.minmaxSQL
SQL> explain plan for select
(select /*+ index(aia AP_INVOICES_U1)*/ min(aia.invoice_id) from apps.ap_invoices_all
aia) min_id,
(select /*+ index(aia AP_INVOICES_U1)*/ max(aia.invoice_id) from apps.ap_invoices_all
aia) max_id
from dual;
SQL> select * from table(dbms_xplan.display);

Oraclewhere
Author:JarWang ()

QQ:jarwang@sina.com
75

Copyright(R):Jarwang

upper(c1)=TESTc1
create index cux_invoice_all_ix2 on apps.cux_invoice_all(upper(invoice_num));
select * from apps.cux_invoice_all cia where upper(cia.invoice_num)='ERS-5322-494';

Oracle10gR2
Oracle
1.generic_m_ci
2.generic_m_ai

(BITMAP)

BITMAP

BITMAP

BITMAP10g

BITMAPOracle

Composit Index
1.
create table cux_composite_test (c1 int,c2 varchar2(20),c3 date,c4 number);
begin
for i in 1..100 loop
insert into cux_composite_test values(i,'test'||i,sysdate+i,3.2+i);
end loop;
commit;
end;
create index cux_composite_test_ix on cux_composite_test(c1,c2,c3);
2.where
select /*+index(c cux_composite_test_ix) */ * from apps.cux_composite_test c where c.c1=2;

Author:JarWang ()

QQ:jarwang@sina.com
76

Copyright(R):Jarwang

3.
3.1
SQL> select count(1) from AP.AP_INVOICES_ALL;

SQL> select dtc.COLUMN_NAME,dtc.NUM_DISTINCT from dba_tab_columns dtc where


dtc.TABLE_NAME='AP_INVOICES_ALL' and dtc.OWNER='AP' and dtc.COLUMN_NAME
in ('INVOICE_DATE', 'ORG_ID');

3.2index1(c1,c2,c3)index2(c1,c2)index2

3.3c1c2c3

4.INDEX SKIP SCANwhere

SQL> select /*+index_ss(c cux_composite_test_ix) */ * from apps.cux_composite_test c where


c.c2 = 'test2' and c.c3=sysdate;

B-TreeB-Tree

SQL> analyze index ap.AP_INVOICES_N6 validate structure;


Index analyzed.
SQL> select blocks from index_stats;
BLOCKS
---------432
SQL> alter index ap.AP_INVOICES_N6 rebuild compress;
Author:JarWang ()

QQ:jarwang@sina.com
77

Copyright(R):Jarwang

Index altered.
SQL> analyze index ap.AP_INVOICES_N6 validate structure;
Index analyzed.
SQL> select blocks from index_stats;
BLOCKS
---------448

SQLSQL
Oraclecursor_sharingSQL

SQL> show parameter cursor_sharing


NAME

TYPE

VALUE

------------------------------------ ----------- -----------------------------cursor_sharing

string

EXACT

EXACT
FORCE
SIMILARexact
force

SQL
library cache latche lockOraclesession_cached_cursor

SQL> show parameters session_cached_cursors;


NAME

TYPE

VALUE

------------------------------------ ----------- -----------------------------session_cached_cursors

integer

50

1.session_cached_cursors
SQL> select sn.name,ss.value from v$statname sn,v$sesstat ss where sn.statistic#=ss.statistic#
and sn.name in('session cursor cache hits','session cursor cache count','parse count (total)')
and ss.sid=42;
Author:JarWang ()

QQ:jarwang@sina.com
78

Copyright(R):Jarwang

session cursor cache countsession_cached_cursorsession_cached_cursors


open_cursors

1.
DBMS_SQL.OPEN_CURSORUGA
DBMS_SQL.PARSESQLlibrary
cacheUGAlibrary cache
DBMS_SQL.DEFINE_COLUMNSQL

DBMS_SQL.BIND_VARIABLESQL

DBMS_SQL.EXECUTESQLOraclefech
DBMS_SQL.FETCH_ROWSSQL
DBMS_SQL.CLOSE_CURSORUGALibrary Cache

2.DBMS_SQL
PL/SQLDBMS_SQL

JDBC
1. java.sql.Statement
2. java.sql.PreparedStatement
3. JDBC
((oracle.jdbc.OracleConnection)connection).setImplicitCachingEnable(true);
((oracle.jdbc.OracleConnection)connection).setStatementCacheSize(50);

OracleSQL86SQL92

Author:JarWang ()

QQ:jarwang@sina.com
79

Copyright(R):Jarwang

NESTED LOOPS JOIN


NESTED LOOPS JOIN(outer loop
)(inner loop)

1.
select /*+leading(h) use_nl(l) full(h) full(l)*/ *
from ap.ap_invoices_all h, ap.ap_invoice_lines_all l
where h.invoice_id = l.invoice_id
and h.invoice_num = 'ERS-4400-109091';

2.fullNESTED LOOPS
select /*+leading(h) use_nl(l) */ *
from ap.ap_invoices_all h, ap.ap_invoice_lines_all l
where h.invoice_id = l.invoice_id
and h.invoice_num = 'ERS-4400-109091';

1NESTED LOOPS

OracleNESTED LOOPSNESTED LOOP


rowid
Oracle
Oracle

db file sequential read

db file scattered read

Author:JarWang ()

QQ:jarwang@sina.com
80

Copyright(R):Jarwang

MERGE JOIN
MERGE JOIN

select /*+ ordered use_merge(l) */ *


from ap.ap_invoices_all h, ap.ap_invoice_lines_all l
where h.invoice_id = l.invoice_id
and h.invoice_num = 'ERS-17045-109613';

Oracle
HASH JOIN
HASH JOIN (Build Iput)(Probe
Input)

1.leading()use_has()
select /*+leading(h) use_hash(l) */*
from ap.ap_invoices_all h, ap.ap_invoice_lines_all l
where h.invoice_id = l.invoice_id
and h.invoice_num = 'ERS-4400-109091';

2.NESTED LOOP
select /*+leading(h) use_nl(l)*/ *
from ap.ap_invoices_all h, ap.ap_invoice_lines_all l
where h.invoice_id = l.invoice_id
and h.invoice_num = 'ERS-4400-109091';
Author:JarWang ()

QQ:jarwang@sina.com
81

Copyright(R):Jarwang

1NESTED LOOPHASH LOOP


2HASH LOOP

NESTED LOOP

INDEX JOIN
SQL

select

/*+index_join(aia AP_INVOICES_U1 AP_INVOICES_N6 AP_INVOICES_N7) */

aia.invoice_id,aia.invoice_num,aia.VENDOR_SITE_ID
from ap.ap_invoices_all aia
--invoice_id AP_INVOICES_U1 INVOICE_NUM AP_INVOICES_N6 ,
VENDOR_SITE_IDAP_INVOICES_N5
where aia.invoice_id>3000 and aia.invoice_num like 'MX%' and aia.VENDOR_SITE_ID=122;

Author:JarWang ()

QQ:jarwang@sina.com
82

Copyright(R):Jarwang

HASH JOIN
HASH JOIN OUTER
LEFT JOINRIGHT OUT

PARITTION-WISE JOIN
Partition-Wise Join

1.

2.

1.SQL

create table t1(h_id int,col2 date,constraint t1_pk primary key(h_id));


create table t2(h_id int,l_id int,col3 varchar2(20) );
alter table T2
add constraint T2_FK foreign key (H_ID)
references t1 (H_ID);
insert into t1 values(1,sysdate);
insert into t1 values(2,sysdate);
insert into t2 values(1,1,'test1');
insert into t2 values(1,2,'test2');
Author:JarWang ()

QQ:jarwang@sina.com
83

Copyright(R):Jarwang

insert into t2 values(2,3,'test1');


insert into t2 values(2,4,'test2');
commit;

explain plan for


select t2.h_id,t2.col3 from apps.t1,apps.t2 where t1.h_id=t2.h_id;
select * from table(dbms_xplan.display);

Oracle10gR2
2.

3.

start schemaOracle
ORACLE
1.SALESChannelsTimesPromotions
CustomersProducts

Channels
Times

Promotions

SALES

Products

Customers

2.
2.1star_transformation_enabledtemp_disabletrue
2.2ID

Author:JarWang ()

QQ:jarwang@sina.com
84

Copyright(R):Jarwang


Materialized view(result cache)(parallel
process)(direct-path insert)

Materialized View

1.
create materialized view cux_invoices_all_mv
as
select sup.vendor_name,
aia.org_id,
aia.invoice_id,
aia.invoice_num,
aia.invoice_date,
aia.invoice_amount
from ap.ap_invoices_all aia, ap.ap_suppliers sup
where aia.vendor_id = sup.vendor_id;

explain plan for select * from apps.cux_invoices_all_mv;


select * from table(dbms_xplan.display);

2.SQL
2.1

query_rewrite_enabledtrue

alter system set query_rewrite_enabled=true;

alter materialized view cux_invoices_all_mv enable query rewrite;


2.2SQL
SQL
explain plan for
select sup.vendor_name,
Author:JarWang ()

QQ:jarwang@sina.com
85

Copyright(R):Jarwang

aia.org_id,
aia.invoice_id,
aia.invoice_num,
aia.invoice_date,
aia.invoice_amount
from ap.ap_invoices_all aia, ap.ap_suppliers sup
where aia.vendor_id = sup.vendor_id;
MAT_VIEW REWRITE ACCESS FULL

3.
3.1

Refresh Completetruncatedelete

Refresh Fast

Refresh Force

Never Refresh

3.2

On Demand

On Commit

alter materialized view cux_invoices_all_mv refresh force on demand;

begin
dbms_mview.refresh(list=>'apps.cux_invoices_all_mv');
end;
4.

create materialized view log on ap.ap_invoices_all with rowid;


create materialized view log on ap.ap_suppliers with rowid;
EBS

Author:JarWang ()

QQ:jarwang@sina.com
86

Copyright(R):Jarwang

4.1
begin
dbms_mview.explain_mview(mv=>'cux_invoices_all_mv',stmt_id=>'42');
end;
4.2
select * from mv_capabibities_table;
OATPOALP
Result Cache
Result CacheOracle11gOracle

PL/SQLPL/SQL

1.Share Pool
SQL
select /*+ result_cache */
t1.h_id,t1.col2,t2.l_id,t2.col3
from t1,t2
where t1.h_id=t2.h_id;

select status,creation_timestamp,build_time,row_count,scan_count from


v$result_cache_objects

SQL> show parameters result_cache;


NAME

TYPE

VALUE

------------------------------------ ----------- -----------------------------client_result_cache_lag

big integer 3000

client_result_cache_size

big integer 0

result_cache_max_result
result_cache_max_size
result_cache_mode

integer

big integer 2336K


string

result_cache_remote_expiration

MANUAL

integer

2.PL/SQL
PL/SQLRESULT_CACHE
CREATE OR REPLACE FUNCTION cux_func_test(p in pls_integer) RETURN VARCHAR2
Author:JarWang ()

QQ:jarwang@sina.com
87

Copyright(R):Jarwang

RESULT_CACHE RELIES_ON(l_temp)
IS
l_temp varchar2(30);
BEGIN
select t2.col3 into l_temp from t2 where t2.l_id=p;
RETURN l_temp;
END cux_func_test;
OUTINOUTPACKAGE
3.

client_result_cache_size()

client_result_cache_lag

OracleSQLSQLCPUSQL
CPUIO
SQL
CPU
1.Oracle

(partition granule)

(block range granule)

2.

parallel_min_servers

parallel_max_serverscpu_count810

select pps.STATISTIC,pps.VALUE from sys.v$px_process_sysstat pps where pps.statistic like


'Servers%';
3.
3.1
alter table gl.gl_je_lines parallel 4;
Author:JarWang ()

QQ:jarwang@sina.com
88

Copyright(R):Jarwang

DML

select

dt.TABLE_NAME,dt.degree

from

dba_tables

dt

where

dt.TABLE_NAME='GL_JE_LINES' and dt.owner='GL';


3.2
select /*+ parallel_index(H,4) parallel(L,4)*/ * from gl.gl_je_headers H,gl.gl_je_lines L where
H.je_header_id=L.je_header_id and h.je_header_id=42563;
3.3DML
DML

DML

DML

DMLhintDML

DML
alter session enable parallel dml;
DML
select ss.PDML_STATUS from v$session ss where sid =sys_context('userenv','sid');
4.

CPUIO.

SQL10

InsertOracle

(Conventional Insert)

(Direct-Path Insert)Insert into SelectMegeOCI

1.

SQLappendINSERT /*+ append*/ Into Select ..

SQL

Author:JarWang ()

QQ:jarwang@sina.com
89

Copyright(R):Jarwang

2.NoLogging

Nologgingnologgin

3.

INSERT

(Row Prefetching)

1. PL/SQL
declare
cursor c is select l.* from ap_checks_all l where rownum<=10 order by dbms_random.value;
TYPE t_check is table of ap_checks_all%rowtype;
l_check t_check;
k pls_integer;
begin
k:=0;
open c;
loop
fetch c bulk collect into l_check limit 2;
exit when l_check.count=0;
k:= k +1;
dbms_output.put_line('k='||k);--5,
for i in l_check.first..l_check.last
loop

dbms_output.put_line('BANK_ACCOUNT_NAME='||l_check(i).BANK_ACCOUNT_NAM
E);
dbms_output.put_line('CHECK_NUMBER='||l_check(i).CHECK_NUMBER);
end loop;
end loop;
close c;
end;
Author:JarWang ()

QQ:jarwang@sina.com
90

Copyright(R):Jarwang

2. JAVA
Statement.setFetchSize(20);
3. 1.

1. PL/SQL
create table cux_t(id int,pad varchar2(200));

declare
type t_id is table of cux_t.id%type;
type t_pad is table of cux_t.pad%type;
l_id t_id :=t_id();
l_pad t_pad :=t_pad();
begin
l_id.extend(1000);
l_pad.extend(1000);
for i in 1..1000
loop
l_id(i):=i;
l_pad(i):=rpad('*',100,'*');
end loop;
--forall
forall i in l_id.first..l_id.last
insert into cux_t values(l_id(i),l_pad(i));
commit;
end;
2. JAVA
sql = insert into cux_t values(?,?);
statement = connection.prepareStatement(sql);
for(int i=0;i<=1000;i++){
statement.setInt(1,i);
statement.setString(2,some text );
statement.addBatch();
}
statement.executeBatch();
statement.close;

Author:JarWang ()

QQ:jarwang@sina.com
91

Copyright(R):Jarwang


&
OraclePCTFREE

1.
rowidupdate

1.pctfree2.alter table move


Some methods to avoid and eliminate Chained/Migrated rows
1- ALTER TABLE ... MOVE command.
2- Increase PCTFREE.
3- Import/Export can be taken as an approach to eliminate the migrated rows.
4- Avoid to create tables with more than 255 columns.
2.
insertupdate

Author:JarWang ()

QQ:jarwang@sina.com
92

Copyright(R):Jarwang

CBO Chapter
OracleRBOCBO
1. RBORule Basic OptimizerOarcle 9i
2.CBOCos Basic Optimizercpumemeoryio
I/OCPU
OracleCBOoptimizer_mode

All_rowsSQL

First_rows_NN1101001000first_rows(n)hint
9i

First_row9i

optimizier_moderulechooseRuleRBO10g
Chooseruleall_rows

9ichooseoptimizer_mode

dbf_mbrc
dbf_mbrcdb_file_multiblock_read_count
dbf_mbrcCostOracle9i

execute dbms_random.seed(0);

create table t1 pctfree 99 pctused 1


as select rownum id,trunc(100*dbms_random.normal) val,rpad('*',100) padding
from all_objects where rownum<=10000;

explain plan for select max(val) from t1;


select * from table(dbms_xplan.display)

Author:JarWang ()

QQ:jarwang@sina.com
93

Copyright(R):Jarwang

db_file_multiblock_read
db_file_multiblock_read
NO.

db_file_multiblock_read

COST

Adjusted dbf_mbrc

1519

6.59

16

963

10.40

32

611

16.39

64

388

25.84

Cost9i8i1_
tablescan_cost_plus_onetrue

Author:JarWang ()

QQ:jarwang@sina.com
94

Copyright(R):Jarwang

Dynamic View Chapter


Oracle

V$PROCESS
Column
V$PROCESSOracle
NO.

Colmn

Description

Note

PID

Oracle ID

OracleID

SPID

OS ID

ID

ADDR

Join v$process's addr with v$session


paddr.

Purpose
1.LinuxTOP

TOP8431Oracle
select * from v$process ps where ps.SPID=8431
2.Oracle
select p.USERNAME, s.OSUSER, s.SID, s.SERIAL#
from v$process p, v$session s
where p.ADDR = s.PADDR
and p.SPID = 4801

V$SESSION
Column
V$SESSIONOracle
Author:JarWang ()

QQ:jarwang@sina.com
95

Copyright(R):Jarwang

NO.

Colmn

Description

Note

SID

SESSION

SERIAL#

SESSION

SIDsession
( SESSIONSESSION
SID)

AUDSID

session
ID

session ID

USERNAME

Oracle

STATUS

AchtiveSQL(waiting for
/using a resource)
Inactive(SQL)
Killed

Purpose
1.LinuxTOP

V$LOCK_OBJECT
Column

SELECT
l.oracle_username,o.owner,o.object_name,o.object_type,s.sid,s.serial#,p.spid
FROM v$locked_object l, dba_objects o, v$session s, v$process p
WHERE l.object_id = o.object_id
AND l.session_id = s.sid and s.paddr = p.addr
ORDER BY o.object_id, xidusn DESC

V$LOCK

Author:JarWang ()

QQ:jarwang@sina.com
96

Copyright(R):Jarwang

OTHERS

TOP SQL
TOP SQL
SELECT

FROM

v$sql

WHERE

hash_value

(SELECT sql_hash_value FROM v$session WHERE paddr = (SELECT addr FROM v$process
WHERE spid =TOPPID));
SQL
select sa.VERSION_COUNT,sa.PARSE_CALLS,sa.SQL_TEXT from v$sqlarea

sa order by

sa.VERSION_COUNT desc
EMTOP SQL

Author:JarWang ()

QQ:jarwang@sina.com
97

Copyright(R):Jarwang

create table rlock as select object_id,object_name from dba_objects;


create UNIQUE index ind_rlock on rlock (object_id);
select statistic_name, value
from v$segment_statistics
where owner = 'MYDB'
and object_name = 'IND_RLOCK'
and statistic_name = 'row lock waits';
--session
Author:JarWang ()

QQ:jarwang@sina.com
98

Copyright(R):Jarwang

insert into rlock values (999999,'bb');


--session
insert into rlock values (999999,'bb');
rollback;
--session
commit;
select statistic_name, value
from v$segment_statistics
where owner = 'MYDB'
and object_name = 'IND_RLOCK'
and statistic_name = 'row lock waits'

row lock waitsenq:TX - index contention

session 1:
create table t1(x number,y char(20),z date,q varchar2(4000));
create index t1_idx1 on t1(q,z);
begin
for x in 1..50000 loop
insert into t1 values(1162,'1060000abcdefg', sysdate, rpad('x',2000,'x'));
end loop;
end;

session 2:
begin
for x in 1..50000 loop
insert into t1 values(1162,'1060000abcdefg', sysdate, rpad('x',2000,'x'));
end loop;
end;

session 3:SESSION1SESSION2
select object_name,STATISTIC_NAME,value from v$segment_statistics where object_name in
('T1','T1_IDX1') and STATISTIC_NAME='row lock waits' order by 1;

Author:JarWang ()

QQ:jarwang@sina.com
99

Copyright(R):Jarwang

Other Notes
Oracle EBS-11i http://www.itpub.net/thread-1133804-1-1.html
Oracle EBS-11i APIhttp://www.itpub.net/thread-1265230-1-1.html
Oracle EBS-11i OAFhttp://www.itpub.net/thread-1236269-1-1.html
Oracle EBS-11i WorkflowJBoss jBPMhttp://www.itpub.net/thread-1245869-1-1.html
Oracle EBS-11i OM-http://www.itpub.net/thread-1154690-1-1.html
Oracle EBS-11i WEB ADIhttp://www.itpub.net/thread-1225495-1-1.html
Oracle EBS-11i (32bit)http://www.itpub.net/thread-1228782-1-1.html
Oracle EBS-11i AMEhttp://www.itpub.net/thread-1409293-1-1.html
Oracle EBS-http://www.itpub.net/thread-1439279-1-1.html
Oracle EBS-11i DBAhttp://www.itpub.net/thread-1256323-1-1.html
Oracle EBS-R12 (64bit)http://www.itpub.net/thread-1129128-1-1.html
Oracle EBS-R12 GLINVhttp://www.itpub.net/thread-1247010-1-1.html
Oracle EBS-R12 OAFhttp://www.itpub.net/thread-1412731-1-1.html
Oracle EBS-R12 DBAhttp://www.itpub.net/thread-1623597-1-1.html
Oracle EBS Web Service: http://www.itpub.net/thread-1436990-1-1.html
Oracle EBS Advanced Replication10ghttp://www.itpub.net/thread-1216295-1-1.html
Oracle EBS DataGuard10ghttp://www.itpub.net/thread-1362805-1-1.html
Oracle10g OCPhttp://www.itpub.net/thread-1229073-1-1.html
Javahttp://www.itpub.net/thread-1511818-1-1.html
Oracle10g RAChttp://www.itpub.net/thread-1194959-1-1.html
Oracle11g RAChttp://www.itpub.net/thread-1454363-1-1.html
Oracle10g ASMhttp://www.itpub.net/thread-1208926-1-1.html
PL/SQLEXCELhttp://www.itpub.net/thread-1101710-1-1.html
MySQL5http://www.itpub.net/thread-1158177-1-1.html
Redhathttp://www.itpub.net/thread-1353773-1-1.html
RHEL5.2http://www.itpub.net/thread-1145199-1-1.html

Author:JarWang ()

QQ:jarwang@sina.com
100

Copyright(R):Jarwang

Anda mungkin juga menyukai