Author:
Jarwang
1.0
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
14
EBS Clone
AutoConfig
EBS Patch
14
14
15
15
19
Password
20
20
Maintenace
21
21
23
23
25
26
Optimize
26
Adjust JVM
26
30
Setup
30
30
39
43
44
45
45
46
47
Maintenace
51
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
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
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
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
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
tablespace
CUX_INDEX
datafile
temporary
tablespace
CUX_TEMP
tempfile
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
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
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
Author:JarWang ()
QQ:jarwang@sina.com
13
Copyright(R):Jarwang
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
. /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
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
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, '/');
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
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
EBS R12
QQ:jarwang@sina.com
23
Copyright(R):Jarwang
System administrator=>OAM
1.
select count(*) from
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
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
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
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
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
Advanced Installation
Author:JarWang ()
QQ:jarwang@sina.com
34
Copyright(R):Jarwang
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
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
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
QQ:jarwang@sina.com
43
Copyright(R):Jarwang
???:
sqlplusinsertpl/sql developer
.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
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
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
USERNAME
PASSWORD
-------------------- ---------------------------------------AAA
6C6C694839B7D59D
AAABBB
6C6C694839B7D59D
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
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;
QQ:jarwang@sina.com
47
Copyright(R):Jarwang
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
QQ:jarwang@sina.com
48
Copyright(R):Jarwang
QQ:jarwang@sina.com
49
Copyright(R):Jarwang
QQ:jarwang@sina.com
50
Copyright(R):Jarwang
Maintenace
Bath Stop Jobs
Jobs
Jobs
Sql>select dj.JOB,dj.SCHEMA_USER,dj.NEXT_DATE,dj.BROKEN from dba_jobs dj
QQ:jarwang@sina.com
51
Copyright(R):Jarwang
NAME
TYPE
VALUE
boolean
cluster_database_instances
FALSE
integer
cluster_interconnects
string
RAC
SQL> show parameters cluster
NAME
TYPE
VALUE
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
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;
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
1
LOCAL_LISTERNER
SQL> show parameters LOCAL_LISTENER;
NAME
TYPE
VALUE
string
LISTENER_EBSRAC2
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(+)
QQ:jarwang@sina.com
55
Copyright(R):Jarwang
and do.OBJECT_NAME='FND_USER'
:
4.ROWID
select DBMS_ROWID.ROWID_CREATE(rowid_type
=> 1,
=> 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
1 VIS
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
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;
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
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',
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
Oracle11g
whereupper(country)=SWITZERLAND
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
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
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';
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
1 | 327 |
2(0)| 00:00:01 |
| AP_INVOICES_U1 |
1|
1 | 327 |
|
2(0)| 00:00:01 |
1(0)| 00:00:01 |
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
|
|
9 | 2943 |
2 (0)| 00:00:01 |
9 | 2943 |
2 (0)| 00:00:01 |
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
Author:JarWang ()
QQ:jarwang@sina.com
68
Copyright(R):Jarwang
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);
Author:JarWang ()
QQ:jarwang@sina.com
69
Copyright(R):Jarwang
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
SQL>
explain
plan
for
select
/*+
index_desc(aia
AP_INVOICES_U1)*/
from
from
2. Order bySQL
2.1
SQL>
explain
plan
for
select
/*+
index(aia
AP_INVOICES_N8)*/
2.2
SQL>
explain
plan
for
select
/*+
index_desc(aia
AP_INVOICES_N8)*/
from
Author:JarWang ()
QQ:jarwang@sina.com
71
Copyright(R):Jarwang
Oracle ROWID
TABLE ACCESS BY INDEX ROWID
SQL>
explain
plan
for
select
h.report_header_id,h.description
from
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
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);
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;
3.2index1(c1,c2,c3)index2(c1,c2)index2
3.3c1c2c3
B-TreeB-Tree
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
TYPE
VALUE
string
EXACT
EXACT
FORCE
SIMILARexact
force
SQL
library cache latche lockOraclesession_cached_cursor
TYPE
VALUE
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
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
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
Author:JarWang ()
QQ:jarwang@sina.com
80
Copyright(R):Jarwang
MERGE JOIN
MERGE JOIN
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
NESTED LOOP
INDEX JOIN
SQL
select
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
QQ:jarwang@sina.com
83
Copyright(R):Jarwang
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;
2.SQL
2.1
query_rewrite_enabledtrue
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
begin
dbms_mview.refresh(list=>'apps.cux_invoices_all_mv');
end;
4.
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;
TYPE
VALUE
client_result_cache_size
big integer 0
result_cache_max_result
result_cache_max_size
result_cache_mode
integer
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)
2.
parallel_min_servers
parallel_max_serverscpu_count810
QQ:jarwang@sina.com
88
Copyright(R):Jarwang
DML
select
dt.TABLE_NAME,dt.degree
from
dba_tables
dt
where
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)
1.
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
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);
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
V$PROCESS
Column
V$PROCESSOracle
NO.
Colmn
Description
Note
PID
Oracle ID
OracleID
SPID
OS ID
ID
ADDR
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
QQ:jarwang@sina.com
98
Copyright(R):Jarwang
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