Antes de começar
Antes de poder descobrir, proteger e montar bases de dados Oracle num ambiente Windows, certifique-se de que verifica o seguinte:
Verifique as seguintes definições no servidor da base de dados:
A base de dados Oracle e o Oracle Listener estão em funcionamento (verifique os serviços do Windows).
Confirme que existe uma entrada tns com o nome SID. O ficheiro tnsnames.ora encontra-se em
%ORACLE_HOME%\network\admin
Verifique se a entrada tns é válida executando o seguinte comando:
%ORACLE_HOME%\bin\tnsping <SID>
Verifique se o modo de registo está definido como Modo de registo de arquivo:
sql> archive log list
Se a base de dados estiver no modo de registo sem arquivo, regresse ao modo de registo com arquivo:
sql> shutdown immediate; sql> startup mount; sql> alter database archivelog; sql> alter database open;
Ative a monitorização de blocos de alterações da base de dados. Com o BCT da base de dados desativado, o tempo de cópia de segurança incremental é afetado. A funcionalidade de alteração da monitorização de bloqueios está disponível na Oracle Enterprise Edition. Execute uma consulta SQL para verificar se o acompanhamento de blocos de alterações está ativado. Execute a consulta:
sqlplus / as sysdba sql> select * from v$block_change_tracking;
Para ativar o acompanhamento de bloqueios de alterações:
sql> alter database enable block change tracking
using file '<Oracle home directory>\orcl.bct';
Faça uma cópia de segurança de uma base de dados Oracle num ambiente Windows
Para fazer uma cópia de segurança de uma base de dados Oracle num ambiente Windows, siga estes passos:
Defina os detalhes e as definições da aplicação para bases de dados Oracle.
Aplique um plano de cópia de segurança para proteger a base de dados.
Problema conhecido
O Oracle 19c SQLPlus (sqlplus.exe) bloqueia ocasionalmente no Windows quando executa o comando de saída (Doc ID 2820655.1). Este erro é específico do Windows. A Oracle confirmou que este problema ocorre nas versões 19.10, 19.11 e 19.12 do SQLPlus. A Oracle disponibilizou estas soluções:
- Use o SQL*Plus 21.1 ou posterior (ou)
- Aplique o patch:31466370. Esta correção está disponível para as versões 19.11 e 19.13.
Recupere bases de dados Oracle num ambiente Windows manualmente através do RMAN para um ponto de cópia de segurança agendado se o archivelog não estiver protegido através do Backup and DR
Para recuperar uma base de dados Oracle completa num ambiente Windows:
Monte a imagem instantânea da cópia de segurança da base de dados do Backup and DR de volta para o servidor Oracle, conforme detalhado no artigo Monte uma base de dados Oracle como uma montagem padrão.
Defina o ambiente da base de dados e inicie a base de dados no estado no-mount usando o ficheiro de parâmetros do volume montado do Backup and DR (por exemplo, para um volume de base de dados montado em E:):
sqlplus / as sysdba sql> startup nomount pfile='E:\<sid>___backup.ora';
Crie o spfile a partir do pfile:
sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora' from pfile='E:\<sid>___backup.ora';
Inicie a base de dados com o spfile no estado
nomount
:sql> shutdown immediate; sql> startup nomount;
Restaure o ficheiro de controlo através do RMAN a partir do volume montado do Backup and DR:
rman target / rman> restore controlfile from 'E:\cf-D_<sid>-id_<id>.ctl';
Monte a base de dados:
rman> alter database mount;
Catalogar o ficheiro de dados e a pasta do ficheiro de arquivo do volume montado do Backup and DR para o RMAN:
rman> run { catalog start with 'E:\datafile' noprompt; catalog start with 'E:\archivelog' noprompt; }
Restaurar e recuperar a base de dados:
rman> run { restore database; recover database; }
Abra a base de dados com a opção de registo de reposição:
rman> alter database open resetlogs;
Recupere bases de dados Oracle num ambiente Windows manualmente através do RMAN para um ponto de cópia de segurança agendado com reversão do registo de arquivo protegido pelo Backup and DR
Monte a imagem a partir do servidor da base de dados de origem para recuperar. Monte o instantâneo da cópia de segurança do Backup and DR novamente no servidor Oracle, conforme detalhado no artigo Monte uma base de dados Oracle como uma montagem padrão.
Defina o ambiente da base de dados e inicie a base de dados no estado no-mount com o ficheiro de parâmetros do volume montado do Backup and DR. Neste exemplo, a imagem de cópia de segurança da base de dados está montada em: E:\ e o registo de arquivo protegido está montado em: Z:.
sqlplus / as sysdba
startup nomount pfile='E:\<sid>___backup.ora';
Crie o spfile a partir do pfile:
sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora' from pfile='E:\<sid>___backup.ora';
Inicie a base de dados com o spfile no estado nomount:
```sql shutdown immediate; startup nomount; ```
Restaure o ficheiro de controlo através do RMAN a partir da imagem do registo de arquivo montada do Backup and DR:
```rman rman target / rman> restore controlfile from 'Z:\cf-D_<sid>-id_<id>.ctl'; ```
Monte a base de dados:
```rman rman> alter database mount; ```
Catalogar o ficheiro de dados e a pasta archivelog a partir da imagem de base de dados montada do Backup and DR e da imagem do registo de arquivo para o RMAN:
```rman rman> run { catalog start with 'E:\datafile' noprompt; catalog start with 'E:\archivelog' noprompt; catalog start with 'Z:\archivelog' noprompt; } ```
Restaurar e recuperar a base de dados:
```rman rman> run { restore database; recover database; } ```
Para uma recuperação num momento específico, execute o comando de recuperação da seguinte forma:
```rman rman> run { restore database; recover database until time "to_date('<time stamp>','yyyymmddhh24mi')"; } ```
Abra a base de dados com a opção de registo de reposição:
```rman rman> alter database open resetlogs; ```
A base de dados está disponível para leitura e escrita.
Script de monitorização para verificar se os volumes da base de dados estão a ser montados
Se criar uma montagem com reconhecimento de aplicações, pode usar um script de monitorização para mostrar os volumes que estão a ser montados a partir do Backup and DR e os processos do Oracle em execução. As montagens conscientes da aplicação são descritas no artigo Montar uma base de dados Oracle como uma aplicação virtual.
Quando realizar uma montagem com reconhecimento de aplicações, pode usar este script de relógio. A localização do script tem de ser: C:\Program Files\Backup and DR\scripts. Os scripts executados em anfitriões Windows têm de ser ficheiros .bat ou .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
```
Que produz um resultado como este:
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