11gR2 database installation comes up with new feature known as Installation Fixup scripts which aids you during Installation phase. If a pre-requisite check fails, then it provides a click and generate fixup script option and then points you to script location which then need’s to be executed with root permission. As per doc’s , it takes care of following things
– Checks and sets kernel parameters to values required for successful installation, including:Shared memory parameters,Semaphore parameters and Open file descriptor and UDP send/receive parameters
– Sets permissions on the Oracle Inventory directory.
– Reconfigures primary and secondary group memberships for the installation owner, if necessary, for the Oracle Inventory directory, and for the operating system privileges groups.
– Sets up virtual IP and private IP addresses in /etc/hosts.
– Sets shell limits to required values, if necessary.
– Installs the Cluster Verification Utility packages (cvuqdisk rpm).
Below are screenshot for error’s encountered as a result of missing kernel settings in sysctl.conf file
Below is output of running the script as root
cat orarun.log
This is the log file for orarun script
Timestamp: 090109150435
Response file being used is :/tmp/CVU_11.2.0.1.0_oracle/fixup.response
Enable file being used is :/tmp/CVU_11.2.0.1.0_oracle/fixup.enable
Setting Kernel Parameters...
file-max in response file:6815744
file-max in /etc/sysctl.conf:6815744
The value for file-max in response file is not greater than value for file-max in /etc/sysctl.conf file. Hence not changing it.
file-max for current session:6553600
ip_local_port_range in response file:9000 65500
ip_local_port_range in /etc/sysctl.conf:9000 65000
ip_local_port_range for current session:1024 65000
aio-max-nr in response file:1048576
aio-max-nr in /etc/sysctl.conf:1048576
The value for aio-max-nr in response file is not greater than value for aio-max-nr in /etc/sysctl.conf file. Hence not changing it.
aio-max-nr for current session:65536
Before running the script, I had modified the file without executing sysctl -p to implement the changes. Fixup script log shows that it checks the file again and replaces parameter if required and then executes sysctl command to make changes persistent.
Oracle 11gR2 has been released for linux x86 and x86-64 platform. Software can be downloaded at http://www.oracle.com/technology/software/products/database/index.html
Guys start downloading..:) ..
Note: – As of now documentation link is not available on http://tahiti.oracle.com (13:30 G.M.T)
Update : – Thanks to H.Tonguç , documentation can be accesed at http://www.oracle.com/pls/db112/homepage?remark=tahiti
While setting up ocfs2 for OCR and Voting disk storage with following commad:
# ocfs2console
After clicking on ==>cluster ==> configure nodes, I got a pop-up saying:
<span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">"Could not start cluster stack. This must be resolved before any OCFS2 filesystem can be mounted."</span></span>
Soon I realized that the thing which takes few minutes to get installed, is going to give me a tough time.
/var/log/messages shows following details:
<span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">Aug 17 14:53:40 rac1 modprobe: FATAL: Module configfs not found.
Aug 17 14:55:23 rac1 modprobe: FATAL: Module configfs not found.
Aug 17 14:56:56 rac1 modprobe: FATAL: Module configfs not found.
</span></span>
This prevents the configuration of OCFS2’s cluster stack, but it is mandatory to have OCFS2 cluster stack “O2CB” running, before
we can start anything with OCFS2 filesystem.
The stack includes the following services:
<span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;"> * NM: Node Manager that keep track of all the nodes in the cluster.conf
* HB: Heart beat service that issues up/down notifications when nodes join or leave the cluster
* TCP: Handles communication between the nodes
* DLM: Distributed lock manager that keeps track of all locks, its owners and status
* CONFIGFS: User space driven configuration file system mounted at /config
* DLMFS: User space interface to the kernel space DLM
</span></span>
“Error : modprobe: FATAL: Module configfs not found” can occur because of following reasons:
1. SELINUX is enabled.
2. Mismatch between the Kernel and OCFS2 module.
1. To check for selinux:
# sestatus
Or
# vi /etc/sysconfig/selinux
Make sure that selinux is DISABLED here.
2. To check for Mismatch:
# uname -a (It will give the exact kernel version of the OS)
2.6.9-42.ELsmp
# rpm -qa |grep ocfs2 (It will tell us the ocfs2 package currently installed)
ocfs2-2.6.9-89.EL
Here it can be seen that ocfs2 is for kernel version 89 not for kernel version 42.
Few days back , Martin had posted a series of post on a issue where GATHER_STATS_JOB was failing silently for a large object. If you have missed it, you can check following links
This post is based on some of the discussions on the thread. Please note that this is not intended to discuss bugs (if any) associated with the job
Gather_stats_job was introduced with Oracle 10g to gather statistics for database objects which has stale statistics (10% of data has changed, you can query dba_tab_modifications) or the tables for which the statistics has not been gathered (new tables created/truncated). This job runs during the maintenance window i.e every night from 10 P.M. to 6 A.M. and all day on weekends. This schedule can be though changed and process is documented in Metalink aka My Oracle Support Note 579007.1 –
This feature brought relief to lot of DBA’s as they did not have to write shell scripts to gather stats and could rely on this job to do the work. But slowly people realized that it does not fit in their environment and slowly recommendation turned from “Enabled ” to “Disabled “
Issues/Misconceptions
1) Should I schedule job run for every night?
As documented this job gathers stats on the tables which have got 10% of data changes since last run. So this will not touch the tables for which the data changes are less then 10%. Also due to rolling invalidation feature , sql cursors will not be immediately invalidated (Refer to oracle forums discussion and Fairlie Rego’s post)
If you are still not happy , you can change the maintenance window timings to suit the schedule (say on weekends)
In 11g, there is no GATHER_STATS_JOB. It has been now incorporated into DBMS_AUTO_TASK_ADMIN job along with Automatic segment advisor and Automatic tuning advisor. All these 3 run in all maintenance windows. New maintenance windows introduced with 11g are
You can check the name and state of this job using following query
SQL> SELECT client_name, status FROM dba_autotask_operation;
CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection ENABLED
auto space advisor ENABLED
sql tuning advisor ENABLED
Window – Description
MONDAY_WINDOW – Starts at 10 p.m. on Monday and ends at 2 a.m.
TUESDAY_WINDOW – Starts at 10 p.m. on Tuesday and ends at 2 a.m.
WEDNESDAY_WINDOW -Starts at 10 p.m. on Wednesday and ends at 2 a.m.
THURSDAY_WINDOW – Starts at 10 p.m. on Thursday and ends at 2 a.m.
FRIDAY_WINDOW -Starts at 10 p.m. on Friday and ends at 2 a.m.
SATURDAY_WINDOW – Starts at 6 a.m. on Saturday and is 20 hours long.
SUNDAY_WINDOW -Starts at 6 a.m. on Sunday and is 20 hours long.
2) I do not want gather_stats_job to gather stats on some of my tables.
This requirement can arise due to following points
a)There are tables for which you have set the stats manually
b) There are queries for which you know your old stats will work fine
c) Tables are big and gather_stats_job is silently failing ( Again refer to Martin’s Post)
d) Tables for which histograms cannot not be gathered or vice versa
e) Tables for which you would like to estimate fixed percent of blocks
For all these situations. you can use DBMS_STATS.LOCK_TABLE_STATS and gather stats manually with force =>true to override locked statistics. For big partitioned tables you can use COPY_TABLE_STATS and APPROX_GLOBAL AND PARTITION feature.
Oracle 11g also has enhancement to gathering stats on partitioned tables where in you can gather INCREMENTAL stats for partitions and oracle will automatically update global stats for table.This approach has advantage as we don’t scan table twice and reduces the time to gather stats drastically. You need to use DBMS_STATS.set_table_prefs procedure to set Incremental stats gathering to true.
Note that first time, stats gathering will take more time as oracle will create object called synposes for each paritition. Subsequent runs of gather_stats_job will be faster. Refer to Optimizer group post for more info on copy_table_stats and 11g incremental stats feature. ( Due to bug copy_table_stats does not alter low/high value. Details can be found here )
To fix histogram issue, DBMS_STATS.SET_PARAM can be used to modify the default attributes e.g By default, GATHER_STATS_JOB will gather histograms, which can be confirmed by running below query
select dbms_stats.get_param('method_opt') method_opt from dual;
METHOD_OPT
--------------------------------------------------------------------
FOR ALL COLUMNS SIZE AUTO
To disable histogram capture, use
exec dbms_stats.set_param('method_opt', 'FOR ALL COLUMNS SIZE 1');
In case you wish to capture histograms for some of the tables, then you can use
exec dbms_stats.set_param('method_opt', 'FOR ALL COLUMNS SIZE REPEAT')
i.e Collects histograms only on the columns that already have histograms
Starting Oracle 11g database you can use DBMS_STATS.SET_*_PREFS to take care of point (d) and (e) i.e you can change the default gather options for particular table. Details can be found here
This is not exhaustive list and I hope that this will grow so that we can have Recommendation for GATHER_STATS_JOB status to be set to “SCHEDULED” 🙂
While trying to install 11gR1 on Oracle Enterprise Linux (OEL5), runInstaller failed for unixODBC* packages. To solve the issue , I started following OTN article
When trying to install RPM from CD3, faced following errors for unixODBC* rpm
#rpm -ivh compat-libstdc++-33* libaio-devel* sysstat* unixODBC*
warning: compat-libstdc++-33-3.2.3-61.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
error: Failed dependencies:
libboundparam.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libesoobS.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libgtrtst.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libmimerS.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libnn.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libodbccr.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libodbcdrvcfg1S.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libodbcdrvcfg2S.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libodbcinst.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libodbcminiS.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libodbcnnS.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libodbctxtS.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
liboplodbcS.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
liboraodbcS.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libsapdbS.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libtdsS.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libtemplate.so.1 is needed by unixODBC-devel-2.2.11-7.1.i386
unixODBC = 2.2.11-7.1 is needed by unixODBC-devel-2.2.11-7.1.i386
libodbc.so.1 is needed by unixODBC-kde-2.2.11-7.1.i386
libodbcinst.so.1 is needed by unixODBC-kde-2.2.11-7.1.i386
unixODBC = 2.2.11-7.1 is needed by unixODBC-kde-2.2.11-7.1.i386
Issue is because of missing rpm unixODBC-2.2.11-7.1.i386.rpm which is present in CD2 . Install it first and then the other RPM i.e
unixODBC-devel-2.2.11-7.1.i386 and unixODBC-kde-2.2.11-7.1.i386 can be installed without errors
Mount CD2
#cd /media/E*/Server
#rpm -ivh unixODBC-2.2.11-7.1.i386.rpm
Once rpm is successfully installed, mount CD3 and install unixODBC* rpm
Mount CD3
#cd /media/E*/Server
#rpm -ivh unixODBC*
Update
=====
Frits Hoogland commented on the post and pointed me to Oracle yum (Yellowdog updater modified) for taking care of dependencies. I had heard of yum but I had never tried it earlier. But as I checked today, it is very easy to setup. Process is listed at http://public-yum.oracle.com/
I am documenting the steps for setting it up on OEL5
<span style="font-family: arial, helvetica, sans-serif;">#</span> cd /etc/yum.repos.d
# wget http://public-yum.oracle.com/public-yum-el5.repo
Edit the copied file based on your OEL5 release and set enabled=1. e.g
cat /etc/enterprise-release
Enterprise Linux Enterprise Linux Server release 5.3 (Carthage)
[el5_u3_base]
name=Enterprise Linux $releasever U3 - $basearch - base
baseurl=http://public-yum.oracle.com/repo/EnterpriseLinux/EL5/3/base/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=1
To check
[rroot@db11g ~]# yum list ocfs2
Loaded plugins: security
Error: No matching Packages to list
ocfs2 packages are not available. Let’s install it now
[root@db11g ~]# yum install ocfs2
Loaded plugins: security
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package ocfs2-2.6.18-128.el5.i686 0:1.2.9-1.el5 set to be updated
--> Processing Dependency: ocfs2-tools >= 1.2.6 for package: ocfs2-2.6.18-128.el5
--> Running transaction check
---> Package ocfs2-tools.i386 0:1.2.7-1.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
ocfs2-2.6.18-128.el5 i686 1.2.9-1.el5 el5_u3_base 272 k
Installing for dependencies:
ocfs2-tools i386 1.2.7-1.el5 el5_u3_base 1.1 M
Transaction Summary
================================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 1.4 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): ocfs2-2.6.18-128.el5-1.2.9-1.el5.i686.rpm | 272 kB 00:03
(2/2): ocfs2-tools-1.2.7-1.el5.i386.rpm | 1.1 MB 00:08
--------------------------------------------------------------------------------
Total 102 kB/s | 1.4 MB 00:13
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : ocfs2-tools [1/2]
Installing : ocfs2-2.6.18-128.el5 [2/2]
Installed: ocfs2-2.6.18-128.el5.i686 0:1.2.9-1.el5
Dependency Installed: ocfs2-tools.i386 0:1.2.7-1.el5
Complete!
It’s cool..:)
There is one more method using which all the validated oracle packages can be installed during OEL5 installation.This also creates the oracle user/groups, sets up sysctl.conf, limits.conf, etc. Check out the article here
In this article , I will discuss how to install 10.2.0.5 EM Grid using 10.2.0.4 database. This method can also be used with 11g database.When you carry out 10.2.0.1 EM Grid control installation, it creates a 10.1.0.4 Database by default which is no longer supported and requires one to upgrade to supported release i.e 10.2. In case you choose EM grid installation with existing database, then DB version need’s to be <=10.2.0.3 which you would again like to upgrade to so as to easily receive bug fixes and be on latest supported release. So if you want to use 10.2.0.4 DB or 11.1 database, you will not be able to install using existing database directly but would have to follow a upgrade path. To overcome such situation, starting 10.2.0.4 EM Grid Control we now have Software-Only install method .Using the ‘Installing Software-Only and Configuring Later’ installation method, you can install only the software of the base release and then configure it later by applying the latest patch set.
Note that 10.2.0.4 /10.2.0.5 are patchset’s and need a 10.2.0.1 base installation to work.
In case you wish to carry out the installation in silent mode, you can find OTN article at below mentioned link
There is also metalink Note 763347.1 – How to Install Enterprise Manager Grid Control 10.2.0.5.0 Using an Existing Database with the Software Only Method
One of the issue while using silent install mode is that due to Bug 7137054 (Refer Note 602750.1 ConfigureGC.pl Reports – Invalid Username/Password ), you will be required to change sys password and run the ConfigureGC.pl script multiple times. Also you would be required to enter the password’s in the response file, which you might not be comfortable with. (Yeah in some environments, people can be very particular 🙂 )
While using GUI mode, I did not face any issues arising out of bug 7137054. Below steps are tried on a 10.2.0.4 database (11g database can also be used) and Platform is AIX 5L. Installation steps would remain same for other platforms too (In windows you will have to check the steps where in you are supposed to run scripts. GUI part should remain same)
Steps To Perform 10.2.0.5 EM Grid Installation using Software-only Install Method – GUI
1. Ensure that database parameters are set to following values. This is important as OUI checks for these values and if it is not set , then installation fails
2. Ensure that dbconsole repository is not present in the database. If it is, then remove it. You need to stop the dbconsole before starting the process.
$ORACLE_HOME/bin/emctl stop dbconsole
Remove the following directories from your filesystem:
ALTER system ENABLE RESTRICTED SESSION ;
EXEC sysman.emd_maintenance.remove_em_dbms_jobs;
EXEC sysman.setEMUserContext('',5);
REVOKE dba FROM sysman;
DECLARE CURSOR c1 IS SELECT owner, synonym_name name FROM dba_synonyms WHERE table_owner = 'SYSMAN';
BEGIN
FOR r1 IN c1
LOOP
IF r1.owner = 'PUBLIC'
THEN
EXECUTE IMMEDIATE 'DROP PUBLIC SYNONYM '||r1.name; ELSE EXECUTE IMMEDIATE 'DROP SYNONYM '||r1.owner||'.'||r1.name;
END IF;
END LOOP;
END;
/
DROP USER mgmt_view CASCADE;
DROP ROLE mgmt_user;
DROP USER sysman CASCADE;
ALTER SYSTEM DISABLE RESTRICTED SESSION;
3.Log in to the database as SYSDBA and run the following command to install DBMS_SHARED_POOL package:
@?/rdbms/admin/dbmspool.sql
commit;
4. Install the 10.2.0.1 database using -noconfig option i.e to skip the configuration part. This will be carried out in the end by running ConfigureGC.pl script
./runInstaller -noconfig
Choose Installation with Existing Database
Specify the ORACLE_BASE Location under which you would like to install the EM Grid
You will be now prompted to enter the database details for the Repository database. Ensure that listener is UP.
a)In the Configure Email Notification section, specify an appropriate e-mail address, and the corresponding SMTP server name. You will receive important information on the condition of the monitored targets, including critical alerts at this e-mail address.
b)Specify the My Oracle Support (formerly Metalink) credentials.
c)Specify the Proxy Information if Grid Control is using a proxy server for external access
Refer to following documentation link for more information
a)Specify the password for Securing agent
b)Specify password for SYSMAN user. Please note that default ias_admin password is the same as the password assigned to the SYSMAN account. This is required to access the Oracle application server console
OUI will install OMS under $BASE_DIR/oms10g
OUI will install Management Agent under $BASE_DIR/agent10g
Once the installation finishes , you will be prompted to run allroot.sh script (as shown below). Before executing it, stop all the OPMN processes by running the following command from the Oracle home directory of the OMS (for example, oms10g):
Open a different shell and execute following commands using Oracle Software owner
Processes in Instance: EnterpriseManager0.db11g
-------------------+--------------------+---------+---------
ias-component | process-type | pid | status
-------------------+--------------------+---------+---------
DSA | DSA | N/A | Down
HTTP_Server | HTTP_Server | N/A | Down
LogLoader | logloaderd | N/A | Down
dcm-daemon | dcm-daemon | N/A | Down
OC4J | home | N/A | Down
WebCache | WebCache | N/A | Down
WebCache | WebCacheAdmin | N/A | Down
$./opmnctl stopall
opmnctl: stopping opmn and all managed processes...
$./opmnctl status
Unable to connect to opmn.
Opmn may not be up.
Now run the script allroot.sh as Root.
You will get a message that configuration assistants were skipped. You can ignore it as we used -noconfig method
Installation for 10.2.0.1 Base release is complete now. We now need to proceed towards 10.2.0.5 Patchset installation
5. Run following command from 10.2.0.5 patchset directory.
This script will take long time (took 2 hrs on my setup). You can monitor $OMS_ORACLE_HOME/cfgtoollogs/cfgfw/ CfmLogger*log file to check for any errors
The plug-in Starting Oracle Management Server has successfully been performed
------------------------------------------------------
------------------------------------------------------
The plug-in EMCLI Configuration is running
Operation EMCLI Setup is in progress.
The plug-in EMCLI Configuration has successfully been performed
------------------------------------------------------
The action patchsetConfiguration has successfully completed
###################################################
Once you get message that the configuration is complete, then check the status for OMS and AGENT
$OMS_ORACLE_HOME/bin/emctl status oms
$AGENT_ORACLE_HOME/bin/emctl status agent
You can now proceed with Agent installation on the targets to be monitored
This blog reflect our own views and do not necessarily represent the views of our current or previous employers.
The contents of this blog are from our experience, you may use at your own risk, however you are strongly advised to cross reference with Product documentation and test before deploying to production environments.
Recent Comments