והפעם חידה ב-Oracle :
הורדתי את ה- DB שלי, לקחתי קובץ אחד מגיבוי של לפני שבוע ודרסתי איתו את הקובץ העדכני.
כשהעליתי את ה- DB לא היתה שום בעיה והוא נפתח ואפשר לי לעבוד בלי צורך ב- recovery. איך זה הגיוני?
את הפתרונות ניתן לשלוח ל-ildba@brillix.co.il.
בין הפותרים נכונה יוגרל עכבר אלחוטי של לוגיטק.
———————————
עידכון: 06.02.11
הזוכה של אתגר חודש ינואר 2011 הוא: ליאור קרן!
אימייל יישלח לזוכה במהלך היום.
פיתרון האתגר של חודש זה:
על מנת לנהל את הסנכרון של קבצי ה-database באורקל, קיים ה- SCN – system change number. זהו מספר שעולה עם כל שינוי שקורה ב- database והוא כתוב בכל dbf וב- control file.
ה-SCN מתעדכן כל הזמן (גם אם המידע בקובץ עצמו לא השתנה) ואם נחזיר קובץ אחד מגיבוי, ה- SCN שלו לא יהיה תואם לזה של הקבצים האחרים ואורקל ידרוש תהליך של recovery.
ה-SCN מפסיק להשתנות בקובץ מסויים במספר מקרים:
1. כאשר הקובץ הופך ל- offline.
2. כאשר הקובץ שייך ל- tablespace שהופך ל- read only.
3. כאשר מכניסים את ה- DB או ה- tablespace של הקובץ ל- backup mode
רק במקרה השני, של read only tablespace, אורקל יודע שהקובץ לא השתנה ומקבל את ה- SCN הישן. שני המקרים האחרים ידרשו סנכרון של הקובץ עם שאר הקבצים על ידי recovery.
מכאן, התשובה היא שהקובץ היה שייך ל- tablespace שהיה מוגדר כ- read only.
אגב, אורקל רושם לעצמו מתי ה- tablespace הפך ל- read only, כך שאם היינו מחזירים את הקובץ מגיבוי שנלקח לפני שה- tablespace נהפך ל- read only או אם בין הגיבוי לשחזור ה- tablespace היה עובר להיות read/write וחוזר ל- read only, אורקל היה דורש לבצע recovery.
מזל טוב לזוכה,
מחר יתפרסם האתגר הבא של חודש פברואר, יש למה לחכות.
11 תגובות ל- “אתגר החודש – ינואר 2011”
Where is the challenge? 🙂
היי יוני, האתגר יעלה היום בלילה לאתר
*************
היי ליאור,
תודה על תגובתך.
את התשובות יש לשלוח לכתובת:ildba@brillix.co.il
ולא בתגובות, על מנת לאפשר לאנשים נוספים לענות על האתגר.
בנוסף, על מנת להשתתף באתגר ובהגרלה, יש להירשם לאתר (בחלקו השמאלי יש תיבת הרשמה).
תודה !
בהמשך לחידת החודש אבל הפעם חם מהשטח
נניח ואתם מבצעם שחזור באופן הבא :
RMAN> connect target
RMAN> startup nomount;
RMAN> restore controlfile from autobackup;
RMAN> alter database mount;
RMAN> restore database;
RMAN> recover database;
RMAN> alter database open resetlogs
הודעת השגיאה התקבלת היא :
unable to find archive log
archive log thread=1 sequence=1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 12/26/2010 16:09:46
RMAN-06054: media recovery requesting unknown log: thread 1 seq 1 lowscn 11444709
כיצד תתמודדו עם הבעיה ?
דוד יצחק
דוד,
כל הכבוד על החידה, קבל 20 נקודות על היוזמה והחידה המוצלחת.
צוות ilDBA
רוצים אתגר רציני!
🙂
חכה חכה, זה רק החימום
טוב אז הפתרון הוא כזה מתוך מאות בדיקות שעשינו בכדי לתת script שחזור אוטומאטי ללקוחות
נריץ את RMAN עם script השחזור הבא תחת ההנחה שה- recovery catalog הוא ב- control files:
# Step 1 Shut down your database
shutdown immediate ;
#Step 2 Startup mount your database and restore you control file :
startup nomount ;
#Determine the lost database DBID. (H:\jobs\oracle\scripts\DBID.txt)
# Set DBID = ;
# Plug here DBID
# In case of problems with Determine the lost database DBID see section : Determining the Database Identifier
Set DBID = 2967957994
restore controlfile from autobackup;
#Step 3 Mount to database , Recover your database with RMAN .
alter database mount ;
restore database;
recover database ;
#shutdown immediate;
#startup mount;
#alter database open resetlogs ;
כעת נקבל את הודעת השגיאה הנ"ל ולכאורה הגיבוי כשל .איזה לחץ !!!!!!
נפתח session אחר מתוך SQL Plus ונבצע:
SPOOL D:\jobs\oracle\log\recover_sql.log
conn / as sysdba
shutdown immediate;
startup mount;
alter database open resetlogs;
–Query the open_mode column in the V$DATABASE view to confirm that the
–database is truly in read/write mode:
select open_mode from v$database;
spool off
EXIT
/
בקשר לחידה
בהנחה שזה עדיין רלוונטי
הניחוש שלי, ואני בחור אפליקטיבי
הוא שה- tbs מוגדר בתור read only
חוץ מזה בהצלחה עם האתר!!!
שלום עמיאל,
תודה על ניסיונך בפיתרון האתגר, תשובתך נכונה.
כדי שבאמת תוכל להשתתף באתגר יש להירשם לאתר (בצד שמאל של העמוד הראשי) ולשלוח את התשובות לאימייל ilDBA@brillix.co.il.
תודה על האיחולים,
אתה מוזמן להמשיך לבקר באתר. האתגר הבא יעלה לאויר מחר.
שיהיה המשך יום נעים,
רוני.
השאר תגובה: