Thursday, May 26, 2011

Installing Oracle Grid Control 10.2.0.5 on RHEL 5.X


After several tries i managed to install and configure the EM Grid Control 10.2.0.3 and patch it to 10.2.0.5.

This guide will help you bypass any issues.
I will install using an existing database (RAC) and i will also tell you how you will make OMS RAC aware.

1) Pre Installation

Please go to Oracle 10gr2 installation on RHEL5 and follwow the guide until step 11.

Also check
Oracle® Enterprise Manager Grid Control Installation and Basic Configuration 10g Release 3 (10.2.0.3.0)
Part Number B40103-01
Chapter 1 Preinstallation Requirements
Appendix B Platform-Specific Package and Kernel Requirements

Then go into rour software directory and run :
export DISPLAY:YOUR_XHOST_CLIENT:0.0
./runInstaller -ignoreSysPreReqs


2) Instalation
- Choose Enterprise Manager Grid Control Using an Extsing Database.
- Choose your oracle base location. If you have set ORACLE_BASE before installing it will go there.
- Choose your language and click Next.
- Choose an inventory location and user groups.
- Make user verified the installer checks about O/S , O/S Packages and GLIBC package.
- Give database connection details (For RAC DBs also give one node instance connect info, it will be fixed at the end)
  Press the "Prefill Tablespace Locations". If you use ASM it will open a Window that it will tell you to provide the desired Groups.
  If you have allready using DB console (SYSMAN Schema exists) you will get a warning. Do as desired !!
Please ensure that you have aq_tm_processes=1 and session_cached_cursors=200 or you will get another warning
Ensure that even if you use Automatic Memory Management that in the instacne you connect the shared_pool_size is greater than 150M.
Just set it to bypass the installer prob and then reset back.
e.g for a RAC Instance
alter system set shared_pool_size=500M sid='rlabdb1';
alter system reset shared_pool_size sid='rlabdb1';
Run the follwoing script : @?/rdbms/admin/dbmspool.sql on your DB
- Configure your email and your smtp server for all notifications, Metalink Info and Proxy Configuration for patching and staging (You can do it later).
- Set up your passwords and decide if you want the Agents to use SSL for communications with the OMS and Central Agent
- Finally press Install !!!

3) Installation Problems
- If you take a warning that "OPMN Process Manager failed to start .. Check the logs in [ORACLE_BASE]/oms10g/opmn/logs" do the following:
  Go to the dir and vi the ipm.log. If you see "PM state file does not exist: [ORACLE_BASE]/oms10g/opmn/logs/states/.opmndat" touch the file manually
[oracle@vmsrv21 logs]$ touch [ORACLE_BASE]/oms10g/opmn/logs/states/.opmndat
Check that opmn is allready started
[oracle@vmsrv21 logs]$ [ORACLE_BASE]/oms10g/opmn/bin/opmnctl status
If you see the following lines ... you are ok ... Press continue not Retry
Processes in Instance: EnterpriseManager0.vmsrv21.internal.upstreamsystems.com
-------------------+--------------------+---------+---------
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
Otherwise
  [oracle@vmsrv21 logs]$ [ORACLE_BASE]/oms10g/opmn/bin/opmnctl status

4) Configuration Assistant Problems

- OC4J Instance Configuration Assistant
Check the details pane on installer. You may see  OC4JDeploy Tool completed but with errors
go to [ORACLE_BASE]/oms10g/cfgtoollogs and check the failed command
vi configToolFailedCommands
The first comand is the failed.
[ORACLE_BASE]/oms10g/jdk/bin/java -Djava.net.preferIPv4Stack=true -Djava.io.tmpdir=/tmp -mx512M -classpath [ORACLE_BASE]/oms10g/dcm/lib/dcm.jar:[ORACLE_BASE]/oms10g/dcm/lib/oc4j_deploy_tools.jar:[ORACLE_BASE]/oms10g/opmn/lib/opmnplugin.jar -Doracle.ias.sysmgmt.logging.logdir=[ORACLE_BASE]/oms10g/j2ee/home/log oracle.j2ee.tools.deploy.Oc4jDeploy -oraclehome [ORACLE_BASE]/oms10g -verbose -inifile [ORACLE_BASE]/oms10g/j2ee/deploy.ini
I resolved it doing a manuall restart of the opmn managed process
1. Check the status
[oracle@vmsrv21 bin]$ ./opmnctl status

Processes in Instance: EnterpriseManager0.vmsrv21.internal.upstreamsystems.com
-------------------+--------------------+---------+---------
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         |   10901 | Alive
OC4J               | home               |     N/A | Down
WebCache           | WebCache           |     N/A | Down
WebCache           | WebCacheAdmin      |     N/A | Down

2. Stop and start everything
[oracle@vmsrv21 bin]$ ./opmnctl stopall
opmnctl: stopping opmn and all managed processes...
[oracle@vmsrv21 bin]$ ./opmnctl startall
opmnctl: starting opmn and all managed processes...

3. Check the status again , if this is your case you will see more process in status "Alive"
[oracle@vmsrv21 bin]$ ./opmnctl status

Processes in Instance: EnterpriseManager0.vmsrv21.internal.upstreamsystems.com
-------------------+--------------------+---------+---------
ias-component      | process-type       |     pid | status
-------------------+--------------------+---------+---------
DSA                | DSA                |     N/A | Down
HTTP_Server        | HTTP_Server        |   12224 | Alive
LogLoader          | logloaderd         |     N/A | Down
dcm-daemon         | dcm-daemon         |     N/A | Down
OC4J               | home               |   12225 | Alive
WebCache           | WebCache           |   12246 | Alive
WebCache           | WebCacheAdmin      |   12234 | Alive

