Tuesday, May 6, 2008

RMAN backup

1:create user
SQL> create user rman identified by rman ;
SQL> alter user rman default tablespace tools temporary tablespace temp ;
SQL> alter user rman quota unlimited on tools ;
SQL> grant connect,resource,recovery_catalog_owner to rman ;
SQL> exit ;

===========================================================================

2:login to rman and create cataloge schema
$ rman catalog rman/rman
RMAN> create catalog tablespace tools ;
RMAN> exit ;

===========================================================================

3:put database in archive log

sqlplus login as sysdba

SQL>select log_mode from v$database ;
select name from v$database;
SQL> shutdown immediate ;
SQL> startup mount ;
SQL>alter database archivelog ;
SQL>alter database open ;
SQL>select log_mode from v$database ;

============================================================================

4:register the database in the catalog
$ rman catalog rman/rman target sys/sys
RMAN>register database;
============================================================================
5:create script to make backup
RMAN> create script daily_backup{
backup database plus archivelog;
delete noprompt obsolete;
}


============================================================================
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/backup/%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/home/backup/RMAN_%d_S_%s_P_%p_T_%t' MAXPIECESIZE 2 G;
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'F:\RMANBACKUP\SNCFSULAPP1.ORA';

RMAN>
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT 'f:\RmanBackup\backup_db_%d_S_%s_P_%p_T_%t' MAXPIECESIZE 2 G;
CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT 'f:\RmanBackup\backup_db_%d_S_%s_P_%p_T_%t' MAXPIECESIZE 2 G;
================================================================================
7: execute script to backup
RMAN> run {execute script daily_backup;}

=================================================================================

Complete Restore / Recover Example

1/create folder in any directory for exampel d:\backupdatabase
change the configration of rman
rman catalog rman/rman target sys/sys
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:\backupdatabase\%F';
RMAN>CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'd:\backupdatabase\backup_db_%d_S_%s_P_%p_T_%t';
RMAN>CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'd:\backupdatabase\SNCFORCL.ORA';
exit;
2/connect to sql
sql> sys/sys as sysdba
shutdown immediate
startup nomount
exit;

3/connect to rman
rman target sys/sys
RMAN>set dbid=1134214906 {this is the id of your database}
RMAN>set controlfile autobackup format for device type disk to 'D:\backup\%F'
RMAN>restore controlfile from autobackup;
RMAN>mount database;
RMAN>restore database;
RMAN>recover database;
RMAN>alter database open resetlogs;
RMAN>exit;
rman catalog rman/rman target sys/sys
RMAN>reset database;
exit;

create batch file
rman catalog rman/rman target sys/sys @d:\cmdfile.txt
create text file in d:\ name cmdfile and write in it rman command

set controlfile autobackup format for device type disk to 'D:\backup\%F'


RMAN>Friday backup
run {
backup incremental level 0 database ;
sql 'alter system archive log current';
backup archivelog all delete input;
delete noprompt obsolete;
}
RMAN>Daily backup
run {
backup incremental level 1 database ;
sql 'alter system archive log current';
backup archivelog all delete input ;
delete noprompt obsolete;
}
RMAN>MONDAY
run {
backup incremental level 2 database ;
sql 'alter system archive log current';
backup archivelog all delete input;
delete noprompt obsolete;
}
RMAN>Wed backup
run {
backup incremental level 2cumulative database ;
sql 'alter system archive log current';
backup archivelog all delete input;
delete noprompt obsolete;
}

ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp


Check whether backup pieces, proxy copies, or disk copies still exist.

CROSSCHECK BACKUP;
CROSSCHECK COPY;
CROSSCHECK backup of database;
CROSSCHECK backup of controlfile;
CROSSCHECK archivelog all;

uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
List the backups and copies recorded in the repository.


LIST BACKUP;
RMAN> LIST BACKUP OF DATABASE;
RMAN> LIST BACKUP SUMMARY;
RMAN> LIST INCARNATION;
RMAN> LIST BACKUP BY FILE;
RMAN> LIST COPY OF DATABASE ARCHIVELOG ALL;
RMAN> LIST COPY OF DATAFILE 1, 2, 3;
RMAN> LIST BACKUP OF DATAFILE 11 SUMMARY;
RMAN> LIST BACKUP OF ARCHIVELOG FROM SEQUENCE 1437;
RMAN> LIST CONTROLFILECOPY "/tmp/cntrlfile.copy";
RMAN> LIST BACKUPSET OF DATAFILE 1;


[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[

list incarnation of database;
reset database to incarnation Your_KEY;
reset database;


////////////////////////////////////////////////////////
ALTER SYSTEM ARCHIVE LOG START;


delete script

No comments: