بازسازی پایگاهداده Standby با استفاده از پشتیبان Incremental
بازسازی پایگاهداده Standby با استفاده از پشتیبان Incremental
در این مبحث به تشریح نحوه همسانسازی پایگاهداده Standby از طریق یک پشتیبان Incremental میپردازیم که طبق سناریوی زیر اجرا میشود:
• پایگاهداده Standby دارای تاخیر قابل ملاحظهای در مقایسه با پایگاهداده اصلی میباشد، که در این وضعیت کپی و اعمال آرشیولاگها از پایگاه داده اصلی به دلیل اعمال تراکنشهای Commit شده و Commit نشده و به تبع آن Rollback تراکنشهای Commit نشده زمانبر خواهد بود. با استفاده از پشتیبان Incremental به دلیل اعمال تراکنش های Commit شده می توان به مراتب سریعتر از روش اعمال آرشیولاگ ها پایگاه داده Standby را بازسازی نمود.
• در دسترس نبودن برخی آرشیولاگ های پایگاه داده اصلی که بر روی Standby اعمال نشده است. در این شرایط می توان با ایجاد پشتیبان Incremental از پایگاه داده اصلی که دارای آخرین تغییرات از زمان بازیابی پایگاه داده Standby است و اعمال این پشتیبان بر پایگاه داده Standby نسبت به همسان سازی Standby با پایگاه داده اصلی اقدام نمود.
مرور کلی:
• Redo Transport بر روی پایگاه داده اصلی متوقف شود.
• انجام سوییچ لاگ بر روی پایگاه داده برای برخی آرشیولاگ های پایگاه داده اصلی که به Standby ارسال نشده است.
• تغییرنام آرشیولاگ های جدید تولید شده در پایگاه داده اصلی به جهت شبیهسازی شرایط
• ریستارت Redo Transport – دریافت خطای برطرف نشدن شکاف به علت Logهای از دست رفته
• ساخت کنترل فایل برای پایگاه داده Standby روی پایگاه داده اصلی
• تهیه پشتیبان Incremental روی پایگاه داده اصلی از #SCN پایگاه داده Standby
• انتقال پشتیبان به پایگاه داده Standby و Catalog نمودن آن با RMAN
• سوار نمودن پایگاه داده Standby به کنترل فایل جدید پایگاه داده Standby
• لغو Managed Recovery پایگاه داده Standby و اعمال پشتیبان Incremental به پایگاه داده Standby
• فعال نمودن Managed Recovery پایگاه داده Standby
پیادهسازی و اجرا:
بررسی توالی لحظهای Log پایگاه داده اصلی
PRI>archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 40
Next log sequence to archive 42
Current log sequence 42
بررسی صحت ارسال تمامی آرشیولاگ های گذشته به پایگاه داده Standby
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
————–
۴۱
توقف Redo Transport از پایگاه داده اصلی (dg01)
DGMGRL> show database dg01
Database – dg01
Role: PRIMARY
Intended State: TRANSPORT-ON
Instance(s):
dg01
Database Status:
SUCCESS
DGMGRL> edit database dg01 set state=’Transport-off’;
Succeeded.
DGMGRL> show database dg01
Database – dg01
Role: PRIMARY
Intended State: TRANSPORT-OFF
Instance(s):
dg01
Database Status:
SUCCESS
سوییچ لاگ روی پایگاه داده اصلی
PRI>alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 44
Next log sequence to archive 45
Current log sequence 46
اطمینان از عدم ارسال لاگ های پس از توالی #۴۲ به پایگاه داده Standby
SBY> select max(sequence#) from v$archived_log
MAX(SEQUENCE#)
————–
۴۲
اطلاع از نام آرشیولاگ های تولید شده روی پایگاه داده اصلی که به پایگاه داده Standby منتقل شده است
PRI>set line 500
col name for a40
select sequence#, name from v$archived_log where sequence# > 42;
SEQUENCE# NAME
———- —————————————-
۴۳ /u01/app/oracle/flash_recovery_area/DG01
/archivelog/2013_11_02/o1_mf_1_43_9780s1
ch_.arc
۴۴ /u01/app/oracle/flash_recovery_area/DG01
/archivelog/2013_11_02/o1_mf_1_44_9780tl
t0_.arc
۴۵ /u01/app/oracle/flash_recovery_area/DG01
/archivelog/2013_11_02/o1_mf_1_45_9780tl
vo_.arc
تغییرنام آرشیولاگ ها به منظور شبیهسازی سناریو از دست رفتن آرشیولاگ ها
PRI>ho mv /u01/app/oracle/flash_recovery_area/DG01/archivelog/2013_11_02/o1_mf_1_43_9780s1ch_.arc /home/oracle/arch_43.arc
ho mv /u01/app/oracle/flash_recovery_area/DG01/archivelog/2013_11_02/o1_mf_1_44_9780tlt0_.arc /home/oracle/arch_44.arc
ho mv /u01/app/oracle/flash_recovery_area/DG01/archivelog/2013_11_02/o1_mf_1_45_9780tlvo_.arc /home/oracle/arch_45.arc
ریستارت Redo Transport
DGMGRL> edit database dg01 set state=’Transport-on’;
اطمینان از عدم اصلاح شکاف به وجود آمده به دلیل از دست رفتن لاگ های پایگاه داده اصلی
DGMGRL> show database dg01
Database – dg01
Role: PRIMARY
Intended State: TRANSPORT-ON
Instance(s):
dg01
Database Error(s):
ORA-16783: cannot resolve gap for database dg02
Database Status:
ERROR
DGMGRL> show configuration;
Configuration – dgconfig1
Protection Mode: MaxPerformance
Databases:
dg01 – Primary database
Error: ORA-16724: cannot resolve gap for one or more standby databases
dg02 – Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
ERROR
بررسی #SCN لحظهای پایگاه داده Standby
SBY>select current_scn from v$database;
CURRENT_SCN
———–
۹۹۸۶۴۷
ایجاد کنترل فایل پایگاه داده Standby
PRI>ALTER DATABASE CREATE STANDBY CONTROLFILE AS ‘/home/oracle/standby_control.ctl’;
انتقال کنترل فایل پایگاه داده Standby به Standby Host
PRI> !scp /home/oracle/standby_control.ctl node2:/home/oracle/standby_control.ctl
اخذ پشتیبان Incremental روی پایگاه داده اصلی از #SCN پایگاه داده Standby
RMAN از SCN به عنوان مبدأ اخذ پشتیبان Incremental استفاده میکند. به جهت اخذ پشتیبان از تمام فایل ها، پشتیبان تمامی دیتا بلاکهای تغییر یافته از SCN های بالاتر یا برابر نسبت به SCN پشتیبان Incremental را شامل میشود.
توجه:
RMAN پشتیبان های Incremental را به عنوان بخشی از استراتژی پشتیبان پایگاه داده اصلی در نظر نمیگیرد لذا این نوع پشتیبان مناسب استفاده در عملیات بازگردانی پایگاه داده نمیباشد.
RMAN> Backup incremental from SCN 987005 database tag=’FOR_STANDBY’ format ‘/home/oracle/%d_%t_%s_%p’;
Starting backup at 02-NOV-13
channel ORA_DISK_1: starting full datafile backup set
…
channel ORA_DISK_1: starting piece 1 at 02-NOV-13
channel ORA_DISK_1: finished piece 1 at 02-NOV-13
piece handle=/home/oracle/DG01_830395300_22_1 tag=FOR_STANDBY comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
انتقال فایل های پشتیبان به Standby Host
PRI> !scp /home/oracle/DG01_830395300_22_1 node2:/home/oracle/DG01_830395300_22_1
Catalog نمودن پشتیبان Incremental در پایگاه داده Standby
RMAN> catalog backuppiece ‘/home/oracle/DG01_830395300_22_1’;
list backup tag FOR_STANDBY;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
——- —- — ———- ———– ———— —————
۹ Incr 9.38M DISK 00:00:00 02-NOV-13
BP Key: 9 Status: AVAILABLE Compressed: NO Tag: FOR_STANDBY
Piece Name: /home/oracle/DG01_830395300_22_1
Keep: NOLOGS Until: 09-NOV-13
List of Datafiles in backup set 9
جستجوی نام کنترل فایلهای لحظهای
SQL> col value for a50
col name for a15
select name, value from v$parameter where upper(name)= ‘CONTROL_FILES’;
NAME VALUE
————— ————————————————–
control_files /u01/app/oracle/oradata/dg02/control01.ctl, /u01/a
pp/oracle/flash_recovery_area/dg02/control02.ctl
متوقف نمودن پایگاه داده Standby و تغییرنام کنترل فایل اصلی پایگاه داده Standby
SBY> Shu immediate;
!mv /u01/app/oracle/oradata/dg02/control01.ctl /u01/app/oracle/oradata/dg02/control01.bak
!mv /u01/app/oracle/flash_recovery_area/dg02/control02.ctl /u01/app/oracle/flash_recovery_area/dg02/control02.bak
بازیابی کنترل فایل پایگاه داده Standby انتقال داده شده از پایگاه داده اصلی
SBY> ! cp /home/oracle/standby_control.ctl /u01/app/oracle/oradata/dg02/control01.ctl
! cp /home/oracle/standby_control.ctl /u01/app/oracle/flash_recovery_area/dg02/control02.ctl
اجرای پایگاه داده Standby با کنترل فایل های جدید
SBY> startup mount;
اعمال پشتیبان Incremental در پایگاه داده Standby
با استفاده از دستور RMAN RECOVER به همراه انتخاب NOREDO اقدام به اعمال پشتیبان Incremental در پایگاه داده Standby میکنیم و تمامی بلاکهای تغییر یافته دریافتی در پشتیبان Incremental در پایگاه داده Standby در مقایسه با پایگاه داده اصلی بروز رسانی میشود.
SBY> recover managed standby database cancel;
RMAN> RECOVER DATABASE from tag for_standby NOREDO;
Starting recover at 02-NOV-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00001: /u01/app/oracle/oradata/dg02/system01.dbf
destination for restore of datafile 00002: /u01/app/oracle/oradata/dg02/sysaux01.dbf
destination for restore of datafile 00003: /u01/app/oracle/oradata/dg02/undotbs01.dbf
destination for restore of datafile 00004: /u01/app/oracle/oradata/dg02/users01.dbf
destination for restore of datafile 00005: /u01/app/oracle/oradata/dg02/example01.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/DG01_830395300_22_1
channel ORA_DISK_1: piece handle=/home/oracle/DG01_830395300_22_1 tag=FOR_STANDBY
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished recover at 02-NOV-13
هماکنون پایگاه داده Standby به وسیله پشتیبان Incremental بروز رسانی شده است و میتوان فرآیند Managed Recovery را در پایگاه داده Standby فعال نمود.
SBY>recover managed standby database disconnect;
Media recovery complete.
با فعال نمودن Managed Recovery در پایگاه داده Standby، هر Redo Log مورد نیاز در پایگاه داده Standby به همراه تغییرات از زمان تهیه پشتیبان Incremental به طور خودکار از سمت پایگاه داده اصلی فراخوانی و اعمال میگردد.
از پیشرفت #SCN پایگاه داده Standby اطمینان حاصل نمایید.
SBY>select current_scn from v$database;
CURRENT_SCN
———–
۱۰۰۵۷۲۹
DGMGRL> edit database dg01 set state=’transport-on’;
DGMGRL> show configuration;
Configuration – dgconfig1
Protection Mode: MaxPerformance
Databases:
dg01 – Primary database
dg02 – Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
توجه:
به منظور بروز رسانی پایگاه داده Duplicate شده از این روش نمیتوان استفاده نمود.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.