- OMS Configuration Assistant
  Check which process failed to start
  vi [ORACLE_BASE]/oms10g/cfgtoollogs/cfgfw/
 INFO: oracle.sysman.top.oms:PerformSecureCommand:runCmd:Command Output stderr:
'================================================================================
opmn id=vmsrv21.internal.upstreamsystems.com:6200
   5 of 6 processes started.

ias-instance id=EnterpriseManager0.vmsrv21.internal.upstreamsystems.com
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ias-component/process-type/process-set:
   HTTP_Server/HTTP_Server/HTTP_Server

Error
--> Process (pid=27421)
   failed to start a managed process after the maximum retry limit
   Log:[ORACLE_BASE]/oms10g/opmn/logs/HTTP_Server~1

Check the Apache Start Log :
This is the ouput of my Log.
[ORACLE_BASE]/oms10g/Apache/Apache/bin/apachectl startssl: execing httpd
Usually the problem is with the SSL Wallet Configuratiopn.
Edit the template httpd_em.conf on [ORACLE_BASE]/oms10g/sysman/config/httpd_em.conf.template
   Locate the follwoing 2 lines :
   SSLWallet file:&ORACLE_HOME&/sysman/wallets/oms.&THIS_DNS_HOST&
   SSLWalletPassword &OMS_WALLET_PASSWORD&
   Comment the second and make the first as follows in order to have the new output.
   SSLWallet file:&ORACLE_HOME&/Apache/Apache/conf/ssl.wlt/default
   #SSLWalletPassword &OMS_WALLET_PASSWORD&

Retry OMS configuration to proceed

- Agent Configuration Assistan
You may get a message that the agent ca has failed but the central agent is up and running.
Check the status of the central agent : [ORACLE_BASE]/agent10g/bin/emctl status agent
Agent LogFiles Directory : [ORACLE_BASE]/agent10g/sysman/log
Agent Configuration Directory : [ORACLE_BASE]/agent10g/sysman/log

5) Set EM Grid Control to Use RAC DB URL

- Edit the emoms.properities
vi [ORACLE_BASE]/oms10g/sysman/config/emoms.properties
Edit oracle.sysman.eml.mntr.emdRepConnectDescriptor property and put the in the field service_name a RAC configured service.
oracle.sysman.eml.mntr.emdRepConnectDescriptor=(DESCRIPTION\=(LOAD_BALANCE\=on)(FAILOVER\=on)(ADDRESS_LIST\=(ADDRESS\=(PROTOCOL\=TCP)(HOST\=labdb01.internal.upstreamsystems.com)(PORT\=1521))(ADDRESS\=(PROTOCOL\=TCP)(HOST\=labdb02.internal.upstreamsystems.com)(PORT\=1521)))(CONNECT_DATA\=(SERVICE_NAME\=raclabdb))(FAILOVER_MODE\=(TYPE\=select)(METHOD\=basic)))
Restart All Processes !!
[ORACLE_BASE]/oms10g/opmn/bin/opmnctl stopall
[ORACLE_BASE]/oms10g/opmn/bin/opmnctl startall
[ORACLE_BASE]/oms10g/opmn/bin/opmnctl status

6) Apply 10.2.0.5 Patch Set

Follow the README.txt that comes with the pact set and you will not have any problems.

Tuesday, May 24, 2011

Transport Tablespace and Re-mapping Schemas/Datafiles/Tablespaces 10gR2 (10.2.0.4)

Recently i tried to do an impdp using the remap_schema,remap_tablespace and remap_datafiles along with the transport_datafiles.

This action hits BUG:6989875 which causes Data Pump Worker process (DW) to hang when using paramter REMAP_DATAFILE. Also specifying REMAP_DATAFILE during a datapump import job when also specifying TRANSPORT_DATAFILES is not allowed, according to Metalink Note: 762160.1

This BUG is fix in 11.2 Release.

The workaround is the only legal way to do the desired renaming of the datafiles:

If you need to use a different filename for the imported tablespace simply copy or rename the affected datafile before starting the import using cp or mv commands for unix. Then in the TRANSPORT_DATAFILES parameter use the new file names.





Wednesday, May 11, 2011

CleanUp Temporary Segments Occupying Permanent Tablespace

Recently i did some objects reorganization but i left with some temporary segments occupying space which smon did not drop because the tablespace was READ ONLY. When i made it READ WRITE then the temporary segments dropped. If the problem persists you have by different reason please follow this article : http://askdba.org/weblog/2009/07/cleanup-temporary-segments-in-permanent-tablespace

Tuesday, May 10, 2011

ORA-39726 tying to drop column on compressed table (10g)

You get ORA-39726: unsupported add/drop column operation on compressed tables when you try to drop a column on a compressed table. In order to avoid drop and recreate the table and adding all indexes , constraints etc you can set the column unused. alter table mytable set unused (mycol1,mycol2); This statement does not actually remove the target column data or restore the disk space occupied by these columns. However, a column that is marked as unused is not displayed in queries or data dictionary views, and its name is removed so that a new column can reuse that name. All constraints, indexes, and statistics defined on the column are also removed. References: Oracle® Database Administrator's Guide 10g Release 2 (10.2) Chapter 15 -- Managing Tables Topic : Altering Columns Note: In 11g you can also drop columns on compressed tables If you enable compression for all operations on a table. If you enable compression for direct-path inserts only, you cannot drop columns.