Restore Oracle9i tramite HP Data Protector

Dobbiamo effettuare  il restore del db RATP versione Oracle 9i il cui backup è fatto con Hp Data Protector.
Individuare un ambiente contenente il client Oracle9i dove creare un instanza ausiliaria.
Il server in questione è oradbt04-test. Essendo due server differenti, l'istanza ausiliaria conserva lo stesso nome del db sorgente.

1) Inserire nel listener.ora sotto /u01/app/oracle/product/9.2.0/network/admin la stringa di connessione.

(SID_DESC =
      (GLOBAL_DBNAME = RATP)
      (ORACLE_HOME = /u01/app/oracle/product/9.2.0)
      (SID_NAME = RATP)
    )



2) Modificare il tnsnames.ora mettendo come host quello della macchina di test.

RATP.WORLD =
  (DESCRIPTION =
    (ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oradbt04-test.intra.xxxxxx.it)(PORT = 1521))
    )
    (CONNECT_DATA =
  (UR = A)
      (SERVER = DEDICATED)
      (SERVICE_NAME = RATP)
    )
  )



3) Copiare spfile del db sorgente (oradbp06 )sulla macchina test (oradbt04-test).

scp spfileRATP.ora root@oradbt04-test:/u01/app/oracle/product/9.2.0/dbs

Sulla macchina target (oratest04) cambiare il proprietario

Chowm oracle: spfileRATP

4) Sulla macchina target (oratest05) creare le stesse directory del db sorgente

mkdir -p /u01/app/oracle/admin/RATP/audit
mkdir -p /u01/app/oracle/admin/RATP/bdump
mkdir -p /u01/app/oracle/oradata/RATP
mkdir -p /u01/app/oracle/admin/RATP/cdump
mkdir -p /u01/app/oracle/oradata/RATP/arch
mkdir -p /u01/app/oracle/admin/RATP/udump

chown oracle: /u01/app/oracle/admin/RATP/audit
chown oracle: /u01/app/oracle/admin/RATP/bdump
chown oracle: /u01/app/oracle/oradata/RATP
chown oracle: /u01/app/oracle/admin/RATP/cdump
chown oracle: /u01/app/oracle/oradata/RATP/arch
chown oracle: /u01/app/oracle/admin/RATP/udump


oppure dalla macchina sorgente creare il file pfile e poi portarlo sulla macchina di test
export ORACLE_SID=<sid_target>
SQL> create pfile='/home/oracle/u01/app/oracle/product/11.2.0/dbhome_2/dbs/initaux1.ora' from spfile.ora;


5) Copiare orapwRATP dal server sorgente sulla macchina test.

Sulla macchina target (oratest05) cambiare il proprietario

Chowm oracle: orapwRATP

6) Avviare il db target in modalità nomount.
export ORACLE_SID=RATP
SQL>startup nomout;

7) Collegarsi al Catalog e risalire all'ultimo backup.

rman target / catalog rman/rman@recat96.world
Recovery Manager: Release 9.2.0.8.1 - 64bit Production
Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.
connected to target database: RATP (not mounted)
connected to recovery catalog database

RMAN > list backup of control file

RMAN> set DBID=312705549   (preso dal db sorgente select dbid, name from v$database;)

8) Effettuare il restore del control file su un path tmp

run{
allocate channel 'dev_0' type 'sbt_tape' parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=RATP)';
SET UNTIL TIME "TO_DATE('22-GEN-2019 07:00:00','DD-MON-YYYY HH24:MI:SS')";
restore controlfile to  '/tmp/controlRATP.ctl ;
}

cp /tmp/controlRATP.ctl /u01/app/oracle/oradata/RATP
cp control01.ctl control02.ctl
cp control01.ctl control03.ctl


9) Portare il db in stato mount.

SQL > alter database mount;

10) Creare tre file lancio.sh, rst_db.rcv e rec_db.rcv.

### script
#lancio.sh
export ORACLE_SID=RATP
rman cmdfile=rst_db.rcv log=log_rst_db.log
#rman cmdfile=rec_db.rcv log=log_rec_db.log

#rst_db.rcv
connect catalog rman/rman@RECAT96.WORLD
connect target /
run {
allocate channel dev_0 type 'sbt_tape' parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=RATP)';
allocate channel dev_1 type 'sbt_tape' parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=RATP)';
allocate channel dev_2 type 'sbt_tape' parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=RATP)';
allocate channel dev_3 type 'sbt_tape' parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=RATP)';
set until time "TO_DATE ('20190122 07:00:05','YYYYMMDD HH24:MI:SS')";
restore database;
}

#rec_db.rcv
connect catalog rman/rman@RECAT96.WORLD
connect target /
run {
allocate channel dev_0 type 'sbt_tape' parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=RATP)';
allocate channel dev_1 type 'sbt_tape' parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=RATP)';
allocate channel dev_2 type 'sbt_tape' parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=RATP)';
allocate channel dev_3 type 'sbt_tape' parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=RATP)';
set until time "TO_DATE ('20190122 07:00:05','YYYYMMDD HH24:MI:SS')";
recover database;
}


11) Lanciare il restore del db.

nohup ./lancio.sh &

termina con
..................
released channel: dev_0
released channel: dev_1
released channel: dev_2
released channel: dev_3
Recovery Manager complete.

12) Modificare il file lancio.sh per lanciare il recovery.
#lancio.sh
export ORACLE_SID=RATP
#rman cmdfile=rst_db.rcv log=log_rst_db.log
rman cmdfile=rec_db.rcv log=log_rec_db.log

Eseguire il revocery
nohup ./lancio.sh &


13) Aprire il db in modalità resetlog.
alter database open resetlogs;

Controllare la numerosità degli oggetti importati e se ci sono funzioni\procedure\package da compilare

Post popolari in questo blog

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione

Create e Drop Pluggable Database