Script pré-chech pour upgrade Oracle de 12.1 à 12.2

Script perso pour lister les checks à faire sur toutes les bases Oracle d’un serveur avant la montée de version en 12.2.

#!/bin/ksh

OH12102=/oracle/12.1.0.2
OH12201=/oracle/12.2.0.1

ALL_DATABASES=`cat /etc/oratab|grep -v « ^# »|grep -v « N$ »|cut -f1 -d: -s`
for DB in $ALL_DATABASES
do
unset TWO_TASK
export ORACLE_SID=$DB
export ORACLE_HOME=`grep « ^${DB}: » /etc/oratab|cut -d: -f2 -s`
export PATH=$ORACLE_HOME/bin:$PATH
echo  » « 
echo « ————————————————–« 
echo « —> Database $ORACLE_SID, using home $ORACLE_HOME »
sqlplus -s « / as sysdba »<<-EOF
set heading off
spool /tmp/MIG-version.log
select version from v$instance;
spool /tmp/MIG-role.log
select database_role from v$database;
spool off
EOF
if grep -q 12.2.0.1.0 « /tmp/MIG-version.log » || grep -q « PHYSICAL STANDBY » « /tmp/MIG-role.log » || grep -q « SNAPSHOT » « /tmp/MIG-role.log »; then
echo « Pas de check requis pour $ORACLE_SID. »
else
sqlplus -s « / as sysdba »<<-EOF
select HOST_NAME from v$instance;
select * from global_name;
spool /tmp/MIG-pwd.log
PROMPT CHECK PASSWORD VERSIONS
set pages 1000
col username for a30
select PASSWORD_VERSIONS, USERNAME from DBA_USERS where PASSWORD_VERSIONS = ’10G ‘ and USERNAME <> ‘ANONYMOUS’;
–select count(*) from DBA_USERS where PASSWORD_VERSIONS = ’10G ‘ and USERNAME not in (‘SYS’,’SYSTEM’,’DBSNMP’,’OUTLN’,’ANONYMOUS’) ;
spool off
PROMPT CHECK INVALID OBJECTS
spool /tmp/MIG-valid.log
col OWNER for a15
col OBJECT_NAME for a35
select object_type,object_name, owner from dba_objects where status =’INVALID’ ;
spool off
PROMPT CHECK PARAM
spool /tmp/MIG-param.log
col name for a40
col value for a40
set lines 150
set pages 30
select name,value/1048576 as « VALUE EN MB » from v$parameter where name =’db_recovery_file_dest_size’;
select name,value from v$parameter where name =’filesystemio_options’;
select name,value from v$parameter where name =’remote_os_authent’;
select name,value from v$parameter where name =’sec_case_sensitive_logon’;
select name,value/1048576 as « VALUE EN MB » from v$parameter where name =’pga_aggregate_limit’;
select name,value/1048576 as « VALUE EN MB » from v$parameter where name =’pga_aggregate_target’;
spool off
EOF
fi
if [ -d $OH12201 ] && grep -q 12.1.0.2.0 « /tmp/MIG-version.log »; then
OS_DIRECTORY=/ora_tmp/PreUpgd12cR2/$ORACLE_SID
mkdir -p $OS_DIRECTORY
echo « ———> Running preupgrade.jar »
$OH12102/jdk/bin/java -jar $OH12201/rdbms/admin/preupgrade.jar FILE -DIR $OS_DIRECTORY
cd $OS_DIRECTORY
sqlplus -s « / as sysdba »<<-EOF
PROMPT RUN SCRIPT preupgrade_fixups.sql
WHENEVER SQLERROR EXIT SQL.SQLCODE
@preupgrade_fixups.sql
exit;
EOF
fi
done
if [ ! -d $OH12201 ]; then
echo  » « 
echo « Le noyau 12.2 n’est pas installé. »
fi
echo  » « 
echo « Fin DB check. »


Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Translate »