Script sauvegarde à froid (cold backup)
Un exemple très simple de script de sauvegarde à froid des
fichiers de données, des redolog, des fichiers de contrôles, et temporary tablespace d’une base de données.
Très utile et rapide en terrain inconnu, où les fichiers sont un peu dispersés à droite et à gauche.
(Ne pas tester en environnement de
Production, mais en test d’abord !!!!)
1 Construction dynamiques des ordres de host copy par interrogations des tables
- v$datafile
- v$logfile
- v$controlfile
- v$tempfile
2 Insertion de ces lignes dans un fichier backup.bat dans c:\save
3 Creation backup control files pour re-création des control files si besoin
4 Arrêt de la base
5 Auto exécution de la copie à froid (backup.bat)
6 Redémarrage de la base
Lancer ce script directement en mode console sans vous connecter à SQL*PLUS par
Copier/Coller.
Prenez le soin de changer la chaine de connexion et vérifiez la présence du répertoire C:\cold_backup et C:\save pour ce test.
Si vous avez peur du script !! Vous pouvez mettre en commentaire les 4 dernières lignes, il y aura uniquement la construction du fichier .bat dans c:\save sans shutdown immediate etc.
__S_C_R_I_P_T__________________________________________________________________
sqlplus -s "sys/mdp@NomTNS as sysdba"
SET pagesize 0
SET linesize 500
SET verify off
define folder ='c:\cold_backup'
define batch='c:\save\backup.bat'
spool &batch;
select 'host copy '|| name|| ' &folder' from v$datafile order by 1 ;
select 'host copy '|| member || ' &folder' from v$logfile order by 1 ;
select 'host copy '|| name || ' &folder' from v$controlfile order by 1 ;
select 'host copy '|| name || ' &folder' from v$tempfile order by 1 ;
spool off
alter database backup controlfile to trace as 'C:\cold_backup\BckCtl.sql' REUSE;
shutdown immediate;
@&batch;
startup;
exit;
_____________________________________________________________________
Contenu du fichier C:\save\backup.bat en sortie
qui sera exécuté en auto
host copy C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\SYSAUX01.DBF
c:\cold_backup
host copy C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\SYSTEM01.DBF
c:\cold_backup
host copy C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\UNDOTBS01.DBF
c:\cold_backup
host copy C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\USERS01.DBF
c:\cold_backup
host copy C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\DATA_01.DBF
c:\cold_backup
host copy C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\DATA_02.DBF
c:\cold_backup
host copy C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\REDO01.LOG c:\cold_backup
host copy C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\REDO02.LOG c:\cold_backup
host copy C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\REDO03.LOG c:\cold_backup
host copy C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\CONTROL01.CTL c:\cold_backup
host copy C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\CONTROL02.CTL c:\cold_backup
host copy C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\CONTROL03.CTL c:\cold_backup
host copy C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\TEMP01.DBF c:\cold_backup