הזזת קבצי datafile ב-online בגרסה Oracle 12c
לא מעט תכונות חדשות באורקל 12 גרמו לי להשמיע גרגורי עונג אבל הפיצ'ר הזה פשוט גרם לי להתפלא מה לקח להם כל כך הרבה זמן.
עד אורקל 12, כשרצינו להזיז קובץ של datafile ממקום למקום היינו צריכים לבצע את הפעולות הבאות (שהכריחו אותנו, בן היתר, להשבית בצורה חלקית את ה-tablespace):
- להעביר את ה-tablespace ל-offline.
- להעתיק או להעביר את הקובץ למיקום החדש באמצעות מערכת ההפעלה.
- לשנות את ההגדרה של ה-data file ב-control file:
- להחזיר את ה-tablespace למצב של online.
Alter database datafile '/old/datafile.dbf' rename to '/new/datafile.dbf';
החל מגרסה 12, הפעולה של הזזת קובץ datafile יכולה להתבצע ב-online ללא השבתה של ה-tablespace.
Alter database move datafile '/u01/oracle/orcl/dbf/old_name.dbf' to '/u01/oracle/orcl/dbf/new_name.dbf';
אם הקובץ כבר קיים ביעד ניתן להוסיף reuse והקובץ שקיים יידרס על ידי הקובץ החדש.
אם רוצים להעתיק את הקובץ (במקום להעביר – כלומר הקובץ הישן לא נמחק) נוסיף את הפקודה KEEP בסיום הפקודה:
Alter database move datafile '/u01/oracle/orcl/dbf/old_name.dbf' to '/u01/oracle/orcl/dbf/new_name.dbf' keep;
הדבר המדליק באמת בפיצ'ר הזה היא היכולת להעתיק קבצים לתוך ה-ASM (או בתוך ה-ASM) בלי להזדקק להשבתה או לפעילות מיוחדת ב-rman:
Alter database move datafile '/u01/oracle/orcl/dbf/old_name.dbf' to '+DATA';
נו? מגניב או לא מגניב? שווה גרגורי עונג? ככה חשבתי…
תותח על אתה !
יפה מאוד!!