יצירת מסד נתונים במצב המתנה של Data Guard

אחרי שמכינים את מסד הנתונים הראשי ל-Data Guard, הוא מוכן לשכפול לאתר ההמתנה. במדריך הבא נעשה שימוש בשכפול פעיל כדי ליצור עותק עקבי של מסד הנתונים.

כתזכורת, הדוגמאות הבאות מופיעות לאורך המדריך הזה:

שם ייחודי של מסד הנתונים שמות מארחים של שרתים שמות של מכונות RAC תפקיד
DBDG_SITE1 site1db1, site1db2 DBDG_SITE11, DBDG_SITE12 ראשי
DBDG_SITE2 site2db1, site2db2 DBDG_SITE21, DBDG_SITE22 מצב המתנה

השרתים של Bare Metal Solution שבהם פועל Oracle במדריך הזה מוגדרים עם משתני הסביבה הבאים:

שם משתנה הסביבה ערך
ORACLE_BASE /apps/oracle/oracle_base
ORACLE_HOME /apps/oracle/19.0.0/db_home1

יכול להיות שתצטרכו לשנות את הנתיבים של משתני הסביבה בהתאם להגדרה שלכם.

הגדרת מסד הנתונים במצב המתנה

הגדרת הקישוריות למסד הנתונים

מתחברים לכל שרת Bare Metal Solution במיקום ההמתנה ומשנים את הקובץ $ORACLE_HOME/network/admin/tsnames.ora כדי לעדכן את הגדרת שירות הרשת:

DBDG_SITE2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE2_SCAN_HOSTNAME)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DBDG_SITE2) (UR=A)
   )
 )

DBDG_SITE1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE1_SCAN_HOSTNAME)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DBDG_SITE1)
    )
  )

הגדרת מאזין זמני

כדי להימנע מהפעלה מחדש של מאזין שמשמש לחיבורים אחרים למסד נתונים, שכפול מסד הנתונים מתבצע באמצעות מאזין זמני. בדוגמה הזו נעשה שימוש ביציאה 1523, אבל אפשר להשתמש בכל יציאה שפתוחה לתקשורת בין האשכולות. אחרי שכפול מסד הנתונים, אתם מוחקים את מאזין ה-TCP הזמני הזה.

  1. מתחברים לשרת הראשון של Bare Metal Solution במיקום ההמתנה לשימוש במהלך תהליך השכפול של מסד הנתונים. משנים את הקובץ $ORACLE_HOME/network/admin/listener.ora כדי לעדכן את הגדרות השירות של הרשת:

    LISTENER_DBDG_SITE2 =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = site1db1)(PORT = 1523))
        )
      )
    
    SID_LIST_LISTENER_DBDG_SITE2 =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = DBDG_SITE2_DGMGRL)
          (ORACLE_HOME = ORACLE_HOME)
          (SID_NAME = DBDG_SITE21)
        )
      )
    ADR_BASE_LISTENER = /apps/oracle/oracle_base
    
  2. מפעילים את ההאזנה הזמנית:

    lsnrctl start LISTENER_DBDG_SITE2
    

