לפני שמתחילים
לפני שתוכלו לגלות מסדי נתונים של Oracle בסביבת Windows, להגן עליהם ולצרף אותם, חשוב לוודא את הדברים הבאים:
בודקים את ההגדרות הבאות בשרת מסד הנתונים:
מסד הנתונים של Oracle ו-Oracle Listener פועלים (צריך לבדוק את שירותי Windows).
מוודאים שיש רשומה של tns עם השם SID. הקובץ tnsnames.ora נמצא בתיקייה
%ORACLE_HOME%\network\adminכדי לוודא שהערך tns תקין, מריצים את הפקודה:
%ORACLE_HOME%\bin\tnsping <SID>
בודקים אם מצב היומן מוגדר למצב 'ארכיון יומן':
sql> archive log listאם מסד הנתונים נמצא במצב של יומן ללא ארכיון, צריך להחזיר אותו למצב של יומן עם ארכיון:
sql> shutdown immediate; sql> startup mount; sql> alter database archivelog; sql> alter database open;הפעלת מעקב אחר שינויים במסד הנתונים. אם ה-BCT של מסד הנתונים מושבת, זמן הגיבוי המצטבר מושפע. התכונה 'שינוי מעקב אחר חסימות' זמינה במהדורת Oracle Enterprise. מריצים שאילתת SQL כדי לוודא שמעקב אחר בלוקים של שינויים מופעל. מריצים את השאילתה:
sqlplus / as sysdba sql> select * from v$block_change_tracking;
כדי להפעיל את מעקב השינויים בחסימות:
sql> alter database enable block change tracking
using file '<Oracle home directory>\orcl.bct';
גיבוי מסד נתונים של Oracle בסביבת Windows
כדי לגבות מסד נתונים של Oracle בסביבת Windows, פועלים לפי השלבים הבאים:
במסוף לניהול מכשירים, מגדירים את פרטי האפליקציה וההגדרות של מסדי נתונים של Oracle.
החלת תוכנית גיבוי כדי להגן על מסד הנתונים.
בעיה ידועה
Oracle 19c SQL*Plus (sqlplus.exe) נתקע מדי פעם ב-Windows כשמבצעים את הפקודה exit (מסמך מספר 2820655.1). הבאג הזה ספציפי ל-Windows. חברת Oracle אישרה שהבעיה הזו מתרחשת בגרסאות 19.10, 19.11 ו-19.12 של SQL*Plus. אורקל סיפקה את הפתרונות הבאים:
- משתמשים ב-SQL*Plus 21.1 ואילך (או)
- החלת תיקון:31466370. התיקון הזה זמין בגרסאות 19.11 ו-19.13.
שחזור ידני של מסדי נתונים של Oracle בסביבת Windows באמצעות RMAN לנקודת גיבוי מתוזמנת, אם קובץ ה-archivelog לא מוגן באמצעות Backup and DR
כדי לשחזר מסד נתונים שלם של Oracle בסביבת Windows:
מבצעים Mount של תמונת הגיבוי של מסד הנתונים מ-Backup and DR בחזרה לשרת Oracle, כמו שמתואר במאמר Mount של מסד נתונים של Oracle כ-Mount רגיל.
מגדירים את סביבת מסד הנתונים ומפעילים את מסד הנתונים במצב no-mount באמצעות קובץ הפרמטרים מהנפח המותקן של Backup and DR (לדוגמה, עבור נפח מותקן של מסד נתונים ל-E:):
sqlplus / as sysdba sql> startup nomount pfile='E:\<sid>___backup.ora';יצירת spfile מ-pfile:
sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora' from pfile='E:\<sid>___backup.ora';מפעילים את מסד הנתונים עם spfile במצב
nomount:sql> shutdown immediate; sql> startup nomount;משחזרים את קובץ הבקרה באמצעות RMAN מהנפח המצורף של Backup and DR:
rman target / rman> restore controlfile from 'E:\cf-D_<sid>-id_<id>.ctl';טוענים את מסד הנתונים:
rman> alter database mount;מקטלגים את קובץ הנתונים ואת תיקיית קובץ הארכיון מהנפח המותקן של Backup and DR אל RMAN:
rman> run { catalog start with 'E:\datafile' noprompt; catalog start with 'E:\archivelog' noprompt; }שחזור מסד הנתונים:
rman> run { restore database; recover database; }פותחים את מסד הנתונים עם האפשרות לאיפוס היומן:
rman> alter database open resetlogs;
שחזור ידני של מסדי נתונים של Oracle בסביבת Windows באמצעות RMAN לנקודת גיבוי מתוזמנת עם העברה קדימה של יומן ארכיון שמוגן על ידי Backup and DR
מבצעים Mount לגיבוי משרת מסד הנתונים של המקור כדי לשחזר. מבצעים Mount לתמונת המצב של הגיבוי מ-Backup and DR בחזרה לשרת Oracle, כמו שמתואר במאמר Mount של מסד נתונים של Oracle כ-Mount רגיל.
מגדירים את סביבת מסד הנתונים ומפעילים את מסד הנתונים במצב no-mount באמצעות קובץ הפרמטרים מהנפח המותקן של Backup and DR. בדוגמה הזו, הגיבוי של מסד הנתונים מותקן בנתיב E:\ והיומן של הארכיון המוגן מותקן בנתיב Z:.
sqlplus / as sysdbastartup nomount pfile='E:\<sid>___backup.ora';יצירת spfile מ-pfile:
sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora' from pfile='E:\<sid>___backup.ora';מפעילים את מסד הנתונים עם spfile במצב nomount:
```sql shutdown immediate; startup nomount; ```משחזרים את קובץ הבקרה באמצעות RMAN מגיבוי יומן הארכיון המצורף של Backup and DR:
```rman rman target / rman> restore controlfile from 'Z:\cf-D_<sid>-id_<id>.ctl'; ```טוענים את מסד הנתונים:
```rman rman> alter database mount; ```קטלוג של קובץ הנתונים ותיקיית יומן הארכיון מגיבוי של מסד נתונים וגיבוי של יומן ארכיון שמועברים מ-Backup and DR אל RMAN:
```rman rman> run { catalog start with 'E:\datafile' noprompt; catalog start with 'E:\archivelog' noprompt; catalog start with 'Z:\archivelog' noprompt; } ```שחזור מסד הנתונים:
```rman rman> run { restore database; recover database; } ```כדי להריץ שחזור לנקודת זמן ספציפית, מריצים את פקודת השחזור באופן הבא:
```rman rman> run { restore database; recover database until time "to_date('<time stamp>','yyyymmddhh24mi')"; } ```פותחים את מסד הנתונים עם האפשרות לאיפוס היומן:
```rman rman> alter database open resetlogs; ```מסד הנתונים זמין לקריאה ולכתיבה.
צפייה בסקריפט כדי לראות את אמצעי האחסון של מסדי הנתונים שמחוברים
אם יוצרים הרכבה שמודעת לאפליקציה, אפשר להשתמש בסקריפט של שעון כדי להציג את אמצעי האחסון שמורכבים מ-Backup and DR, ואת התהליכים של Oracle שפועלים. הסבר על התקנות שמודעות לאפליקציות מופיע במאמר התקנת מסד נתונים של Oracle כאפליקציה וירטואלית.
כשמבצעים פעולת mount עם מודעות לאפליקציה, אפשר להשתמש בסקריפט הזה של שעון. מיקום הסקריפט צריך להיות: C:\Program Files\Backup and DR\scripts. סקריפטים שמופעלים במארחי Windows צריכים להיות קובצי .bat או .vbs.
```Windows
@echo off
:loop
echo. > watchtemp
echo ------------------ >> watchtemp
echo Oracle Processes >> watchtemp
echo ------------------ >> watchtemp
tasklist /svc | findstr oracle >> watchtemp
echo. >> watchtemp
echo ------------------ >> watchtemp
echo Backup and DR Mounts >> watchtemp
echo ------------------ >> watchtemp
wmic volume get label, name | findstr Backup and DR >> watchtemp
echo. >> watchtemp
cls
type watchtemp
timeout 2 > null
goto loop
```
הפלט שמתקבל נראה כך:
Oracle Processes
------------------
oracle.exe 1492 OracleServiceORCL
oracle.exe 3768 OracleServiceTestDB
oracle.exe 872 OracleServiceTestDB2
------------------
Backup and DR Mounts
------------------
Backup and DR-Backup-ORCL D:\mount_1