L’idée est de
pouvoir prendre des backups
sur n’importe quelles instances
de la configuration.
Dans notre cas on souhaite que les
backups soient pris depuis la standby.
Sur la primaire on va juste
faire delete des archives.
1 Configuration :
Rac 2 nodes
Primary : pocracm1/pocracm2
Rac 2 nodes
Standby : pocracl1/pocracl2
Voila la configuration :
Primary
|
STANDBY
|
|
Clusterware
|
11GR2 Grid infra (11.2.0.2)
|
11GR2 Grid infra (11.2.0.2)
|
Cluster Nodes
|
pocracm1,pocracm2
|
pocracl1,pocracl2
|
SCAN
|
||
SCAN listener Host/port
|
poccrs 1521
|
drpocrcs 1521
|
VIPs
|
pocracm1-vip,pocracm2-vip
|
pocracl1-vip,pocracl2-vip
|
DB_UNIQUE_NAME
|
pocrad
|
drpocrad
|
DB_NAME
|
POCRAD
|
POCRAD
|
DB Instances
|
POCRAD1,POCRAD2
|
DRPOCRAD1,DRPOCRAD2
|
DB LISTENER
|
LISTENER
|
LISTENER
|
DB Listener Host/port
|
1421
|
1421
|
DB STORAGE
|
ASM
|
ASM
|
OS
|
linux
|
Linux
|
archivelog
|
YES
|
YES
|
ASM
|
taille en Go
|
ASM
|
POCDB
|
200
|
POCDBL
|
POCOCR
|
2
|
POCOCRL
|
POCREDO
|
10
|
POCREDOL
|
POCARCH
|
40
|
POCARCH
|
2 Pre requis :
2.1 DbId :
Noter que le
dbid et db_names
sont identiques sur la primaire et la standby
.
Cette
information et cruciale
pour les restores du
controlfiles :
select DBID,NAME from
V$database ;
DBID NAME
238222078 POCRAD
En cas de
gros problems on a le
dbid dans le
catalog rman en se connectant
au catalog via
rman et avec
la commande rman :
List
db_unique_name all ;
DB Key
|
DB Name
|
DB ID
|
Database Role
|
Db_unique_name
|
4012718
|
POCRAD
|
238222078
|
PRIMARY
|
POCRAD
|
4012718
|
POCRAD
|
238222078
|
STANDBY
|
DRPOCRAD
|
2.2 Catalog RMAN :
An RMAN recovery catalog is
required so that backups taken on one database server can be restored to
another database server. It is not sufficient to use only the control file as
the RMAN repository because the primary database will have no knowledge of
backups taken on the standby database.
The accessibility of a backup
is different from its association. In a Data Guard environment, the recovery
catalog considers disk backups as accessible only to
the database with which it is associated, whereas tape backups created
on one database are accessible to all databases.
2.3 Notre catalog rman :
Serveur :
mtlunt68
Port : 1521
BD : emrep
Service name : catalog.
Toujours se connecter
de cette facon:
rman target sys/XXXXXX catalog catalog_rman/XXX@mtlunt68:1521/catalog
pas de
rman target
/ catalog
catalog_rman/XXX@mtlunt68:1521/catalog
2.4 Divers :
Les fichiers orapwd
doivent avoir le meme cksum
2.5 Tnsnames et services :
Primaire ( c’est juste
un extrait) :
STBPOCRAD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
drpoccrs.noam.transat.local)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME =
STBPOCRAD.noam.transat.local)
)
)
Et sur les stdby ( c’est juste
un extrait):
sale_rw =
(DESCRIPTION
=
(ADDRESS=(PROTOCOL=TCP)
(HOST=drpoccrs.noam.transat.local) (PORT=1521))
(ADDRESS=(PROTOCOL=TCP)
(HOST=poccrs.noam.transat.local) (PORT=1521))
(CONNECTs_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME =
sale_rw.noam.transat.local)
)
)
3 Configuration RMAN :
3.1 Db_unique_name :
Pour les
configure db_unique_name
voila les regles :
DB_UNIQUE_NAME db_unique_name {CLEAR | CONNECT IDENTIFIER ' connect_string'} |
Specifies
the net service name for the physical standby database specified by
DB_UNIQUE_NAME . The CONNECT IDENTIFIER string must not
include the database username and password.
RMAN
must also be connected to the primary database as
TARGET . RMAN must be connected to a recovery catalog.
When
you run the
RESYNC
CATALOG FROM DB_UNIQUE_NAME command, databases
in a Data Guard environment use the net service name to connect with the db_unique_name database. For
example, assume that a standby database has the unique name standby1 and the net service name sby1 . You connect RMAN as
TARGET to the primary database and execute CONFIGURE DB_UNIQUE_NAME 'standby1' CONNECT IDENTIFIER 'sby1' . Every primary and
standby database in the environment will use the net service name sby1 when it needs to make an Oracle Net connection to standby1 .
Note: When the target database needs to connect to other standby or
primary databases, it connects as the
SYS user by using the
existing Data Guard authentication mechanisms.
Suppose
that you recently connected RMAN as
TARGET to the primary
database and used CONFIGURE ... FOR
DB_UNIQUE_NAME standby_new to configure backup settings for standby database standby_new . However, you have not yet connected RMAN as TARGET to standby_new . In this case, you
can execute RESYNC CATALOG FROM
DB_UNIQUE_NAME standby_new . The primary database uses the connect identifier to make an
Oracle Net connection to the standby database. When you later connect RMAN to
the standby database, RMAN pushes the configuration from the recovery catalog
to the mounted control file.
Note: If the database specified by
CONFIGURE DB_UNIQUE_NAME is not registered in the recovery
catalog, then RMAN implicitly registers it. |
3.2 Configuration RMAN:
3.2.1 Les primaires (pocracm1/pocracm2) :
A noter
sur la configuration de la primaire:
CONFIGURE
DEFAULT DEVICE TYPE TO 'SBT_TAPE';
CONFIGURE DB_UNIQUE_NAME
'POCRAD' CONNECT IDENTIFIER 'sale_rw';
CONFIGURE DB_UNIQUE_NAME
'DRPOCRAD' CONNECT IDENTIFIER
'STBPOCRAD';
CONFIGURE ARCHIVELOG
DELETION POLICY TO APPLIED ON ALL STANDBY;
CONFIGURE SNAPSHOT
CONTROLFILE NAME TO '+POCDB/sncftestrac1.ora';
3.2.2 Sur les standby (pocracl1/pocracl2):
A noter
sur la configuration de la standbu
CONFIGURE DEFAULT DEVICE TYPE
TO 'SBT_TAPE';
CONFIGURE DB_UNIQUE_NAME
'POCRAD' CONNECT IDENTIFIER 'sale_rw';
CONFIGURE DB_UNIQUE_NAME
'DRPOCRAD' CONNECT IDENTIFIER
'STBPOCRAD';
CONFIGURE ARCHIVELOG
DELETION POLICY TO BACKED UP 1 TIMES TO 'SBT_TAPE';
CONFIGURE SNAPSHOT
CONTROLFILE NAME TO '+POCDBL/SNAPSHOTCTL_DRPOC.cf';
Les lignes en
rouges sont a inverser
si la primaire devient standby
et reciproquement.
3.3 Enregrsitrement de la config dans le catalog :
rman target
sys@pocrad catalog catalog_rman/xxxxx@mtlunt68:1521/catalog
Recovery Manager: Release
11.2.0.2.0 - Production on Mon Oct 1 13:32:26 2012
Copyright (c) 1982, 2009,
Oracle and/or its affiliates. All rights
reserved.
connected to target
database: POCRAD (DBID=238222078)
connected to recovery
catalog database
RMAN> register database;
database registered in
recovery catalog
starting full resync of
recovery catalog
full resync complete
4 Les backups :
Pour lancer un backup ou n importe quel commandes
RMAN :
1 - se connecter au
catalog:
rman target
sys/xxx@drpocrad catalog
catalog_rman/xxxxxx@mtlunt68:1521/catalog
2 - Sur la primaire
on se contente de supprimer
les archives
delete noprompt
archivelog all;
using target database control
file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=177
instance=POCRAD2 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=47
instance=POCRAD2 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=157
instance=POCRAD2 device type=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: SID=42
instance=POCRAD2 device type=DISK
RMAN-08120: WARNING: archived
log not deleted, not yet applied by standby
archived log file name=+POCARCH/pocrad/archivelog/2012_10_04/thread_1_seq_652.1658.795784355
thread=1 sequence=652
On a un Warning si le fichier n’est pas appliquer sur
la standby.
3 - sur la standby :
On prend des backups rman.
Backup database
plus archivelog all delete
input ;
A noter
que si on se connecte sur la
standby sans catalog on
voit les backups pris sur
la bd et réciproquement, il faut toujours se connecter
au catalog sinon
on a pas une vue d’ensmble.
5 Les Restores :
Pour les restore de la bd :
1 - se connecter
au catalog
2 - travailler sur une instance
uniquement :
Dans le fichier init mettre le
paramètre cluster database a False
3 - Mettre l’instance ou on restore
en nomount
4 - Dans Rman faire :
Restore controlfile
from autobackup ;
Alter database
mount ;
Restore database;
Recover database;
Alter database
open resetlogs;
6 Quelques commandes Rman utiles:
RESYNC CATALOG FROM DB_UNIQUE_NAME DRPOCRAD;
RESYNC CATALOG FROM DB_UNIQUE_NAME POCRAD;
Comparer les config :
show all for db_unique_name POCRAD;
show all for db_unique_name DRPOCRAD;
Supprimer un ancienne stdby
nomme dupli du
catalog:
unregister DB_UNIQUE_NAME DUPLI;
LIST DB_UNIQUE_NAME OF
DATABASE;
RESYNC CATALOG FROM DB_UNIQUE_NAME ALL;
Attention au crosscheck.
7 Annexe :
7.1 Config rman standby :
RMAN
configuration parameters for database with db_unique_name DRPOCRAD are:
CONFIGURE
RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
CONFIGURE
BACKUP OPTIMIZATION OFF; # default
CONFIGURE
DEFAULT DEVICE TYPE TO 'SBT_TAPE';
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE
CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE
CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F'; # default
CONFIGURE
DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO COMPRESSED BACKUPSET;
CONFIGURE
DEVICE TYPE 'SBT_TAPE' PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;
CONFIGURE
DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE
DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE
ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE
ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE
CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS
'ENV=(TDPO_OPTFILE=/opt/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
CONFIGURE
MAXSETSIZE TO UNLIMITED; # default
CONFIGURE
ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE
ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE
COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD FALSE;
CONFIGURE
DB_UNIQUE_NAME 'POCRAD' CONNECT IDENTIFIER
'sale_rw';
CONFIGURE
DB_UNIQUE_NAME 'DRPOCRAD' CONNECT IDENTIFIER
'STBPOCRAD';
CONFIGURE
ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO 'SBT_TAPE';
CONFIGURE
SNAPSHOT CONTROLFILE NAME TO '+POCDBL/SNAPSHOTCTL_DRPOC.cf';
7.2 Config rman Primaire :
CONFIGURE RETENTION POLICY TO
RECOVERY WINDOW OF 2 DAYS;
CONFIGURE BACKUP OPTIMIZATION
OFF; # default
CONFIGURE
DEFAULT DEVICE TYPE TO 'SBT_TAPE';
CONFIGURE CONTROLFILE
AUTOBACKUP ON;
CONFIGURE CONTROLFILE
AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE CONTROLFILE
AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F'; # default
CONFIGURE DEVICE TYPE DISK
PARALLELISM 4 BACKUP TYPE TO COMPRESSED BACKUPSET;
CONFIGURE DEVICE TYPE
SBT_TAPE PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP
COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE DATAFILE BACKUP
COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE ARCHIVELOG BACKUP
COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE ARCHIVELOG BACKUP
COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE
'SBT_TAPE' PARMS
'ENV=(TDPO_OPTFILE=/opt/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
CONFIGURE CHANNEL DEVICE TYPE
DISK FORMAT
'/datatmp/ARCH_%d_%I_%t_%s.bkp';
CONFIGURE MAXSETSIZE TO
UNLIMITED; # default
CONFIGURE ENCRYPTION FOR
DATABASE OFF; # default
CONFIGURE ENCRYPTION
ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION
ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD FALSE;
CONFIGURE DB_UNIQUE_NAME
'POCRAD' CONNECT IDENTIFIER 'sale_rw';
CONFIGURE DB_UNIQUE_NAME
'DRPOCRAD' CONNECT IDENTIFIER
'STBPOCRAD';
CONFIGURE ARCHIVELOG DELETION
POLICY TO APPLIED ON ALL STANDBY;
CONFIGURE SNAPSHOT
CONTROLFILE NAME TO '+POCDB/SNCFTESTRAC1.ORA';
CONFIGURE SNAPSHOT
CONTROLFILE NAME TO '+POCDB/sncftestrac1.ora';