הכנת מסד הנתונים במצב המתנה

  1. כל מופע של מסד נתונים דורש ספרייה לאחסון יומני ביקורת. יוצרים את ספריית קובצי הביקורת בכל שרת של Bare Metal Solution במיקום של מסד הנתונים במצב המתנה:

    mkdir -p /apps/oracle/oracle_base/admin/DBDG_SITE2/adump
    
  2. משנים את הקובץ $ORACLE_HOME/dbs/initDBDG_SITE21.ora שהועתק קודם לשרת מסד הנתונים במצב המתנה:

    1. מגדירים את db_unique_name לשם החדש של מסד הנתונים במצב המתנה.
    2. משנים את הפרמטרים הספציפיים למופע כך שישקפו את שמות המופעים של מסד הנתונים במצב המתנה. דוגמאות:
      • instance_number
      • thread
      • undo_tablespace
    3. מגדירים את הפרמטר audit_file_dest לשימוש בספרייה שנוצרה בשלב הקודם.
    4. אם קבוצות הדיסקים של ASM בכל מיקום משתמשות בשמות שונים, צריך לשנות את הפרמטרים db_file_name_convert ו-log_file_name_convert כך שיתאימו למיקומי הקבצים החדשים.
    5. מוסיפים הערה לפרמטר control_files.

    בדוגמה הבאה מוצג קובץ פרמטרים מעודכן של מסד נתונים עם שינויים שבוצעו באמצעות הדוגמאות שמופיעות במדריך הזה. שימו לב שקובץ הפרמטרים יכיל פרמטרים נוספים שספציפיים להגדרת מסד הנתונים שלכם. מוצגים רק הפרמטרים שצריך לשנות כדי להגדיר את מצב ההמתנה:

    *.db_unique_name='DBDG_SITE2'
    DBDG_SITE21.instance_number=1
    DBDG_SITE22.instance_number=2
    DBDG_SITE21.thread=1
    DBDG_SITE22.thread=2
    DBDG_SITE21.undo_tablespace='UNDOTBS1'
    DBDG_SITE22.undo_tablespace='UNDOTBS2'
    *.audit_file_dest='/apps/oracle/oracle_base/admin/DBDG_SITE2/adump'
    #*.control_files='+DATA/DBDG_SITE1/CONTROLFILE/current.258.1091317089','+RECO/DBDG_SITE1/CONTROLFILE/current.257.1091317089'
    
  3. בקובץ /etc/oratab, מוסיפים רשומה כדי שהפקודה oraenv תוכל להגדיר משתני סביבה למסד הנתונים במצב המתנה:

    DBDG_SITE21:ORACLE_HOME:N
    

יצירת מסד הנתונים במצב המתנה

  1. מגדירים את משתנה הסביבה ORACLE_SID כדי להתחבר למסד הנתונים במצב המתנה:

    source oraenv <<< "DBDG_SITE21"
    

    אמורה להתקבל התשובה The Oracle base has been set to /apps/oracle/oracle_base.

  2. לפני שכפול מסד הנתונים הראשי, צריך להפעיל ידנית את מופע ההמתנה בצומת אחד. מתחברים לשרת הראשון של Bare Metal Solution במיקום ההמתנה, מפעילים את SQL*Plus ואז מפעילים את מסד הנתונים במצב המתנה ב-nomount mode באמצעות pfile:

    sqlplus / as sysdba
    
    STARTUP NOMOUNT PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
    

    אם הפעולה בוצעה ללא שגיאות, אמורה להתקבל תגובה שדומה לדוגמה הבאה:

    ORACLE instance started.
    Total System Global Area 1.2885E+10 bytes
    Fixed Size 15988824 bytes
    Variable Size 1845493760 bytes
    Database Buffers 1.1006E+10 bytes
    Redo Buffers 17563648 bytes
    
  3. יציאה מ-SQL*Plus אחרי הפעלת המופע:

    EXIT;
    
  4. בודקים את הקישוריות לשירות מסד הנתונים של הגיבוי. מכל שרת Bare Metal Solution במיקום של מסד הנתונים הראשי, מנסים להתחבר למופע ההמתנה באמצעות SQL*Plus. כדי להתחבר למופע, צריך להזין ידנית את הסיסמה של הכניסה מרחוק של SYS.

    sqlplus sys@DBDG_SITE2_FOR_DUPLICATION as sysdba
    

    אם הפעולה בוצעה ללא שגיאות, אמורה להתקבל הנחיה רגילה של SQL*Plus, שבה אפשר לבדוק את פרמטרי המכונה:

    SHOW PARAMETER DB_UNIQUE_NAME;
    

    אמורים לקבל תגובה שדומה לזו:

                    NAME        TYPE                          VALUE
        ---------------- ----------- ------------------------------
          db_unique_name      string      DBDG_SITE2
    
  5. יוצאים מ-SQL*Plus אחרי שבודקים את הפרמטר DB_UNIQUE_NAME:

    EXIT;
    
  6. מתחברים אל Recovery Manager ומריצים את הפקודה duplicate כדי לשכפל את מסד הנתונים המשני ממסד הנתונים הראשי הפעיל:

    rman TARGET sys@DBDG_SITE1 AUXILIARY sys@DBDG_SITE2_FOR_DUPLICATION
    
    DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE NOFILENAMECHECK;
    

    אם הפעולה בוצעה בהצלחה, אחרי העיבוד תקבלו הודעה שדומה לדוגמה הבאה:

    Finished Duplicate Db at ...
    
  7. כדי לצאת מ-Recovery Manager:

    EXIT;
    

