אתגר החודש - ינואר 2011 - ilDBA Portal

אתגר החודש – ינואר 2011

24/12/2010 | פורסם על ידי

והפעם חידה ב-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”

commenter

Where is the challenge? 🙂

commenter

היי יוני, האתגר יעלה היום בלילה לאתר

commenter

*************

commenter

היי ליאור,
תודה על תגובתך.

את התשובות יש לשלוח לכתובת:ildba@brillix.co.il
ולא בתגובות, על מנת לאפשר לאנשים נוספים לענות על האתגר.

בנוסף, על מנת להשתתף באתגר ובהגרלה, יש להירשם לאתר (בחלקו השמאלי יש תיבת הרשמה).

תודה !

דוד יצחקג | 13/01/2011 בשעה 03:39
commenter

בהמשך לחידת החודש אבל הפעם חם מהשטח
נניח ואתם מבצעם שחזור באופן הבא :

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
כיצד תתמודדו עם הבעיה ?
דוד יצחק

commenter

דוד,
כל הכבוד על החידה, קבל 20 נקודות על היוזמה והחידה המוצלחת.

צוות ilDBA

commenter

רוצים אתגר רציני!
🙂

צוות ilDBA | 19/01/2011 בשעה 14:24
commenter

חכה חכה, זה רק החימום

דוד יצחק | 27/01/2011 בשעה 02:28
commenter

טוב אז הפתרון הוא כזה מתוך מאות בדיקות שעשינו בכדי לתת 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
/

commenter

בקשר לחידה
בהנחה שזה עדיין רלוונטי
הניחוש שלי, ואני בחור אפליקטיבי
הוא שה- tbs מוגדר בתור read only
חוץ מזה בהצלחה עם האתר!!!

commenter

שלום עמיאל,
תודה על ניסיונך בפיתרון האתגר, תשובתך נכונה.
כדי שבאמת תוכל להשתתף באתגר יש להירשם לאתר (בצד שמאל של העמוד הראשי) ולשלוח את התשובות לאימייל ilDBA@brillix.co.il.
תודה על האיחולים,
אתה מוזמן להמשיך לבקר באתר. האתגר הבא יעלה לאויר מחר.
שיהיה המשך יום נעים,
רוני.

השאר תגובה:

שם (חובה):
אימייל (לא יפורסם) (חובה):
תגובה (חובה):

*



מאמרים קשורים

אתגר

אתגר החודש – אתגר ינואר 2012

כמו בכל חודש אנו מביאים לכם חידה הקשורה לבסיסי נתונים, בין פותרי החידה תורגל שובר של נופשונית. והחודש חידה הקשורה [...]
אתגר

אתגר החודש – אתגר ספטמבר 2011

כמו בכל חודש אנו מביאים לכם חידה הקשורה לבסיסי נתונים, בין פותרי החידה תורגל שובר של נופשונית. והחודש חידה הקשורה [...]
אתגר

אתגר החודש – אתגר אוגוסט 2011

כמו בכל חודש אנו מביאים לכם חידה הקשורה לבסיסי נתונים, בין פותרי החידה תורגל שובר של נופשונית. והחודש חידה הקשורה הקשחת בסיס נתונים [...]
אתגר

אתגר החודש – אתגר יולי 2011

אתגר יולי יהיה בשפת SQL / [...]
Copyright 2019 ilDBA Portal. Brought to you by Brillix - Israel Leading DBA company. Sponsored by: DBSnaps - Database Video Tutorialss
Website Security Test
%d בלוגרים אהבו את זה: