RMAN> BACKUP DATABASE;
Starting backup at 22-JAN-17
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/oracle/app/oracle/oradata/SDB/system01 .dbf
input datafile file number=00002 name=/oracle/app/oracle/oradata/SDB/sysaux01 .dbf
input datafile file number=00005 name=/oracle/app/oracle/oradata/SDB/example0 1.dbf
input datafile file number=00003 name=/oracle/app/oracle/oradata/SDB/undotbs0 1.dbf
input datafile file number=00006 name=/oracle/app/oracle/oradata/SDB/DEV_odi_ user.dbf
input datafile file number=00004 name=/oracle/app/oracle/oradata/SDB/users01. dbf
channel ORA_DISK_1: starting piece 1 at 22-JAN-17
channel ORA_DISK_1: finished piece 1 at 22-JAN-17
piece handle=/backup/rman/full_09rqkpfk_9_1 tag=TAG20170122T043500 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:55
Finished backup at 22-JAN-17
Starting Control File and SPFILE Autobackup at 22-JAN-17
piece handle=/oracle/app/oracle/fast_recovery_area/SDB/autobackup/2017_01_22/ o1_mf_s_933914155_d88b4w05_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 22-JAN-17
RMAN>
من خلال النتيجة تبين انه تم عمل full backup .
نستطيع فحص المكان الموجود فيه و كم حجم الـ rman backup .
[oracle@tambarakat 2017_01_22]$ cd /backup
[oracle@tambarakat backup]$ ls
rman
[oracle@tambarakat backup]$ cd rman
[oracle@tambarakat rman]$ pwd
/backup/rman
[oracle@tambarakat rman]$ du -sh *
1.3G full_09rqkpfk_9_1
هنالك العديد من جمل الاستعلام التي تستطيع تنفيذها عن طريق sqlplus او عن طريق حفظ ال log الذي يستخدمه rman .
الخطوة الخامسه :-
يقصد بعمل job هو كتابة الأوامر في ملف منفصل ويتم استدعاء هذه الاوامر اما عن طريق taskschd في ويندوز او عن طريق crontab في لينكس .
بالعادة يتم تخصيص جميع اوامر rman و تحديد مكان backup و عدد القنوات و حذف الملفات التي تحتوي على الـ باك اب القديم ( absolute data ) . ويتم حفظ الملف ب إمتداد .sh في لينكس . لذلك قمت بإنشاء ملف سميته rman_tam.sh و كتبت فيه كود ليعمل full backup ويقوم بحذف الملفات التي تصنف انها متنهية الصلاحية ( طبعا بناءا على policy التي قمت بوضعها ( فقط نسخة واحدة لا أكثر ) ) .
[oracle@tambarakat backup]$ cat rman_tam.sh
TODAY=`date '+%d%m%Y%H%M%S'`
LOG=/backup/tambarakat_full_backup_${TODAY}.log
echo "Online backup of database started at $TODAY" > $LOG
echo "--------------------------------------------------------" >> $LOG
$ORACLE_HOME/bin/rman <<EOF >> tambarakat_full_backup_${TODAY}.log
connect target /
run {
allocate channel tam1 type disk ;
backup
format '/backup/rman/%ttambarakat_rman_backup%T_%u_s%s_p%p'
tag 'Daily_rman_backup'
(database);
release channel tam1;
}
crosscheck backup;
delete NOPROMPT obsolete;
list backup summary;
EOF
exit
TODAY2=`date '+%d%m%Y%H%M%S'`
echo "-------------------------------------------------------" >> $LOG
echo "Online backup of database finished at $TODAY2" >> $LOG
echo "-------------------------------------------------------" >> $LOG
[oracle@tambarakat backup]$
توضيحات مهمة :-
- الهدف من today و today2 هو حصر وقت البدء و الانتهاء .
- الهدف من Log هو حفظ output الخاص بكود rman ليتسنى لنا فحصه و التأكد انه خالي من الاخطاء .
- حذف ال backup المنتهي الصلاحية وذلك لحفظ المساحة حيث أني اعمل على VM ware .
- تسمية ال Backup و ذلك لمعرفة النوع و التاريخ لهذا الـ backup .
- الكود داخل Run {} يعرف ب job .
- يجب إعطاء صلاحيات التنفيذ لهذا الملف عن طريق الامر chmod 755 rman_tam.sh ويصبح لون الملف بالاخضر :)
- الى الان هذا الملف لا يعمل الا عن طريق تنفيذه يدويا عن طريق الامر
[oracle@tambarakat backup]$ ./rman_tam.sh
بعد تنفيذ الكود أعلاه تستطيع فحص المساحة و الملفات و الاستعانة بالكود الخارج لمعرفة نتيجة العملية .
الخطوة السادسة :-
ربطه بـ crontab . سيتم إستدعاء هذا الملف للتنفيذ الساعة الواحده صباحا و 36 دقيقه .
[oracle@tambarakat backup]$ crontab -l
36 01 * * * /backup/rman_tam.sh
[oracle@tambarakat backup]$
الخطوة السابعة :- لا تطبق على نظام يعمل ( production ) ، هذا المثال تجريبي تدريبي بحت .
المطلوب هو حذف حذف احد data files لمحاكاة مثال corruption ، يعني هناك فقدان بأحد data files او ان Hard Disk تعرض لعطل . لذلك قم بإعادة تسمية اخد data files الموجودين و قم بعمل shutdown و من ثم شغل قاعدة البيانات .
للحديث بقية . . . . . . . . .