Document de référence de configuration de sauvegarde Oracle_rman sous Linux

Aujourd'hui, j'ai publié un document de configuration de sauvegarde rman de la base de données oracle sous Linux pour référence. Actuellement, dans de nombreux environnements, j'utilise ce document pour la sauvegarde. S'il y a quelque chose qui ne va pas, veuillez me corriger. Je ferai des corrections dans l'environnement de production.

1. Paramètres du répertoire

1.1. Instructions de sauvegarde Rman

 Description du niveau de sauvegarde
1. La sauvegarde complète de niveau 0 est la base de chaque sauvegarde incrémentielle;
2. La sauvegarde incrémentielle est divisée en deux situations, incrémentielle et cumulative. La première sauvegarde au même niveau ou inférieur à vous, la seconde ne sauvegarde que inférieur à leur niveau;
3, avec la sauvegarde incrémentale Description: un changement dans la sauvegarde de niveau1 depuis le niveau1 ou le niveau0, une fois que le niveau2 ou le niveau1 change la sauvegarde de niveau2 ou depuis le niveau0;
4, les instructions de sauvegarde cumulative: une modification de la sauvegarde de niveau1 depuis le niveau0 , Level2 sauvegarde les changements depuis le dernier niveau1 ou niveau0.
 Remarques pertinentes:
1. Lorsque la quantité de données est relativement petite ou que les performances du serveur de base de données sont très fortes, vous pouvez effectuer une sauvegarde complète une fois par jour;
2. Si vous devez stocker le fichier de sauvegarde sur le stockage OSS d'Alibaba Cloud après la sauvegarde, en raison du stockage OSS Il y a une limite de taille de 4 Go, vous devez modifier les trois configurations rman suivantes pour limiter la taille de la pièce de sauvegarde RMAN

1、level0_backup.rman文件
allocate channel C2 type disk ;                        --修改前
allocate channel C2 type disk maxpiecesize = 3500M ;  --修改后
2、level1_backup.rman文件
allocate channel C3 type disk ;                        --修改前
allocate channel C3 type disk maxpiecesize = 3500M ;  --修改后
3、level2_backup.rman文件
allocate channel C4 type disk ;                        --修改前
allocate channel C4 type disk maxpiecesize = 3500M ;  --修改后

3. Configurez les tâches de minutage crontab, évitez les heures de bureau chargées.
4. Utilisez les utilisateurs oracle pour configurer les tâches de minutage. Si vous devez utiliser des utilisateurs root pour configurer les tâches de minutage, faites attention à la modification des variables d'environnement et à l'exécution de scripts dans la section script des tâches planifiées. Le chemin a des autorisations d'exécution en lecture et en écriture.

1.2. Description du répertoire

Chemin du script de sauvegarde de la bibliothèque de démons: / backup / rman / scripts /
Sauvegarde du fichier d'archive par date: / backup / arch / date +% Y% m% d
Sauvegarde du fichier de contrôle: / backup / rman / controlfile
Sauvegarde du fichier de base de données par date: / backup / rman / data / date +% Y% m% d
Générer les journaux de sauvegarde par date: / backup / rman / logs / date +% Y% m% d
Script de sauvegarde RMAN: / backup / rman / scripts
Veuillez compléter tous les répertoires ci-dessus Sauvegarde à distance.

2. sauvegarde rman

2.1. Stratégie de sauvegarde

 Conservez les 5 dernières données de sauvegarde:
 Supprimez les sauvegardes redondantes et non valides à 04h45 tous les jours;
 Sauvegardez les journaux d'archives à 12 et 20 heures
tous les jours ;  Effectuez une sauvegarde complète de niveau 0 de la base de données à 03h20 tous les jours;

2.2. Plan de sauvegarde

L'équipement quotidien utilisé ici peut être ajouté en fonction des besoins réels, du lundi au samedi, et entièrement préparé le dimanche.
Heure Du lundi au dimanche
12:00 Sauvegarde du journal
20:00 Sauvegarde du journal
03:20 Sauvegarde complète
Ajoutez le script à la crontab de l'utilisateur oracle, laissez-le s'exécuter automatiquement en fonction de la stratégie et ajustez les tâches planifiées en fonction des besoins réels.

$ crontab -e
20 03 * * * /backup/rman/scripts/level0_backup.sh
45 04 * * * /backup/rman/scripts/delobsolete.sh
00 12 * * * /backup/rman/scripts/arch.sh
00 20 * * * /backup/rman/scripts/arch.sh

2.3. Préparation

Placez la base de données oracle dans le "module d'installation" pour activer le mode d'archivage des journaux, et les journaux archivés sont stockés dans la zone de récupération rapide

mkdir -p /backup/arch
mkdir -p /backup/rman/controlfile
mkdir /backup/rman/data
mkdir /backup/rman/logs
mkdir /backup/rman/scripts
chown -R oracle:oinstall /backup

Définissez le SID de connexion avant la connexion à la base de données suivante

$ export ORACLE_SID=daemon
$ sqlplus / as sysdba
SQL> SELECT log_mode from v$database;


Le résultat de sortie est ARCHIVELOG, ce qui signifie que l'archive a été activée. Le
résultat de sortie est NOARCHIVELOG, ce qui signifie que l'archive n'est pas activée.

(1) L'opération ouvre le journal d'archive.

$ sqlplus / as sysdba
SQL> shutdown immediate;
startup mount;
alter database archivelog;
alter database open;

