Zurück

Patch Oracle from 10.2.0.x to 10.2.0.3

Martin Zahn, Akadia AG, 31.07.2007


Overview

================================================================================
Plattform       Linux x86

Description     10.2.0.3 PATCH SET FOR ORACLE DATABASE SERVER
Last Updated    21-FEB-2007
Size            900M (944121770 bytes)

Patch           p5337014_10203_LINUX.zip

SHA-1           A078EDC2AAE300A42B46B9E553195A40A6B756BD
MD5             004B9B37E3595B7D802C9B9DD5B67557
---------------------------------------------------------------------------------
Plattform       Linux x86-64

Description     10.2.0.3 PATCH SET FOR ORACLE DATABASE SERVER
Last Updated    22-FEB-2007
Size            1.0G (1082086597 bytes)

Patch           p5337014_10203_Linux-x86-64.zip

SHA-1           A590EDFF5B979FBBFC0875F4C2DF635231A562F7
MD5             2C7CFE16AEFD894D33B59D8C67881801
---------------------------------------------------------------------------------

1.  Patch Overview

This is not a complete software distribution.
You must install it in an existing Oracle Database 10g (10.2.0.x) installation.

2.  Update Oracle Time Zone Definitions

The 10.2.0.3 patch set updates the standard version of the Oracle 10.2 time zone definitions version-2 to version-3.

Download the patch 5601428 from OracleMetalink to check, if you have any TIMESTAMP WITH TIME ZONE (TSTZ) Columns.

2.1  Save $ORACLE_HOME/rdbms/admin/utltzuv2.sql

oracle> cd /opt/oracle/product/10.2.0/rdbms/admin
oracle> cp utltzuv2.sql utltzuv2.sql-old

2.2  Apply Time Zone Patch 5601428

This Patch checks for TIMESTAMP WITH TIME ZONE (TSTZ).
The output of this script is a results table which highlights the affected columns.

oracle> /opt/oracle/product/10.2.0/OPatch/opatch apply

Invoking OPatch 10.2.0.1.0
Oracle interim Patch Installer version 10.2.0.1.0
Copyright (c) 2005, Oracle Corporation.  All rights reserved..
Oracle Home       : /opt/oracle/product/10.2.0
Central Inventory : /opt/oracle/product from: /opt/oracle/product/10.2.0/oraInst.loc
OPatch version    : 10.2.0.1.0
OUI version       : 10.2.0.1.0
OUI location      : /opt/oracle/product/10.2.0/oui
Log file location : /opt/oracle/product/10.2.0/cfgtoollogs/opatch/opatch-2007_Jul_11_06-28-08-MEST_Wed.log
ApplySession applying interim patch '5601428' to OH '/opt/oracle/product/10.2.0'
OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.
Backing up files and inventory (not for auto-rollback) for the Oracle Home
Backing up files affected by the patch '5601428' for restore. This might take a while...
Backing up files affected by the patch '5601428' for rollback. This might take a while...
Patching component oracle.rdbms.rsf, 10.2.0.1.0...
Copying file to "/opt/oracle/product/10.2.0/rdbms/admin/utltzuv2.sql"
Copying file to "/opt/oracle/product/10.2.0/oracore/zoneinfo/timezdif.csv"
ApplySession adding interim patch '5601428' to inventory
OPatch succeeded.

oracle> cd /opt/oracle/product/10.2.0/rdbms/admin>
oracle> sqlplus "sys/manager as sysdba"

SQL> start utltzuv2.sql
SQL> select * from sys.sys_tzuv2_temptab;

If no rows found, no action is required, else see utltzuv2.sql

SQL> drop table sys.sys_tzuv2_temptab;

3.  Stop Cron-Jobs

root> crontab -l

Uncomment any Oracle Cron Job !

4.  Prepare Patch 10.2.0.3 Installation

4.1  Unzip Patch to any free Directory.

oracle> cd /home/oracle/updates
oracle> unzip p5337014_10203_LINUX.zip

4.2   Prepare Silent Response File

oracle> cd /home/oracle/updates/Disk1/response
cp patchset.rsp /home/oracle/config/10.2.0/patch-10.2.0.3-response.rsp

