oracle Recovery Manager rman - ghdrako/doc_snipets GitHub Wiki

Połączenie z instancją/control file

RMAN> CONNECT TARGET /;
-- lub: RMAN> CONNECT TARGET sys@ORCL AS SYSDBA;

Połączenie z instancją/control file i recovery catalog

rman target / catalog rman/rman@dbadb

Polaczenie z baza glowna i pomocnicza - w kontekscie Data Guard - standby

rman target sys@db1 auxiliary sys@db2
  • TARGET = Primary database: the source of datafiles and archived redo. RMAN connects as SYS (implicitly AS SYSDBA) to db1 to read existing files or backups and to archive current redo.
  • AUXILIARY = Standby database: the destination for duplication. You must start this instance in NOMOUNT (for DUPLICATE) so RMAN can create and mount its control file. You then issue a DUPLICATE … FOR STANDBY statement to build or re-build a physical standby, either by copying live datafiles (FROM ACTIVE DATABASE) or by restoring backups (BACKUP LOCATION …) and applying archived redo. This approach automates file renaming, control-file creation, password-file synchronization, and media recovery so that the standby has the same DBID and remains ready for real-time redo apply.
Active Database Duplication
DUPLICATE TARGET DATABASE 
  FOR STANDBY 
  FROM ACTIVE DATABASE 
  DORECOVER;
  • Copies datafiles over the network directly from the open primary to the standby host.
  • No prior backups needed; primary remains onlineDokumentacja Oracle
Backup-Based Duplication
DUPLICATE TARGET DATABASE 
  FOR STANDBY 
  BACKUP LOCATION '/backup/arch' 
  DORECOVER;
  • Restores backups of datafiles and archived logs to the standby.
  • Useful if network bandwidth is limited or if you want to stage backupsDokumentacja Oracle
Typical Workflow
  • Prepare Standby Instance
    • Create password file on standby (must match primary).
    • Ensure FORCE LOGGING on primary so no data loss occurs during active duplication.Bright DBA
    • Create standby redo logs on primary to support real-time apply.
  • Start Standby in NOMOUNT
SQL> STARTUP NOMOUNT PFILE='initdb2.ora';
  • Launch RMAN with Both Connections
rman TARGET sys/password@db1 AUXILIARY sys/password@db2
  • Run the DUPLICATE Command
--For active duplication:
RMAN> DUPLICATE TARGET DATABASE FOR STANDBY 
      FROM ACTIVE DATABASE DORECOVER;

or For backup-based duplication: include BACKUP LOCATION.

  • Open Standby in READ ONLY
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
--lub bo robia to samo
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; -- preferowana

Podstawowa konfiguracja RMAN

RMAN> SHOW ALL;                       -- Wyświetla wszystkie ustawienia konfiguracyjne (device type, RETENTION POLICY, etc.)
RMAN> SHOW CONFIGURATION;             -- Pokazuje główne parametry repozytorium i kanałów
RMAN> SHOW RETENTION POLICY;          -- Zasada przechowywania backupów (redundancy lub recovery window)
RMAN> SHOW DELETION POLICY;           -- Reguły usuwania backupów przy operacjach DELETE OBSOLETE
RMAN> SHOW SNAPSHOT CONTROLFILE NAME; -- Ścieżka do snapshot control file (jeśli używasz)

Informacje o backupach i kopiowaniu

