הזזת קבצי datafile ב-online בגרסה Oracle 12c

לא מעט תכונות חדשות באורקל 12 גרמו לי להשמיע גרגורי עונג אבל הפיצ’ר הזה פשוט גרם לי להתפלא מה לקח להם כל כך הרבה זמן.
עד אורקל 12, כשרצינו להזיז קובץ של datafile ממקום למקום היינו צריכים לבצע את הפעולות הבאות (שהכריחו אותנו, בן היתר, להשבית בצורה חלקית את ה-tablespace):

  1. להעביר את ה-tablespace ל-offline.
  2. להעתיק או להעביר את הקובץ למיקום החדש באמצעות מערכת ההפעלה.
  3. לשנות את ההגדרה של ה-data file ב-control file:
  4. Alter database datafile '/old/datafile.dbf' rename to '/new/datafile.dbf';
    
  5. להחזיר את ה-tablespace למצב של online.

החל מגרסה 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';

נו? מגניב או לא מגניב? שווה גרגורי עונג? ככה חשבתי…

2 תגובות

השאירו תגובה

Want to join the discussion?
Feel free to contribute!

השאר תגובה

This site uses Akismet to reduce spam. Learn how your comment data is processed.