Restore manuel cluster :
Objectifs :
Restore de la base de production (radprod), elle meme en RAC vers une nouvelle base RAC (radperf).
La restore se fait avec l instance 1 du cluster (mtlunt002)
Autre point on a pas de port 1521 entre les 2 set de serveurs.
network identity | IP | defined name |
adresse host 1 | 10.50.0.68 | mtlunt001 |
private1 | 192.168.10.11 | |
adresse vip1 | 10.50.0.156 | mtlunt001-vip |
adress host 2 | 10.50.0.52 | mtlunt002 |
private2 | 192.168.10.10 | |
adresse vip2 | 10.50.0.158 | mtlunt002-vip |
scan vip1 | 10.50.0.153 | RXCRS |
scan vip2 | 10.50.0.154 | RXCRS |
scan vip3 | 10.50.0.155 | RXCRS |
En préalable le clusterware est installe avec l ASM.
Le software oracle 11Gr2 aussi.
1 Le fichier de paramètre init
Cluster databse= false
Db_name=<nom de la bd source>
Db_unique_name= nom de la bd.
Ca donne :
RADPERF2.__db_cache_size=3087007744
RADPERF1.__db_cache_size=2583691264
RADPERF2.__java_pool_size=33554432
RADPERF1.__java_pool_size=33554432
RADPERF2.__large_pool_size=33554432
RADPERF1.__large_pool_size=33554432
RADPERF1.__oracle_base='/appl/oracle'#ORACLE_BASE set from environment
RADPERF2.__oracle_base='/appl/oracle'#ORACLE_BASE set from environment
RADPERF2.__pga_aggregate_target=2382364672
RADPERF1.__pga_aggregate_target=2382364672
RADPERF2.__sga_target=4496293888
RADPERF1.__sga_target=4496293888
RADPERF2.__shared_io_pool_size=67108864
RADPERF1.__shared_io_pool_size=536870912
RADPERF2.__shared_pool_size=1107296256
RADPERF1.__shared_pool_size=1107296256
RADPERF2.__streams_pool_size=33554432
RADPERF1.__streams_pool_size=33554432
*.audit_file_dest='/appl/oracle/admin/RADPERF/adump'
*.audit_trail='NONE'
#*.cluster_database=true
*.cluster_database=false
*.compatible='11.2.0.0.0'
*.control_files='+REDO_RAD/RADPERF/CONTROLFILE/current.266.769088343','+DATARAD/RADPERF/controlfile/current.260.769080921'
*.db_block_size=8192
*.db_create_file_dest='+DATARAD'
*.db_domain=''
*.db_file_multiblock_read_count=128
I#*.db_name='RADPERF'
*.db_name='RADPROD'
*.db_unique_name='RADPERF'
*.db_writer_processes=4
*.deferred_segment_creation=FALSE
*.diagnostic_dest='/appl/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=RADPERFXDB)'
*.fast_start_mttr_target=300
RADPERF2.instance_number=2
RADPERF1.instance_number=1
*.job_queue_processes=100
*.log_archive_dest_1='LOCATION=+ARCH_RAD'
*.log_archive_format='%t_%s_%r.dbf'
*.log_buffer=63065088
*.memory_max_target=10485760000
*.memory_target=6871318528
*.open_cursors=10000
*.processes=2000
*.remote_listener='RXCRS:1521'
*.remote_login_passwordfile='exclusive'
*.sec_case_sensitive_logon=FALSE
*.session_cached_cursors=100
*.sessions=2205
RADPERF2.thread=2
RADPERF1.thread=1
*.undo_retention=14400
RADPERF1.undo_tablespace='UNDOTBS1'
RADPERF2.undo_tablespace='UNDOTBS2'
2 Récupération du backup de production :
Dans notre cas on a fait un backup sur disque compresse et dédié (20G)
J ai fait le transfert du backup et des archivelogs vers le directory :
/dbbackup/rman_online_prod/
3 La restore du controlfile :
Il faut restaurer le controlfile post backup avec la base en nomount.
(Cf C:\Books\doc\oracle11g\RAC\restore_rac.swf)
4 La restore des datafiles
- passe la bd en mount
4.1 catalog les backupiece :
Répondre yes et ne pas tenir compte des erreurs elles sont dues a des fichiers autre que des backuppiece.
Les erreurs sont :
Rman-07517 : The file header is corrupt .
4.2 La config Rman :
Configure defaut device type to DISK;
Configure device type ‘SBT_TAPE’ Clear;
Configure channel device type ‘SBT_TAPE’ clear;
4.3 La restore :
run{
allocate channel c1 device type DISK;
allocate channel c2 device type DISK;
allocate channel c3 device type DISK;
set until time "to_date('28/03/2012 19:43:00','DD/MM/YYYY HH24:MI:SS')";
set newname for datafile 1 to '+DATARAD/radperf/system.256.769080811';
set newname for datafile 2 to '+DATARAD/radperf/sysaux.257.769080811';
set newname for datafile 3 to '+DATARAD/radperf/undotbs1.258.769080811';
set newname for datafile 4 to '+DATARAD/radperf/users.259.769080811';
set newname for datafile 5 to '+DATARAD/radperf/undotbs2.264.769081039';
set newname for datafile 6 to '+DATARAD/radperf/radair_prd_fq_01.dbf';
set newname for datafile 7 to '+DATARAD/radperf/dba_tools.dbf';
set newname for datafile 11 to '+DATARAD/radperf/ctrlinv_prd';
set newname for datafile 12 to '+DATARAD/radperf/radair_prd';
set newname for datafile 13 to '+DATARAD/radperf/radair_prd_01.dbf';
set newname for datafile 14 to '+DATARAD/radperf/radair_prd_02.dbf';
set newname for datafile 15 to '+DATARAD/radperf/radair_prd_03.dbf';
set newname for datafile 16 to '+DATARAD/radperf/radair_prd_04.dbf';
restore database ;
switch datafile all;
}
Il y a pas le recover car les fichiers archivelogs ne sont pas au même endroit que sur la bd originale.
Les set new name c est l ancienne façon de faire des convert pour les arboresecence .
Avec un Duplicate on aurait pu avoir c est parametre en plus dans l init mais il aurait fallu avoir le port 1521 ouvert :
db_file_name_convert
log_file_name_convert
(cf C:\Books\doc\oracle11g\RAC\restore_rac.swf)
5 Le recover :
5.1 block change tracking :
qui était sur la base source il faut le désactiver sur la base a restorer :
Alter database disable block change tracking;
5.2 Le recover
Recover database using backup controlfile until cancel ;
Repondre Auto ou indiquer les fichiers un par un.
(cf : C:\Books\doc\oracle11g\RAC\restore_rac2.swf)
5.3 Les redologs :
Du fait que les chemins sot differents entre les 2 bd il faut avant de faire le open resetlogs faire un rename des redologs.
Pour construitre la le rename il faut jouer sur la bd de production la requete suivante a adapeter :
select 'alter database rename file '''||MEMBER||''' to ''/db/redo/BDOQA/'||substr(member,27)||''';' from v$logfile;
alter database rename file '+REDO_RAD/radprod/onlinelog/redo_01.dbf' to '+REDO_RAD/RADPERF/ONELINELOG/redo_01.dbf';
alter database rename file '+REDO_RAD/radprod/onlinelog/redo_02.dbf' to '+REDO_RAD/RADPERF/ONELINELOG/redo_02.dbf';
alter database rename file '+REDO_RAD/radprod/onlinelog/redo_03.dbf' to '+REDO_RAD/RADPERF/ONELINELOG/redo_03.dbf';
alter database rename file '+REDO_RAD/radprod/onlinelog/redo_04.dbf' to '+REDO_RAD/RADPERF/ONELINELOG/redo_04.dbf';
alter database rename file '+REDO_RAD/radprod/onlinelog/redo_05.dbf' to '+REDO_RAD/RADPERF/ONELINELOG/redo_05.dbf';
alter database rename file '+REDO_RAD/radprod/onlinelog/redo_06.dbf' to '+REDO_RAD/RADPERF/ONELINELOG/redo_06.dbf';
alter database rename file '+REDO_RAD/radprod/onlinelog/redo_07.dbf' to '+REDO_RAD/RADPERF/ONELINELOG/redo_07.dbf';
alter database rename file '+REDO_RAD/radprod/onlinelog/redo_08.dbf' to '+REDO_RAD/RADPERF/ONELINELOG/redo_08.dbf';
alter database rename file '+REDO_RAD/radprod/onlinelog/redo_09.dbf' to '+REDO_RAD/RADPERF/ONELINELOG/redo_09.dbf';
alter database rename file '+REDO_RAD/radprod/onlinelog/redo_10.dbf' to '+REDO_RAD/RADPERF/ONELINELOG/redo_10.dbf';
cf C:\Books\doc\oracle11g\RAC\restore_rac3.swf)
Verifie après par select * from V$logfile
6 Le open resetlogs
Alter database open resetlogs;
Alter system checkpoint;
Shutdown immediate
Startup
ORA-0202 en rapport avec le controlfile.
Mais en vérifiant dans l asm et en ajustant le fichier init tout a fini par etre ok.
L ajout des tempfiles .
7 Le passage en mode cluster :
1- modification de l init
Cluster_database de false a true.
Creation du spfile sur l asm a apartir du pfile.
En oracle :
Srvctl add database -d RADPERF -o /appl/oracle/11.2.0.2 –p +datarad/RADPERF/PARAMETERFILE/spfile.268.779259517
Srvctl add instance -d RADPERF –n mtlunt001
Srvctl add instance -d RADPERF1 –n mtlunt002
Srvctl add instance -d RADPERF2 –n mtlunt001
(cf C:\Books\doc\oracle11g\RAC\restore_rac5.swf)
Voila c est fini.
On pourrai regenerer le controlfile et modifier le db_name.
Aucun commentaire:
Enregistrer un commentaire