השלמת היצירה של מסד הנתונים במצב המתנה

  1. במהלך שכפול מסד הנתונים, ASM יוצר קובצי בקרה חדשים למסד הנתונים במצב המתנה. מתחברים למופע החדש של הגיבוי הפעיל ומקבלים את השמות של קובצי הבקרה החדשים. בדוגמה הבאה מוצגים שני קובצי בקרה שמאוחסנים בקבוצות הדיסקים +DATA ו-+RECO:

    sqlplus / as sysdba
    
    SET LINESIZE 140
    COLUMN NAME FORMAT a15
    COLUMN VALUE FORMAT a125
    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='control_files';
    

    שמות קובצי הבקרה מוצגים בשדה 'ערך':

               NAME     VALUE
    --------------- ----------------------------------------------------------------------------------------------------
      control_files   +DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089, +RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089
    
  2. רושמים את השמות של קובצי הבקרה מהשלב הקודם ומחליפים את כל הערכים של הפרמטר control_files ב-$ORACLE_HOME/dbs/initDBDG_SITE21.ora בערכים החדשים. אם יש כמה קובצי בקרה, צריך להקיף כל אחד מהם במירכאות בודדות ולהפריד ביניהם באמצעות פסיק:

    *.control_files='+DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089','+RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089'
    
  3. מתחברים למסד הנתונים במצב המתנה באמצעות SQL*Plus ויוצרים spfile חדש מ-pfile ששונה:

    sqlplus / as sysdba
    
    CREATE SPFILE='+DATA/DBDG_SITE2/spfileDBDG_SITE2' FROM PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
    
  4. מעתיקים את קובץ הסיסמה לקבוצת הדיסקים של ASM באמצעות הפקודה asmcmd:

    asmcmd cp /apps/oracle/19.0.0/db_home1/dbs/orapwDBDG_SITE21.ora +DATA/DBDG_SITE2/orapwDBDG_SITE2
    
  5. משביתים את מופע מסד הנתונים במצב המתנה ומוחקים את הקובץ הזמני pfile ואת קובץ הסיסמה:

    sqplus / as sysdba
    
    SHUTDOWN IMMEDIATE;
    EXIT;
    
    rm $ORACLE_HOME/dbs/orapwDBDG_SITE21.ora $ORACLE_HOME/dbs/initDBDG_SITE2.ora
    
  6. מפסיקים את מאזין הזמני שמשמש לשכפול מסד הנתונים בשרת הראשון של Bare Metal Solution במיקום מסד הנתונים של הגיבוי:

    lsnrctl stop LISTENER_DBDG_SITE2
    
  7. מסירים את הרשומות הזמניות בקובץ בשרת הראשון של Bare Metal Solution במיקום של מסד הנתונים במצב המתנה.$ORACLE_HOME/network/admin/listener.ora

  8. מוסיפים את מסד הנתונים החדש במצב המתנה ואת המופעים למרשם האשכול באמצעות הפקודה srvctl:

    srvctl add database \
      -db DBDG_SITE2 \
      -oraclehome /apps/oracle/19.0.0/db_home1 \
      -spfile +DATA/DBDG_SITE2/spfileDBDG_SITE2 \
      -pwfile +DATA/DBDG_SITE2/orapwDBDG_SITE2 \
      -role PHYSICAL_STANDBY \
      -startoption MOUNT
    
    srvctl add instance \
      -db DBDG_SITE2 \
      -instance DBDG_SITE21 \
      -node site2db1
    
    srvctl add instance \
      -db DBDG_SITE2 \
      -instance DBDG_SITE22 \
      -node site2db2
    
  9. מפעילים את מסד הנתונים במצב המתנה באמצעות הפקודה srvctl:

    srvctl start database -db DBDG_SITE2
    

השלבים הבאים

בשלב הבא, מגדירים ומפעילים את ברוקר Data Guard.