UNIX_GROUP_NAME=dba
FROM_LOCATION=/home/oracle/updates/Disk1/stage/products.xml
NEXT_SESSION_RESPONSE=
ORACLE_HOME=/opt/oracle/product/10.2.0
ORACLE_HOME_NAME=ORA102
SHOW_SPLASH_SCREEN=false
SHOW_WELCOME_PAGE=false
SHOW_COMPONENT_LOCATIONS_PAGE=false
SHOW_CUSTOM_TREE_PAGE=false
SHOW_SUMMARY_PAGE=false
SHOW_INSTALL_PROGRESS_PAGE=true
SHOW_REQUIRED_CONFIG_TOOL_PAGE=false
SHOW_OPTIONAL_CONFIG_TOOL_PAGE=false
SHOW_CONFIG_TOOL_PAGE=false
SHOW_XML_PREREQ_PAGE=false
SHOW_RELEASE_NOTES=false
SHOW_END_OF_INSTALL_MSGS=true
SHOW_ROOTSH_CONFIRMATION=false
SHOW_END_SESSION_PAGE=true
SHOW_EXIT_CONFIRMATION=true
NEXT_SESSION=false
NEXT_SESSION_ON_FAIL=false
SHOW_DEINSTALL_CONFIRMATION=false
SHOW_DEINSTALL_PROGRESS=false
ACCEPT_LICENSE_AGREEMENT=true
RESTART_SYSTEM=false
CLUSTER_NODES=
OUI_HOSTNAME=
REMOVE_HOMES=
COMPONENT_LANGUAGES={"en"}
sl_userNodeList=

5.  Document Location of Database Files

oracle> ORACLE_SID=AKI1
oracle> export ORACLE_SID
oracle> sqlplus "sys/manager as sysdba"

set pagesize 200;
set linesize 100;
select 'cp ' || MEMBER || ' /ora-backup/AKI1' from v$logfile
union
select 'cp ' || NAME || ' /ora-backup/AKI1' from v$controlfile
union
select 'cp ' || FILE_NAME || ' /ora-backup/AKI1' from dba_data_files
union
select 'cp ' || NAME || ' /ora-backup/AKI1' from v$tempfile
order by 1
/
cp /opt/oracle/db/AKI1/con/AKI1_con02.con /ora-backup/AKI1
cp /opt/oracle/db/AKI1/rdo/AKI1_log1B.rdo /ora-backup/AKI1
cp /opt/oracle/db/AKI1/rdo/AKI1_log2B.rdo /ora-backup/AKI1
cp /opt/oracle/db/AKI1/rdo/AKI1_log3B.rdo /ora-backup/AKI1
cp /opt/oracle/db/AKI1/rdo/AKI1_log4B.rdo /ora-backup/AKI1
cp /opt/oracle/db/AKI1/rdo/AKI1_log5B.rdo /ora-backup/AKI1
cp /opt/oracle/db/AKI1/rdo/AKI1_log6B.rdo /ora-backup/AKI1
cp /u01/oracle/db/AKI1/con/AKI1_con01.con /ora-backup/AKI1
cp /u01/oracle/db/AKI1/idx/AKI1_idx1.dbf /ora-backup/AKI1
cp /u01/oracle/db/AKI1/idx/lbsindex.dbf /ora-backup/AKI1
cp /u01/oracle/db/AKI1/rdo/AKI1_log1A.rdo /ora-backup/AKI1
cp /u01/oracle/db/AKI1/rdo/AKI1_log2A.rdo /ora-backup/AKI1
cp /u01/oracle/db/AKI1/rdo/AKI1_log3A.rdo /ora-backup/AKI1
cp /u01/oracle/db/AKI1/rdo/AKI1_log4A.rdo /ora-backup/AKI1
cp /u01/oracle/db/AKI1/rdo/AKI1_log5A.rdo /ora-backup/AKI1
cp /u01/oracle/db/AKI1/rdo/AKI1_log6A.rdo /ora-backup/AKI1
cp /u01/oracle/db/AKI1/sys/AKI1_sys1.dbf /ora-backup/AKI1
cp /u01/oracle/db/AKI1/sys/AKI1_sysaux1.dbf /ora-backup/AKI1
cp /u01/oracle/db/AKI1/sys/AKI1_undo1.dbf /ora-backup/AKI1
cp /u01/oracle/db/AKI1/tab/AKI1_tab.dbf /ora-backup/AKI1
cp /u01/oracle/db/AKI1/tab/lbsdata1.dbf /ora-backup/AKI1
cp /u01/oracle/db/AKI1/tmp/AKI1_temp1.dbf /ora-backup/AKI1
cp /u01/oracle/db/AKI1/usr/AKI1_users1.dbf /ora-backup/AKI1

