Académique Documents
Professionnel Documents
Culture Documents
V100R001C00
Oracle 11G R1 Preventive
Maintenance Guide
Issue 01
Date 2013-06-30
All other trademarks and trade names mentioned in this document are the property of their respective
holders.
Notice
The purchased products, services and features are stipulated by the contract made between Huawei and
the customer. All or part of the products, services and features described in this document may not be
within the purchase scope or the usage scope. Unless otherwise specified in the contract, all statements,
information, and recommendations in this document are provided "AS IS" without warranties, guarantees
or representations of any kind, either express or implied.
The information in this document is subject to change without notice. Every effort has been made in the
preparation of this document to ensure accuracy of the contents, but all statements, information, and
recommendations in this document do not constitute a warranty of any kind, express or implied.
Website: http://www.huawei.com
Email: support@huawei.com
Intended Audience
This document describes preventive maintenance standards, methods, and troubleshooting for
the Oracle database 11g Release 1.
This document is intended for:
Customer maintenance engineers
Huawei maintenance engineers
Change History
Updates between document issues are cumulative. Therefore, the latest document issue
contains all updates made in previous issues.
Issue 01 (2013-06-30)
First official release.
Contents
Figures
Tables
1 PMI Description
A Oracle 11G R1
B Oracle 11G R2
C DB2
D IBM server
E HP server
F SUN 3510 storage device
G IBM DS4700 storage device
H Fujitsu Dx80 storage device
The fifth character indicates the problem type. The types are labeled by letters in
alphabetical order, such as A, B, and C. Table 1-3 describes problem types.
Type Description
The sixth, seventh, and eighth digits stand for the number of a preventive maintenance
item. Item numbers start from 000 and continue from A00 at the end of the number 999.
The ninth digit indicates a problem feature. Problem features are classified into three
categories: A, B, and C, as shown in Table 1-4.
Reference Standard
Table 2-1 describes the expected values of kernel parameters.
max_thread_proc 1024
maxdsiz 1073741824
maxdsiz_64bit 2147483648
maxtsiz_64bit 1073741824
maxssiz 134217728
maxssiz_64bit 1073741824
maxuprc 3687
msgmni 4096
msgtql 4096
maxfiles 65536
maxfiles_lim 65536
msgmap 4098 11.23
msgseg 32767
nfile 655360
ncsize 35840 11.23/11.31
nflocks 4096
ninode 34816
nkthread 7184
nproc 4096
semmni 4096
semmns 8192
semmnu 4092
semvmx 32767
shmmni 4096
shmseg 512
vps_ceiling 64
streams_sqmax 50000 11.23 RAC
filecache_min The parameter 11.31 HA/RAC
value is 2% of
the physical
memory.
Precaution
The expected values in Table 2-1 meet the lowest requirements of the Oracle database. Set
kernel parameters based on actual requirements.
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check kernel parameters.
# kctune |grep Kernel parameter name
If the obtained value of a kernel parameter is greater than or equal to the expected value in
Table 2-1, you do not need to change the obtained value.
Step 3 Check TCP or UDP network parameters.
For example, to check tcp_smallest_anon_port and udp_smallest_anon_port, run the
following commands:
# ndd -get /dev/tcp tcp_smallest_anon_port
# ndd -get /dev/udp udp_smallest_anon_port
If the obtained value of a kernel parameter is greater than or equal to the expected value in
Table 2-1, you do not need to change the obtained value.
----End
Exception Handling
If the current parameter value is less than the expected value in Table 2-1, perform the
following steps:
Step 1 Log in to the operating system as the root user.
Step 2 Modify kernel parameters.
# kctune Kernel parameter name=Expected value
Step 3 Modify TCP or UDP network parameters.
Modify TCP network parameters.
# ndd -set /dev/tcp TCP network parameter Expected value
Modify UDP network parameters.
# ndd -set /dev/udp UDP network parameter Expected value
----End
Reference Standard
The size specified by shmmax equals the physical memory size.
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check shared memory configurations.
1. Obtain physical memory information.
# machinfo|grep Memory
Memory: 130970 MB (127.9 GB)
The command output indicates that the physical memory size is 130970 MB.
2. Obtain the value of shmmax.
# kctune |grep shmmax | awk -F' ' '{print $2}'
137331998720
The command output indicates that the size specified by shmmax is 137331998720
bytes, namely, 130970 MB.
----End
Exception Handling
If shared memory configurations do not comply with the reference standard, modify shmmax.
You must back up the value of shmmax before modification.
----End
Reference Standard
The /etc/privgroup file contains dba RTPRIO RTSCHED MLOCK.
The /dev/async file exists and the permission on it is 660.
The value of max_async_ports is greater than or equal to 100 plus the value of
processes.
The dba user is assigned DBA rights, which can be verified by running the
/usr/bin/getprivgrp dba command.
The value of sga_max_size indicating the maximum SGA size is less than or equal to the
value of lockable memory.
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check the /etc/privgroup file.
$ cat /etc/privgroup | grep "dba RTPRIO RTSCHED MLOCK"
dba RTPRIO RTSCHED MLOCK
The command output indicates that the /etc/privgroup file contains dba RTPRIO
RTSCHED MLOCK.
Step 3 Check the /dev/async file.
$ ls -ltr /dev/async
crw-rw---- 1 bin bin 101 0x000000 Jul 25 12:08 /dev/async
The command output indicates that the /dev/async file exists and the permission on it is 660.
Step 4 Check max_async_ports.
1. Obtain the value of max_async_ports.
$ kctune |grep max_async_ | awk -F' ' '{print $2}'
4096
The command outputs in the preceding substeps indicate that the value of max_async_ports
is greater than 100 plus the value of processes.
Step 5 Check database permission.
1. Exit the database and return to the operating system.
SQL> exit;
2. Check database permission.
$ /usr/bin/getprivgrp dba
dba:
The command output indicates that the dba user is assigned DBA rights.
Step 6 Check sga_max_size.
1. Obtain the value of sga_max_size.
SQL> select value from v$parameter p where p.name = 'sga_max_size';
VALUE
---------------------------
105111552
SQL> exit;
$ dmesg|grep -i lockable|awk -F',' '{print $2}' | awk -F':' '{print $2}'
117658624 Kbytes
The command outputs in the preceding substeps indicate that the value of sga_max_size is
less than or equal to the value of lockable memory.
----End
Exception Handling
If asynchronous I/O configurations do not comply with the reference standard, modify the
configurations.
Modifying sga_max_size may require restarting the database. You must obtain customer
approval before modification.
If the /etc/privgroup file does not exist or the file does not contain dba RTPRIO
RTSCHED MLOCK, perform the following steps:
1. Log in to the operating system as the root user.
2. Configure database permission.
# /usr/sbin/setprivgrp dba MLOCK
3. Run the following command to add dba RTPRIO RTSCHED MLOCK to the
/etc/privgroup file (if the file does not exist, this command automatically creates the
file):
# echo "dba RTPRIO RTSCHED MLOCK" >> /etc/privgroup
If the permission on the /dev/async file is not 660, perform the following steps:
1. Log in to the operating system as the root user.
2. Change the permission on the /dev/async file to 660.
# chmod 660 /dev/async
The value of max_async_ports is less than 100 plus the value of processes, perform the
following steps:
1. Log in to the operating system as the root user.
2. Change the value of max_async_ports.
# kctune max_async_ports=<Value of reference standard>
If the value of sga_max_size is greater than the value of lockable memory, perform the
following steps:
1. Log in to the operating system as the oracle user.
2. Connect to the database and set sga_max_size to the value of lockable memory.
$ sqlplus '/ as sysdba'
SQL> alter system set sga_max_size=Value of lockable memory scope = spfile;
3. Restart the database.
SQL> shutdown immediate;
SQL> startup
Reference Standard
The HP-UX version number is 11.23 or 11.31. Table 2-2 lists patch packages for HP-UX
11.23 and HP-UX 11.31.
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check the operating system version.
# uname -a
For HP-UX 11.23, the command output is as follows:
HP-UX rx3600-2 B.11.23 U ia64 3562577597 unlimited-user license
Exception Handling
The latest patch packages for the operating system may contain the patch packages listed in
Table 2-2.
Contact Huawei engineers to install required patch packages and create corresponding links.
Reference Standard
The host name of each midrange computer contains a maximum of eight characters that do
not include uppercase letters, hyphens (-), and underscores (_).
Precaution
Perform this check only in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check the host name of the current midrange computer.
# hostname
hpnode2
----End
Exception Handling
You must obtain customer approval before changing the host name of a midrange computer
and restart the midrange computer after changing the host name.
If you find that the host names of midrange computers do not comply with the reference
standard after installing the Oracle database on the midrange computers, do not change the
host names because changing the host names may lead to midrange computer startup failures.
If you must change the host names, contact Huawei engineers for guidance.
If you find that the host names of midrange computers do not comply with the reference
standard when installing operating systems on the midrange computers, perform the following
steps:
Step 1 Log in to the operating system as the root user.
Step 2 Change the host name of the local midrange computer.
# set_parms hostname
Enter the system name, then press [Enter] or just press [Enter]
to retain the current host name (q)://Enter a host name that complies with the
reference standard.
You have chosen hpv3 as the name for this system.
Is this correct?
Press [y] for yes or [n] for no, then press [Enter]//Enter y and press Enter.
----End
Reference Standard
The SWAP usage is less than 50%.
When the physical memory is less than 16 GB, the values in the total Kb AVAIL column
are greater than or equal to 1.5 times the physical memory size.
When the physical memory greater than or equal to 16 GB, the values in the total Kb
AVAIL column are greater than or equal to physical memory size.
Precaution
The swap partition size described in the reference standard meets the lowest requirements.
You can extend the swap partition based on service requirements.
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check the SWAP status.
# swapinfo -t
Information similar to the following is displayed:
Kb Kb Kb PCT START/ Kb
TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
dev 4194304 0 4194304 0% 0 - 1 /dev/vg00/lvol2
dev 8388608 0 8388608 0% 0 - 1 /dev/vg00/lvswap1
dev 21528576 0 21528576 0% 0 - 0 /dev/vg00/lvswap_1
reserve - 10589284 -10589284
memory 33523832 3429664 30094168 10%
total 67635320 14018948 53616372 21% - 0 -
In the information, Memory = 16315 MB indicates that the physical memory size is 16315
MB.
----End
Exception Handling
If the swap partition size does not comply with the reference standard, extend the swap
partition after obtaining customer approval.
Before extending the swap partition, verify that available disk space is sufficient to extend the
swap partition.
LV Name /dev/vg00/lvol4
LV Name /dev/vg00/lvol5
LV Name /dev/vg00/lvol6
LV Name /dev/vg00/lvol7
LV Name /dev/vg00/lvol8
Free PE 1987
Reference Standard
The value of maxuproc is greater than or equal to 16384.
The value of the Oracle database environment variable AIXTHREAD_SCOPE is S.
Precaution
If the operating system is not AIX5.3L, skip Step 3 and Step 4.
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check the value of maxuproc.
$ lsattr -E -l sys0 -a maxuproc | awk -F' ' '{print $2}'
16384
Exception Handling
If kernel parameter values are different from expected values, modify the kernel parameters.
Reference Standard
For AIX5.3L, the minimum value of minpout is 8 and the minimum value of maxpout
is 12.
For AIX6.1L, the default values 4096 and 8193 are retained for minpout and maxpout
respectively.
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check I/O configurations.
----End
Exception Handling
If I/O configurations do not comply with the reference standard, modify related
configurations.
Reference Standard
The operating system version is either of the following:
− AIX 5L version 5.3, TL 05, Service Pack 06 or later
− AIX 6L version 6.1, TL 00, Service Pack 04 or later
The following software packages exist:
− bos.adt.base
− bos.adt.lib
− bos.adt.libm
− bos.perf.perfstat
− bos.perf.libperfstat
− bos.perf.proctools
− xlC.aix50.rte:8.0.0.7 or later (AIX5.3L)
− xlC.rte:8.0.0.7 or later (AIX5.3L)
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check the operating system version.
# oslevel -s
6100-06-01-1043
In the command output, 06 indicates TL, 01 indicates SP, and 1043 indicates that the
operating system is released in the forty-third week in 2010.
Step 3 Check whether required software packages exist.
# lslpp -l bos.adt.base bos.adt.lib bos.adt.libm bos.perf.perfstat bos.perf.libperfstat
bos.perf.proctools
Fileset Level State Description
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
bos.adt.base 6.1.6.1 COMMITTED Base Application Development
Toolkit
bos.adt.lib 6.1.2.0 COMMITTED Base Application Development
Libraries
bos.adt.libm 6.1.6.0 COMMITTED Base Application Development
Math Library
bos.perf.libperfstat 6.1.6.15 COMMITTED Performance Statistics Library
Interface
bos.perf.perfstat 6.1.6.0 COMMITTED Performance Statistics
Interface
bos.perf.proctools 6.1.6.0 COMMITTED Proc Filesystem Tools
Path: /etc/objrepos
bos.adt.base 6.1.6.1 COMMITTED Base Application Development
Toolkit
bos.perf.libperfstat 6.1.6.15 COMMITTED Performance Statistics Library
Interface
bos.perf.perfstat 6.1.6.0 COMMITTED Performance Statistics
Interface
Step 4 If the operating system is AIX5.3L, check whether required patches exist.
# /usr/sbin/instfix -i -k "IY89080 IY92037 IY94343 IZ01060 IZ03260 IY84780 IY68989"
All filesets for IY89080 were found.
All filesets for IY92037 were found.
All filesets for IY94343 were found.
All filesets for IZ01060 were found.
All filesets for IZ03260 were found.
All filesets for IY84780 were found.
All filesets for IY68989 were found.
----End
Exception Handling
Before installing required software packages or patches, confirm that the customer requires
these packages or patches.
If some required software packages or patches do not exist, install them. The following
describes how to install patch IY89080:
Step 1 Use SFTP to upload patch IY89080 to /tmp on the active node in binary mode.
Step 2 Log in to the operating system as the root user.
Reference Standard
The pvid feature is disabled. That is, none is returned when you check the pvid of disks.
Precaution
Perform this check only when the ASM is enabled.
If the Oracle database uses the ASM to store data files, do not enable the pvid feature.
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check whether the ASM is enabled.
# ps -eaf|grep asm
For example, the following information is displayed:
oracle 10183 1 0 Sep13 ? 00:00:02 asm_pmon_+ASM2
If the command output contains a process name similar to asm_xxx_ASM, the ASM is
enabled.
Step 3 Switch to the oracle user.
# su - oracle
Step 4 Obtain the list of disks managed by the ASM.
$ export ORACLE_SID=+ASM2
$ sqlplus '/ as sysdba'
The command output is none, indicating that the pvid feature is disabled.
----End
Exception Handling
If the ASM is enabled and pvid are allocated to disks managed by the ASM, you must rectify
the fault.
Contact Huawei engineers and perform the following steps under their guidance:
Step 1 Log in to the operating system as the root user.
Step 2 Delete the pvid of disks managed by the ASM.
# chdev -l hdisk* -a pv=clear
----End
Reference Standard
The fc_err_recov attribute value for FSCSI devices is fast_fail.
Precaution
Perform this check only in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check customized database information in the ODM library.
# lsdev -C | grep fscsi
Information similar to the following is displayed:
fscsi0 Available 05-00-02 FC SCSI I/O Controller Protocol Device
fscsi1 Available 04-00-02 FC SCSI I/O Controller Protocol Device
Check the fc_err_recov attribute value for all FSCSI devices fscsiN (N is an integer equal to or greater
than zero).
----End
Exception Handling
If the fc_err_recov attribute value is not fast_fail, change the value to fast_fail.
Obtain customer approval before changing the fc_err_recov attribute value because all
FSCSI devices must be deactivated during the change.
----End
Reference Standard
The SWAP usage is less than 30% (the value varies according to conditions).
When the physical memory is less than or equal to 64 GB, the SWAP size is equal to the
size of the physical memory. When the physical memory exceeds 64 GB, the SWAP size
is 64 GB.
The size difference between the SWAP and the physical memory is less than or equal to
5%.
Precaution
The swap partition size described in the reference standard meets the lowest requirements.
You can extend the swap partition based on service requirements.
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check the SWAP size.
# lsps -s
Information similar to the following is displayed:
Total Paging Space Percent Used
28672MB 1%
Exception Handling
If the swap partition size does not comply with the reference standard, extend the swap
partition after obtaining customer approval.
Before extending the swap partition, verify that available disk space is sufficient to extend the
swap partition.
Contact Huawei engineers and perform the following steps under their guidance:
Step 1 Log in to the operating system as the root user.
Step 2 Obtain the name of a disk for extending the swap partition.
Assume that hd6 is used to extend the swap partition.
# lsps -a
Page Space Physical Volume Volume Group Size %Used Active Auto Type
Chksum
hd6 hdisk0 rootvg 15872MB 1 yes yes lv
0
hd6 hdisk2 rootvg 512MB 1 yes yes lv
0
The command output indicates that the size of each PP is 256 MB.
2. Extend the swap partition.
For example, to extend the swap partition by 1 GB (total sizes of four PPs), run the
following command:
# chps -s' 4' hd6
----End
Reference Standard
The value of minperm% is 10.
The value of maxperm% is 20.
The value of maxclient% is 20.
The value of lru_file_repage is 0.
The value of strict_maxperm is 0.
The value of strict_maxclient is 1.
The value of page_steal_method is 1.
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check the virtual memory and file cache.
If the operating system is AIX5.3, run the following command.
# vmo -a | egrep "minperm%|maxperm%|maxclient%|lru_file_repage|
strict_maxperm|strict_maxclient|page_steal_method"
minperm% = 10
lru_file_repage = 0
maxperm% = 20
maxclient% = 20
page_steal_method = 1
strict_maxclient = 1
strict_maxperm = 0
----End
Exception Handling
If the virtual memory and file cache do not comply with the reference standard, modify
related parameters.
Contact Huawei engineers and perform the following steps under their guidance:
Step 1 Log in to the operating system as the root user.
Step 2 Modify parameters whose values do not comply with the reference standard.
# vmo -p -o item=value
In the preceding command, item indicates the parameter name and value indicates the parameter value.
For example, to change the value of minperm% to 10, run the following command:
# vmo -p -o minperm%=10
----End
Reference Standard
The value of kernel.sem is 250 32000 100 128.
The value of kernel.shmmax is 0.5 times the random access memory (RAM) size.
250 32000 100 128 is a value recommended by Oracle. Change the value based on the site
requirements.
The official Oracle document Note 567506.1 specifies that the maximum size of a single shared
memory segment is half of the physical memory size.
The RAM is the physical memory.
For details about how to query the RAM size, see 2.3.6 SSTAC006A-Checking the Swap Partition.
The value of kernel.shmmni is 4096.
The value of kernel.shmall is the value of kernel.shmmax divided by the page size.
The official Oracle document Note:301830.1 specifies that the getconf PAGE_SIZE command is used
to check the page size.
The value of fs.file-max is 6815744.
The value of fs.aio-max-nr is 1048576.
The value of net.ipv4.ip_local_port_range is 9000 65500.
The value of net.core.rmem_default is 262144.
The value of net.core.rmem_max is 4194304.
The value of net.core.wmem_default is 262144.
The value of net.core.wmem_max is 1048576.
Precaution
The parameter values described in the reference standard are recommended by Oracle.
Change the values based on the site requirements.
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check kernel parameters.
----End
Exception Handling
If kernel parameter values are different from expected values, modify them using either of the
following methods:
The settings of kernel parameters that are set using the immediate effective method expire
after the operating system restarts.
The settings of kernel parameters that are set using the system restart effective method do
not expire after the operating system restarts.
If a kernel parameter involves multiple values, enclose these values in double quotation marks.
For example, to change the value of kernel.sem to 250 32000 100 128, run the following command:
# sysctl -w kernel.sem="250 32000 100 128"
After restarting the operating system, check the values of the kernel parameters.
− If the kernel parameter values comply with the reference standard, these kernel
parameters are successfully modified.
− If the kernel parameter values do not comply with the reference standard,
modification fails. In this case, contact Huawei engineers.
Reference Standard
The limits.conf file contains the following content:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check the limits.conf file.
# cat /etc/security/limits.conf
For example, the following information is displayed:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
----End
Exception Handling
If the /etc/security/limits.conf file does not comply with the reference standard, perform the
following steps:
Step 1 Log in to the operating system as the root user.
Step 2 Modify the /etc/security/limits.conf file.
# vi /etc/security/limits.conf
Ensure that the file contains the following content:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
----End
Reference Standard
When Oracle database users use the Bourne shell, Bash shell, or Korn shell, the
/etc/profile.local file contains the following content:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
When Oracle database users use the C shell, the /etc/csh.login.local file contains the
following content:
if ( $USER == oracle ) then
limit maxproc 16384
limit descriptors 65536
endif
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check the shell used by Oracle database users.
$ echo $SHELL | awk -F'/' '{print $NF}'
bash
If the command output is bash, Oracle database users use the Bash shell.
If the command output is ksh, Oracle database users use the Korn shell.
If the command output is sh, Oracle database users use the Bourne shell.
If the command output is csh, Oracle database users use the C shell.
Step 3 Check the /etc/profile.local or /etc/csh.login.local file.
If the command output in Step 2 is bash, ksh, or sh, check the /etc/profile.local file.
$ more /etc/profile.local
The file must contain the following content:
if [ $USER = oracle ]; then
if [ $SHELL = /bin/ksh ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
----End
Exception Handling
If shell environment configurations for Oracle database users do not comply with the
reference standard, modify these configurations.
Obtain customer approval before modification and restart the database instance after
modification.
If Oracle database users use the C shell, modify the /etc/csh.login.local file.
# vi /etc/csh.login.local
Add the following content to the file:
if ( $USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
endif
Step 3 Restart the database instance for the modification to take effect.
$ sqlplus '/ as sysdba'
SQL> shutdown immediate
SQL> startup
----End
Reference Standard
The /etc/pam.d/login file contains session required pam_limits.so.
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check whether the /etc/pam.d/login file contains session required pam_limits.so.
# cat /etc/pam.d/login | grep "pam_limits.so"
session required pam_limits.so
----End
Exception Handling
If the /etc/pam.d/login file does not contain session required pam_limits.so, modify the file.
Reference Standard
The operating system version is as follows:
SUSE Linux Enterprise Server 10 or later, kernel version 2.6.16.21 or later.
The following software packages exist:
− binutils-2.16.91.0.5 or later
− compat-libstdc++-5.0.7-22.2 or later
− gcc-4.1.0 or later
− gcc-c++-4.1.0 or later
− glibc-2.4-31.63 or later
− glibc-32bit-2.4-31.63 or later
− glibc-devel-2.4-31.63 or later
− glibc-devel-32bit-2.4-31.63 or later
− libaio-0.3.104 or later
− libaio-32bit-0.3.104 or later
− libaio-devel-0.3.104 or later
− libelf-0.8.5(Perform this check only in the SUSE Linux 10 version)
− libgcc-4.1.0 or later
− libstdc++-4.1.0 or later
− libstdc++-devel-4.1.0 or later
− make-3.80 or later
− sysstat-6.0.2 or later
Precaution
Versions earlier than glibc-2.4-31.63 have limitations in memory allocation and may cause
severe problems such as Oracle RAC restart.
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check the operating system version.
# cat /etc/SuSE-release
For example, the following information is displayed:
SUSE Linux Enterprise Server 10 (x86_64)
VERSION = 10
PATCHLEVEL = 1
# uname -a
For example, the following information is displayed:
Linux linux1104 2.6.16.60-0.21-smp #1 SMP Tue May 6 12:41:02 UTC 2008 x86_64
x86_64 x86_64 GNU/Linux
If the command output lists software packages described in the reference standard, required
software packages exist in the system.
----End
Exception Handling
If required software packages do not exist or existing software packages are not required
packages, obtain customer approval and install required software packages.
Contact Huawei engineers and install required software packages under their guidance.
Reference Standard
When the RAM size ranges from 1 GB to 2 GB, the swap partition size is 1.5 times the
RAM size.
When the RAM size is greater than 2 GB but less than or equal to 16 GB, the swap
partition size equals the RAM size.
If the RAM size is greater than 16 GB, the swap partition size is 16 GB.
Precaution
The swap partition size described in the reference standard meets the lowest requirements.
You can extend the swap partition based on service requirements.
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check the RAM size and the swap partition size.
Check the RAM size.
# grep MemTotal /proc/meminfo
For example, the following information is displayed:
MemTotal: 16327896 kB
----End
Exception Handling
If the swap partition size does not comply with the reference standard, extend the swap
partition.
Before extending the swap partition, obtain customer approval, verify that available disk
space is sufficient to extend the swap partition, and determine whether restarting the operating
system is required.
Contact Huawei engineers and perform the following steps under their guidance:
Step 1 Log in to the operating system as the root user.
Step 2 Check whether available disk space is sufficient to extend the swap partition.
# df -k
/dev/sda2 15735128 2132652 13602476 14% /
tmpfs 4 0 4 0% /dev/vx
udev 16451456 320 16451136 1% /dev
/dev/sda7 1052184 88440 963744 9% /boot
Reference Standard
The values in the active_objs and num_objs columns are not 0 for the kioctx and kiocb
attributes of the /proc/slabinfo file system.
The values of disk_asynch_io and filesystemio_options are TRUE and asynch
respectively.
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the root user.
Step 2 Check whether asynchronous I/O is enabled.
# cat /proc/slabinfo | grep kio | awk -F' ' '{print $1 "active_objs=" $2 "num_objs=" $3}'
kioctx active_objs=100 num_objs=150
kiocb active_objs=5 num_objs=15
If the values in the active_objs and num_objs columns are not 0 for kioctx and kiocb,
asynchronous I/O is enabled.
Step 3 Switch to the oracle user.
# su - oracle
$ sqlplus '/ as sysdba'
Step 4 Check whether the values of disk_asynch_io and filesystemio_options are TRUE and
asynch respectively.
SQL> show parameter disk_asynch_io;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
----End
Exception Handling
If asynchronous I/O configurations do not comply with the reference standard, modify the
configurations.
Obtain customer approval before modification and restart the database instance after
modification.
If the values of disk_asynch_io and filesystemio_options do not comply with the reference
standard, perform the following steps:
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
Reference Standard
The size of the /dev/shm file system is equal to the physical memory.
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check the physical memory of the operating system.
$ grep MemTotal /proc/meminfo
Information similar to the following is displayed:
MemTotal: 16327896 kB
The command output indicates that the physical memory is 16327896 KB.
Step 3 Check the size of the /dev/shm file system.
$ df -k| grep shm
Information similar to the following is displayed:
shm 16777216 1131136 15646080 7% /dev/shm
The value in the second column indicates that the size of the /dev/shm file system is
16777216 KB.
----End
Exception Handling
If the check result is different from the expected result, you must resolve this problem.
You must uninstall the file system or restart the database during rectification. As a result, the
service database cannot be read or written. Estimate service impacts and then resolve the
problem.
If the shared memory size is less than the physical memory size, contact Huawei engineers to
estimate rectification risks and perform the following steps:
Step 1 Log in to the operating system as the root user.
Step 2 Unmount the /dev/shm file system.
# umount /dev/shm
If device is busy is displayed, stop the database and then unmount the file system.
Reference Standard
Database version: Enterprise Edition Release 11.1.0.7.0
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check the database version.
$ strings $ORACLE_HOME/bin/oracle | grep 'NLSRTL Version'
NLSRTL Version 11.1.0.7.0 - Production
Exception Handling
If the database version does not comply with the reference standard, upgrade the database.
Services and the database must be stopped during upgrade.
If the database version is earlier than 11.1.0.7.0, for example, 11.1.0.6.0, contact Huawei
engineers to obtain and install the 11.1.0.7.0 installation package.
If the Oracle database on the site has been launched for commercial use, obtain customer
approval, create an upgrade plan, and upgrade the database based on the plan.
Reference Standard
The patches of the Oracle database software contain one group of the following patches:
Patches 14739378 and 7715339
Patches 14275623 and 7715339
Patches 13923474 and 7715339
Patches 13621679 and 7715339
Patches 13343461 and 7715339
Patches 12827740 and 7715339
Patches 12419384 and 7715339
Precaution
Perform this check only in the Oracle HA environment.
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check the database patch versions.
Run the opatch lsinventory -all command to check database patch versions.
If the preceding command does not exist, run the $ORACLE_HOME/OPatch/opatch
lsinventory -all command.
----End
Exception Handling
Reference Standard
The Oracle CRS version is 11.1.0.7.0.
The one-off patch 11724953 has been installed for the Oracle CRS.
The one-off patch package of the Oracle database software contains one group of the
following patches:
− Patches 11724953, 14739378, and 7715339
− Patches 11724953, 14275623, and 7715339
− Patches 11724953, 13923474, and 7715339
− Patches 11724953, 13621679, and 7715339
− Patches 11724953, 13343461, 7715339, and 9549042
− Patches 11724953, 12827740, 7715339, and 9549042
− Patches 11724953, 12419384, 7715339, and 9549042
Precaution
Perform this check only in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check the Oracle CRS version.
$ crsctl query crs softwareversion
Oracle Clusterware version on node [linux1102] is [11.1.0.7.0]
The command output indicates that the Oracle CRS version is 11.1.0.7.0.
Step 3 Check t one-off patches of the Oracle database software.
Run the opatch lsinventory -all command to check one-off patches of the database.
If the opatch lsinventory -all command does not exist, run the
$ORACLE_HOME/OPatch/opatch lsinventory -all command.
Step 4 Check whether the one-off patch 11724953 has been installed for the Oracle CRS.
Run the opatch lsinventory -all -oh $ORA_CRS_HOME | egrep "Patch 11724953"
command to check the versions of one-off patches of the Oracle CRS.
If the preceding command does not exist, run the $ORACLE_HOME/OPatch/opatch
lsinventory -all -oh $ORA_CRS_HOME | egrep "Patch 11724953" command.
Patch 11724953 : applied on Wed Nov 30 10:52:07 CST 2011
The command output indicates that the one-off patch 11724953 has been installed for the
Oracle CRS.
----End
Exception Handling
Install the latest Oracle database patches. For details, see the A&S066-20111121-Notice on
Prewarning for Oracle11gR1 Defects.
You can obtain this document from Application and Software Product Line > Service and
Software Public > IT Outsourcing > Precautions Rectification and Bulletins.
Reference Standard
The operating system character set used on database clients is consistent with the database
character set.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check the operating system character set.
$ echo $NLS_LANG
AMERICAN_AMERICA.AL32UTF8
----End
Exception Handling
If the database character set meets deployment plan requirements but is inconsistent with
the operating system character set used on database clients, modify Oracle database
environment variables. The modification does not affect services.
If the database character set does not meet deployment plan requirements and affects
services, change the database character set or recreate the database instance.
If the database character set is inconsistent with the operating system character set,
perform the following steps:
1. Log in to the operating system as the oracle user.
2. Modify the environment variable file of the Oracle database.
− If the operating system is SuSE Linux, modify the .bash_profile.
$ cd ~
$ vi .bash_profile
Reference Standard
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check database parameters.
SQL> select y.ksppstvl value from sys.x$ksppi x, sys.x$ksppcv y where x.inst_id =
userenv('Instance') and y.inst_id = userenv('Instance') and x.indx = y.indx and
x.ksppinm like lower('Parameter name');
The returned parameter values must be the expected values provided in Table 2-3.
For example, check the value of log_checkpoint_timeout.
SQL> select y.ksppstvl value from sys.x$ksppi x, sys.x$ksppcv y where x.inst_id =
userenv('Instance') and y.inst_id = userenv('Instance') and x.indx = y.indx and
x.ksppinm like lower('log_checkpoint_timeout');
VALUE
--------------------------------------------------------------------------------
1800
----End
Exception Handling
If the check result is different from the expected result, modify them based on service
requirements.
Restart the database after modifying some database parameters, which affects services.
Therefore, obtain customer approval before modifying these database parameters.
Reference Standard
The spfile has been configured for the Oracle database.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether the spfile exists.
SQL> select value from v$parameter p where name = 'spfile';
VALUE
--------------------
/oracle/app/product/11g/db/dbs/spfiletest.ora
Exception Handling
In the preceding command, /dev/vg_ora/rlv_spfile indicates the spfile name and path and is a raw device
on a disk array. Change the spfile name and path based on the site requirements.
If the site uses local disks to store database files, run the create spfile from memory; command. This
command will generate the spfile spfile$ORACLE_SID.ora in $ORACLE_HOME/dbs/. If the value of
$ORACLE_HOME is orcl, the spfile name is spfileorcl.ora.
Step 4 If the spfile is not stored in the default path $ORACLE_HOME/dbs/, perform the following
steps:
Open the init$ORACLE_SID.ora file. If this file does not exist, create it first.
For example, if the value of $ORACLE_HOME is orcl, run the following command to open
the file:
$ vi $ORACLE_HOME/dbs/initorcl.ora
Add the following content to the file:
SPFILE='/dev/vg_ora/rlv_spfile'
In the preceding content, /dev/vg_ora/rlv_spfile indicates the spfile name and path. Change
the spfile name and path based on the site requirements.
Step 5 Shut down the database.
SQL> shutdown immediate;
Step 6 Restart the database.
SQL> startup
----End
Reference Standard
The database recycle bin is OFF.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check recycle bin configurations.
SQL> select y.ksppstvl value from sys.x$ksppi x, sys.x$ksppcv y where x.inst_id =
userenv('Instance') and y.inst_id = userenv('Instance') and x.indx = y.indx and
x.ksppinm like lower('recyclebin');
VALUE
--------------------------------------------------------------------------------
OFF
Exception Handling
If the database recycle bin contains data that was added a specified number of days earlier,
clear the recycle bin.
Reference Standard
The status of auto optimizer stats collection is ENABLED and the status of auto space
advisor and sql tuning advisor is DISABLED.
Precaution
After automatic maintenance tasks are disabled, the database does not collect statistics.
Data is unevenly distributed when services run or a large amount of data is imported into the
database. You are advised to manually collect statistics.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether automatic maintenance tasks are disabled.
SQL> select t.client_name, t.status from dba_autotask_client t;
CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection ENABLED
----End
Exception Handling
If the check result is different from the expected result, you must resolve this problem.
Reference Standard
Resource plans are disabled.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether resource plans are disabled.
1. Check whether the system resource plan is disabled.
SQL> select a.value from v$parameter a where a.name = 'resource_manager_plan';
If no information is displayed, the system resource plan is disabled.
2. Check whether window resource plans are disabled.
SQL> select window_name, resource_plan from dba_scheduler_windows where
resource_plan is not null;
If no information is displayed, the window resource plans are disabled.
----End
Exception Handling
Currently, most sites where the Oracle database 11g Release 1 is in commercial use do not use
resource plans. Disable resource plans for these sites to prevent bugs.
If resource plans are enabled, obtain customer approval and disable them based on service
requirements.
SQL> execute
dbms_scheduler.set_attribute('TUESDAY_WINDOW','RESOURCE_PLAN','');
Disable the WEDNESDAY_WINDOW plan.
SQL> execute
dbms_scheduler.set_attribute('WEDNESDAY_WINDOW','RESOURCE_PLAN','')
;
Disable the THURSDAY_WINDOW plan.
SQL> execute
dbms_scheduler.set_attribute('THURSDAY_WINDOW','RESOURCE_PLAN','');
Disable the FRIDAY_WINDOW plan.
SQL> execute
dbms_scheduler.set_attribute('FRIDAY_WINDOW','RESOURCE_PLAN','');
Disable the SATURDAY_WINDOW plan.
SQL> execute
dbms_scheduler.set_attribute('SATURDAY_WINDOW','RESOURCE_PLAN','');
Disable the SUNDAY_WINDOW plan.
SQL> execute
dbms_scheduler.set_attribute('SUNDAY_WINDOW','RESOURCE_PLAN','');
Disable the WEEKNIGHT_WINDOW plan.
SQL> execute
dbms_scheduler.set_attribute('WEEKNIGHT_WINDOW','RESOURCE_PLAN','')
;
Disable the WEEKEND_WINDOW plan.
SQL> execute
dbms_scheduler.set_attribute('WEEKEND_WINDOW','RESOURCE_PLAN','');
Step 4 Verify that resource plans are disabled.
1. Verify that the system resource plan is disabled.
SQL> select a.value from v$parameter a where a.name = 'resource_manager_plan';
No information is displayed.
2. Verify that window resource plans are disabled.
SQL> select window_name, resource_plan from dba_scheduler_windows where
resource_plan is not null;
No information is displayed.
----End
Reference Standard
The password validity period for Oracle database users is unrestricted.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether the password validity period is unrestricted.
SQL> select distinct a.username, b.profile, b.resource_name, b.limit from dba_users a,
dba_profiles b where a.profile = b.profile and a.profile is not null and b.resource_type =
'PASSWORD' and b.resource_name = 'PASSWORD_LIFE_TIME' and b.limit <>
'UNLIMITED' and a.username not in (select c.username from dba_users_with_defpwd
c) and a.username not in ('SYS','SYSTEM','SYSMAN','MGMT_VIEW',
'ANONYMOUS', 'FLOWS_FILES', 'WKPROXY', 'WKSYS', 'FLOWS_030000',
'OLAPSYS', 'APEX_PUBLIC_USER' , 'DBSNMP');
If no information is displayed, the password validity period is unrestricted; otherwise, the
password validity period is restricted.
----End
Exception Handling
If the password validity period is restricted, determine whether to remove the restriction with
the customer.
After the restriction is removed, services must gain access to the database again.
Obtain the value of profile_name from the profile field in the following SQL statement.
SQL> select username,profile from dba_users where username='username';
----End
Reference Standard
User login triggers are disabled.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether user login triggers are disabled.
SQL> select owner, trigger_name from dba_triggers a where trim(a.triggering_event) =
'LOGON' and status ='ENABLED';
If no information is displayed, user login triggers are disabled.
----End
Exception Handling
Reference Standard
The number of consecutive incorrect password inputs is unrestricted for Oracle database
users.
Precaution
If the number of consecutive incorrect password inputs is unrestricted, the database does not
lock an account after a user consecutively enters an incorrect password for times.
Skip this check if the customer must comply with special security requirements.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether the number of consecutive incorrect password inputs is unrestricted.
SQL> select distinct a.username, b.profile, b.resource_name, b.limit from dba_users a,
dba_profiles b where a.profile = b.profile and a.profile is not null and b.resource_type =
'PASSWORD' and b.resource_name = 'FAILED_LOGIN_ATTEMPTS' and b.limit <>
'UNLIMITED' and a.username not in (select c.username from dba_users_with_defpwd
c) and a.username not in ('SYS','SYSTEM','SYSMAN','MGMT_VIEW',
'ANONYMOUS', 'FLOWS_FILES', 'WKPROXY', 'WKSYS', 'FLOWS_030000',
'OLAPSYS', 'APEX_PUBLIC_USER');
If no information is displayed, the number of consecutive incorrect password inputs is
unrestricted; otherwise, the number is restricted.
----End
Exception Handling
If the number of consecutive incorrect password inputs is restricted, remove the restriction.
Obtain customer approval before removing the restriction. After the restriction is removed,
services must gain access to the database again.
Obtain the value of profile_name from the profile field in the following SQL statement.
SQL> select username,profile from dba_users where username='username';
----End
Reference Standard
The listener log recording function is disabled.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check whether the listener log recording function is disabled.
$ lsnrctl show log_status | grep "log_status"
LISTENER parameter "log_status" set to OFF
If the command output contains LISTENER parameter "log_status" set to OFF, the
listener log recording function is disabled.
----End
Exception Handling
If the command output contains LISTENER parameter "log_status" set to ON, the listener
log recording function is enabled. You must disable this function.
The database does not record listener logs after the listener log recording function is disabled,
which may fail to meet security or service requirements of the customer. Therefore, obtain
customer approval before disabling the listener log recording function.
Reference Standard
The listener trace log recording function is disabled.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check whether the listener trace log recording function is disabled.
$ lsnrctl show trc_level
LISTENER parameter "trc_level" set to OFF
If the command output contains LISTENER parameter "trc_level" set to OFF, the listener
trace log recording function is disabled.
----End
Exception Handling
If the command output does not contain LISTENER parameter "trc_level" set to OFF, the
listener trace log recording function is enabled. In this case, you must disable this function.
The database does not record listener trace logs after the listener trace log recording function
is disabled, which may fail to meet security or service requirements of the customer.
Therefore, obtain customer approval before disabling the listener trace log recording function.
Reference Standard
The exclusive connection mode is configured for database clients. That is, DEDICATED is
returned after the command for querying the database connection mode is executed.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether the exclusive connection mode is configured for database clients.
SQL> select distinct server "mode" from v$session;
mode
-----------------
DEDICATED
----End
Exception Handling
If the shared connection mode is configured for database clients, disable this mode unless
special service requirements.
Reference Standard
The SQLNET.OUTBOUND_CONNECT_TIMEOUT parameter is disabled.
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check the sqlnet.ora configuration file.
If the TNS_ADMIN environment variable is configured for the database, run the
following command:
$ egrep "OUTBOUND_CONNECT_TIMEOUT" $TNS_ADMIN/sqlnet.ora
If the TNS_ADMIN environment variable is not configured for the database, run the
following command:
$ egrep "OUTBOUND_CONNECT_TIMEOUT"
$ORACLE_HOME/network/admin/sqlnet.ora
If no information is displayed, SQLNET.OUTBOUND_CONNECT_TIMEOUT is
disabled. If SQLNET.OUTBOUND_CONNECT_TIMEOUT is enabled, information
similar to the following is displayed:
SQLNET.OUTBOUND_CONNECT_TIMEOUT=60
----End
Exception Handling
$ vi $TNS_ADMIN/sqlnet.ora
If the TNS_ADMIN environment variable is not configured for the database, modify the
$ORACLE_HOME/network/admin/sqlnet.ora file.
$ vi $ORACLE_HOME/network/admin/sqlnet.ora
Delete the following content from the file, or use a comment character (#) to comment out the
following content:
SQLNET.OUTBOUND_CONNECT_TIMEOUT=60
If multiple listeners exist, run the following commands for each listener:
$ lsnrctl start Listener name
$ lsnrctl stop Listener name
----End
Reference Standard
The database instance is in the OPEN state.
The database is in READ WRITE open mode. If the database is used for disaster
recovery, this item does not apply.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the database instance status.
SQL> select status from v$instance;
STATUS
------------
OPEN
The command output indicates that the database instance is in the OPEN state.
Step 4 Check the database open mode.
SQL> select open_mode,database_role from v$database;
OPEN_MODE DATABASE_ROLE
-------------------- ----------------
READ WRITE PRIMARY
Exception Handling
Changing the database open mode requires restarting the database, which affects services.
Therefore, change the database open mode when service traffic is stopped or light.
If the database is in READ ONLY open mode, change this mode to READ WRITE as
follows:
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Restart the database.
SQL> shutdown immediate;
SQL> startup mount;
Step 4 Change the database open mode to READ WRITE.
SQL> alter database open read write;
----End
Reference Standard
The number of Oracle processes is less than or equal to 80% of the processes value.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the number of Oracle processes.
----End
Exception Handling
If the number of Oracle processes is greater than 80% of the processes value, increase the
processes value.
If services are busy or encounter network attacks, or zombie database processes run on the
database server, contact Huawei engineers.
Reference Standard
The OCR is complete and is not physically or logically damaged.
Precaution
Perform this check only in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Access the bin directory in the CRS installation directory.
$ cd $CRS_HOME/bin
Step 3 Check OCR integrity.
$ ./ocrcheck
For example, the following information is displayed:
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 497744
Used space (kbytes) : 4692
Available space (kbytes) : 493052
ID : 1574958640
Device/File Name : /dev/diskgroup/dg_ocr
Device/File integrity check succeeded
If the command output contains Device/File integrity check succeeded, the check succeeds
and the OCR is complete.
----End
Exception Handling
If checking OCR integrity fails, report related information to Huawei engineers and restore
the OCR.
Reference Standard
The number of voting disks is an odd number. That is, the number in Located 1 voting disk(s)
is odd.
Precaution
Perform this check only in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Access the bin directory in the CRS installation directory.
$ cd $ORA_CRS_HOME/bin
Step 3 Check the number of voting disks.
$ ./crsctl query css votedisk
For example, the following information is displayed:
0. 0 /dev/diskgroup/dg_lock
Located 1 voting disk(s).
Exception Handling
If the number of voting disks is an even number, delete voting disks until the number of
voting disks becomes odd.
After deleting voting disks, you must restart the database, which may interrupt services.
Therefore, obtain customer approval before deleting voting disks.
Contact Huawei engineers and delete voting disks under their guidance.
Reference Standard
All resources in the cluster are in the ONLINE state.
Precaution
Perform this check only in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check the cluster status.
$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora....CKUP.dg ora....up.type 0/5 0/ ONLINE ONLINE p570...ent8
ora.DG_DATA.dg ora....up.type 0/5 0/ ONLINE ONLINE p570...ent8
ora....NDEX.dg ora....up.type 0/5 0/ ONLINE ONLINE p570...ent8
ora.DG_OCR.dg ora....up.type 0/5 0/ ONLINE ONLINE p570...ent8
ora.DG_ORA.dg ora....up.type 0/5 0/ ONLINE ONLINE p570...ent8
ora....ER.lsnr ora....er.type 0/5 0/ ONLINE ONLINE p570...ent8
ora....RA.lsnr ora....er.type 0/5 0/ ONLINE ONLINE p570...ent8
ora....N1.lsnr ora....er.type 0/5 0/0 ONLINE ONLINE p570...ent9
If the command output shows that all resources in the cluster are in the ONLINE state, the
cluster status is normal; otherwise, the cluster status is abnormal.
----End
Exception Handling
If some resources are in the OFFLINE state, these resources are not enabled. In this case,
bring these resources online.
Reference Standard
The value of CACHE_SIZE forSYS.IDGEN1$ is equal to or greater than 1000.
The value of CACHE_SIZE forSYS.AUDSES$ is equal to or greater than 10000.
Precaution
Perform this check only in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Exception Handling
If the value of CACHE_SIZE for SYS.IDGEN1$ and SYS.AUDSES$ is less than 1000,
modify CACHE_SIZE.
Reference Standard
The flashback path is closed. That is, the value is empty in the VALUE column for
db_recovery_file_dest.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether the flashback path is closed.
SQL> show parameter DB_RECOVERY_FILE_DEST;
NAME TYPE VALUE
--------------------------- ----------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 0
If the value is empty in the VALUE column for db_recovery_file_dest, the flashback path is
closed.
----End
Exception Handling
Reference Standard
The value of diagwait is equal to 13.
Precaution
Perform this check only in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check the value of diagwait.
$ crsctl get css diagwait
13
If the returned value is 13 (seconds), diagwait complies with the expected result; otherwise,
you must reset diagwait.
----End
Exception Handling
Reference Standard
Indexes are valid. That is, indexes are not in the UNUSABLE state.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether indexes are valid.
SQL> select a.owner, a.index_name, a.status from dba_indexes a where a.status =
'UNUSABLE' union all select a.index_owner, a.index_name, a.status from
dba_ind_partitions a where a.status = 'UNUSABLE';
For example, the following information is displayed:
no rows selected
----End
Exception Handling
If indexes are in the UNUSABLE state, recreate them by using either of the following
methods:
Recreate indexes online by running the following command:
SQL> alter index Index name rebuild online nologging;
Recreate indexes locally by running the following commands:
SQL> drop index Index_name;
SQL> create index Index_name on Table_name(Field 1, Field 2,…) tablespace
Tablespace_name local;
Reference Standard
The partition table does not contain global indexes.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether the partition table contains global indexes.
SQL> select a.owner, a.table_name, a.index_name, a.partitioned, a.status from
dba_indexes a, dba_part_tables b where a.table_name = b.table_name and
a.owner=b.owner and a.owner not in
('SYS','SYSTEM','MDSYS','SYSMAN','MGMT_VIEW', 'ANONYMOUS',
'FLOWS_FILES', 'WKPROXY', 'WKSYS', 'FLOWS_030000', 'OLAPSYS',
'APEX_PUBLIC_USER') and a.partitioned <> 'YES';
For example, the following information is displayed:
no rows selected
----End
Exception Handling
If the partition table contains global indexes, delete these global indexes.
----End
Reference Standard
The parallelism degrees of service objects are 1.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the parallelism degrees of service objects.
SQL> select owner, object_name, degree from (select a.owner, a.table_name
object_name, a.degree from dba_tables a where trim(a.degree) > '1' union all select
a.owner, a.index_name object_name, a.degree from dba_indexes a where trim(a.degree)
> '1' ) b where b.owner not in ('SYS', 'SYSTEM', 'SYSMAN', 'MGMT_VIEW') and
b.owner not in (select c.username from dba_users_with_defpwd c);
If the following information is displayed, service objects whose parallelism degree is 1 do not
exist:
no rows selected
----End
Exception Handling
If the parallelism degrees of service objects are not 1, change the degrees.
----End
Reference Standard
The database does not contain invalid objects.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check for invalid objects.
SQL> select t.owner, t.object_type, t.object_name, t.status from dba_objects t where
t.status = 'INVALID';
If the following information is displayed, no invalid object exists:
no rows selected
----End
Exception Handling
Contact Huawei engineers to delete invalid objects and perform the following steps:
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Recompile invalid objects.
SQL> alter Value in the object_type column Value in the owner column.Value in the
object_name column compile;
Example: alter procedure test.p_rundata compile;
If objects are still invalid after recompilation, contact Huawei engineers to resolve this
problem.
----End
Reference Standard
The space usage of the disk where $ORACLE_HOME is located is less than or equal to 80%.
The space usage of the disk where $ORA_CRS_HOME in the RAC network mode is located
is less than or equal to 80%.
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check the space usage of the disk where $ORACLE_HOME is located.
$ df -k $ORACLE_HOME
Filesystem 1024-blocks Free %Used Iused %Iused Mounted on
/dev/lvoracle 41943040 34491340 18% 43194 1% /opt/oracle
Step 3 Check the space usage of the disk where $ORA_CRS_HOME is located.
$ df -k $ORA_CRS_HOME
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 10490104 4133284 6356820 40% /
----End
Exception Handling
If the disk usage is greater than 80%, delete unnecessary files from the disk.
Reference Standard
The interval for collecting AWR snapshots is 30 minutes, and the database retains the
snapshots for eight days by default.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the interval for collecting AWR snapshots.
SQL> select snap_interval,retention from dba_hist_wr_control;
SNAP_INTERVAL RETENTION
--------------- -----------------
+00000 00:30:00.0 +00008 00:00:00.0
In the example, the value of SNAP_INTERVAL is 00:30:00.0, which indicates that the
collection interval is 30 minutes, and the value of RETENTION is 00008, which indicates
that the reservation duration is eight days.
----End
Exception Handling
If the check results are not the expected results, you must rectify the fault.
Before rectification, expand the SYSAUX tablespace. Ensure that the SYSAUX tablespace
has sufficient space for storing AWR information after frequency is adjusted. Contact Huawei
engineers for guidance to expand the SYSAUX tablespace.
For example, if the interval is 1 hour, the database retains the snapshots for eight days, and the
the size of the SYSAUX tablespace is 5 GB, expand the SYSAUX tablespace by at least 5
GB. If you have any questions, contact Huawei technical support engineers.
Reference Standard
The cluster component integrity verification tool displays the message successful.
Precaution
Perform this check only in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Access /bin for CRS installation.
$ cd $ORA_CRS_HOME/bin
Step 3 Use the Cluster Verification Utility (CVU) to check RAC cluster component integrity.
$ ./cluvfy comp sys -n all -p crs -verbose
$ ./cluvfy comp sys -n all -p database -verbose
$ ./cluvfy comp nodecon -n all -verbose
$ ./cluvfy comp admprv -n all -o user_equiv -verbose
$ ./cluvfy comp peer -n all -verbose
$ ./cluvfy comp clu -n all -verbose
$ ./cluvfy comp crs -n all -verbose
$ ./cluvfy comp ocr -n all -verbose
If the command output contains information similar to Verification of X was successful, the
RAC cluster component is complete. In the message, X indicates the name of the component
to be checked.
If a message indicating that the system package does not exist is displayed when you run the cluvfy
comp sys -n all -p crs –verbose or cluvfy comp sys -n all -p database -verbose command for the AIX
operating system, skip the message.
vacpp.cmp.core:8.0.0.13
vac.C:8.0.0.13
freeware.gcc.rte:3.4.5.0
mqm.server.rte:6.0
mqm.client.rte:6.0
gdb-6.3
xlfrte:10.1
make-3.81
freeware.gnu.tar.rte:1.15.0.0
sna.rte:6.3
python-2.3
freeware.zip.rte:2.31
----End
Exception Handling
If the check result is different from the expected result, you must resolve this problem.
Reference Standard
The database does not contain invalid, failed, or interrupted scheduled tasks. That is, the
displayed result of Step 3 is blank.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Log in to the database.
$ sqlplus '/ as sysdba'
Step 3 Check status of database scheduled tasks.
SQL> select to_char(job) job_name,decode(broken, 'Y', 'DISABLED', 'ENABLE') state
from dba_jobs where broken='Y' union all select job_name, state from
dba_scheduler_jobs where state='DISABLED' and system='FALSE';
If the message no rows selected is displayed, the scheduled tasks are normal.
----End
Exception Handling
If the check result is different from the expected result, you must resolve this problem.
If the returned result is blank, the scheduled tasks are abnormal. Collect returned results and
contact Huawei engineers for troubleshooting.
Reference Standard
The REQUIRED_RESOURCES attribute of the database instance is the ASM resource of
the corresponding node.
Precaution
Perform this check only when the Oracle RAC is used and the ASM is enabled.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Obtain the CRS resource of the corresponding database instance.
$ crs_stat | grep inst | grep $ORACLE_SID
NAME=ora.ora11g.ora11g1.inst
The CRS resource corresponding to the database instance ora11g1 is ora.ora11g.ora11g1.inst, and the
CRS resource corresponding to the ASM1 is ora.cbp1a.ASM1.asm.
----End
Exception Handling
If the check result is different from the expected result, you must resolve this problem.
Before rectify the fault, confirm the rectification with Huawei engineers.
Reference Standard
The listener is configured with a floating IP address. That is, the command output in is
consistent with the floating IP address or host name in the /etc/hosts file.
Precaution
Perform this check only in the Oracle HA environment and skip this check for other database
environment.
Perform this check on both the active and standby node for the Oracle HA environment
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check whether the listener is configured with a floating IP address.
If the TNS_ADMIN environment variable is configured for the Oracle database, run the
following command:
$ cat $TNS_ADMIN/listener.ora | grep HOST
If the TNS_ADMIN environment variable is not configured for the Oracle database, run
the following command:
$ cat $ORACLE_HOME/network/admin/listener.ora | grep HOST
If the command output is consistent with the floating IP address or host name in the /etc/hosts
file, the listener is configured with a floating IP address.
----End
Exception Handling
If the listener is not configured with a floating IP address, resolve this problem.
Resolving this problem requires restarting the database, modifying service configurations, and
restarting services.
Reference Standard
Listening processes are displayed under the oracle user, and the listening status is normal.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check whether the listener service process exists.
$ ps -ef | grep lsnr | grep -v grep
oracle 1311 1 0 Sep 18 - 00:00:01
/oracle/app/product/11g/db/bin/tnslsnr LISTENER -inherit
The command output indicates that the listener service process exists.
Step 3 Check listening status.
$ lsnrctl STATUS <listener_name>
For example, check status of LISTENER.
$ lsnrctl status LISTENER
LSNRCTL for IBM/AIX RISC System/6000: Version 11.1.0.6.0 - Production on 01-MAR-
2013 16:56:46
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.71.166.109)
(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for IBM/AIX RISC System/6000: Version 11.1.0.6.0
- Production
Start Date 27-FEB-2013 14:35:30
Uptime 2 days 2 hr. 21 min. 16 sec
Trace Level off
Security ON: Local OS Authentication
SNMP ON
Listener Parameter File
/opt/oracle/product/11.1.0/db_1/network/admin/listener.ora
Listener Log File
/opt/oracle/diag/tnslsnr/P570dvclient1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.71.166.109)(PORT=1521)))
Services Summary...
Service "ora11g1" has 1 instance(s).
Instance "ora11g1", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
Exception Handling
If the listener service process does not exist, resolve this problem.
Reference Standard
The database listener uses the static registration mode. That is, the database listener is in the
UNKNOWN state.
Precaution
Perform this check only in the Oracle HA or single-cluster environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Obtain the listener run as the oracle user.
$ ps -ef | grep lsnr | grep -v grep
oracle 1311 1 0 Sep 18 - 00:00:01
/oracle/app/product/11g/db/bin/tnslsnr LISTENER -inherit
The command output indicates that the listener is in the UNKNOWN state.
----End
Exception Handling
Local_node_listener_name: indicates the listener name. The default listener name is LISTENER.
sid_name: indicates the database instance name.
GLOBAL_DBNAME: indicates the global database instance name. You can set this parameter to
the value of sid_name.
ORACLE_HOME: indicates the database home directory.
An example of the file content after modification is as follows:
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=ora11g)
(GLOBAL_DBNAME=ora11g)
(ORACLE_HOME=/opt/oracle/oracle/product/11.1/)
)
)
Reference Standard
The public and private network adapters in the CRS are virtual network adapters. That is, the
network adapter names are in the bondN format in the command output in .
Precaution
Perform this check only on SUSE Linux in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Access the bin directory in the CRS installation directory.
$ cd $CRS_HOME/bin
Step 3 Check cluster network adapter configurations.
$ ./oifcfg getif
For example, the following information is displayed:
bond0 10.71.111.128 global public
bond1 192.168.10.0 global cluster_interconnect
The command output indicates that the public and private network adapters in the CRS are
virtual network adapters.
----End
Exception Handling
If the public and private network adapters in the CRS are not virtual network adapters,
reconfigure the network adapters.
Obtain customer approval before reconfiguring the network adapters and reconfigure the
network adapters when impact on services is minimal.
Contact Huawei engineers and reconfigure network adapters under their guidance.
Reference Standard
The number of audit files is less than or equal to 3000.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Log in to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the audit directory.
SQL> show parameter audit_file_dest;
NAME TYPE VALUE
-----------------------------------------------------------------------------
audit_file_dest string /opt/oracle/admin/ora11g1/adump
If the audit directory is blank or does not exist according to the returned result of Step 3, run
the find $ORACLE_BASE/admin/<DB_NAME>/adump -name "*.aud" | wc -l command.
You can run the following command to query <DB_NAME>:
SQL> show parameter db_name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string ora11g
----End
Exception Handling
If the check result is different from the expected result, you must resolve this problem.
If the check result is different from the expected result, manually delete expired audit files in
ORACLE_BASE/admin/<DB_NAME>/adump and reserve only the latest audit logs.
Reference Standard
Each instance is configured with at least five redo log groups, and each redo log group
contains two redo log files that are mutually redundant.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check log groups configured by instances.
SQL> select thread#,count(group#) groups from v$log group by thread#;
THREAD# GROUPS
---------- ----------
1 5
2 5
The command output shows that five groups of redo logs are configured for instance 1 and
instance 2 respectively.
Step 4 Check whether two redo files are configured for each group of redo logs.
SQL> select thread#,group#,members from v$log;
THREAD# GROUP# MEMBERS
---------- ---------- ----------
1 1 2
1 2 2
1 3 2
1 4 2
1 5 2
2 6 2
2 7 2
2 8 2
2 9 2
2 10 2
The command output shows that each group of logs contain two logs backed up each other.
----End
Exception Handling
If less than five redo log groups are configured, add redo log groups based on service
requirements.
Add a redo log file to redo log groups whose MEMBERS is 1.
Reference Standard
The value of MINUTES is equal to or greater than 20.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the switching frequency of redo log files.
SQL> select a.thread#,row_number() over (partition by a.thread# order by a.thread#)
num,to_char(b.first_time, 'yyyy-mm-dd hh24:mi:ss') start_time,to_char(a.first_time,
'yyyy-mm-dd hh24:mi:ss') end_time,round(((a.first_time - b.first_time) * 24) * 60, 2)
minutes from v$log_history a, v$log_history b where a.first_change# = b.next_change#
and a.thread# = b.thread# and a.first_time > sysdate - 3 order by a.thread#, a.stamp asc;
THREAD# NUM START_TIME END_TIME MINUTES
-------- --- ------------------ ------------------ ------
1 2012-01-17 16:58:57 2012-09-24 09:39:49 361001
2 2012-09-24 09:39:49 2012-09-24 14:00:02 260
3 2012-09-24 14:00:02 2012-09-24 22:00:59 481
----End
Exception Handling
If the value of MINUTES is less than 20, increase the sizes of redo log files.
Reference Standard
Data files are in the SYSTEM, ONLINE, or AVAILABLE state.
Data files cannot be automatically extended. That is, the value of autoextensible for data files
is NO.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
6 rows selected.
----End
Exception Handling
If the value in the STATUS column is not SYSTEM, ONLINE, or AVAILABLE, resolve
this problem.
Reference Standard
At least three control files are configured.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the number of control files.
SQL> select value control_files from v$parameter where name = 'control_files';
CONROL_FILES
------------------------------------------
/oracle/app/oradata/test/control01.ctl, /oracle/app/oradata/test/control02.ctl,
/oracle/app/oradata/test/control03.ctl
----End
Exception Handling
If less than three control files are configured, add control files. Adding control files requires
restarting the database. Therefore, obtain customer approval before adding control files.
Contact Huawei engineers and perform the following steps under their guidance:
Step 1 If the ASM is not used, perform the following steps to add control files:
1. Modify initialization parameters.
$ sqlplus '/ as sysdba'
SQL> alter system set
control_files='/dev/vg_ora/rcontrol01.ctl','/dev/vg_ora/rcontrol02.ctl',
'/dev/vg_ora/rcontrol03.ctl' scope=spfile;
Change the control file name and path based on the site requirements.
2. Shut down the database.
SQL> shutdown immediate;
3. Copy the content of an existing control file to the new control file.
$ dd if=/dev/vg_ora/rcontrol01.ctl of=/dev/vg_ora/rcontrol03.ctl
Change the control file name and path based on the site requirements.
4. Start the database.
SQL> startup
5. Check the new control file.
SQL> select name from v$controlfile;
Step 2 If the ASM is used, perform the following steps to add control files:
3. Shut down the database. For the Oracle RAC, shut down all the instances.
SQL> shutdown immediate;
4. Start instances in nomount mode. Start only one instance in RAC mode.
SQL> startup nomount;
SQL> exit
5. Use the RMAN to recover control files from the existing control files.
$ rman target / nocatalog
RMAN> restore controlfile to '+DG_ORA/test/control04.ctl' from
'+DG_ORA/test/control01.ctl';
Starting restore at 01-FEB-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=144 device type=DISK
RMAN> exit
6. Restart the database and check control file configuration. Start all database instances for
the Oracle RAC.
$ sqlplus '/ as sysdba'
SQL> shutdown immediate;
SQL> startup
SQL> select name from v$controlfile;
NAME
-------------------------------------------------------------------------------
-
+DG_ORA/test/control01.ctl
+DG_ORA/test/control02.ctl
+DG_ORA/test/control03.ctl
+DG_ORA/test/control04.ctl
----End
Reference Standard
The database is in archive mode. That is, the value of LOG_MODE obtained in Step 3
is ARCHIVELOG.
An archive log path has been specified. That is, an archive log path is found in Step 4 or
Step 5.
The usage of disk where the archive log path is located is less than 70%. That is, the
value of Use% is less than 70% in the command output in Step 6.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether the database is in archive mode.
SQL> select log_mode from v$database;
LOG_MODE
-----------
ARCHIVELOG
The command output indicates that the archive log path is /ora_arch.
Perform Step 5 only when the value in the VALUE column is
LOCATION=USE_DB_RECOVERY_FILE_DEST indicating that the archive log path is
located in the flash recovery area.
Step 5 (Optional) Obtain the archive log path.
SQL> select value from v$parameter p where name = 'db_recovery_file_dest'
VALUE
------------------------------------------
1 /opt/oracle/oradb/flash_recovery_area
Step 6 Based on the archive log path obtained in Step 4 or Step 5, check the usage of the disk where
the path is located.
If the ASM is not used, run the following command:
$ df -k /ora_arch
Filesystem 1K-blocks Used Available Use% Mounted on
/ora_arch 4200824 2479248 1721576 60% /ora_arch
The command output indicates that the space availability ratio of the disk where the
archive path is located is 40%.
If the ASM is used, run the following command:
1. Log in to the operating system as the oracle user.
2. Configure the ASM instance name and log in to the ASM instance.
$ export ORACLE_SID=+ASM1
In the preceding command, +ASM1 indicates the ASM instance name. Change the name
based on the site requirements.
3. Check ASM disk space.
SQL> select name,total_mb,(total_mb - free_mb) used_mb,round((1-
free_mb/total_mb)*100,2) "use%" from v$asm_diskgroup where
name=‘DG_ARCH’;
NAME TOTAL_MB USED_MB use%
--------------- ---------- ---------- ----------
DG_ARCH 102400 37095 36.23
The command output indicates that the space availability ratio of the disk where the
archive path is located is 64%.
----End
Exception Handling
Before configuring the database to run in archive mode, setting an archive log path, and
extending disk space, contact Huawei engineers to create a feasible plan.
Reference Standard
The SYSTEM tablespace size is equal to or greater than 2 GB.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the SYSTEM tablespace size.
SQL> select tablespace_name,sum(bytes/1024/1024/1024) "GB" from dba_data_files
where tablespace_name='SYSTEM' group by tablespace_name;
TABLESPACE_NAME GB
--------------- -------------
SYSTEM 8
----End
Exception Handling
If the SYSTEM tablespace size is less than 2 GB, extend the tablespace.
Before extending the tablespace, ensure that the operating system has sufficient available
space.
Reference Standard
The SYSAUX tablespace size is equal to or greater than 5 GB.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the SYSAUX tablespace size.
SQL> select tablespace_name,sum(bytes/1024/1024/1024) "GB" from dba_data_files
where tablespace_name='SYSAUX' group by tablespace_name;
TABLESPACE_NAME GB
--------------- -------------
SYSAUX 8
----End
Exception Handling
If the SYSAUX tablespace size is less than 5 GB, extend the tablespace.
Before extending the tablespace, ensure that the operating system has sufficient available
space.
Reference Standard
The UNDO tablespace size is equal to or greater than 6 GB.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the UNDO tablespace size.
SQL> select tablespace_name, sum(bytes / 1024 / 1024 / 1024) "GB" from dba_data_files
d, v$parameter p where p.name = 'undo_tablespace'and p.VALUE = d.tablespace_name
group by tablespace_name;
TABLESPACE_NAME GB
--------------- -------------
UNDOTBS1 8
----End
Exception Handling
If the UNDO tablespace size is less than 6 GB, extend the tablespace.
Before extending the tablespace, ensure that the operating system has sufficient available
space.
Reference Standard
The TEMP tablespace size is equal to or greater than 4 GB.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the TEMP tablespace size.
SQL> select tablespace_name,sum(bytes/1024/1024/1024) "GB" from dba_temp_files
where tablespace_name=(select property_value from database_properties where
property_name='DEFAULT_TEMP_TABLESPACE') group by tablespace_name;
GB
----------------
4
Step 5 Check for users who do not use temporary segments by default.
SQL> select u.username, t.tablespace_name from dba_users u, dba_tablespaces t where
u.temporary_tablespace = t.tablespace_name and t.contents <> 'TEMPORARY';
----End
Exception Handling
Before extending the TEMP tablespace, contact Huawei engineers for guidance.
Step 4 If the value of CONTENTS for the TEMP tablespace is not TEMPORARY, create a
temporary tablespace that is managed locally for the system.
For example, create the temporary tablespace TS_TEMP.
SQL> CREATE TEMPORARY TABLESPACE ts_temp TEMPFILE
'/dev/vg_ora/rlv_ts_temp' SIZE 500M autoextend off extent management local
UNIFORM SIZE 1m;
Set TS_TEMP to the default temporary tablespace of the database.
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE ts_temp;
Step 5 If there is a user who uses tablespace that uses permanent segments as the default temporary
tablespace, change the default temporary tablespace to the temporary tablespace managed
locally.
SQL> ALTER USER username TEMPORARY TABLESPACE ts_temp;
----End
Reference Standard
The usage of the SYSTEM and SYSAUX tablespaces is less than 75%.
The usage of a tablespace except for SYSTEM, SYSAUX, or UNDO tablespace is less
than 85%.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check tablespace usage.
SQL> select a.tablespace_name, a.used_space * 8192 / (1024 * 1024) used_space_mb,
a.tablespace_size * 8192 / (1024 * 1024) tablespace_size_mb, round(a.used_percent, 2)
"used%" from dba_tablespace_usage_metrics a where a.tablespace_name not in (select
distinct tablespace_name from dba_undo_extents);
----End
Exception Handling
If you must delete historical service records from tablespaces, contact product personnel or
obtain customer approval before deleting records.
Reference Standard
The UNDO tablespace usage is less than 70%.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the ratio of the active extent in the UNDO tablespace.
SQL> select a.tablespace_name, used_undo, total_undo, trunc(used_undo / total_undo *
100, 2) used_rat from (select nvl(sum(bytes / 1024 / 1024), 0) used_undo,
tablespace_name from dba_undo_extents where status = 'ACTIVE' group by
tablespace_name) a, (select tablespace_name, sum(bytes / 1024 / 1024) total_undo from
dba_data_files where tablespace_name in (select value from v$spparameter where name
= 'undo_tablespace' and (sid = (select instance_name from v$instance) or sid = '*'))
group by tablespace_name) b where a.tablespace_name = b.tablespace_name;
TABLESPACE_NAME USED_UNDO TOTAL_UNDO USED_RAT
----------------- ---------- ---------- ------------
UNDOTBS1 9 4000 .22
----End
Exception Handling
If the UNDO tablespace usage is equal to or greater than 70%, extend the tablespace.
Before extending the TEMP tablespace, contact Huawei engineers for guidance.
Reference Standard
The SYSTEM tablespace does not contain service objects.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether the SYSTEM tablespace contains service objects.
SQL> select owner, segment_name, segment_type from dba_segments where
tablespace_name = 'SYSTEM' and owner not in ('SYS', 'SYSTEM', 'OUTLN');
no rows selected
The SYSTEM tablespace can store only data of the SYS, SYSTEM, and OUTLN users.
If no rows selected is displayed, the SYSTEM tablespace does not contain service
objects.
If information instead of no rows selected is displayed, the SYSTEM tablespace
contains service objects.
----End
Exception Handling
If the SYSTEM tablespace contains service objects such as service tables, contact Huawei
engineers and move these objects to other tablespaces under their guidance.
Reference Standard
All tablespaces are managed locally. That is, the value of EXTENT_MANAGEMENT
is LOCAL for all tablespaces.
The segment space of tablespaces except SYSTEM, UNDO, and TEMP are managed
automatically. That is, the value of segment_space_management is AUTO for
tablespaces except SYSTEM, UNDO, and TEMP.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check tablespace attributes.
SQL> select a.tablespace_name, a.contents, a.extent_management,
a.segment_space_management from dba_tablespaces a where a.contents not in
('UNDO', 'TEMPORARY') and tablespace_name not in ('SYSTEM') order by
a.segment_space_management;
----End
Exception Handling
Reference Standard
Segments that require restructuring do not exist. A segment must be restructured if the number
of extents allocated to the segment is greater than or equal to 4096.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check for segments that require restructuring.
SQL> select a.owner,a.segment_name, a.extents from dba_segments a where extents >
4096;
no rows selected
Exception Handling
If the number of extents allocated to a segment is equal to or greater than 4096, this segment
contains fragments or the segment management efficiency is low. In this case, contact Huawei
engineers to create a plan and restructure this segment or adopt the partition table technology
based on the plan.
Reference Standard
In the ASM disk status query result, the value of MODE_STATUS is ONLINE and the value
of STATUS is NORMAL.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Set the ASM instance name.
$ export ORACLE_SID=+ASM1
In the preceding command, +ASM1 indicates the ASM instance name. Change the name
based on the site requirements.
Step 3 Connect to the database.
$ sqlplus '/ as sysdba'
Step 4 Check ASM disk status.
SQL> select group_number,mode_status,state,name,path from v$asm_disk where
group_number<>0;
DISK_NUMBER MODE_STATUS STATE NAME PATH
----------- ----------- ------ ----- --------------------
0 ONLINE NORMAL DG_BACKUP_0000 /dev/raw/raw1236
0 ONLINE NORMAL DG_DATA_0000 /dev/raw/raw1234
0 ONLINE NORMAL DG_INDEX_0000 /dev/raw/raw1235
0 ONLINE NORMAL DG_ORA_0000 /dev/raw/raw1233
----End
Exception Handling
If ASM disk status does not comply with the reference standard, resolve this problem.
Reference Standard
Available space on each ASM disk is greater than 20% of the total disk space. That is, the
result of Free_MB divided by Total_MB is greater than 20%.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Set the ASM instance name.
$ export ORACLE_SID=+ASM1
In the preceding command, +ASM1 indicates the ASM instance name. Change the name
based on the site requirements.
Step 3 Access asmcmd.
$ asmcmd
Step 4 Check ASM disk space.
ASMCMD> lsdg;
For example, the following information is displayed:
State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB
Usable_file_MB Offline_disks Name
MOUNTED EXTERN N 512 4096 1048576 61440 57198 0
57198 0 DG_BACKUP/
MOUNTED EXTERN N 512 4096 1048576 133120 18953 0
18953 0 DG_DATA/
MOUNTED EXTERN N 512 4096 1048576 112640 14478 0
14478 0 DG_INDEX/
MOUNTED EXTERN N 512 4096 1048576 101426 14508 0
14508 0 DG_ORA/
The result of Free_MB divided by Total_MB must be greater than 20%. Otherwise, increase
the ASM disk space.
----End
Exception Handling
Send the ASM disk space query result to Huawei engineers so that Huawei engineers can
create a plan. Resolve this problem based on the plan.
Reference Standard
In the command output in , the EVENT column does not contain the following wait events
within 15 minutes:
read by other session, buffer busy waits
control file parallel write
enqueue
latch free
log file sync
log file switch (checkpoint incomplete)
log file switch (archiving needed)
global cache busy, gc current block busy, gc cr block busy
log buffer space
log file parallel write
cursor: mutex S
cursor: mutex X
cursor: pin S
cursor: pin S wait on X
cursor: pin X
DFS lock handle
library cache lock
library cache pin
row cache lock
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
----End
Exception Handling
If wait events mentioned in the reference standard are found, resolve this problem.
Reference Standard
The number formed by the first two digits in the decimal part of the INDICATOR value is
greater than 62.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the database SCN.
SQL> select version,date_time,dbms_flashback.get_system_change_number
current_scn,indicator from(select version,to_char(SYSDATE,'YYYY/MM/DD
HH24:MI:SS') DATE_TIME,((((((to_number(to_char(sysdate,'YYYY'))-
1988)*12*31*24*60*60) + ((to_number(to_char(sysdate,'MM'))-1)*31*24*60*60) +
(((to_number(to_char(sysdate,'DD'))-1))*24*60*60) +
(to_number(to_char(sysdate,'HH24'))*60*60) + (to_number(to_char(sysdate,'MI'))*60)
+ (to_number(to_char(sysdate,'SS')))) * (16*1024)) -
dbms_flashback.get_system_change_number) / (16*1024*60*60*24)) indicator from
v$instance);
VERSION DATE_TIME CURRENT_SCN INDICATOR
---------- ------------------- ----------- ----------------
11.1.0.7.0 2012/09/27 15:29:21 3908468 9202.6426209033
----End
Exception Handling
If the number formed by the first two digits in the decimal part of the INDICATOR value is
less than or equal to 62, resolve this problem.
Reference Standard
No lock wait event or library latch wait event occurs.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check for lock wait events and library latch wait events.
1. Check for lock wait events.
SQL> select 'session ' || c.locker ||' lock session ' || c.locked ||', alter system kill
session ' ||'''' || c.locker || ',' ||d.serial# || '''' as "result" from ( select a.sid locked,b.sid
locker from v$lock a, v$lock b where a.request > 0 and a.id1 = b.id1 and a.id2 =
b.ID2 and a.type = b.type and a.addr <> b.addr) c,v$session d where c.locker =
d.sid;
If no information is displayed, no lock wait event occurs.
2. Check for library latch wait events.
SQL> select 'session ' || d.locker ||' lock session ' || d.locked ||', alter system kill
session ' ||'''' || d.locker || ',' ||d.serial# || '''' as "result" from ( select
a.locker,a.serial#,a.locked,row_number() over( partition by a.locker, a.locked order
by a.locker ) as rn from ( select s.sid locker, s.serial#,w.sid locked from dba_kgllock
k, v$session s,v$session_wait w where w.event like 'library cache%' and k.kgllkhdl
= w.p1raw and k.kgllkuse = s.saddr and s.sid <> w.sid) a) d where d.rn = 1;
If no information is displayed, no library latch wait event occurs.
----End
Exception Handling
Services may be affected if you forcibly stop sessions related to lock wait events or library
latch wait events. Therefore, contact Huawei engineers for confirmation and perform
troubleshooting.
Reference Standard
The row cache hit ratio is greater than 95%.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the row cache hit ratio.
SQL> select sum(a.value)/count(*) pct from v$metric_history a where a.metric_name =
'Row Cache Hit Ratio' and group_id = 2 and a.begin_time >= sysdate - 1 and a.end_time
< sysdate;
PCT
-------------------
99.4112278722774
The command output indicates that the row cache hit ratio is 99.4112278722774%.
----End
Exception Handling
If the row cache hit ratio is less than or equal to 95%, resolve this problem.
Reference Standard
The library cache hit ratio is greater than 99%.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the library cache hit ratio.
SQL> select sum(a.value)/count(*) pct from v$metric_history a where a.metric_name =
'Library Cache Hit Ratio' and group_id = 2 and a.begin_time >= sysdate - 1 and
a.end_time < sysdate;
PCT
-------------
99.4112278722774
The command output indicates that the library cache hit ratio is 99.4112278722774%.
----End
Exception Handling
If the library cache hit ratio is less than or equal to 99%, resolve this problem.
Reference Standard
The soft parse ratio is greater than 99%.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the soft parse ratio.
SQL> select sum(a.value)/count(*) pct from v$metric_history a where a.metric_name =
'Soft Parse Ratio' and group_id = 2 and a.begin_time >= sysdate - 1 and a.end_time <
sysdate;
PCT
-------------
100
The command output indicates that the soft parse ratio is 100%.
----End
Exception Handling
If the soft parse ratio is less than or equal to 99%, resolve this problem.
Reference Standard
The ratio of available space in the shared pool is greater than 5%.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the ratio of available space in the shared pool.
SQL> select freesize freesize_MB, totalsize totalsize_MB,
round((freesize/totalsize)*100,2) " FREE%" from (select ceil(sum(bytes) / (1024 * 1024))
totalsize from v$sgastat where pool = 'shared pool' ), (select ceil(bytes / (1024 * 1024))
freesize from v$sgastat where name = 'free memory' and pool = 'shared pool');
FREESIZE_MB TOTALSIZE_MB FREE%
----------- ------------ ----------
217 337 64.39
Exception Handling
If the ratio of available space in the shared pool is less than or equal to 5%, resolve this
problem.
Reference Standard
The AVG BLOCK RECEIVE TIME duration is shorter than or equal to 15 milliseconds.
Precaution
Perform this check only in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the global cache performance.
SQL> select b1.inst_id, b2.value "GCS CR BLOCKS RECEIVED", b1.value "GCS CR
BLOCK RECEIVE TIME", ((b1.value / decode(b2.value, 0, 0.0000001, b2.value)) * 10)
"AVG CR BLOCK RECEIVE TIME(ms)", b4.value "GCS CUR BLOCKS
RECEIVED", b3.value "GCS CUR BLOCK RECEIVE TIME", ((b3.value /
decode(b4.value, 0, 0.0000001, b4.value)) * 10) "AVG CUR BLOCK RECEIVE
TIME(ms)" from gv$sysstat b1, gv$sysstat b2, gv$sysstat b3, gv$sysstat b4 where
b1.name = 'gc cr block receive time' and b2.name = 'gc cr blocks received' and b1.inst_id
= b2.inst_id and b3.inst_id = b4.inst_id and b2.inst_id = b3.inst_id and b3.name = 'gc
current block receive time' and b4.name = 'gc current blocks received';
INST_ID GCS CR BLOCKS RECEIVED GCS CR BLOCK RECEIVE TIME AVG CR BLOCK RECEIVE
TIME(ms) GCS CUR BLOCKS RECEIVED GCS CUR BLOCK RECEIVE TIME AVG CUR BLOCK RECEIVE
TIME(ms)
1 1 0 0 0 0 0 0
----End
Exception Handling
If the AVG BLOCK RECEIVE TIME duration is longer than 15 milliseconds, resolve this
problem.
Check whether network bottlenecks exist and eliminate them if network bottlenecks are
found. Verify database parameter settings and operating system TCP and UDP configurations.
Contact Huawei engineers for guidance.
Reference Standard
The AVG GLOBAL LOCK GET TIME duration is shorter than or equal to 30 milliseconds.
Precaution
Perform this check only in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the global cache lock performance.
SQL> select b1.inst_id, (b1.value + b2.value) "GLOBAL LOCK GETS", b3.value
"GLOBAL LOCK GET TIME", (b3.value / decode((b1.value + b2.value),0,0.0000001,
(b1.value + b2.value)) * 10) "AVG GLOBAL LOCK GET TIME (ms)" from gv$sysstat
b1, gv$sysstat b2, gv$sysstat b3 where b1.name = 'global lock sync gets' and b2.name =
'global lock async gets' and b3.name = 'global lock get time' and b1.inst_id = b2.inst_id
and b2.inst_id = b3.inst_id or b1.name = 'global enqueue gets sync' and b2.name =
'global enqueue gets async' and b3.name = 'global enqueue get time' and b1.inst_id =
b2.inst_id and b2.inst_id = b3.inst_id;
INST_ID GLOBAL LOCK GETS GLOBAL LOCK GET TIME AVG GLOBAL LOCK GET TIME (ms)
1 1 0 0 0
----End
Exception Handling
If the AVG GLOBAL LOCK GET TIME duration is longer than 30 milliseconds, resolve
this problem.
Reference Standard
Service SQL statements are bound to variables. BI or datastore applications determine
whether to bind to variables based on the site requirements.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether SQL statements are bound to variables.
SQL> select substr(sql_text, 1, 40) "SQL", count(*), sum(executions) "TotExecs" from
v$sqlarea where executions < 5 group by substr(sql_text, 1, 40) having count(*) > 30
order by 2 desc;
If no information is displayed, SQL statements are bound to variables. If information similar
to the following is displayed, some SQL statements are not bound to variables:
SQL COUNT(*) TotExecs
--------------------------------------- ------ ------
SELECT t10.CONDITIONID, t10.ALARMID, t10 1517 4551
SELECT t13.mocname FROM FDN2MOC t13 WHER 640 1940
select Class from imap_db.INMSNEMO a wh 215 627
select fdn, devID, NEIdentityString, XML 203 640
insert into imap_db.EAMDataChangeInfo (f 144 290
----End
Exception Handling
If some SQL statements are not bound to variables resolve this problem.
Reference Standard
The values related to the CPU are as follows:
The average of all the values in the id column is equal to or greater than 30.
The average of all the values in the wa column is less than or equal to 20. Skip this for
HP-UX because it does not contain information about this column.
The average of all the values in the sy column is less than or equal to 15.
The average of all the values in the us column is less than or equal to 70.
Precaution
Perform this check on both the active and standby node for the Oracle HA environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check CPU usage.
$ vmstat 2 10
For HP-UX, information similar to the following is displayed:
procs memory page
faults cpu
r b w avm free re at pi po fr de sr in
sy cs us sy id
1 0 0 908460 1172446 450 7 0 0 0 0 0
1352 4359 209 1 1 99
1 0 0 891940 1172367 355 4 0 0 0 0 0
1377 2646 207 5 0 95
1 0 0 891940 1172367 493 5 0 0 0 0 0
1373 2451 208 1 0 99
1 0 0 891940 1172366 315 3 0 0 0 0 0
1369 1910 200 1 1 98
1 0 0 891940 1172366 414 4 0 0 0 0 0
1367 2020 215 0 0 100
1 0 0 891940 1172367 531 5 0 0 0 0 0
1368 2058 214 0 1 98
1 0 0 892397 1172366 340 3 0 0 0 0 0
1367 1618 204 0 0 99
1 0 0 892397 1172366 430 4 0 0 0 0 0
1374 1790 203 0 0 100
1 0 0 892397 1172366 542 5 0 0 0 0 0
1361 1973 207 1 0 99
1 0 0 892397 1172366 346 3 0 0 0 0 0
1353 1548 199 1 1 98
r b avm fre re pi po fr sr cy in sy cs us sy id wa pc ec
----End
Exception Handling
If some values in the CPU SAR report do not comply with the reference standard, resolve this
problem.
Reference Standard
The average physical read duration for the online transaction processing (OLTP) system is
shorter than 20 milliseconds. That is, the values are less than 20 in the avreads(ms) column.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check I/O distribution and performance of data files.
SQL> select ts#, file#, name, "avreads(ms)", phyreads, "avwrites(ms)", phywrites from
(select b.ts#,b.file#,b.name,ceil(a.value * 10) as "avreads(ms)",c.value
phyreads,ceil(d.value * 10) as "avwrites(ms)",e.value phywrites from v$metric a,
v$datafile b, v$metric c, v$metric d, v$metric e where a.entity_id = b.file# and
a.metric_id = 7000 and c.metric_id = 7002 and d.metric_id = 7001 and e.metric_id =
7003 and c.entity_id = a.entity_id and d.entity_id = a.entity_id and e.entity_id =
a.entity_id) order by ts#,file#;
TS# FILE# NAME avreads(ms) PHYREADS avwrites(ms) PHYWRITES
0 1 /opt/oracle/oradb/oradata/inomc/system01.dbf 6 27 1 146
1 2 /opt/oracle/oradb/oradata/inomc/sysaux01.dbf 0 2 0 7
2 3 /opt/oracle/oradb/oradata/inomc/undotbs01.dbf 0 0 2 41
4 4 /opt/oracle/oradb/oradata/inomc/users01.dbf 0 0 0 0
6 5 /opt/oracle/oradb/data/imap_db.dbf 1 70 0 1
7 6 /opt/oracle/oradb/data/imaplogdb.dbf 1 394 0 7
8 7 /opt/oracle/oradb/data/imapsmdb.dbf 0 8 0 0
9 8 /opt/oracle/oradb/data/imaptmdb.dbf 0 68 0 0
10 9 /opt/oracle/oradb/data/alarmdb.dbf 1 1656 0 0
11 10 /opt/oracle/oradb/data/perfdb.dbf 1 12305 1 119
12 11 /opt/oracle/oradb/data/nmsguest.dbf 0 0 0 0
13 12 /opt/oracle/oradb/data/perfdb_idx.dbf 1 165 0 57
14 13 /opt/oracle/oradb/oradata/inomc/icnfgspace.dbf 1 9240 0 3
----End
Exception Handling
Adjusting data files requires stopping services. Therefore, obtain customer approval before
adjusting data files.
Reference Standard
The database memory sorting ratio must be greater than 98%.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Log in to the database.
$ sqlplus / as sysdba
Step 3 Check the memory sorting ratio.
SQL> select sum(a.value)/count(*) pct from v$metric_history a where a.metric_name =
'Memory Sorts Ratio' and group_id = 2 and a.begin_time >= sysdate - 1 and a.end_time
< sysdate;
PCT
----------
100
The returned result shows that the database memory sorting ratio is 100%.
----End
Exception Handling
If the check result is different from the expected result, database performance deteriorates,
affecting service running efficiency. Therefore, you must resolve this problem.
Database optimization involves SQL statement or system configuration adjustment. You are
advised to contact Huawei engineers for troubleshooting.
The following aspects can be taken into consideration of database optimization:
Whether a lot of sorted SQL statements exist
Whether program global area (PGA) configuration is proper
Reference Standard
The real time apply function is enabled. That is, the value is MANAGED REAL TIME
APPLY for RECOVERY_MODE in the command output in .
Precaution
Perform this check only in the Oracle DataGuard environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether the real time apply function is enabled.
SQL> select recovery_mode from v$archive_Dest_status where
recovery_mode='MANAGED REAL TIME APPLY';
RECOVERY_MODE
----------------
MANAGED REAL TIME APPLY
----End
Exception Handling
If the value is not MANAGED REAL TIME APPLY for RECOVERY_MODE in the
command output in , resolve this problem.
Reference Standard
The LNS process is in the WRITING state.
Precaution
Perform this check only in the Oracle DataGuard environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Switch to online redo log.
SQL> alter system switch logfile;
Step 4 Check the status of the LNS process in the PM database.
SQL> set lin 1000
SQL> select process, status, thread#, sequence#, block# from v$managed_standby where
process='LNS';
PROCESS STATUS THREAD# SEQUENCE# BLOCK#
--------- ------------ ---------- ---------- ----------
LNS WRITING 1 16 126501
----End
Exception Handling
If the LNS process is not in the WRITING state, resolve this problem.
Reference Standard
The MRP0 process is in the APPLYING_LOG state.
Precaution
Perform this check only in the Oracle DataGuard environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check the status of the MRPO process in the RM database.
SQL> set lin 1000
SQL> SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK# FROM V
$MANAGED_STANDBY where PROCESS='MRP0';
PROCESS STATUS THREAD# SEQUENCE# BLOCK#
--------- ------------ ---------- ---------- ----------
MRP0 APPLYING_LOG 1 40 121420
RFS IDLE 1 40 121421
RFS IDLE 0 0 0
RFS IDLE 0 0 0
----End
Exception Handling
If the MRP0 process is not in the APPLYING_LOG state, resolve this problem.
Reference Standard
The RLink is in the VALID state.
Precaution
Perform this check only in the Oracle DataGuard environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check whether the status of the RLink between the PM and RM.
SQL> COLUMN dest_name FORMAT A18;
SQL> column status FORMAT A18;
SQL> select dest_name,status from v$archive_dest_status where dest_id=2;
DEST_NAME STATUS
------------------ ------------------
LOG_ARCHIVE_DEST_2 VALID
----End
Exception Handling
Reference Standard
Service user statistics are correctly collected.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Log in to the database.
$ sqlplus / as sysdba
Step 3 Check whether service user statistics are correctly collected.
SQL> set serveroutput on size 1000000;
SQL> declare
obj_list dbms_stats.objecttab;
str_list varchar2(1000);
str_username varchar2(200) := upper('TEST');TEST is a service user name example.
Use the actual service user name.
begin
dbms_stats.gather_schema_stats( ownname => str_username,
options => 'list empty',
objlist => obj_list,
force => true
);
dbms_output.enable(buffer_size => 999999);
dbms_output.put_line('Return the list of objects belong current user');
for i in 1 .. obj_list.count
loop
if ( obj_list(i).objtype = 'TABLE' ) then
str_list := 'ownname = ' || obj_list(i).ownname || ', '
|| 'objtype = ' || obj_list(i).objtype || ', '
|| 'objname = ' || obj_list(i).objname || ', '
|| 'partname = ' || obj_list(i).partname || ', '
|| 'subpartname = ' || obj_list(i).subpartname;
else
str_list := 'ownname = ' || obj_list(i).ownname || ', '
|| 'objtype = ' || obj_list(i).objtype || ', '
|| 'objname = ' || obj_list(i).objname;
end if;
dbms_output.put_line(str_list);
if (mod(i, 50) = 0) then
dbms_output.enable(buffer_size => 999999);
end if;
end loop;
for item in ( select owner,
table_name,
column_name,
rownum i
from dba_tab_columns
Exception Handling
If the check result is different from the expected result, you must resolve this problem.
Contact Huawei engineers for guidance to correctly collect service user statistics and use the
following methods to collect statistics:
Step 1 Log in to the operating system as the oracle user.
Step 2 Log in to the database.
$ sqlplus / as sysdba
Step 3 Collect table statistics.
SQL> exec DBMS_STATS.GATHER_TABLE_STATS
(ownname=>'TEST',tabname=>'table_name');
----End
Reference Standard
Alarm logs for Oracle database instances do not contain ORA-.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Access the directory for storing alarm logs.
$ cd $ORACLE_BASE/diag/rdbms/<db_name>/$ORACLE_SID/trace
Step 3 Check the alarm log file alert_$ORACLE_SID.log.
$ grep "ORA-" alert*
If no information is displayed, alarm logs do not contain ORA-.
----End
Exception Handling
If alarm logs for Oracle database instances contain ORA-, resolve this problem.
Reference Standard
Connection logs for Oracle database instances do not contain TNS-.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Access the directory for storing connection logs.
$ cd $ORACLE_BASE/diag/tnslsnr/<hostname>/<listener_name>/trace
In the preceding command, hostname indicates the host name.
Exception Handling
If connection logs for Oracle database instances contain TNS-, resolve this problem.
Reference Standard
Cluster synchronization service logs for Oracle database instances do not contain ERROR or
WARNING.
Precaution
Perform this check only in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Access the directory for storing cluster synchronization service logs.
$ cd $ORA_CRS_HOME/log/<hostname>/cssd
In the preceding command, host_name indicates the host name.
Step 3 Check the cluster synchronization service log file ocssd.log.
$ egrep "ERROR|WARNING" ocssd*
By default, this command checks logs generated over the last 30 days. If no information is
displayed, cluster synchronization service logs do not contain ERROR or WARNING.
----End
Exception Handling
If cluster synchronization service logs for the Oracle database instance contain ERROR or
WARNING, resolve this problem.
Reference Standard
CRS alarm logs do not contain ERROR or records about abnormal restart.
In normal cases, when the CRS restarts, the message "voting file is online" is displayed on the
command-line interface.
Precaution
Perform this check only in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check CRS alarm logs.
$ grep "ERROR" $ORA_CRS_HOME/log/<hostname>/alert<hostname>.log
In the preceding command, host_name indicates the host name. By default, this command
checks logs generated over the last 30 days.
If no information is displayed, CRS alarm logs do not contain ERROR or records about
abnormal restart.
----End
Exception Handling
If CRS alarm logs contain ERROR or records about abnormal restart, resolve this problem.
Reference Standard
CRS directories racg, crsd, and evmd do not contain ERROR. That is, these directories do
not contain severe error information.
Precaution
Perform this check only in the Oracle RAC environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check CRS directories racg, crsd, and evmd.
$ grep "ERROR" $ORA_CRS_HOME/log/<hostname>/racg/*
$ grep "ERROR" $ORA_CRS_HOME/log/<hostname>/crsd/*
$ grep "ERROR" $ORA_CRS_HOME/log/<hostname>/evmd/*
In the preceding command, host_name indicates the host name.
If no information is displayed, racg, crsd, and evmd do not contain ERROR.
----End
Exception Handling
If CRS directories racg, crsd, and evmd contain ERROR, resolve this problem.
Reference Standard
ASM background logs do not contain ORA- or Error.
Procedure
Step 1 Log in to the operating system as the oracle user.
Exception Handling
Reference Standard
Backup files generated over the last day exist whether the database is in nonarchive mode or
in archive mode.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Check backup sets of the database in nonarchive mode and in archive mode.
Check backup sets that are backed up using EXP when the database is in nonarchive
mode.
$ ls -a /opt/orabak
-rw-r--r-- 1 oracle oinstall 392060928 2012-09-27 16:28 orcl.dmp
The command output indicates that backup files generated over the last day exist.
Check backup sets that are backed up using RMAN when the database is in archive
mode.
$ rman target/
RMAN> list backup of database
RMAN> list backup of database;
List of Backup Sets
===================
Piece Name:
/oracle/app/flash_recovery_area/TEST/backupset/2012_09_26/o1_mf_nnndf_TAG201209
26T160025_865fjt2n_.bkp
If the value of Completion Time is 26-SEP-12 in the command output, backup files
generated over the last day exist.
----End
Exception Handling
If backup files generated over the last day do not exist, resolve this problem.
Reference Standard
RM alarm logs do not contain ORA- or information about damaged blocks.
Precaution
Perform this check only in the Oracle DataGuard environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Access the directory for storing RM alarm logs.
$ cd $ORACLE_BASE/diag/rdbms/<db_name>/$ORACLE_SID/trace
Step 3 Check the alarm log file alert_$ORACLE_SID.log.
$ egrep "ORA-01578|ORA-08103|ORA-01499|kdsgrp1" alert*
If no information is displayed, RM alarm logs do not contain ORA- or information about
damaged blocks.
----End
Exception Handling
If RM alarm logs contain ORA- and information about damaged blocks, resolve this problem.
Reference Standard
Archive logs that are generated over the last seven days are transmitted to the RM.
Precaution
Perform this check only in the Oracle DataGuard environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check PM archive log transmission.
SQL> SELECT DESTINATION, STATUS, ARCHIVED_THREAD#,
ARCHIVED_SEQ# FROM V$ARCHIVE_DEST_STATUS WHERE STATUS <>
'DEFERRED' AND STATUS <> 'INACTIVE';
For example, the following information is displayed:
DESTINATION STATUS ARCHIVED_THREAD# ARCHIVED_SEQ#
------------------ ------ ---------------- -------------
/private1/prmy/lad VALID 1 947
standby1 VALID 1 947
The command output indicates that archive logs that are generated over the last seven days are
transmitted to the RM.
----End
Exception Handling
If log transmission does not comply with the reference standard, resolve this problem.
Reference Standard
All values in the APPLIED column are YES in the command output in .
Precaution
Perform this check only in the Oracle DataGuard environment.
Procedure
Step 1 Log in to the operating system as the oracle user.
Step 2 Connect to the database.
$ sqlplus '/ as sysdba'
Step 3 Check RM log application.
SQL> select thread#,sequence#,archived,applied,first_time from v$archived_log where
first_time>sysdate-1;
THREAD# SEQUENCE# ARCHIVED APPLIED FIRST_TIME
------- --------- ---------- --------- --------------------
1 38 YES YES 25-September-12 22:00:36
1 39 YES YES 26-September-12 8:28:01
1 40 YES YES 26-September-12 10:35:31
1 41 YES YES 26-September-12 10:35:34
----End
Exception Handling
If log application does not comply with the reference standard, resolve this problem.