RMAN> LIST BACKUP OF DATABASE SUMMARY;     -- Zestawienie backupów całej bazy (DATA + ARCH)
RMAN> LIST BACKUP BY LEVEL;                -- Backupy z podziałem na poziomy (0,1,2…)
RMAN> LIST BACKUP OF ARCHIVELOG ALL;       -- Backup wszystkich archiwów
RMAN> LIST COPY OF DATAFILE 1;             -- Sprawdzenie kopii pliku danych nr 1
RMAN> LIST INCARNATION OF DATABASE;         -- Historia incarnacji bazy (po rese

Raporty i diagnoza

RMAN> REPORT SCHEMA;          -- Struktura plików danych i archiwów w repozytorium RMAN
RMAN> REPORT NEED BACKUP;     -- Pliki wymagające backupu (brak lub przeterminowane)
RMAN> REPORT OBSOLETE;        -- Backupy, które można usunąć wg bieżącej polityki RETENTION
RMAN> REPORT UNRECOVERABLE;   -- Pliki, dla których nie ma pełnej ścieżki odzyskiwania
RMAN> REPORT CONFIGURATION;   -- Czy repozytorium jest skatalogowane w controlfile czy recovery catalog

Sprawdzanie archiwów i crosscheck

RMAN> LIST ARCHIVELOG ALL;       -- Lista wszystkich archiwów w repo
RMAN> CROSSCHECK ARCHIVELOG ALL; -- Walidacja, czy archiwa fizycznie istnieją
RMAN> CROSSCHECK BACKUP;         -- Walidacja backupów na urządzeniu/katalogu

Dodatkowe przydatne polecenia

RMAN> SHOW CONTROLFILE;              -- Wyświetla katalog pliku kontrolnego używanego przez RMAN
RMAN> SHOW DEFAULT DEVICE TYPE;      -- Domyślny typ urządzenia backupowego (DISK, SBT_TAPE)
RMAN> SHOW CHANNEL;                  -- Parametry aktualnie skonfigurowanych kanałów
RMAN> SHOW ALL DEVICE TYPE sbt_tape; -- Ustawienia dla konkretnego typu urządzeń
RMAN> LIST SCRIPT;                   -- Lista zapisanych skryptów RMAN

rman backup:

  • data files,
  • control files,
  • server parameter files,
  • archived redo log files, and
  • RMAN backups of these files. Rman don't backup
  • network configuration files,
  • password files,
  • the block change tracking file, and
  • the contents of the Oracle home directory
  • external tables or the BFILE data type, store data in files other than those in the preceding list.

RMAN reports a message in V$RMAN_OUTPUT and in the output to the interactive session or log file when channel failover occurs.

Oracle rozróżnia następujące typy błędów w związku z tworzeniem kopii zapasowych i odzyskiwaniem:

  • Media Failure‌
  • Database Instance Failure
  • Statement Failure
  • Process Failure
  • User Error

Złota zasada tworzenia kopii zapasowych i odzyskiwania Kompletny zestaw plików umożliwiający przywrócenie bazy danych nazywa się zestawem redundancyjnym. Na nośniku zewnętrznym musi znajdować się co najmniej jeden zestaw redundantny. W tym kontekście nie należy zapominać, że zestaw ten zawiera nie tylko pliki dziennika tabel, kontroli i redo, ale także SPFILE. Wykonaj również kopię zapasową pliku alertów. Mimo że nie jest on bezpośrednio wymagany do przywrócenia bazy danych, zawiera informacje niezbędne w niektórych scenariuszach odzyskiwania danych. Wykonaj również kopię zapasową plików sqlnet.ora, listener.ora i tnsnames.ora. Przydatny jest również numer identyfikacyjny bazy danych (DBID). Jeśli w momencie odzyskiwania nie ma dostępu do katalogu odzyskiwania, numer ten może okazać się na wagę złota. Identyfikator DBID można ustalić za pomocą zapytania SQL.

SQL> SELECT dbid FROM v$database;
      DBID
----------
1420272361

Utrata plików kontrolnych lub plików dziennika redo online jest bardzo poważna, ponieważ przywrócenie bazy danych może być trudne. Utwórz co najmniej dwie kopie plików kontrolnych i zapisz je w różnych katalogach lub systemach plików. Postępuj analogicznie z plikami dziennika redo online.

Odzyskiwanie danych po awarii po poleceniu SHUTDOWNABORT może zająć dużo czasu w przypadku baz danych o dużej liczbie transakcji, opóźniając ich uruchomienie. Parametr FAST_START_MTTR_TARGET można wykorzystać do ustawienia maksymalnego czasu odzyskiwania po awarii. Co 30 sekund Oracle dokonuje ponownej oceny średniego czasu odzyskiwania po awarii, znanego również jako średni czas odzyskiwania (MTTR), i zmienia zachowanie bazy danych w celu osiągnięcia wartości docelowej. Szacowana wartość jest przechowywana w widoku V$INSTANCE_RECOVERY‌.

SQL> SELECT estimated_mttr, target_mttr
  2  FROM v$instance_recovery;
ESTIMATED_MTTR TARGET_MTTR
-------------- -----------
            15           60

Backup

Kopie zapasowe można tworzyć na dysku lub bezpośrednio na taśmie za pośrednictwem biblioteki Media Management Library (MML). Biblioteki zarządzania multimediami są dostępne między innymi dla programów Tivoli Storage Manager, Netbackup i Legato Networker.

Recovery Manager RMAN może być obsługiwany za pomocą repozytorium, zwanego także katalogiem RMAN. Zasadniczo wszystkie wymagane informacje i parametry konfiguracji znajdują się w pliku kontrolnym bazy danych, której kopię zapasową należy utworzyć. Repozytorium może również przechowywać dłuższą historię i skrypty RMAN. W większych środowiskach, w których trzeba wykonać kopię zapasową wielu baz danych, istotne jest użycie katalogu RMAN.

Tworzenie RMAN Recovery Catalog

Wybierz bazę danych dla katalogu odzyskiwania. Katalog można w zasadzie umieścić w dowolnej bazie danych; Zaleca się jednak korzystanie z bazy danych przeznaczonej do tego celu.

SQL> CREATE TABLESPACE rman
  2  DATAFILE '/opt/oracle/oradata/DOAG/rman01.dbf'
  3  SIZE 20M
  4  AUTOEXTEND ON NEXT 20M
  5  EXTENT MANAGEMENT LOCAL
  6  SEGMENT SPACE MANAGEMENT AUTO;
SQL> CREATE USER rman
  2  IDENTIFIED BY rman
  3  DEFAULT TABLESPACE rman
  4  QUOTA UNLIMITED ON rman;

Uruchom klienta RMAN, aby utworzyć katalog. Katalog zawsze powinien być tworzony przy użyciu najwyższej wersji klienta RMAN.

$ rman
CONNECT CATALOG rman/rman@rman

Przed pierwszym użyciem należy zarejestrować bazę danych docelową. Aby to zrobić należy połączyć się z katalogiem i docelową bazą danych. Aby sprawdzić, czy rejestracja zakończyła się powodzeniem, możesz użyć polecenia REPORT SCHEMA.

rman target sys/manager@MITP catalog rman/rman@RMAN
RMAN> REGISTER DATABASE
RMAN> REPORT SCHEMA;

W razie potrzeby Recovery Manager automatycznie synchronizuje katalog odzyskiwania z docelową bazą danych. Polecenia takie jak BACKUP, COPY lub DELETE lub zmiana parametrów konfiguracji powodują automatyczną synchronizację. Synchronizację ręczną można wykonać w dowolnym momencie za pomocą polecenia RESYNC CATALOG.

Konfiguracja RMAN

RMAN> SHOW ALL;

Włączenie automatycznego tworzenia kopii zapasowej pliku kontrolnego oznacza, że ​​za każdym razem, gdy tworzona jest kopia zapasowa pliku kontrolnego, obszaru tabeli systemowej lub pliku danych o numerze jeden, wykonywana jest automatyczna kopia zapasowa pliku kontrolnego i pliku SPFILE.

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;  

Dla każdej operacji tworzenia kopii zapasowej i przywracania należy określić co najmniej jeden kanał. Od wersji 9i istnieje możliwość konfiguracji kanałów automatycznych. Ale kanały automatyczne można także nadpisać w skrypcie. Oprócz typu, przy definiowaniu kanału konieczne jest określenie formatu nazw plików kopii zapasowej. Poniższy przykład konfiguruje automatyczny kanał typu DISK.

RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK
2> FORMAT='/opt/oracle/backup/MITP/%U';
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;

Za pomocą polecenia BACKUPDATABASE Recovery Manager wykonał pełną kopię zapasową bazy danych, łącznie z plikiem kontrolnym i SPFILE. Ponieważ nie określono żadnych innych opcji, RMAN użył kanału automatycznego. Następujący fragment kopii zapasowej znajduje się w katalogu kopii zapasowych:MITP_14_1022685205_0euf9s0l_1_1_MITP.bck Podczas tworzenia kopii zapasowej bazy danych można również wykonać kopię zapasową plików archivelog. Polecenie do tego celu to BACKUPDATABASEPLUSARCHIVELOG. Jeżeli użyjesz dodatku DELETEINPUT, kopie zapasowe zarchiwizowanych plików dziennika redo zostaną usunięte z katalogu archiwum, dzięki czemu zwolni się miejsce na przyszłe pliki.

Wildcard Beschreibung
%d Name der Datenbank
%s Nummer des Backup-Sets
%p Nummer des Backup Piece
%t Timestamp des Backup-Sets als 4-Byte-Wert
%u8 Zeichen langer Name aus Backup-Set und Zeit
%U Zusammengesetztes eindeutiges Format %u_%p_%c
RMAN> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING
2> USING FILE ' /u01/oracle/backup/MITP/change_tracking.f ';
BACKUP INCREMENTAL LEVEL 1 DATABASE;

Recovery Manager może wykonywać zarówno skumulowane, jak i niekumulowane przyrostowe kopie zapasowe. Zasady przechowywania danych są również zarządzane przez Recovery Manager. Zna następujące możliwości:

  • Recovery Window
  • Redundancy Jeśli używasz okna odzyskiwania, możesz określić przedział czasowy przechowywania kopii zapasowych. Zasada redundancji definiuje liczbę kopii zapasowych, których nie można nadpisać.
RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 3;
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

Polityka przechowywania powoduje usunięcie odpowiednich wpisów z katalogu odzyskiwania. Odpowiadasz za usunięcie danych kopii zapasowej z nośnika kopii zapasowej. Elementy kopii zapasowej, które nie są już wymagane zgodnie z polityką przechowywania, otrzymują status PRZESTARZAŁE. Aby usunąć niepotrzebne już fragmenty kopii zapasowej, możesz użyć następującego skryptu:

RMAN> RUN {
2> CROSSCHECK BACKUP OF DATABASE;
3> DELETE NOPROMPT OBSOLETE;
4> }
RMAN> REPORT OBSOLETE; 

Czas tworzenia kopii zapasowych można dodatkowo skrócić poprzez włączenie optymalizacji tworzenia kopii zapasowych. Jeśli opcja jest włączona, Recovery Manager pomija pliki, które zostały już skopiowane na urządzenie tego samego typu.

RMAN> CONFIGURE BACKUP OPTIMIZATION ON;

Musisz zadbać o usunięcie zarchiwizowanych plików dziennika powtórzeń, które nie są już potrzebne, jeśli polityka usuwania nie jest włączona. Po aktywacji zarządzanie przejmuje Recovery Manager.

RMAN> CONFIGURE ARCHIVELOG DELETION POLICY 
TO BACKED UP 1 TIMES TO DEVICE TYPE DISK;

W przykładzie zarchiwizowane pliki dziennika redo są usuwane po utworzeniu ich kopii zapasowej na urządzeniu typu DISK. Samo usuwanie nie odbywa się automatycznie, ale za pomocą znanych poleceń. Zasady usuwania zapobiegają usuwaniu plików, które nie są udostępniane. W przypadku wpisu 5.12 podjęto próbę usunięcia zarchiwizowanego pliku dziennika redo, którego kopia zapasowa nie została jeszcze utworzona. Recovery Manager odrzuca polecenie usunięcia i generuje komunikat o błędzie.

RMAN> DELETE ARCHIVELOG ALL; # zakończyło się błędem bo jeszcze nie zostaly zarchiwizowane 

W przypadku tworzenia kopii zapasowych i przywracania danych wydajność można zwiększyć, określając wiele kanałów. Następnie RMAN wykonuje kopię zapasową równolegle i dzięki temu może obsługiwać równolegle wiele napędów taśmowych w robocie taśmowym. Pracując z kanałami automatycznymi, można definiować kanały indywidualnie lub określić stopień paralelizacji za pomocą parametru w konfiguracji RMAN. W poniższym przykładzie zdefiniowano dwa kanały.

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2;

Można również określić maksymalny rozmiar zestawów kopii zapasowych i ich fragmentów. Jeśli elementy kopii zapasowej staną się zbyt duże, staną się nieporęczne. Limit 20 gigabajtów jest rozsądnym rozmiarem. Pamiętaj: Jeśli chcesz przywrócić niewielki plik lub plik kontrolny, katalog RMAN zawiera jedynie informacje o tym, który fragment kopii zapasowej zawiera odpowiadające mu dane. Następnie RMAN musi sekwencyjnie przeszukać kopię zapasową w celu znalezienia danych. Przywrócenie zaledwie kilku kilobajtów może zająć bardzo dużo czasu.

RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 20G;

Kopie zapasowe z RMAN

  • Gesamte Datenbank
  • Tablespaces
  • Datafiles
  • Kontrolldateien
  • Archived-Redo-Log-Dateien
  • Server-Parameter-File (SPFILE)
  • Fast Recovery Area
  • Backup-Set

Podczas tworzenia kopii zapasowej RMAN zapisuje pliki nazywane fragmentami kopii zapasowej. Format kopii zapasowej może zostać odczytany wyłącznie przez Recovery Manager. Nie ma wyraźnego związku między źródłem i miejscem docelowym. Bloki danych pliku danych można przechowywać w kilku częściach kopii zapasowej. Oprócz tworzenia kopii zapasowych RMAN może tworzyć tzw. kopie obrazu. Kopia obrazu to kopia pliku objętego kopią zapasową, tworzona za pomocą polecenia BACKUPASCOPY.

RMAN> BACKUP TABLESPACE system;
RMAN> BACKUP DATAFILE 1;
RMAN> BACKUP AS COPY DATAFILE 1;
RMAN> BACKUP CURRENT CONTROLFILE;
RMAN> BACKUP SPFILE;
RMAN> BACKUP AS COPY CURRENT CONTROLFILE;
RMAN> BACKUP ARCHIVELOG UNTIL SEQUENCE 1053;
RMAN> BACKUP ARCHIVELOG UNTIL TIME 
"TO_DATE('23.03.2019 13:30:00','dd.mm.yyyy hh24:mi:ss')";
RMAN> BACKUP ARCHIVELOG ALL DELETE INPUT;
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
RMAN> BACKUP RECOVERY AREA;

Polecenie BACKUPRECOVERYAREA wykonuje kopię zapasową plików z FRA.

RMAN obsługuje kompresję fragmentów kopii zapasowej. Dostępne poziomy to: BASIC, LOW, MEDIUM i HIGH. Choć opcja BASIC jest dostępna w wersji Enterprise Edition, pozostałe poziomy wymagają opcji Advanced Compression Option.

Metodę kompresji ustawia się za pomocą następującego polecenia:

RMAN> CONFIGURE COMPRESSION ALGORITHM 'MEDIUM' 
AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;

Konfiguracja określa tylko metodę kompresji. Fakt wykonania skompresowanej kopii zapasowej musi zostać określony w samym poleceniu BACKUP.

RMAN> BACKUP AS COMPRESSED BACKUPSET
2> DATABASE PLUS ARCHIVELOG;

Gdy RMAN tworzy zestawy kopii zapasowych, może odczytywać i zapisywać wiele plików w tym samym zestawie kopii zapasowych jednocześnie. Proces ten nazywa się multipleksowaniem i zwiększa wydajność tworzenia kopii zapasowych.

Backing Up a Database

rman
RMAN> CONNECT TARGET /
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
DEVICE TYPE sbt  
ARCHIVELOG LIKE '/disk%arc%'  
DELETE ALL INPUT;

When backing up Oracle Database files to disk, the logical block size of the files must be an even multiple of the physical block size of the destination device. For example, a disk device with a block size of 2 KB can only be used as a destination for backups of Oracle files with logical block sizes of 2 KB, 4 KB, 6 KB and so on.

Incremental Backups

An incremental backup at level 0 is identical in content to a FULL backup, but unlike a full backup the level 0 backup is a part of the incremental backup strategy.A level 1 backup copies only changed blocks. A level 1 incremental backup is either differential or CUMULATIVE . If cumulative, RMAN backs up all blocks changed since the most recent level 0 backup. If differential, RMAN backs up blocks updated since the most recent level 0 or level 1 incremental backup. You can apply a level 1 backup of a standby database to a level 0 backup of a primary database, and also apply a level 1 backup of a primary database to a level 0 backup of a standby database.

Incremental backups at level 0 can be either backup sets or image copies, but incremental backups at level 1 can only be backup sets.

The database performs checks when attempting to create a level 1 incremental backup to ensure that the incremental backup is usable by a subsequent RECOVER command.

You can improve incremental backup performance by enabling block change tracking on a primary or standby database. In this case, RMAN keeps a record of which blocks have changed in the block change tracking file.

  • level 0
BACKUP  
  INCREMENTAL LEVEL 0  
  DATABASE
  • differential incremental backup
BACKUP  
  INCREMENTAL LEVEL 1 
  TABLESPACE SYSTEM, tools;
  • cumulative incremental backup
BACKUP  
  INCREMENTAL LEVEL 1 CUMULATIVE  
  TABLESPACE users;

W jednym bloku uruchomieniowym można połączyć kilka powiązanych ze sobą poleceń. Ustawienia dokonane na początku bloku obowiązują dla całego bloku.

RMAN> RUN {
2> ALLOCATE CHANNEL d1 DEVICE TYPE DISK FORMAT 
'/opt/oracle/backup/MITP/%d_%s_%t_backup.bcp';
3> BACKUP DATABASE;
4> BACKUP ARCHIVELOG ALL DELETE INPUT;
5> }

Zmienne podstawieniowe można stosować w skryptach RMAN. Umożliwia to przekazywanie parametrów ze skryptu powłoki lub z wiersza poleceń do skryptu RMAN. Funkcja ta ułatwia pisanie ogólnych skryptów, które można stosować w wielu bazach danych. Skrypt RMAN w poniższym przykładzie używa dwóch zmiennych zastępczych: nazwy instancji i poziomu przyrostowej kopii zapasowej.

CONNECT TARGET /
CONNECT CATALOG rman/rman@rmancat
RUN {
ALLOCATE CHANNEL d1 DEVICE TYPE DISK FORMAT 
'/opt/oracle/backup/&1/%d_%s_%t_backup.bcp';
BACKUP INCREMENTAL LEVEL &2 DATABASE;
#!/bin/ksh
INC_LEVEL=$1
rman @backup_database.rman USING $ORACLE_SID $INC_LEVEL
$ echo $ORACLE_SID
MITP
$ ./run_backup.ksh 1

Skrypty RMAN można przechowywać i zarządzać nimi w katalogu odzyskiwania.

RMAN> CREATE SCRIPT backup_inc_1 {
2> BACKUP INCREMENTAL LEVEL 1 DATABASE;
3> BACKUP ARCHIVELOG ALL;
4> DELETE NOPROMPT OBSOLETE;
5> }
RMAN> PRINT SCRIPT backup_inc_1;

Lokalizacja backup-ow

Jesli RMAN korzysta z parametru DB_RECOVERY_FILE_DEST - W takim przypadku backup trafi do Fast Recovery Area (FRA), czyli do lokalizacji określonej parametrem:

SHOW PARAMETER db_recovery_file_dest;

Przykład:

NAME                             TYPE        VALUE
------------------------------   ----------  ----------------------------
db_recovery_file_dest            string      /u01/app/oracle/fast_recovery_area
db_recovery_file_dest_size       big integer 100G

Backupy wtedy trafią np. do:

/u01/app/oracle/fast_recovery_area/ORCL/backupset/...

RMAN automatycznie zarządza przestrzenią i strukturą katalogów w FRA.

Displaying Backups Stored in the RMAN Repository Use

LIST BACKUP SUMMARY;
LIST BACKUP OF DATAFILE 3;
LIST COPY OF DATAFILE '/orcl/oradata/trgt/system01.dbf'; 
LIST BACKUP BY FILE; -- display backups sorted by the type of database file

Gdzie RMAN przechowuje backupy

LIST BACKUP;

Albo dokładniej:

REPORT OBSOLETE;

lub w SQL:

SELECT HANDLE FROM V$BACKUP_PIECE;

Validating Backups and Testing Your Backup Strategy

VALIDATE DATAFILE '/ora112/oradata/users_02.dbf';

Validating Backups for Restore Operations

RESTORE VALIDATE DATABASE; -- determine if the whole database can be restored
RESTORE TABLESPACE example VALIDATE; -- determine if a datafile can be restored to a specified SCN
RESTORE DATAFILE 1 VALIDATE UNTIL SCN 23456; -- determine if a datafile can be restored to a specified SCN

Displaying Backup Reports

V$RMAN_BACKUP_JOB_DETAILS contains information about backup jobs run by RMAN. This view contains information such as the time taken for the backup, when a job started and finished, and what type of backup was performed, and the status of the backup job.

SELECT SESSION_KEY,INPUT_TYPE,STATUS,START_TIME,END_TIME,ELAPSED_Shrs 
FROM V$RMAN_BACKUP_JOB_DETAILS;

Backup Management

Backup management includes deleting obsolete backups and performing periodic checks to ensure that backups are available and usable.

Cross-Checking Backups

LIST BACKUP SUMMARY;
CROSSCHECK BACKUPSET 1345;
CROSSCHECK DATAFILECOPY 1,5; -- cross-check the data files 1 and 5
CROSSCHECK BACKUP; -- crosscheck all backup sets maytake long time
CROSSCHECK BACKUPSET;

Deleting Expired Backups

Delete those backups that are listed as EXPIRED. Expired backups are those found to be inaccessible during a cross-check. No attempt is made to delete the files containing the backup from disk or tape; this action updates only the RMAN repository.

DELETE EXPIRED BACKUP;

Marking Backups as Available or Unavailable

If one or more specific backups are unavailable because of a temporary condition, such as a disk drive that is temporarily offline or a tape stored offsite, then you can mark those backups as unavailable. Oracle Recovery Manager (RMAN) does not use unavailable backups to restore or recover data. Backups stored in the fast recovery area cannot be marked as unavailable. RMAN keeps the record of unavailable backups in the RMAN repository and does not delete backups listed as unavailable when you delete expired backups. If the unavailable backups become accessible again, then you can mark them as available.

CROSSCHECK BACKUP; -- optional provides RMAN with up-to-date information about which backups are expired.
LIST BACKUP SUMMARY;
CHANGE BACKUPSET 4 UNAVAILABLE;
CHANGE BACKUPSET 4 AVAILABLE;

Deleting Obsolete Backups

Obsolete means no longer needed by the configured retention policy. If you use a fast recovery area as your only disk-based backup destination, then you never have to delete obsolete backups from disk. The fast recovery area keeps files as specified by the retention policy, and deletes them only when space is needed.

DELETE OBSOLETE;

Monitoring Fast Recovery Area Space Usage

It is important to monitor space usage in the fast recovery area to ensure that it is large enough to contain backups and other recovery-related files. Oracle Database provides two views to monitor fast recovery area space usage, V$RECOVERY_FILE_DEST and V$RECOVERY_AREA_USAGE. Use the V$RECOVERY_FILE_DEST view to obtain the following information about the fast recovery area: total number of files, current location, disk quota, space in use, and space reclaimable by deleting files. The space details are in bytes. Querying V$RECOVERY_FILE_DEST produces the following output.

SELECT * FROM V$RECOVERY_FILE_DEST;

The V$RECOVERY_AREA_USAGE view contains the percentage of disk quota used by different type of files, and the percentage of space that can be reclaimed by deleting files that are obsolete, redundant, or backed up to tape. Querying the V$RECOVER_AREA_USAGE view produces the following output.

SELECT * FROM V$RECOVERY_AREA_USAGE;

Performing Oracle Advised Recovery

Recovery Advisor, which is an Oracle Database feature that automatically diagnoses data failures, determines and presents appropriate repair options, and performs repairs if requested by the user. By providing a centralized tool for automated data repair, Data Recovery Advisor improves the manageability and reliability of an Oracle database.

You can use following RMAN commands to diagnose and repair data failures for the Oracle Database

  • LIST FAILURE Use this command to view problem statements for failures and the effect of these failures on database operations. Each failure is identified by a failure number.
  • ADVISE FAILURE Use this command to view repair options, including both automated and manual repair options.
  • REPAIR FAILURE Use this command to automatically repair failures listed by the most recent ADVISE FAILURE command.
LIST FAILURE;
VALIDATE DATABASE; -- optional
ADVISE FAILURE;
REPAIR FAILURE;

RMAN Restore

By default, RESTORE chooses the most recent backup set or file copy, that is, the file copy or backup set that needs the least media recovery. RMAN only restores backups created on the same type of channels allocated by the RESTORE command.

If you do not manually allocate channels, then RMAN allocates all automatic channels that it possibly needs, subject to any restrictions imposed by the DEVICE TYPE option.

If data file names are symbolic links, then the control file stores the file names of the link files but RMAN performs I/O on the data files pointed to by the link files. If a link file is lost and you restore a data file without re-creating the symbolic link, then RMAN restores the data file to the location of the link file rather than to the location pointed to by the link file.

To restore files to a nondefault location, use SETNEWNAME commands to rename the restored files and then use a SWITCH command to make the restored files current. If you do not issue SWITCH commands, then RMAN considers the restored files as valid copies for use in future restore operations.

If you use RMAN in a Data Guard environment, then RMAN transparently converts primary control files to standby control files and vice versa. RMAN automatically updates file names for data files, online redo logs, standby redo logs, and temp files when you issue RESTORE and RECOVER . The recovery catalog always contains the correct information about the backup file names for each database.

Example Restoring Data Files on the Primary Database

Using the StandbyThis example restores the data file users.dbf that was lost on the primary database by restoring it, over the network, from the standby database:

RESTORE DATAFILE '/oradata/files/users.dbf'          
FROM SERVICE standby_tns          
SECTION SIZE 200M          
USING COMPRESSED BACKUPSET;

The service name of the remote database that contains the data file to be restored is standby_tns . The SECTION SIZE clause indicates that the data file is restored using multisection backup sets. The USING COMPRESSED BACKUPSET clause specifies that the backup sets are compressed using the default compression algorithm that is configured for RMAN.Example

Restoring and Recovering the Database

This example assumes that you are restoring and recovering your database after the loss of one or more data files, but you still have a usable server parameter file and control file.

SHUTDOWN IMMEDIATE;
STARTUP MOUNTn
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN;

Uzycie rman-a

Skrypt shell

backup_rman.sh:

#!/bin/bash
export ORACLE_SID=ORCL
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH

rman target / <<EOF
DELETE NOPROMPT BACKUP COMPLETED BEFORE 'SYSDATE-1/2';
BACKUP DATABASE PLUS ARCHIVELOG FORMAT '/ora/oradata/backup/db_%U.bkp';
DELETE NOPROMPT OBSOLETE;
EOF
0 2 * * * /home/oracle/scripts/backup_rman.sh >> /home/oracle/logs/backup_rman.log 2>&1

Alternatywy dla CRON-a:

  • Oracle Scheduler – do planowania zadań bezpośrednio w bazie:
    • Możesz utworzyć job, który uruchamia backup RMAN lub skrypt shella z poziomu PL/SQL.
  • Enterprise backup tools – jak:
    • Oracle Recovery Manager + Catalog + Grid Control (OEM)
    • Zewnętrzne systemy orkiestracji (Control-M, Tivoli, Rundeck)
  • Systemy z GUI – Oracle Enterprise Manager (OEM) umożliwia planowanie i wizualne zarządzanie backupami RMAN.

uruchamianie skryptu RMAN z reki

rman target /
BACKUP DATABASE;

Kopia zapasowa na tasme

RMAN> run
{
    allocate channel ch1 type 'SBT_TAPE';
    allocate channel ch2 type 'SBT_TAPE';
    BACKUP INCREMENTAL LEVEL=0
      FORMAT 'bk_u%u_s%s_p%p_t%t'
      DATABASE PLUS ARCHIVELOG;
    release channel ch1;
    release channel ch2;
}

Komendy z history

REGISTER DATABASE;
  • Rejestruje aktualnie podłączoną bazę w katalogu RMAN (Recovery Catalog).
  • Uzyc Gdy korzystasz z zewnętrznego katalogu RMAN (a nie z kontrolnego pliku bazy), i chcesz w nim mieć wpis o nowej (lub przeniesionej) instancji, żeby RMAN mógł śledzić jej backupy i metadane.
UNREGISTER DATABASE;
  • Usuwa wpis bazy w katalogu RMAN.
  • Gdy baza została np. sklonowana lub zlikwidowana i nie chcesz, żeby RMAN trzymał w katalogu „martwy” wpis (unregister nie kasuje backupów fizycznie, tylko metadane).
SHOW ALL;
  • Wyświetla wszystkie aktualne ustawienia RMAN (ze wszystkich bloków konfiguracji):
CONFIGURE RETENTION POLICY
CONFIGURE DEVICE TYPE
ALERT LOG ARCHIVE SETTINGS

Gdy chcesz szybko zweryfikować, jak RMAN jest skonfigurowany (gdzie trzyma kopie, jaka polityka retencji, jakie kanały itp.).

LIST INCARNATION;
  • Pokazuje wszystkie inkarnacje bazy zarejestrowane w katalogu RMAN. Inkarnacja to jedno „życie” bazy między kolejnymi operacjami RESET DATABASE lub przywróceniami z backupu.
  • Aby zobaczyć historię zmian identyfikatora bazy (np. gdy była przywracana „point-in-time” lub resetowana), i ewentualnie przełączyć się na konkretną inkarnację do operacji odtwarzania.
RESET DATABASE;
  • Inkrementuje numer inkarnacji bazy w katalogu RMAN (tworzy nową inkarnację), traktując aktualny stan jako punkt początkowy nowej „linii historii”.
  • Po point-in-time recovery lub restore z backupu na poziomie całej bazy, żeby zacząć śledzić kolejne backupy w nowej inkarnacji i nie mieszać starych i nowych backupów.
RESYNC CATALOG;
  • Synchronizuje metadane między instancją RMAN (środowiskiem target) a katalogiem RMAN, pobierając nowe informacje o backupach, archiwach, zmianach.
  • Gdy ręcznie dodałeś/zmodyfikowałeś coś w katalogu (np. przez REGISTER), albo gdy backupy były wykonywane automatycznie przez inny host/kanał i chcesz odświeżyć widok w lokalnym RMAN.
DELETE ARCHIVELOG ALL;
  • Usuwa z dysku wszystkie pliki archiwalnych logów (archivelog)—te, które są obecnie zarejestrowane w katalogu RMAN.
  • Gdy chcesz zwolnić miejsce i nie potrzebujesz już starych archivelogów (na przykład po wykonaniu backupu typu BACKUP ARCHIVELOG ALL DELETE INPUT;, który najpierw backupuje, a potem je usuwa).
  • Uwaga! Ta komenda bezwarunkowo skasuje wszystkie archiwalne logi, także te które mogą być potrzebne do odtwarzania. Zwykle lepiej użyć DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; — usunie tylko starsze niż 7 dni.
UPGRADE CATALOG;
  • służy do aktualizacji struktury i metadanych Recovery Catalog do wersji zgodnej z bieżącą wersją silnika Oracle/RMAN.
  • Gdy aktualizujesz bazę danych (i RMAN) do nowszej wersji Oracle, nowe wydanie może dodać nowe tabele, kolumny lub pakiety PL/SQL w katalogu odzyskiwania.
  • Aby RMAN mógł korzystać z tych nowych funkcji (np. nowych opcji backupu, metadanych), trzeba podnieść strukturę katalogu do tej samej wersji.
  • Operacja jednorazowa — uruchamiasz ją raz po upgrade’ie bazy/RMAN.
  • Nie da się cofnąć — po aktualizacji katalogu do nowszej wersji nie wrócisz do poprzedniej.
  • Sprawdzanie wersji
    • Przed i po możesz zobaczyć wersję katalogu: RMAN> REPORT CATALOG VERSION; lub SELECT * FROM rc_catalog_version;
  • Jeśli katalog już jest w najnowszej wersji, RMAN odpowie, że nie ma nic do zrobienia.
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 5 DAYS;
SHOW RETENTION POLICY;

ustawia w katalogu RMAN (lub w kontrolnym pliku bazy, jeśli nie używasz katalogu) politykę retencji w modelu „okno odtwarzania” na 5 dni. Oznacza to:

  • Backupy i archiwalne logi starsze niż 5 dni (licząc od momentu wykonania REPORT OBSOLETE lub DELETE OBSOLETE) zostaną uznane przez RMAN za obsolete (przestarzałe).
  • RMAN nie usunie nic automatycznie — ale przy komendach:
REPORT OBSOLETE; -- wyświetli listę backupów, które są już poza oknem 5-dniowym.
DELETE OBSOLETE; -- skasuje te backupy faktycznie z dysku.
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
  • ustawić politykę opartą na liczbie kopii
  • RMAN będzie traktował jako obsolete wszystkie backupy poza dwoma najnowszymi (bez patrzenia na daty)
DUPLICATE TARGET DATABASE      — zacznij proces duplikacji bazy docelowej (primary)
  FOR STANDBY                  — utwórz z niej fizyczną bazę standby
  FROM ACTIVE DATABASE         — czytaj dane bezpośrednio z żywej bazy primary (bez konieczności uprzedniego backupu)
  DORECOVER                    — po skopiowaniu plików wykonaj automatycznie recovery (dopasowanie do current SCN)
  NOFILENAMECHECK;             — jeśli na docelowym serwerze pliki mają te same nazwy, pomiń sprawdzanie i pozwól RMAN wygenerować nowe ścieżki

Na utworzonej bazie stndby

sqlplus / as sysdba
SQL> SELECT status FROM v$instance; -- powinno być MOUNTED
SQL> RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; -- to odpali proces MRP0, który będzie czekał na nowe archiwalne logi i aplikował je na bieżąco
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;
RMAN> SHOW ARCHIVELOG DELETION POLICY;

ustawia politykę usuwania archiwalnych logów w taki sposób, że RMAN uzna archiwalne logi za usu­wal­ne tylko wtedy, gdy zostały one już zastosowane (applied) na wszystkich standby w konfiguracji Data Guard. Przy kolejnych poleceniach typu DELETE ARCHIVELOG ALL; RMAN sam sprawdzi, które logi są już zbędne z punktu widzenia wszystkich standby, i usunie tylko je.

SHOW ALL;
  • wyświetla wszystkie aktualnie skonfigurowane parametry środowiska RMAN, zarówno te globalne (z katalogu RMAN, jeśli go używasz), jak i lokalne (z control file).
  • Dzięki SHOW ALL; masz natychmiastowy przegląd całej konfiguracji RMAN, bez potrzeby wypisywania każdej opcji osobno.
CROSSCHECK ARCHIVELOG ALL;
  • służy do weryfikacji spójności metadanych archiwalnych logów w RMAN względem ich rzeczywistej dostępności na nośniku
  • Przegląda katalog RMAN (lub control file, jeśli nie używasz katalogu) i pobiera listę wszystkich zarejestrowanych archivelogów.
    • Dla każdego wpisu sprawdza, czy odpowiadający mu plik fizycznie istnieje w miejscu, gdzie był utworzony.
    • Oznacza stany:
      • Jeśli plik jest dostępny → Status: AVAILABLE
      • Jeśli plik nie występuje już na dysku (np. skasowany ręcznie, przeniesiony) → Status: EXPIRED
  • pomaga zidentyfikować wpisy, które odnoszą się do plików już nieistniejących, zanim spróbujesz ich użyć przy restore/recover
  • Przed usuwaniem starych backupów: zwykle robisz CROSSCHECK → DELETE EXPIRED → DELETE OBSOLETE, by oczyścić zarówno archiwalne logi, jak i kopie backupów, które już nie mają odzwierciedlenia na dysku.

Przebieg pracy

Typowy przebieg pracy

RMAN> CROSSCHECK ARCHIVELOG ALL;
RMAN> REPORT OBSOLETE;           -- które archivelogi są przestarzałe wg polityki
RMAN> DELETE EXPIRED;            -- usuwa z katalogu wpisy EXPIRED
RMAN> DELETE ARCHIVELOG ALL;     -- (opcjonalnie) usuwa fizycznie zgodnie z polityką
CROSSCHECK BACKUP;
  • służy do weryfikacji dostępności fizycznych plików backupu (backup sets i backup pieces) w odniesieniu do tego, co jest zarejestrowane w katalogu RMAN lub w control file.
RMAN> CROSSCHECK BACKUP;
RMAN> DELETE EXPIRED BACKUP;  -- Usuń wpisy przeterminowane
RMAN> REPORT OBSOLETE; -- 
RMAN> DELETE OBSOLETE; -- Usuń stare backupy według polityki retencji - usuwa wszystkie backupy i archiwalne logi, które zostały oznaczone jako “obsolete”
CROSSCHECK COPY ALL;           -- wszystkie image copies – np. datafile lub controlfile copies
CROSSCHECK DATAFILECOPY ALL;   -- tylko kopie plików danych
CROSSCHECK BACKUPPIECE ALL;    -- pojedyncze kawałki backupu, jeśli chcesz precyzyjnie
CROSSCHECK BACKUPSET ALL;      -- wszystkie zestawy backupu
LIST BACKUP SUMMARY;  -- database and archivelog
LIST BACKUP OF DATABASE SUMMARY; -- only databases
LIST BACKUP OF ARCHIVELOG ALL;
  • wyświetla skrócony spis wszystkich backupów zarejestrowanych w Recovery Catalog lub w control‐file bazy. Daje Ci szybką, czytelną listę, bez zalewania szczegółowymi informacjami o każdym pliku.
Column Description
Key Unique identifier for the backup set or image copy.
TY (Type) Backup type:B = backup set (datafile image) D = data copy (image copy)A = archived redo log backup Database Administrators Stack Exchange
LV (Level) Incremental level: 0 = full backup 1 = level 1 incrementalA = archivelog backupf = full via BACKUP DATABASE command Geodata Master
S (Status) Availability: A = AVAILABLE U = UNAVAILABLE (missing or unusable piece)