בעיה:
"ביצעתיkill לטרנזקציה, ואני רואה ב- activity monitor שמתבצע כרגע RollBack
כיצד ניתן לדעת עוד כמה זמן נשאר ל- RollBack ?"
"מה סטטוס ה- RollBack? "
פתרון:
כאשר מנהל בסיס הנתונים מחליט לעצור טרנזקציה על-ידי פקודת kill, הטרנזקציה תעבור RollBack .
על מנת לנהל את ה- RollBack ולדעת כמה כבר בוצע ? וכמה זמן עוד נשאר ? יש להריץ שוב את הפקודה KILL על אותה טרנזקציה.
פקודת KILL על טרנזקציה שכבר מבוצע עליה RollBack תראה את הנתונים הנ"ל.
לדוגמא:
ביצוע פקודת kill לטרנזקציה מספר 52 .
הרצת פקודת sp_who2 על מנת לראות את סטאטוס הטרנזקציות.
ניתן לראות כי טרנזקציה 52 כעת בסטאטוס "rollback"
על-מנת לנטר את ה- rollback ולראות את הסטאטוס שלו -
לעשות שוב פעם KILL זה קצת מסוכן כי יכול להיות שה ROLLBACK נגמר ועכשיו תהרגו SESSION אחר
ע"י שימוש ב with statusonly נקבל את אותה התוצאה ביותר זהירות
kill XXXXX with statusonly
בהצלחה !!
all news and tips for database administrators and BI Architects
הצגת רשומות עם תוויות sys files. הצג את כל הרשומות
הצגת רשומות עם תוויות sys files. הצג את כל הרשומות
יום ראשון, 22 בפברואר 2009
יום רביעי, 18 בפברואר 2009
Find Current Location of Data and Log File of All the Database
SELECT name, physical_name AS current_file_location
FROM sys.master_files
יום שני, 3 במרץ 2008
xp_fileexist
אחת היכולות החזקות של פלטפורמת ה- SQL הינה היכולת להתחבר ול"התממשק" לקבצי מערכת ההפעלה .
ישנם מספר דרכים לבצע פעולה זו , אחת מהדרכים היעילות והטובות היא דרך הפרודצורה - xp_fileexist .
פרוצודרה זו שזמינה גם בפלטפורמת ה- 2000 וב- 2005 מאפשרת ל- DBA לקבל נתונים אודות קבצים הקיימים בתקיות , לדוגמא :
DECLARE @FileName varchar(255)SELECT @FileName='C:\boot.ini'EXEC Master.dbo.xp_fileexist @filenameGO
והתשובה ...
לבצע בדיקת קיום הקובץ , לדוגמא:
DECLARE @FileName varchar(255) DECLARE @File_Exists int
SELECT @FileName='C:\boot.ini' EXEC Master.dbo.xp_fileexist @FileName, @File_Exists OUT IF @File_Exists = 1 PRINT 'File Found' ELSE PRINT 'File Not Found' GO
והתשובה:
כמובן שניתן לשמור את תוצאות הפרוצדורה בטבלה זמנית ...
DECLARE @FileName varchar(255)CREATE TABLE #File_Results (File_Exists int,File_is_a_Directory int,Parent_Directory_Exists int)SELECT @FileName='C:\boot.ini'INSERT INTO #File_Results(File_Exists, file_is_a_directory, parent_directory_exists)EXEC Master.dbo.xp_fileexist @filenameSELECT * FROM #File_ResultsDROP TABLE #File_ResultsGO
כעת ניתן לנהל ולנטר טוב יותר את הקבצים בשרת !
בהצלחה!
ישנם מספר דרכים לבצע פעולה זו , אחת מהדרכים היעילות והטובות היא דרך הפרודצורה - xp_fileexist .
פרוצודרה זו שזמינה גם בפלטפורמת ה- 2000 וב- 2005 מאפשרת ל- DBA לקבל נתונים אודות קבצים הקיימים בתקיות , לדוגמא :
DECLARE @FileName varchar(255)SELECT @FileName='C:\boot.ini'EXEC Master.dbo.xp_fileexist @filenameGO
והתשובה ...
לבצע בדיקת קיום הקובץ , לדוגמא:
DECLARE @FileName varchar(255) DECLARE @File_Exists int
SELECT @FileName='C:\boot.ini' EXEC Master.dbo.xp_fileexist @FileName, @File_Exists OUT IF @File_Exists = 1 PRINT 'File Found' ELSE PRINT 'File Not Found' GO
והתשובה:
כמובן שניתן לשמור את תוצאות הפרוצדורה בטבלה זמנית ...
DECLARE @FileName varchar(255)CREATE TABLE #File_Results (File_Exists int,File_is_a_Directory int,Parent_Directory_Exists int)SELECT @FileName='C:\boot.ini'INSERT INTO #File_Results(File_Exists, file_is_a_directory, parent_directory_exists)EXEC Master.dbo.xp_fileexist @filenameSELECT * FROM #File_ResultsDROP TABLE #File_ResultsGO
כעת ניתן לנהל ולנטר טוב יותר את הקבצים בשרת !
בהצלחה!
הירשם ל-
רשומות (Atom)