For small sized Databases, this generated Commands can be used to backup all Database Files. However, it is faster to backup the Database with RMAN - see «Backup Database and Controlfile».

6a. Backup Database and Controlfile

The use of RMAN is faster than to copy large database files to another location. Use the following script:

oracle> ORACLE_SID=TESTDB
oracle> export ORACLE_SID

#!/bin/bash

# Akadia AG, Fichtenweg 10, CH-3672 Oberdiessbach
# --------------------------------------------------------------------------
# File:      offline-backup.bash
#
# Autor:     Martin Zahn, Akadia AG, 31.07.2007
#
# Purpose:   Backup Oracle Database in NOARCHIVELOG Mode
#            (for Example before an Upgrade)
#
# Certified: Oracle 10.1.0.3 on Redhat Enterprise 4
# --------------------------------------------------------------------------

rman target / nocatalog <<-EOF
  shutdown immediate;
  startup force dba;
  shutdown immediate;
  startup mount;
  CONFIGURE CONTROLFILE AUTOBACKUP ON;
  CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/rman_backup_controlfile_%F';
  CONFIGURE DEFAULT DEVICE TYPE TO DISK;
  CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
  CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/backup/rman_backup_database_%U';
  CONFIGURE MAXSETSIZE TO 10000M;
  SHOW ALL;
  BACKUP DATABASE INCLUDE CURRENT CONTROLFILE TAG 'before_upgrade';
alter database open;
EOF
exit

Note the inclusion of the current control file with the backup, and the use of the tag to identify the backup. To use this backup of the database, the control file must be restored from the same backup as the rest of the database. Adding INCLUDE CURRENT CONTROLFILE ensures that a usable backup of the control file is included with the backup and tagged in order to simplify restoring the control file with the rest of the database.

oracle> ./offline-backup.bash 1>offline-backup.log 2>&1

Recovery Manager: Release 10.2.0.3.0 - Production on Mon Jul 30 08:44:48 2007

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

connected to target database: AKI1 (DBID=2081847505)
using target database control file instead of recovery catalog

RMAN>
database closed
database dismounted
Oracle instance shut down

RMAN>
Oracle instance started
database mounted
database opened

Total System Global Area     629145600 bytes

Fixed Size                     1263368 bytes
Variable Size                255854840 bytes
Database Buffers             369098752 bytes
Redo Buffers                   2928640 bytes

RMAN>
database closed
database dismounted
Oracle instance shut down

RMAN>
connected to target database (not started)
Oracle instance started
database mounted

Total System Global Area     629145600 bytes

Fixed Size                     1263368 bytes
Variable Size                255854840 bytes
Database Buffers             369098752 bytes
Redo Buffers                   2928640 bytes

RMAN>
old RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored

RMAN>
old RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/rman_backup_controlfile_%F';
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/rman_backup_controlfile_%F';
new RMAN configuration parameters are successfully stored

RMAN>
old RMAN configuration parameters:
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
new RMAN configuration parameters:
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
new RMAN configuration parameters are successfully stored

RMAN>
old RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored

RMAN>
old RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '/u01/backup/rman_backup_database_%U';
new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '/u01/backup/rman_backup_database_%U';
new RMAN configuration parameters are successfully stored

RMAN>
old RMAN configuration parameters:
CONFIGURE MAXSETSIZE TO 10000 M;
new RMAN configuration parameters:
CONFIGURE MAXSETSIZE TO 10000 M;
new RMAN configuration parameters are successfully stored

RMAN>
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/rman_backup_controlfile_%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '/u01/backup/rman_backup_database_%U';
CONFIGURE MAXSETSIZE TO 10000 M;
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/opt/oracle/product/10.2.0/dbs/snapcf_AKI1.f'; # default

