Справочный документ по конфигурации резервного копирования Oracle_rman под Linux

Сегодня я опубликовал для справки документ о конфигурации резервного копирования rman базы данных Oracle под Linux. В настоящее время во многих средах я использую этот документ для резервного копирования. Если что-то не так, пожалуйста, поправьте меня. Я внесу исправления в производственной среде.

1. Настройки каталога

1.1. Инструкции по резервному копированию Rman

 Описание
уровня резервного копирования 1. Полное резервное копирование уровня 0 является основой каждого инкрементного резервного копирования;
2. Инкрементное резервное копирование делится на две ситуации: инкрементное и кумулятивное. Первое обеспечивает резервное копирование до того же или более низкого уровня, что и вы, второе - только резервное копирование. ниже их уровня;
3, с инкрементным резервным копированием Описание: изменение резервного копирования уровня 1 с уровня 1 или уровня 0, после того, как уровень 2 или уровень 1 изменяет резервную копию уровня 2 или с уровня 0;
4, инструкции кумулятивного резервного копирования: изменение резервного копирования уровня 1 с уровня 0 , Level2 сохраняет изменения с последнего уровня level1 или level0.
 Соответствующие примечания:
1. Когда объем данных относительно невелик или производительность сервера базы данных очень высока, вы можете выполнять полное резервное копирование один раз в день;
2. Если вам нужно сохранить файл резервной копии в хранилище OSS Alibaba Cloud после резервного копирования из-за хранилища OSS Существует ограничение на размер 4 ГБ, вам необходимо изменить следующие три конфигурации rman, чтобы ограничить размер части резервной копии 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. Настройте задачи синхронизации crontab, избегайте загруженных рабочих часов.
4. Используйте пользователей oracle для настройки задач синхронизации. Если вам нужно использовать пользователей root для настройки задач синхронизации, обратите внимание на изменение переменных среды и выполнение сценариев в разделе сценариев запланированных задач. Путь имеет разрешения на чтение и запись.

1.2. Описание справочника

Путь к сценарию резервного копирования библиотеки демона: / backup / rman / scripts /
Резервное копирование архивного файла по дате: / backup / arch / date +% Y% m% d
Резервное копирование управляющего файла: / backup / rman / controlfile
Резервное копирование файла базы данных по дате: / backup / rman / data / date +% Y% m% d
Создание журналов резервного копирования по дате: / backup / rman / logs / date +% Y% m% d
Сценарий резервного копирования RMAN: / backup / rman / scripts
Заполните все указанные выше каталоги Удаленное резервное копирование.

2. резервное копирование rman

2.1. Стратегия резервного копирования

 Сохраняйте последние 5 данных резервного копирования:
 Удаляйте избыточные и недействительные резервные копии в 04:45 каждый день
;
 Выполняйте резервное копирование архивных журналов в 12 и 20 часов каждый день ;  Выполняйте полное резервное копирование базы данных уровня 0 в 03:20 каждый день;

2.2. План резервного копирования

Используемое здесь повседневное оборудование может быть добавлено в соответствии с фактическими потребностями с понедельника по субботу и полностью подготовлено в воскресенье.
Время с понедельника по воскресенье
12:00 Резервное копирование журнала
20:00 Резервное копирование журнала
03:20 Полное резервное копирование
Добавьте сценарий в crontab пользователя oracle, позвольте ему запускаться автоматически в соответствии со стратегией и настройте запланированные задачи в соответствии с фактическими потребностями.

$ 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. Подготовка

Поместите базу данных oracle в «модуль установки», чтобы включить режим архивирования журналов, и заархивированные журналы хранятся в области быстрого восстановления.

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

Установите SID подключения перед следующим подключением к базе данных

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


Результатом вывода является ARCHIVELOG, что означает, что архив был включен. Результат
вывода - NOARCHIVELOG, что означает, что архив не включен.

(1) Операция открывает журнал архива.

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

(2) Включите функцию отслеживания изменений, чтобы записывать расположение блоков данных, которые изменились с момента последнего резервного копирования, чтобы повысить производительность инкрементных резервных копий. Файл отслеживания изменений по умолчанию сохраняется в области быстрого восстановления (отслеживание изменения блока активируется, когда используется инкрементное резервное копирование RMAN, чтобы сократить время резервного копирования 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) Просмотр и изменение размера области ретроспективного кадра (размер изменяется в соответствии с реальной ситуацией)

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

2.4. Конфигурация rman

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

В двух приведенных выше предложениях можно использовать только одно условие, сохранить 5 копий или 5 дней периода восстановления (рекомендация использовать окно восстановления), при необходимости измените

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. Сценарий 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) level0_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. Сценарий запланированного задания

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) level0_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) level1_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) level2_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. Конец

рекомендация

отblog.51cto.com/8355320/2590393
рекомендация