- FAQ -- Oracle Linux Tests kit
Contents
- SECTION 1 - INTRODUCTION
- What is the OLT kit?
- Where do I download the OLT kit from ?
- How to install the OLT kit?
- How to apply Oracle patches for the OLT kit to use?
- How much storage will the OLT kit installation require?
- Where does the OLT testcase execution command files ( validate.cmd, etc ) reside ?
- Where does the OLT environment files reside ?
- SECTION 2 – PREPARING LINUX FOR OLT
- How can I get a metalink account?
- Can you give me some points about Linux installation and configuration before I execute OLT?
- After install Linux, I found my swap is less than the physical memory,how can I enlarge my swap?
- How to set hugepages?
- How to enable and disable SELinux?
- Is JDK required to be downloaded for OLT?
- How to synchronize the different nodes time through ntp?
- SECTION 3 - OLT FOR SINGLE NODE
- SECTION 4 - OLT FOR RAC
- How much disk storage should I allocate for OLT test data in RAC tests?
- What is the mount option for NFS in RAC mode?
- After install Linux,what should I prepare for OLT running properly in RAC mode?
- How to install and configure OCFS2 on more than one nodes for OLT?
- How to install and configure ASMlib for my OLT test?
- What label should I use for asmlib?
- Where will the CRS OCR and voting devices be installed?
- Do i need to install the OLT rpms on all the test nodes?
- SECTION 5 - TEST CASES
- SECTION 6 - RUNNING OLT KIT
- Which user should I use to execute OLT,root?
- How to setup a test node?
- What is test provision?
- How does Oracle get installed for OLT?
- Can I use a pre-existing Oracle home for running tests with OLT?
- How can I start my test process?
- How can I monitor the running status?
- How can I terminate my test?
- How can I skip a specific test case when the OLT is running?
- How to check the results of scheduled test cases?
- Do I need to do any cleanup operations for the last OLT run before I use OLT to execute tests once again?
- Can you give me some hints on how to execute OLT more effectively and efficiently?
- How to clean up the Oracle software installations?
- SECTION 7 – RAC DESTRUCTIVE TEST
- SECTION 8 - TEST CASE FAILURE AND DEBUGGING
- What can I do if a test case failed?
- Where can I find the important logs of tests for debugging?
- What should I do incase of errors during ssh?
- olt 2.0.1-1 installation doesnt recognize Enterpsise Linux 5
- What should I do if I encounter some testcase ENV issues?
- What should I do if I encounter some scheduling issues,such as test didn't get scheduled at all or no QA home location created?
- What should I do if I meet NFS issues?
- Is there any tool to help me debug?
- Where can i find error messages for debugging in RAC test?
- Passwordless ssh/scp failed,what should I do?
- Storage check failed, what should I do?
- CRS installation failed, what should I do?
- Oracle installation failed , what should I do?
- I found it's unable to start Clusterware, what should I do?
- I found it's unable to start asm instance(with asmlib), what should I do?
- I found it's unable to start oracle instance,what should I do?
- Database creation failed, what should I do?
- I found it's unable to start listener,what should I do?
- On x86 machines with low memory configuration ( less than or equal to 4 GB ) a lot of testcases fail unable to startup database instance. What can I do ?
- On RHEL5/EL5, on x86, some tests fail with ORA-01034. How can I resolve this?
- I found oltdbt2 installation failed and hanging,what should I do?
- Why is there a failure in the 'sv_oltverify' test case?
- Why is there a failure for the 'ft_hugetlb' test case?
- Why is there sometime failure in the ft_aio & ft_aio_dio test cases for 11g ?
- Why is there sometime failure in OLT stress tests with the below ORA- errors for 11g ?
- What do I do if a destructive test runs induces a failure immediately on the fail node ?
- What if my test fails with the following error ( Couldn't find the global config file ) in the .dif file?
- Are there ORA- errors which may appear in a run but are probably ignorable?
- How do I run a single test usig OLT?
- How to start up the Oracle database manually for dbt2 single node?
- Is OLT supported for higher CPU count servers?
- xm test failure
- SECTION 9 - AUDITING AND PUBLISHING
SECTION 1 - INTRODUCTION
What is the OLT kit?
OLT(Oracle Linux Tests) are designed to verify Linux kernel functionality and stability essential for the Oracle Database. The OLT kit, which is distributed now as a single archived file consisting set of rpms, provides an automated mechanism to define, execute and analyze results in a test environment. It includes a mechanism to execute tests, a set of tools and test cases. For more details you can refer to this location.
Where do I download the OLT kit from ?
OLT can be downloaded from here
How to install the OLT kit?
The OLT kit is a single archive consisting set of rpm packages required for both OVM & non-OVM (bare metal) servers which gets installed accordinglly . They are:
olt-tools-<version>.noarch.rpm
olt-schedule-<version>.noarch.rpm
dbt2-<version>.noarch.rpm
dbt3-<version>.noarch.rpm
fio-<version>.noarch.rpm
olt-schedule-virt-<version>.noarch.rpm
olt-tools-virt-<version>.noarch.rpm
virt-config-<version>.noarch.rpm
xm-test-<version>.noarch.rpm
You can install them by invoking the oltInstaller and also pls. refer the OLTUserGuide for the required settings to be done in olt-setup.env file before invoking the oltInstaller.
Besides installation of these rpms for non-OVM case , you should download the Oracle software CD images from OTN and execute the following to setup the Oracle CDs and the OLT kit when the downloaded images are in .zip format. #/opt/oracle/oltest/olt-schedule/utils/olt-iso-copy
For 10.2.0.1, download 10.2.0.1 CDs ( database and cluster ready service i.e crs )from otn.oracle.com. Then execute #/opt/oracle/oltest/olt-schedule/utils/olt-iso-copy ( for database and crs CDs separately )
This will setup 10.2.0.1 database CDs in /opt/oracle/oltest/.srchome/oracle-iso-10.2.0.1-X86_64/oracle and 10.2.0.1 crs CDs in /opt/oracle/oltest/.srchome/oracle-iso-10.2.0.1-x86_64/crs
If the downloaded CD images are not in the standard '.cpio' or '.cpio.gz' format, then perform the following steps to manually setup the software for OLT kit.
- Make a directory shown below for Oracle software.
/opt/oracle/oltest/.srchome/oracle-iso-<oracle-verison>-<arch>/<oracle-product>/
- Copy the CD contents(Disk1/,Disk2/,Disk3/) to above directory.
For ex:
For 10.2.0.1 oracle, #cp <your-location> /opt/oracle/oltest/.srchome/oracle-iso-10.2.0.1-X86_64/oracle
For 10.2.0.1 crs, #cp <your-location> /opt/oracle/oltest/.srchome/oracle-iso-10.2.0.1-X86_64/crs
For 10.2.0.2,
1. Setup 10.2.0.1 as mentioned above.
2. Download the patchset ( 4547817 ) from metalink.oracle.com
3. Unzip the contents to <your location>
4. cp <your-location> /opt/oracle/oltest/.srchome/oracle-iso-10.2.0.2-<arch>/oracle
5. For 10.2.0.2 crs(since there is no separate crs CD), #ln -s /opt/oracle/oltest/olts/.srchome/oracle-iso-10.2.0.2-<arch>/oracle \ /opt/oracle/oltest/.srchome/oracle-iso-10.2.0.2-<arch>/crs
For 10.2.0.3,
1. Setup 10.2.0.1 as mentioned above.
2. Download the patchset ( 5337014 ) from metalink.oracle.com
3. Unzip the contents to <your location>
4. cp <your-location> /opt/oracle/oltest/.srchome/oracle-iso-10.2.0.3-<arch>/oracle
5. For 10.2.0.3 crs(since there is no separate crs CD), #ln -s /opt/oracle/oltest/olts/.srchome/oracle-iso-10.2.0.3-<arch>/oracle \ /opt/oracle/oltest/olts/.srchome/oracle-iso-10.2.0.3-<arch>/crs
For 10.2.0.4,
1. Setup 10.2.0.1 as mentioned above.
2. Download the patchset ( 6810189 ) from metalink.oracle.com
3. Unzip the contents to <your location>
4. cp <your-location> /opt/oracle/oltest/.srchome/oracle-iso-10.2.0.4-<arch>/oracle
5. For 10.2.0.4 crs(since there is no separate crs CD), #ln -s /opt/oracle/oltest/olts/.srchome/oracle-iso-10.2.0.4-<arch>/oracle \ /opt/oracle/oltest/olts/.srchome/oracle-iso-10.2.0.4-<arch>/crs
For 11G (11.1.0.6), download 11.1.0.6 CDs ( database and crs )from otn.oracle.com. Then execute #/opt/oracle/oltest/olt-schedule/utils/olt-iso-copy ( for database and crs CDs separately )
This will setup 11.1.0.6 database CDs in /opt/oracle/oltest/.srchome/oracle-iso-11.1.0.6-<arch>/oracle and 11.1.0.6 crs CDs in /opt/oracle/oltest/.srchome/oracle-iso-11.1.0.6-<arch>/crs
How to apply Oracle patches for the OLT kit to use?
Setup of Oracle Patches
Download the required set of Oracle Patches to /home/oracle/oracle-patch. Download all CRS patches to /home/oracle/crs-patch
- Run the command below to setup the Oracle patches for the OLT kit from the patch directory ( mentioned in Step 1)
$/opt/oracle/oltest/olt-schedule/utils/olt-patch-copy
- If the patch is not in the standard format, then follow the steps below to manually setup the patches for the kit
$mkdir /opt/oracle/oltest/.srchome/oracle-patch/<arch>/<oracle-version>/<oracle-product>/critical
$mkdir /opt/oracle/oltest/.srchome/oracle-patch/<arch>/<oracle-version>/<oracle-product>/extras
$cd /opt/oracle/oltest/.srchome/oracle-patch/<arch>/<oracle-version>/<oracle-product>/critical
- Unzip all the patches here. On unzipping this file you will get a directory named as the patch number, e.g. 4516865. This directory will have the actual patch contents.
- Remove any zip files from this directory.
There are two patch levels namely - critical and extra. The patches copied under the critical directory will be applied by default by the kit.
e.g. To setup the patch 5071492 for 10202 oracle database for the kit,
$mkdir /opt/oracle/oltest/.srchome/oracle-patch/X86_64/10.2.0.2/oracle/critical
$mkdir /opt/oracle/oltest/.srchome/oracle-patch/X86_64/10.2.0.2/oracle/extras
$cd /opt/oracle/oltest/.srchome/oracle-patch/X86_64/10.2.0.2/oracle/critical/
$unzip p<>_10202_Linux-x86-64.zip
$rm p<>_10202_Linux-x86-64.zip
Setting up the ORACLE_VERSION and patches for the kit to use
The ORACLE_VERSION is set to 11.1.0.7 by default in /opt/oracle/oltest/olt-schedule/env/<node-name>/olt-schedule.env.
To change this version you can edit this env file and update the version.
For patches,
- Applying critical patches
- All the patches found under the critical patches directory will be applied by default.
- Applying extra patches (customer specific required patches )
To apply the additional patches placed under the extra patches directory, you would need to edit the testcase env files and add PATCHLEVEL=2
e.g. For single node 10.2.0.2 edit olt-schedule/testcases/<hostname>/install-silent-oracle-10202.env
TEST_PARAMS="PRODUCT_NAME=oracle:PRODUCT_VERSION=10.2.0.2:UNIX_GROUP_NAME=g502:ORACLE_HOME_NAME=ohome_ora_10202:PATCHLEVEL=2
Once the above steps have been completed, Oracle will be installed by OLT when running the silent install tests namely – install-silent-oracle-<version> for single instance and install-silent-rac for a RAC installation.
How much storage will the OLT kit installation require?
You should allocate space as belows for OLT kit installation:
- 50GB under /opt/oracle
- 15GB under /home/oracle
- 1GB under /tmp
Where does the OLT testcase execution command files ( validate.cmd, etc ) reside ?
For single node tests, the testcase execution command file - validate.cmd - is present on the scheduling node under /opt/oracle/oltest/olts/olt-schedule/ . For RAC, the testcase execution command file is present on the scheduling node at /opt/oracle/oltest/olts/olt-schedule/validate.cmd and the additional destructive test command files such as <nodenames>_schedule.cmd, <nodenames>_dest_schedule.cmd, etc are present under /opt/oracle/oltest/olts/olt-schedule/rac and.
Where does the OLT environment files reside ?
The OLT environment files reside on the scheduling node only for single node. For RAC, the OLT environment files reside on the scheduling node in the following directories /opt/oracle/oltest/olt-schedule/env/<nodename>/
The OLT testcase env files reside on the scheduling node under /opt/oracle/oltest/olt-schedule/testcases/ . To make changes for a testcase you need to make make the changes on the scheduling node under /opt/oracle/oltest/olt-schedule/testcases/<nodename>/<testcase>.env
SECTION 2 – PREPARING LINUX FOR OLT
How can I get a metalink account?
If you are an Oracle employee,you can register metalink account from here. For others, you can register for metalink here.
Can you give me some points about Linux installation and configuration before I execute OLT?
Yes,there are some points you must be careful on Linux installation before you run OLT ,you should make sure you install and configure Linux as below:
- Verify the BIOS settings for NUMA to select appropriate NUMA setting based on your hardware and BIOS.
- Allocate 1 to 2 times of memory size for swap space.
- Select English for default language.
- It is convenient to select all the packages for Linux.
- If using 11g version of oracle database/crs for running the OLT tests , then SELINUX setting should be turned OFF.
If you want to run OLT for RAC, you should also
- Make sure to select [No firewall].
- Make sure you have at least 2 network interfaces and 3 IP addresses for each node.
- Make sure shared storage is ready for use.
After install Linux, I found my swap is less than the physical memory,how can I enlarge my swap?
If the swap is not enough, you can add a new swap partition or a swap file. Using swap partition is more efficient than using a swap file. The new swap partition can be added as below:
- Prepare an unmounted extra disk,use 'fdisk' or 'parted' to make a new partition(ex: sdc1).
- Make this partition to swap by
#mkswap /dev/sdc1
- Enable this partition by
#swapon /dev/sdc1
- Check whether the swapspace is added by using 'free' command.
- Add an entry in the /etc/fstab file as shown below to ensure that the new swap file is available after you reboot the machine.
/dev/sdc1 swap swap defaults 0 0
If you don't have extra partition you can manually adjust the space by using a file as below:
#dd if=/dev/zero of=/bigswap bs=1k count=1548576
- Note: Name = /bigswap, Block size = 1 KB and File size 1.5 GB.
- Change the access rights of the file by
#chmod 600 /bigswap command so that others do not accidentally delete the file.
- Make this file to a swap file by
#mkswap /bigswap
- The next step is to enable swap on to the designated file by
#swapon /bigswap
- Check whether the swap space is added by using the 'free' command.
- Add an entry in the /etc/fstab file as shown below to ensure that the new swap file is available after you reboot the machine.
/bigswap swap swap defaults 0 0
How to set hugepages?
The hugepage may be set by vm.nr_hugepages kernel parameter when the system is up for a few time,but you can find it's hard to allocate adequate number of hugepages by just invoking
#sysctl -w vm.nr_hugepages=<big number>
This command could be useful only when the machine is just booted.
The most effective way of setting hugepage is by adding a parameter
hugepages=<big number>
to the kernel in /boot/grub/menu.lst.
How to enable and disable SELinux?
You can config SELinux by modifying the /etc/selinux/config file.
Enforce the SELinux by setting
SELINUX=enforcing
Disable it by setting
SELINUX=disabled
After changing the selinux setting make sure to reboot the system. Also relabel the filesystem.
Is JDK required to be downloaded for OLT?
No need.
How to synchronize the different nodes time through ntp?
If all the nodes in the RAC can access the public internet, you can use the following command in every node to synchronise time to an precise time source(every node has the same time provided by public time server).
#ntpdate <time_server>
you can find available time server list here. Above method is useless if the RAC is isolated from internet, but what we want most in RAC is all nodes have the same time ,no need have to be the official stand time like UTC.So,we can set one node as the time daemon,the other nodes synchronise their times to this node.
To the time daemon node:
Modify the /etc/ntp.conf,add following line in CLIENT NETWORK section
restrict <your_ip> mask <netmask> nomodify
- Note: 'your_ip' should be the node public ip, 'netmask' should be the netmask for public ip
- Start the 'ntpd' service by
#service ntpd start
To the other nodes you have two ways syncing their time,the easiest one is you just use ntpdate command as above. You can also add this command in crontab to update time in a frequency(ex:per hour).
Another method is you start the 'ntpd' daemon on every other nodes:
Modify the /etc/ntp.conf,add following line in the OUR TIMESERVERS section
server <daemon_node_ip> prefer
- Start the 'ntpd' service by
#service ntpd start
- You can check whether the connection to the daemon is established by
#ntpq -p
After a few minutes, the time can be synchronised same to the daemon,and 'ntpd' will keep in touch with the daemon node constantly.
SECTION 3 - OLT FOR SINGLE NODE
How much disk storage should I allocate for OLT test data in single node?
- If the tests are being run on a single storage type,then you should allocate about 300GB space.
What is the mount option for NFS in single node?
The default location for NAS storage is /olt-storage/nas which can be specified in OLT configuration, you should mount your NAS storage with the following options For kernel version > = 2. 6. 25, the deprecated mount option “nointr” is removed.
rw,bg,hard,tcp,nfsvers=3,timeo=600,rsize=32768,wsize=32768
For kernel version < 2. 6. 25
rw,bg,hard,nointr,tcp,nfsvers=3,timeo=600,rsize=32768,wsize=32768
SECTION 4 - OLT FOR RAC
How much disk storage should I allocate for OLT test data in RAC tests?
The storage requirements for the test data depending on storage type are listed below:
- NFS -- Database files: ~110GB
- OCFS2 -- Database files: ~50GB
- ASM -- Database files: ~50GB per failure group
What is the mount option for NFS in RAC mode?
The mount options for NFS are listed as below(note: this is different from single node option): For kernel version > = 2. 6. 25, the deprecated mount option “nointr” is removed.
rw,bg,hard,tcp,nfsvers=3,timeo=600,actimeo=0,rsize=32768,wsize=32768
For kernel version < 2. 6. 25
rw,bg,hard,nointr,tcp,nfsvers=3,timeo=600,actimeo=0,rsize=32768,wsize=32768
Please use "noac" option instead of "actimeo=0" for pre RHEL 3 U3.
After install Linux,what should I prepare for OLT running properly in RAC mode?
There are very detailed documentation Pre-Installation tasks for installing RAC on Linux-Based systems,you must make sure your environment satisfy the requirements specified from this document. It is not necessary to create the CRS and Oracle home directories as the OLT will automatically select directories for the homes during the provisioning of the Oracle software.
How to install and configure OCFS2 on more than one nodes for OLT?
To get more detailed documents about OCFS2 you can go to Oracle's OCFS2 page.
How to install and configure ASMlib for my OLT test?
You can find some useful installation documents about ASMLib from Oracle's ASMLib page.
What label should I use for asmlib?
The ASM disk must have a specific label.
For example:
# /etc/init.d/oracleasm createdisk VOL1 /dev/sdg
Creating Oracle ASM disk "VOL1" [ OK ]
Disk names are ASCII capital letters, numbers, and underscores. They must start with a letter.
Where will the CRS OCR and voting devices be installed?
During the OLT configuration process, it is possible to specifiy where the OCR and voting devices will be located. The devices can be on a shared filesystem or raw devices. If the devices will be located on raw devices, ensure that the raw devices are created with the proper permissions. Refer to the Pre-Installation tasks for installing RAC on Linux-Based systems documentation for detailed instructions on setting up storage for CRS.
(Note: Starting with the 2.6 Linux kernel, raw devices are being phased out in favor of O_DIRECT access directly to the block devices, So for 2.6 Linux kernel servers we recommend to use block devices for CRS OCR & Voting disks)
Do i need to install the OLT rpms on all the test nodes?
No need. You can install OLT package and prepare oracle packages only on the first node.
SECTION 5 - TEST CASES
What is a test case?
A test case of the OLT kit can be a script,an exe(written in C/ProC or OCI) or even a kernel test module. The test case is designed to perform a test on a specified purpose to against Oracle Database. For instance, the test case st-mempressure will simulate a heavy OLTP workload and additional memory pressure on the test node to verify whether system is strong enough.
How many kinds of tests are present in the OLT kit?
This is available here
How many test cases are there included after the OLT default installation?
Many,about 124.You can check them by
#cd /opt/oracle/oltest/olt-schedule/testcases/`hostname`/
#ls *.env | wc -l
all the testcases are suffixed by '.env'.
Where can I find the detailed description of each test case?
Actually,the OLT kit has several testing tools. All the testcases belong to different tools. These tools have respective directories under '/opt/oracle/oltest/olts/.srchome/'. Under every tool's directory, there's a subdirectory called 'docs' or 'doc',you may find some useful information there. A far more detailed descriptions of test tools and cases can be found here
SECTION 6 - RUNNING OLT KIT
Which user should I use to execute OLT,root?
No,you should use user 'oracle' to run the tests,this user is automatically created for you when you install the OLT kit rpms,change to user 'oracle' by
#su - oracle
How to setup a test node?
The way to setup a test node is to use 'olt-configure -V'. Following the prompts the test node will be automatically configured. The configuration file 'validate.cmd' will be created after the configuration, which will be used by olt-schedule. As a default setting, the 'validate.cmd' will include all test cases for the test node.
What is test provision?
All test cases and resources involved in the 'validate.cmd' will be deployed to the test node(s) before scheduling them up. This can be done by 'olt-provision' command. This process is executed automatically after the 'olt-configure -V' command, so most of time you have no need to perform it manually.
How does Oracle get installed for OLT?
There are two testcases will install the Oracle Software. "install-silent-oracle-<version>" for single configuration, and "install-silent-rac" for RAC configuration. Installation is in silent mode and using response file in OLT which gets generated during the start of the install test. The interactive dialogs normally seen by the user are not displayed in silent installation. All the installation options are set in the response file.
- For single node, the template response files are generated by ( The actual reponse file is in the work area )
/opt/oracle/oltest/.srchome/si-install/si-response-files
- For RAC, the template response files are generated by ( The actual reponse file is in the work area )
/opt/oracle/oltest/.srchome/rac-install/src/scripts/rac-install_creatersp
Can I use a pre-existing Oracle home for running tests with OLT?
You can use a pre-existing Oracle home but with some manual modifications listed below.
- For running the single instance OLT tests,
Create a link from /opt/oracle/oltest/.srchome/ora-<oracle version>-<arch>/oradb to your Oracle_home.
ln -s your_oracle_home /opt/oracle/oltest/.srchome/ora-<oracle version>-<arch>/oradb
- For e.g for 10.2.0.3 on x86: ln -s your_oracle_home /opt/oracle/oltest/.srchome/ora-10.2.0.3-X86/oradb
Edit /opt/oracle/oltest/olt-schedule/validate.cmd file to remove the entry for oracle installation ( install-silent-oracle-<version> )
- Schedule your other tests as required.
- For running the RAC OLT tests,
Create a link from /opt/oracle/clusterware-<oracle version>-<arch>/crs to your crs_home.
ln -s your_crs_home /opt/oracle/clusterware-<oracleversion>-<arch>/crs
- For e.g: ln -s your_crs_home /opt/oracle/clusterware-10.2.0.3-X86_64/crs
Create a link from /opt/oracle/oltest/.srchome/ora-rac-<oracle version>-<arch>/racdb to your oracle_home.
ln -s your_oracle_home /opt/oracle/oltest/.srchome/ora-rac-<oracle version>-<arch>/racdb
- For e.g: ln -s your_oracle_home /opt/oracle/oltest/.srchome/ora-rac-10.2.0.3-X86_64/racdb
Edit /opt/oracle/oltest/olt-schedule/rac/<rac>.cmd file to remove the entry for oracle installation ( install-silent-rac)
- Schedule your other tests as required.
How can I start my test process?
The user can use olt-schedule to start the test on a test node. For instance, the following command schedules the test up,
$olt-schedule -f validate.cmd -r
olt-schedule will create a lock file in /tmp on the test node to guaranty that only one run at one time on the test node.
How can I monitor the running status?
The following command will give a live status report of scheduled test cases.
$olt-schedule -f validate.cmd -s
If apache server is installed and started on the master node, you can also collect statuses of finished testcases from 'http://master_node/cgi-bin/status.pl' using a web browser, turn off selinux for apache using /usr/bin/system-config-securitylevel in case you encounter some permission problems.
How can I terminate my test?
For single node test, you can stop the process by performing the following command:
$olt-schedule -k `hostname`
For RAC mode test, the following command should be executed on the master node:
$olt-schedule -k `hostname` -z
How can I skip a specific test case when the OLT is running?
It's ineffective to skip a testcase which is in progress, but you can skip a waiting one by 'skipfile'. Add a testcase as an entry to the skipfile in an uniform format is needed, you can refer to the template file in the /opt/oracle/oltest/olt-schedule/mod directory for details on the syntax of the entry to be added to the 'skipfile'. Once the 'skipfile' has all the entries to be skipped, execute the following command in /opt/oracle/oltest/olt-schedule/mod
$olt-skiptests <skipfile>
How to check the results of scheduled test cases?
olt-schedule will collect all results of scheduled test cases to a summary file, named 'olt-summary.csv'. This file is in /opt/oracle/oltest/olt-schedule/log/. A 'Pass' or 'Fail' shows the result of each test case. You can also view the results through a browser, there's a Perl script named 'display_results.pl' shipped with olt-schedule used to convert the csv format file to html format. You can generate a simple html report by invoking
$display-results.pl -d log/
then a file called 'olt_results.html' will be present in the log directory.
Do I need to do any cleanup operations for the last OLT run before I use OLT to execute tests once again?
No need,after you stop the OLT test ,the termination will do the cleaning job for the user, including remove the lock file for the olt-schedule in /tmp, clean the IPC resources, etc.
Why is there sometime failure noticed during OLT configuration or test scheduling For OLT OVM case testing ?
This is caused by incorrect/incomplete configuration files used which were part of a previous failed/incomplete test runs. i.e.If the test is killed or terminated in between the OLT configuration or the test runs, all the intermediate files generated during the same period will be not cleaned up and the same will be used for the next test configuration & runs. Hence the failure. Its recommended to cleanup the earlier failed or the incomplete OLT OVM configuration or the test runs using the below command before restarting the OLT OVM configuration or the test runs,
olt-xen-test -f domains.config -k cleanup
Note: The above command will cleanup/delete all the guests & other intermediate files used during the OLT configuration & the test runs.
Can you give me some hints on how to execute OLT more effectively and efficiently?
There are many test cases included in the OLT test suites,which differentiates each other not only in time they would consume but also the importances they holds. The most critical test case is definitely the 'install-silent-oracle' which can verify whether your system can perform a successful installation of Oracle Database. And this test is the basis for any other more complex function or stress tests which could be more time consuming. So,if you want to save your time and simplify the test process,just perform the 'install-silent-oracle' test solely before any other tests,this can be done by comment other test commands in the validate.cmd(default name) file.
How to clean up the Oracle software installations?
To clean up the installations completely the following directories should be removed (make sure that crs has been stopped on all nodes prior to this):
- oracle/crs home
- e.g.
- For 10.2.0.2 single node oracle,
#rm -rf /opt/oracle/oltest/.srchome/ora-10.2.0.2-X86_64/
- For 10.2.0.2 rac,
#rm -rf /opt/oracle/oltest/.srchome/ora-rac-10.2.0.2-X86_64/
#rm -rf /opt/oracle/clusterware-10.2.0.2-X86_64
- Inventory location
- Remove the inventory location specified in /etc/oraInst.loc
- e.g.
- For 10.2.0.2 single node/rac,
#cat /etc/oraInst.loc
- inventory_loc=/opt/oracle/oltest/olts/.srchome/oracle-rac-10.2.0.110.2.0.2/oraInventory inst_group=g502
#rm -rf /opt/oracle/oltest/.srchome/ora-rac-10.2.0.2/oraInventory
SECTION 7 – RAC DESTRUCTIVE TEST
What is a destructive test?
A destructive test simulates asm or crs or instance crash on one node of a RAC to check whether the VIP or process can failover to some surviving node,it also checks for oracle software errors due to the crash.
How to run an automated destructive tests?
If you have configured for two node rac with the nodes node1 and node2, the cmd file for destructive tests will be
/opt/oracle/oltest/olt-schedule/rac/<node1>_<node2>_dest_schedule.cmd
- The destructive tests can be scheduled in the following manner
$cd /opt/oracle/oltest/olt-schedule
$olt-schedule -f rac/<node1>_<node2>_dest_schedule.cmd -r
How to run a manual destructive tests?
This involves running a normal rac test using the olt framework and then doing the destructive part manually and then observing the behaviour. This is required to be done for network failure and storage failure.
- Schedule the tests, use the following command
$cd /opt/oracle/oltest/olt-schedule
$olt-schedule -f rac/<node1>_<node2>_dest_manual_schedule.cmd -r
- Wait till the test shows the following message in rac_tuning.tlg on the master node
$cd /home/oracle/work/<current test run>…./work
$tail -f rac_tuning.tlg
- "For manual destructive tests manually do the failure part"
Then perform one of the following test scenarios on the non-master node,
- a. Network interconnect failure
- Failing the private interconnect on the non-master node You can achieve this in two ways:
- Bring down the private interface using the ifdown command
- e.g.
#ifdown eth1
- Pull the interconnect physically or if you have a web-interface for the network switches then disable the corresponding switch from the web-interface.
- (NOTE: Cluster reconfiguration depends on the load and environment)
- b. Storage failure
- Disabling the storage on the non-master node. You can pull the storage cable physically or if you have a web-interface for the storage switches then disable the corresponding switch from the web-interface. In this case, the node for which the storage is disabled is expected to be evicted from the cluster.
How do I consider a destructive test as successful?
Some phenomena can be observed if a destructive test is successful, this includes
- One of the nodes will get evicted and some other node reconfigures as a cluster
- Check the crs logs in
/opt/oracle/clusterware-10.2.0.2-X86_64/crs/log/<node1>/cssd/ocssd.log
- for cluster reconfiguration on both nodes.
- The connections on the evicted node will failover to the surviving nodes. You can refer a file run-process, which shows count of all oracle processes running on all nodes before and after the failure.
#cd /home/oracle/work/<current test run>…./work/
#tail -f run-process
- The count will approximately be USERS on failover across all the surviving nodes.
SECTION 8 - TEST CASE FAILURE AND DEBUGGING
What can I do if a test case failed?
If there is a 'Fail' or 'Fail-ENV' for a test case, the user need to locate the error manually. However, most test cases have a similar working directory structure. All scheduled testcases will create a working directory at /home/oracle/work. For instance,/home/oracle/work/st-mempressure_Jul10_06-10-56-50 indicates a scheduled test case st-mempressure at 10:56:50 on Jul 10. If the test case passed, the file run.suc will be created in the working directory. If the test case failed, take a look at 'run.tlg' and 'run.dif' to locate the error. If the test case is for oracle Database, then the user should also check the '.trc' files (created by the Oracle Database) and 'alert.log' in the working directory. That may give some useful messages to locate the error.
Where can I find the important logs of tests for debugging?
- System logs (cpustat/vmstat/iostat/meminfo-slabinfo/dmesg/var-log-messages/..) under
/home/oracle/work/<test-suite-dir>
- Test specific detailed logs (RESULTS_LOC)
- The detailed logs can be found under
RESULTS_LOC=/home/oracle/work/<test-suite-dir>/<testcase dir>/work/
- Important log files:
/home/oracle/work/<test-suite-dir>/<testcase-dir>/work/*.tlg
ex: /home/oracle/work/ft-aio_Sep28_06-06-46-32/ft-aio-dbt2_1_Sep-28-06-46-32-497465000-28633/work/io.tlg This file logs every important step in the test execution. Typically the statements here have a INFO or ERROR tag depending on the step result. The same directory has log files that capture the parameters used for the dbt2 run, the init.ora parameters used and the database startup logs. /home/oracle/work/<test-suite-dir>/<testcase-dir>/work/run.suc
indicates that the particular testcase has passed /home/oracle/work/<test-suite-dir>/<testcase-dir>/work/run.dif
- indicates that the particular testcase has failed
/home/oracle/work/<test-suite-dir>/olt-schedule_work/<testcase>.progress.log for a overview of test execution steps and /home/oracle/work/<test-suite-dir>/olt-schedule_work/make.log for a more verbose log on test execution steps
- DB logs(alert logs and trace files)
- DB creation logs
$RESULTS_LOC/oltdbt2-dbcreate.log
$RESULTS_LOC/create-dump/ (For oracle version < 11G)
$RESULTS_LOC/create-dump/diag/rdbms/<SID>/<SID>/trace (For 11g)
- DB startup log
$RESULTS_LOC/oltdbt2-dbstart.log
$RESULTS_LOC/run-dump/ (For oracle version < 11G)
$RESULTS_LOC/run-dump/diag/rdbms/<SID>/<SID>/trace (For 11g)
- DB logs at the time of running the test
$RESULTS_LOC/run-dump/ (For oracle version < 11G)
$RESULTS_LOC/run-dump/diag/rdbms/<SID>/<SID>/trace (For 11g)
- DB creation logs
- dbt2 Kit logs
$RESULTS_LOC/oltdbt2-execute.log
$RESULTS_LOC/oltdbt2-install.log
What should I do incase of errors during ssh?
Check for existing keys in /home/oracle/.ssh/known_hosts and remove any offending keys.
olt 2.0.1-1 installation doesnt recognize Enterpsise Linux 5
This is fixed in 2.1.0-0.
What should I do if I encounter some testcase ENV issues?
You can check for parameters specified in the ENV file for a specific testcase.
In the validate.cmd file we have listed different test suites. A suite st_p_multi_db is defined as the following testcases (in parallel) as given in <olt-schedule_install>/testcases/makefiles/makefile.suites
st-mem-io1: @ $(MAKE) -j st-mem-io1-dbt2_1 st-mem-io1-mempressure-attach1 @ $(MAKE) -j st-mem-io1-dbt2_2 st-mem-io1-mempressure-attach2 @ $(MAKE) -j st-mem-io1-dbt2_3 st-mem-io1-mempressure-attach3
each of the targets here is a testcase with a corresponding env in testcases/<hostname>/<testcase>.env
What should I do if I encounter some scheduling issues,such as test didn't get scheduled at all or no QA home location created?
/opt/oracle/oltest/olts/olt-schedule/log/ directory has node specific scheduler logs, you can check them. Also the <olt-schedule_install>/log/olt-summary.csv is a comma seperated file which appends the execution results of all the runs across all nodes. Ex. suc/dif, test parameters, kernel version etc.
What should I do if I meet NFS issues?
On nfs the oracle error ORA-27086 might be encountered:
- ORA-00301: error in adding log file '/storage/nas/nas/10.2.0.2/8192/72G//log_11.1' - file cannot be created
- ORA-27086: unable to lock file - already in use Linux-x86_64 Error: 11: Resource temporarily unavailable
workaround:
- There is a possibility that the filer is not able to clear the locks on database files. Please refer to metalink Note 145194.1 and Note 236794.1 to see the workaround for this problem.
Is there any tool to help me debug?
Following scripts are provided for collecting all the debug information that would be necessary for debugging issues when running OLT.
/opt/oracle/oltest/olt-schedule/utils/olt-debug
- This collects relevant configuration information and all the necessary log files and create a tar file out of it.
/opt/oracle/oltest/olt-schedule/utils/asm-debug
- Refer to this directory for details on collecting debug information specific to ASM.
Where can i find error messages for debugging in RAC test?
All error messages can be found in ${RESULTS_LOC}/rac_tuning.tlg.
Passwordless ssh/scp failed,what should I do?
You should configure passwordless ssh/scp to all nodes from all nodes including private and public ip.
Storage check failed, what should I do?
You should check for permissions on srchome,dbfiles location and cluster config file locations.
CRS installation failed, what should I do?
You can check the following logs
${RESULTS_LOC}/kitlogs/crs-install.log
${RESULTS_LOC}/kitlogs/crs_orainventory_logs
${RESULTS_LOC}/testrun.log
- for output of root.sh
Common problems may be
- "vip is already in use" : Make sure that vip is not pingable. Check /sbin/ifconfig to see whether VIP is configured/assigned to NIC.Check network scripts.
- In case of ocfs2 and NAS check the mount options on all nodes.
- Ensure that connection is full-duplex.
- Ensure time is sync'ed on all nodes. Use ntpd to synchronise the time.
- Different uid, gid for oracle user across the nodes.
- /etc/hosts contains all the public, private and VIP names on all the nodes.
- Ensure read/write permission on storage (OCR and VOTE disks).
- Check for free space in srchome
- Check public ip and vip are in same class(public) of ip adresses.
Why is there a failure during dbt2 install in a RAC cluster ?
The dbt2 kit install on primary node in a RAC cluster may fail with the error "Different id's for user oracle across nodes " seen in the oltdbt2-install.log ,when the uid & gid for the user "oracle" is different across the nodes in the cluster. So pls. keep the number of users & groups across the nodes in sync, i.e. since the "oracle" user gets created during the OLT install & gets these ids for user/group based on entries in /etc/passwd and /etc/group.
Why is there a failure in briging up the VIP during RAC/CRS install ?
During the RAC/CRS install the starting of VIP may fail with the error "checkIf: Default gateway is not defined .." or "ping to xxx.xxx.xxx.xxx via eth0 failed" seen in the ora.<nodename>.vip.log , then please set/define the default gateway , i.e. Before installation, check that the default gateway can be accessed by ping command & public IP, virtual IP and default gateway to be on the same subnet.
Why is there a failure in ONS/VIP/GSD related operations during RAC/CRS install ?
During the RAC/CRS install the configToolFailedCommands execution may fail with error " CRS-0210: Could not find resource 'ora.<nodename>.ons'. The resource ora.<nodename>.ons failed to stop for restart " , then this may be due to install code having conflicts with case sensitiveness of the node names. So please do not use the uppercase or mix of uppercase/lowercase for the node names in the cluster.
Oracle installation failed , what should I do?
You can check the following 2 logs for useful information
${RESULTS_LOC}/kitlogs/db-install.log
${RESULTS_LOC}/kitlogs/db_orainventory_logs
I found it's unable to start Clusterware, what should I do?
You can follow the steps below to check
- Check for permission on OCR(root:oracle_user_group) and VOTE(oracle:oracle_user_group)
- Check logs at /tmp/crsctl.*
- Try with disabled selinux
- Manually try to start crs with /etc/init.d/init.crs start as root on all nodes.
I found it's unable to start asm instance(with asmlib), what should I do?
You can follow the steps below to check ( or you can use the utility under /opt/oracle/oltest/olts/olt-schedule/utils/asm-debug/ to collect this information )
- Check testrun.log for errors.
- With asmlib:
- Check the following on all nodes
- Check wether installed oracleasm packages versions matches kernel version.
#rpm -qa |grep oracleasm
# uname -a
- Check wether asmlib driver is inserted.
#lsmod | grep oracleasm
#/usr/sbin/oracleasm-discover 'ORCL:*"
- If this fails then do
#strace -f -o asm_discover.out /usr/sbin/oracleasm-discover 'ORCL:VO*'
- Check the permission of:
#ls -la /opt/oracle/extapi/64/asm/orcl/1/libasm.so
- Check if the library exist or if the permissions are correct: 755.
- Also validate that the directories in the path also have the correct permissions (755).
As root run /etc/init.d/oracleasm scandisks on all nodes.
As root run /etc/init.d/oracleasm listdisks on all nodes and check all disk vol/labels are visible across the nodes.
As root run /etc/init.d/oracleasm querydisk on all devices/volumes to check consistancy across the nodes.
- Put zero in the disks (dd) and recreate the volumes(in case of asmlib), and re-run the test with 'FORCEDBCREATE=true' in testcase env file, if you encounter any errors w.r.t discovery or diskgroup operations.
I found it's unable to start oracle instance,what should I do?
You can check the following 2 files
${RESULTS_LOC}/run-dump/alert_<SID>.log (For oracle version < 11G)
$RESULTS_LOC/run-dump/diag/rdbms/<SID>/<SID>/trace/alert_<SID>.log (For 11g)
${RESULTS_LOC}/testrun.log
In case you have partially installed oracle, then manually remove oracle home for srchome and then run the test.
Database creation failed, what should I do?
You can check the following files
${RESULTS_LOC}/oltdbt2-dbcreate.log
${RESULTS_LOC}/create-dump (For oracle version < 11G)
${RESULTS_LOC}/create-dump/diag/rdbms/<SID>/<SID>/trace/alert_<SID>.log (For 11g)
${RESULTS_LOC}/build-dump
Common problems may be
- Not enough space in shared storage.
- uid and gid of oracle users across the nodes are different.
- Check for package/library dependencies.
- Half duplex connection with shared storage.
- Try with disable SElinux.
I found it's unable to start listener,what should I do?
You can check ${ORACLE_HOME}/network/log/listener.log for details and manually start CRS on all nodes and check for vip.
On x86 machines with low memory configuration ( less than or equal to 4 GB ) a lot of testcases fail unable to startup database instance. What can I do ?
Removes SGA parameter from failed testcase env files under olt-schedule/testcases/<hostname>/ directory and re-run teh tests for dynamic sizing of SGA parameter
- ft-remap-file-pages is not valid case for low memory configurations. This test can be expected to fail.
On RHEL5/EL5, on x86, some tests fail with ORA-01034. How can I resolve this?
Increase the stack size to 32MB by editing limits.conf for oracle user.
oracle soft stack 35240 oracle hard stack 35240
I found oltdbt2 installation failed and hanging,what should I do?
You can check the following logs
${RESULTS_LOC}/oltdbt2-install.log
${RESULTS_LOC}/oltdbt2-unpack.log
common problems may be
- Not enough space in /home/oracle/work
- remove .srchome/rac-database directory and re-run test with 'FORCEDBCREATE=true' parameter
- in testcase env.
Why is there a failure in the 'sv_oltverify' test case?
The 'sv_oltverify' testcase is mainly used to determine whether your kernel and storage mounting parameters are set appropriately. The failure occured here is usually caused by an incorrect parameter setting.
- To kernel setting,you must make sure the parameters configured as below:
fs.file-max:327679 kernel.msgmni:2878 kernel.msgmax:8192 kernel.msgmnb:360000 kernel.sem:250 32000 100 142 kernel.shmmni:4096 kernel.shmall:3279547 kernel.shmmax:3700000000 kernel.sysrq:1
- For storage setting,you can refer to thabove sections for proper mount options.
Why is there a failure for the 'ft_hugetlb' test case?
This is often caused by an inappropriate kernel parameter setting. You can reboot the machine,then invoke
#sysctl -w vm.nr_hugepages=1000
then retry this test.
Why is there sometime failure in the ft_aio & ft_aio_dio test cases for 11g ?
In 11G , the asynch I/O calls are not ALWAYS traced in the user process stack.The reason for the difference in asynch I/O behavior is due to the way asynch I/O support is determined in 11G compared to 10G. So you won't see io_submit/io_getevents call traces always in all the user process traces in 11G.
Why is there failure in st-mem-spike testcase for 11g ?
If the st-mem-spike testcase fails only with error "kzxupnamread error -- 942: ORA-00942: table or view does not exist" seen in the database trace files when running with oracle database version 11.1.0.6 , then its a known issue with 11.1.0.6 and these OCI errors are fixed in the 11.2
Why is there sometime failure in OLT stress tests with the below ORA- errors for 11g ?
ORA-00072: process "Unix process pid: <PID>, image: oracle@<NODE> (J002)" is not active
ORA-12751: cpu time or run time policy violation
If the test fails due to the above ORA- errors in the db alert log & trace files for 11g during the test run time, then currentlly we ignore these errors & the test failures.
Why is there sometime failure in OLT dbt2 tests with the below errors for 11G ?
"ERROR: SGA memory leak detected xxxx" seen in the database trace files during database shutdown.
If the test fails due to above error in the database trace file during database shutdown ONLY for 11.1 i.e. 11.1.0.6/11.1.0.7, then currently we can ignore this error and the test failure.
This issue is fixed in 11.2 database release. Reference Bug :8525592.
How to disable Automatic Memory Management(Memory_target) feature in 11g for OLT tests ?
By default for 11g OLT tests, memory target is enabled , to disable this feature
- For all the OLT tests:
- This can be done by uncommenting the below line in
/opt/oracle/oltest/olt-schedule/env/<nodename>/olt-schedule.env
- #export MTARGET=false
- This can be done by uncommenting the below line in
- For individual OLT tests:
- This can be done by adding MTARGET=false to TEST_PARAMS string in the respective
testcase env file located under /opt/oracle/oltest/olt-schedule/testcases/<nodename>/
- This can be done by adding MTARGET=false to TEST_PARAMS string in the respective
Note: This Database initialization parameter is effective only for the database version >= 11G.
What do I do if a destructive test runs induces a failure immediately on the fail node ?
Prior to running the destructive tests, run olt-schedule -k <master nodename> -z
What if my test fails with the following error ( Couldn't find the global config file ) in the .dif file?
If the testrun.log contains the following error:
WARNING: Couldn't find the global config file.
check that runtest being used does not point to any systemic runtest executable ('which runtest' will tell you the 'runtest' program you are using, probably /usr/bin/runtest, which is deliverd by dejagnu-1.4.4-2)
Are there ORA- errors which may appear in a run but are probably ignorable?
Yes - listed below are some errors which may be acceptable depending on the conditions
ORA-12012: error on auto execute of job 11674 followed by "no data found" on a job which has no impact.
How do I run a single test usig OLT?
- Create a test.cmd file containing only the testcase you want to execute.
Execute olt-schedule -k <nodename> [ -z for RAC ]
- olt-schedule -f ./test.cmd -r
How to start up the Oracle database manually for dbt2 single node?
Please follow the below steps to startup the oracle database instance manually
#cd /home/oracle/work/<test-suite-dir>/<testcase-dir>/work/oltdbt2/single/dbt2/home/dbt2-work/server/config/
- Source the server.env file, this will set the environment needed for starting up the oracle database
#. server.env
- Connect using sqlplus
#sqlplus "/ as sysdba"
- On the sql prompt use the startup command as shown below, which will startup the database
SQL> startup pfile=run.ora ORACLE instance started. Total System Global Area 1048576000 bytes Fixed Size 2076424 bytes Variable Size 255852792 bytes Database Buffers 784334848 bytes Redo Buffers 6311936 bytes Database mounted. Database opened. SQL>
Is OLT supported for higher CPU count servers?
No.DB creation fails on higher CPU count servers. The higher CPU count machine requires more memory to startup or create the database than the lower CPU machine.The buffer cache, or rather the parameter DB_CACHE_SIZE, can not be lower than 4M*cpu count. This is a known issue & needs tuning/resizing of SGA components.
xm test failure
The failure is due to the test guest image fails to start using the xm test contained initrd and Oracle VM 3.0 server vmlinuz. The reason for this is the initrd present in xm test and the Oracle VM 3.0 server vmlinux are not compatatible , i.e the earlier Oracle VM versions are i386 based and later is x86_64 based. Hence, xm-test create-destroy scenario has been skipped for Oracle VM 3.0 server.
SECTION 9 - AUDITING AND PUBLISHING
What results should I hand out for auditing?
You should collect and submit the following logs for auditing on all testing nodes:
- Work area for the test.
- /var/log/messages
- /opt/oracle/oltest/olt-schedule/log
For RAC,in addition to the above logs, the following are also required
/opt/oracle/clusterware-<oracle version>-<arch>/crs/log/<node name>/
- /tmp/crsctl*
Where can I look up the published configurations?
You can find out the available configurations from Oracle Validated Configurations page.