RMAN>
Starting backup at 30-JUL-07
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=212 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=210 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00007 name=/u01/oracle/db/AKI1/tab/lbsdata1.dbf
input datafile fno=00001 name=/u01/oracle/db/AKI1/sys/AKI1_sys1.dbf
input datafile fno=00005 name=/u01/oracle/db/AKI1/tab/AKI1_tab.dbf
input datafile fno=00004 name=/u01/oracle/db/AKI1/usr/AKI1_users1.dbf
channel ORA_DISK_1: starting piece 1 at 30-JUL-07
channel ORA_DISK_2: starting full datafile backupset
channel ORA_DISK_2: specifying datafile(s) in backupset
input datafile fno=00008 name=/u01/oracle/db/AKI1/idx/lbsindex.dbf
input datafile fno=00003 name=/u01/oracle/db/AKI1/sys/AKI1_sysaux1.dbf
input datafile fno=00006 name=/u01/oracle/db/AKI1/idx/AKI1_idx1.dbf
channel ORA_DISK_2: starting piece 1 at 30-JUL-07
channel ORA_DISK_2: finished piece 1 at 30-JUL-07
piece handle=/u01/backup/rman_backup_database_1fio45t2_1_1 tag=BEFORE_UPGRADE comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:01:35
channel ORA_DISK_2: starting full datafile backupset
channel ORA_DISK_2: specifying datafile(s) in backupset
input datafile fno=00002 name=/u01/oracle/db/AKI1/sys/AKI1_undo1.dbf
channel ORA_DISK_2: starting piece 1 at 30-JUL-07
channel ORA_DISK_2: finished piece 1 at 30-JUL-07
piece handle=/u01/backup/rman_backup_database_1gio4602_1_1 tag=BEFORE_UPGRADE comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:45
channel ORA_DISK_2: starting full datafile backupset
channel ORA_DISK_2: specifying datafile(s) in backupset
including current control file in backupset
channel ORA_DISK_2: starting piece 1 at 30-JUL-07
channel ORA_DISK_2: finished piece 1 at 30-JUL-07
piece handle=/u01/backup/rman_backup_database_1hio461f_1_1 tag=BEFORE_UPGRADE comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:05
channel ORA_DISK_1: finished piece 1 at 30-JUL-07
piece handle=/u01/backup/rman_backup_database_1eio45t2_1_1 tag=BEFORE_UPGRADE comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:03:01
Finished backup at 30-JUL-07

Starting Control File Autobackup at 30-JUL-07
piece handle=
/u01/backup/rman_backup_controlfile_c-2081847505-20070730-05 comment=NONE
Finished Control File Autobackup at 30-JUL-07

RMAN>
database opened

RMAN>

Recovery Manager complete.

Note the name of the backuped Controlfile, because this Name is needed for Restoring:
/u01/backup/rman_backup_controlfile_c-2081847505-20070730-05

6b. Restore Database in Case of an Update Failure

If something goes wrong during the Upgrade, then you can restore the Database as follows.

# Akadia AG, Fichtenweg 10, CH-3672 Oberdiessbach
# ---------------------------------------------------------------------------
# File: restore-backup.bash
#
# Autor: Martin Zahn, Akadia AG, 31.07.2007
#
# Purpose: Restore Oracle Database
# (for Example before an Upgrade)
#
# Note: Add Name of Controlfile from Backup Log in RESTORE CONTROLFILE
#
# Certified: Oracle 10.1.0.3 on Redhat Enterprise 4
# ---------------------------------------------------------------------------

rman target / nocatalog <<-EOF
   shutdown immediate;
   startup force dba;
   shutdown immediate;
   startup nomount;
   RESTORE CONTROLFILE FROM '
/u01/backup/rman_backup_controlfile_c-2081847505-20070730-05';
   alter database mount;
   RESTORE DATABASE FROM TAG before_upgrade;
   recover database noredo;
   alter database open resetlogs;
EOF
exit

rman target / nocatalog

Recovery Manager: Release 10.2.0.3.0 - Production on Mon Jul 30 09:41:14 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database (not started)

RMAN>
startup nomount;

Oracle instance started
Total System Global Area 629145600 bytes
Fixed Size 1263368 bytes
Variable Size 255854840 bytes
Database Buffers 369098752 bytes
Redo Buffers 2928640 bytes

RMAN>
RESTORE CONTROLFILE FROM '/u01/backup/rman_backup_controlfile_c-2081847505-20070730-00';

Starting restore at 30-JUL-07
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=211 devtype=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
output filename=/u01/oracle/db/AKI1/con/AKI1_con01.con
output filename=/opt/oracle/db/AKI1/con/AKI1_con02.con
Finished restore at 30-JUL-07

RMAN>
alter database mount;

database mounted
released channel: ORA_DISK_1

RMAN>
RESTORE DATABASE FROM TAG before_upgrade;

