Standby database manuelle par RMAN (hot) sur Standard Edition
De wikiGite
Sur le serveur standby
Créer l'instance sur le serveur standby (on suppose la même arborescence et le même nom de base sur les 2 serveurs).
Une fois créée, la lancer :
$ sqlplus "/ as sysdba" SQL> startup nomount
Sur le serveur primaire
Lancer rman, faire un backup de la base avec le control file pour la standby :
backup database include current controlfile for standby ; sql "alter system archive log current"; backup archivelog all
Copier les fichiers de backup vers le serveur standby, dans le même répertoire.
Créer une entrée pour la base standby dans le tnsnames.ora du serveur primaire. Lancer RMAN et se connecter aux 2 bases (local=primaire, distante=standby) :
$ rman RMAN> connect auxiliary sys/password@standbydb RMAN> connect target /
Lancer la duplication :
duplicate target database for standby dorecover nofilenamecheck;
En cas d'erreur :
RMAN> connect auxiliary sys/password@standbydb RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-04006: error from auxiliary database: ORA-12528: TNS:listener: all appropriate instances are blocking new connections
Ajouter les lignes suivantes (en rouge) au listener.ora du serveur standby :
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = DBSID)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
)
)
L'erreur :
starting media recovery Oracle Error: ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01152: file 1 was not restored from a sufficiently old backup ORA-01110: data file 1: '/oradata/DBID/SYSTEM01.DBF' RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of Duplicate Db command at 11/08/2010 21:07:42 RMAN-03015: error occurred in stored script Memory Script RMAN-06053: unable to perform media recovery because of missing log RMAN-06025: no backup of log thread 1 seq 17200 lowscn 14557604 found to restore RMAN-06025: no backup of log thread 1 seq 17199 lowscn 14557397 found to restore
peut n'être qu'un warning. Relancer la standby et tester le recover d'un archive log :
SQL> alter database mount standby database; SQL> recover standby database ORA-00279: change 57953 generated at .... ORA-00289: suggestion : .... ORA-00280: change 57953 .... Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
Si l'archive demandée est présente (en générer un à partir du serveur primaire au besoin) et qu'appuyer sur "Entrée" suffit à l'appliquer : tout va bien !