Sebelum memulai
Sebelum Anda dapat menemukan, melindungi, dan memasang database Oracle di lingkungan Windows, pastikan untuk memeriksa hal berikut:
Periksa setelan berikut di server database:
Database Oracle dan Oracle Listener sudah aktif dan berjalan (periksa layanan Windows).
Pastikan ada entri tns dengan nama SID. File tnsnames.ora berada di bawah
%ORACLE_HOME%\network\adminVerifikasi bahwa entri tns valid dengan menjalankan:
%ORACLE_HOME%\bin\tnsping <SID>
Periksa apakah mode log disetel ke mode Archive Log:
sql> archive log listJika database berada dalam mode log tanpa arsip, kembalikan ke mode log arsip:
sql> shutdown immediate; sql> startup mount; sql> alter database archivelog; sql> alter database open;Mengaktifkan pelacakan blok perubahan database. Jika BCT database nonaktif, waktu pencadangan inkremental akan terpengaruh. Fitur pelacakan blok perubahan tersedia di Oracle Enterprise Edition. Jalankan kueri SQL untuk memeriksa apakah pelacakan blok perubahan diaktifkan. Jalankan kueri:
sqlplus / as sysdba sql> select * from v$block_change_tracking;
Untuk mengaktifkan pelacakan blok perubahan:
sql> alter database enable block change tracking
using file '<Oracle home directory>\orcl.bct';
Mencadangkan database Oracle di lingkungan Windows
Untuk mencadangkan database Oracle di lingkungan Windows, ikuti langkah-langkah berikut:
Di konsol pengelolaan peralatan, tetapkan Application Details & Settings for Oracle Databases.
Terapkan rencana pencadangan untuk melindungi database.
Masalah umum
Oracle 19c SQL*Plus (sqlplus.exe) terkadang hang di Windows saat menjalankan perintah exit (Doc ID 2820655.1). Bug ini khusus untuk Windows. Oracle telah mengonfirmasi bahwa masalah ini terjadi di SQL*Plus versi 19.10, 19.11, dan 19.12. Oracle memberikan solusi berikut:
- Gunakan SQL*Plus 21.1 atau yang lebih baru (atau)
- Terapkan patch:31466370. Patch ini tersedia untuk 19.11 dan 19.13.
Memulihkan database Oracle di lingkungan Windows secara manual menggunakan RMAN ke titik pencadangan terjadwal jika archivelog tidak dilindungi melalui Backup and DR
Untuk memulihkan seluruh database Oracle di lingkungan Windows:
Pasang snapshot cadangan database dari Backup and DR kembali ke server Oracle seperti yang dijelaskan dalam Memasang database Oracle sebagai pemasangan standar.
Tetapkan lingkungan database dan mulai database dalam status no-mount menggunakan file parameter dari volume yang terpasang di Backup and DR (misalnya untuk volume database yang terpasang ke E:):
sqlplus / as sysdba sql> startup nomount pfile='E:\<sid>___backup.ora';Buat spfile dari pfile:
sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora' from pfile='E:\<sid>___backup.ora';Mulai database dengan spfile dalam status
nomount:sql> shutdown immediate; sql> startup nomount;Pulihkan file kontrol menggunakan RMAN dari volume yang dipasang Backup and DR:
rman target / rman> restore controlfile from 'E:\cf-D_<sid>-id_<id>.ctl';Memasang database:
rman> alter database mount;Katalogkan file data dan folder file arsip dari volume yang dipasang Backup and DR ke RMAN:
rman> run { catalog start with 'E:\datafile' noprompt; catalog start with 'E:\archivelog' noprompt; }Pulihkan dan pulihkan database:
rman> run { restore database; recover database; }Buka database dengan opsi reset log:
rman> alter database open resetlogs;
Memulihkan database Oracle di lingkungan Windows secara manual menggunakan RMAN ke titik pencadangan terjadwal dengan roll-forward archivelog yang dilindungi Backup and DR
Memasang cadangan dari server database sumber untuk dipulihkan. Pasang snapshot cadangan dari Backup and DR kembali ke server Oracle seperti yang dijelaskan dalam Memasang database Oracle sebagai pemasangan standar.
Tetapkan lingkungan database dan mulai database dalam status no-mount menggunakan file parameter dari volume yang dipasang Backup and DR. Dalam contoh ini, cadangan database dipasang di: E:\ dan log arsip yang dilindungi dipasang di: Z:.
sqlplus / as sysdbastartup nomount pfile='E:\<sid>___backup.ora';Buat spfile dari pfile:
sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora' from pfile='E:\<sid>___backup.ora';Mulai database dengan spfile dalam status nomount:
```sql shutdown immediate; startup nomount; ```Pulihkan file kontrol menggunakan RMAN dari cadangan log arsip yang dipasang di Backup and DR:
```rman rman target / rman> restore controlfile from 'Z:\cf-D_<sid>-id_<id>.ctl'; ```Memasang database:
```rman rman> alter database mount; ```Katalogkan folder datafile dan archivelog dari cadangan database dan cadangan log arsip yang dipasang Backup and DR ke RMAN:
```rman rman> run { catalog start with 'E:\datafile' noprompt; catalog start with 'E:\archivelog' noprompt; catalog start with 'Z:\archivelog' noprompt; } ```Pulihkan dan pulihkan database:
```rman rman> run { restore database; recover database; } ```Untuk pemulihan point-in-time tertentu, jalankan perintah pemulihan sebagai berikut:
```rman rman> run { restore database; recover database until time "to_date('<time stamp>','yyyymmddhh24mi')"; } ```Buka database dengan opsi reset log:
```rman rman> alter database open resetlogs; ```Database tersedia untuk dibaca dan ditulis.
Skrip watch untuk memantau volume database yang sedang dipasang
Jika Anda membuat pemasangan berbasis aplikasi, Anda dapat menggunakan skrip watch untuk menampilkan volume yang dipasang dari Backup and DR, dan proses Oracle yang berjalan. Pemasangan berbasis aplikasi dijelaskan dalam Memasang Database Oracle sebagai Aplikasi Virtual.
Saat melakukan pemasangan berbasis aplikasi, Anda dapat menggunakan skrip watch ini. Lokasi skrip harus: C:\Program Files\Backup and DR\scripts. Skrip yang dijalankan di host Windows harus berupa file .bat atau .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
```
Yang menghasilkan output seperti ini:
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