(2) Activez la fonction de suivi des modifications pour enregistrer l'emplacement des blocs de données qui ont changé depuis la dernière sauvegarde afin d'améliorer les performances des sauvegardes incrémentielles. Le fichier de suivi des modifications est enregistré par défaut dans la zone de récupération rapide (le suivi des modifications de bloc est activé lorsque la sauvegarde incrémentielle RMAN est utilisée pour raccourcir la durée de la sauvegarde RMAN).

$ sqlplus / as sysdba
SQL> shutdown immediate;
startup mount
alter system set db_create_file_dest='/u01/oracle/fast_recovery_area';
alter database enable block change tracking;
alter database open;

(3) Afficher et modifier la taille de la zone de flashback (la taille est modifiée en fonction de la situation réelle)

SQL> show parameter db_recovery_file_dest;
alter system set db_recovery_file_dest_size=40G scope=both;
shutdown immediate;
startup;

2.4 Configuration de rman

$ rman target /
CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 5 DAYS;

Les deux phrases ci-dessus ne peuvent utiliser qu'une seule condition, enregistrer 5 copies ou 5 jours de fenêtre de récupération (recommandation d'utiliser la fenêtre de récupération), veuillez ajuster si nécessaire

CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/rman/controlfile/%F';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/backup/rman/controlfile/snapcf_daemon.f';

2.5. Script rman

1) delobsolete.rman

cd /backup/rman/scripts
$ vi delobsolete.rman
run {
  crosscheck backup;
  delete noprompt obsolete;
  delete noprompt expired backup;
}
exit

2) arch.rman

$ vi arch.rman
sql 'alter system archive log current' ;
run {
allocate channel C1 type disk FORMAT '/backup/arch/' ;
backup 
skip inaccessible
tag arch_daemon
filesperset 10 format '/backup/arch/%T/arch_%T_%d_%t_%s_%p' archivelog all delete input;
release channel C1;
}
exit

3) niveau0_backup.rman

$ vi level0_backup.rman
sql 'PURGE DBA_RECYCLEBIN';
sql 'alter system archive log current' ;
run {
allocate channel C2 type disk ;
backup 
incremental level 0 
skip inaccessible 
tag full0_daemon
DATABASE 
filesperset 5 format '/backup/rman/data/%T/db_0_%T_%d_%t_%s_%p';
release channel C2;
}
exit

4) level1_backup.rman

$ vi level1_backup.rman
sql 'PURGE RECYCLEBIN';
sql 'alter system archive log current' ;
run {
allocate channel C3 type disk ;
backup 
incremental level 1
skip inaccessible 
tag level1_daemon
DATABASE 
filesperset 5 format '/backup/rman/data/%T/db_1_%T_%d_%t_%s_%p_inc' ;
release channel C3;
}
exit

5) level2_backup.rman

$ vi level2_backup.rman
sql 'PURGE RECYCLEBIN';
sql 'alter system archive log current' ;
run {
allocate channel C4 type disk ;
backup 
incremental level 2
skip inaccessible 
tag level2_daemon
DATABASE 
filesperset 5 format '/backup/rman/data/%T/db_2_%T_%d_%t_%s_%p_inc' ;
release channel C4;
}
exit

2.6. Script de tâche planifiée

1) delobsolete.sh

$ vi delobsolete.sh
#!/bin/sh
#export LANG=en_US
source /home/oracle/.bash_profile
export ORACLE_SID=daemon
mkdir /backup/rman/logs/`date +%Y%m%d`
rman target / cmdfile=/backup/rman/scripts/delobsolete.rman msglog=/backup/rman/logs/`date +%Y%m%d`/`date +%Y%m%d_%H%M_obsolete.log`
exit

2) arch.sh

$ vi arch.sh
#!/bin/sh
#export LANG=en_US
source /home/oracle/.bash_profile
export ORACLE_SID=daemon
mkdir /backup/arch/`date +%Y%m%d`
mkdir /backup/rman/logs/`date +%Y%m%d`
rman target / cmdfile=/backup/rman/scripts/arch.rman msglog=/backup/rman/logs/`date +%Y%m%d`/`date +%Y%m%d_%H%M_arch.log`
exit

3) niveau0_backup.sh

$ vi level0_backup.sh
#!/bin/sh
#export LANG=en_US
source /home/oracle/.bash_profile
export ORACLE_SID=daemon
mkdir /backup/rman/data/`date +%Y%m%d`
mkdir /backup/rman/logs/`date +%Y%m%d`
rman target / cmdfile=/backup/rman/scripts/level0_backup.rman msglog=/backup/rman/logs/`date +%Y%m%d`/`date +%Y%m%d_%H%M_0.log`
exit

4) niveau1_backup.sh

$ vi level1_backup.sh
#!/bin/sh
#export LANG=en_US
source /home/oracle/.bash_profile
export ORACLE_SID=daemon
mkdir /backup/rman/data/`date +%Y%m%d`
mkdir /backup/rman/logs/`date +%Y%m%d`
rman target / cmdfile=/backup/rman/scripts/level1_backup.rman msglog=/backup/rman/logs/`date +%Y%m%d`/`date +%Y%m%d_%H%M_1.log`
exit

5) niveau2_backup.sh

$ vi level2_backup.sh
#!/bin/sh
#export LANG=en_US
source /home/oracle/.bash_profile
export ORACLE_SID=daemon
mkdir /backup/rman/data/`date +%Y%m%d`
mkdir /backup/rman/logs/`date +%Y%m%d`
rman target / cmdfile=/backup/rman/scripts/level2_backup.rman msglog=/backup/rman/logs/`date +%Y%m%d`/`date +%Y%m%d_%H%M_2.log`
exit

3. Fin

Je suppose que tu aimes

Origine blog.51cto.com/8355320/2590393
conseillé
Classement