Starting restore at 30-JUL-07
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=211 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=210 devtype=DISK
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00003 to /u01/oracle/db/AKI1/sys/AKI1_sysaux1.dbf
restoring datafile 00006 to /u01/oracle/db/AKI1/idx/AKI1_idx1.dbf
restoring datafile 00008 to /u01/oracle/db/AKI1/idx/lbsindex.dbf
channel ORA_DISK_1: reading from backup piece /u01/backup/rman_backup_database_02io48ck_1_1
channel ORA_DISK_2: starting datafile backupset restore
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
restoring datafile 00002 to /u01/oracle/db/AKI1/sys/AKI1_undo1.dbf
channel ORA_DISK_2: reading from backup piece /u01/backup/rman_backup_database_03io48fj_1_1
channel ORA_DISK_2: restored backup piece 1
piece handle=/u01/backup/rman_backup_database_03io48fj_1_1 tag=BEFORE_UPGRADE
channel ORA_DISK_2: restore complete, elapsed time: 00:01:05
channel ORA_DISK_2: starting datafile backupset restore
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /u01/oracle/db/AKI1/sys/AKI1_sys1.dbf
restoring datafile 00004 to /u01/oracle/db/AKI1/usr/AKI1_users1.dbf
restoring datafile 00005 to /u01/oracle/db/AKI1/tab/AKI1_tab.dbf
restoring datafile 00007 to /u01/oracle/db/AKI1/tab/lbsdata1.dbf
channel ORA_DISK_2: reading from backup piece /u01/backup/rman_backup_database_01io48ck_1_1
channel ORA_DISK_1: restored backup piece 1
piece handle=/u01/backup/rman_backup_database_02io48ck_1_1 tag=BEFORE_UPGRADE
channel ORA_DISK_1: restore complete, elapsed time: 00:02:20
channel ORA_DISK_2: restored backup piece 1
piece handle=/u01/backup/rman_backup_database_01io48ck_1_1 tag=BEFORE_UPGRADE
channel ORA_DISK_2: restore complete, elapsed time: 00:03:11
Finished restore at 30-JUL-07

RMAN>
recover database noredo;

Starting recover at 30-JUL-07
using channel ORA_DISK_1
using channel ORA_DISK_2
Finished recover at 30-JUL-07

RMAN>
alter database open resetlogs;

database opened

7.  Stop Database, Listener, EM-Console

Stop all Databases for all ORACLE_SID's

oracle> ORACLE_SID=TESTDB
oracle> export ORACLE_SID

oracle> lsnrctl stop
oracle> emctl stop dbconsole
oracle> isqlplusctl stop
SQL> shutdown immediate;
SQL> startup force dba;
SQL> shutdown immediate;

8.  Save Oracle Product

root> cd /opt/oracle
root> tar cvf product-old.tar product
root> gzip product-old.tar

9.  Installing the 10.2.0.3 Patch Noninteractively

oracle> cd /home/oracle/updates/10203/Disk1
oracle> ./runInstaller -silent -responseFile /home/oracle/config/10.2.0/patch-10.2.0.3-response.rsp

Check the Logfile!

10. Upgrade Data Dictionary to 10.2.0.3

oracle> lsnrctl start
oracle> sqlplus "sys/manager as sysdba"

SQL> STARTUP UPGRADE
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> SPOOL OFF

Check the Logfile!

Review the patch.log file for errors and inspect the list of components
that is displayed at the end of catupgrd.sql script.
This list provides the version and status of each SERVER component in the database.
If necessary, rerun the catupgrd.sql script after correcting any problems.

11. Restart the Database and Recompile INVALID Objects

Run the utlrp.sql script to recompile all invalid PL/SQL packages
now instead of when the packages are accessed for the first time.
This step is optional but recommended.

SQL> SHUTDOWN
SQL> STARTUP
SQL> @?/rdbms/admin/utlrp.sql

12. Run changePerm.sh

Disclaimer: The purpose of this script is to relax permissions on some of the
files in the database Oracle Home so that all clients can access them.
Please note that Oracle Corporation recommends using the most restrictive file
permissions as possible for your given implementation.  Running this script
should be done only after considering all security ramifications.

oracle> cd /opt/oracle/product/10.2.0/install
oracle> /opt/oracle/product/10.2.0/install> ./changePerm.sh

Do you wish to continue (y/n) [n]: y
Finished running the script successfully
Please see /tmp/changePerm_err.log for errors and /tmp/changePerm.log for the log of events

13. Remove old Files in $ORACLE_HOME/bin

oracle> cd $ORACLE_HOME/bin
oracle> rm *0
oracle> rm *O