Do wersji 11GR2 aby przenieść schemat zawierający recovery catalog, byliśmy zmuszeni używać narzędzi EXP/IMP lub zestawu narzędzi DATA PUMP EXPDP/IMPDP, będac zdanymi na szereg błędów, które były następstwem eksportu oraz importu schematu.
Przykładowa procedura przenoszenia schematu do innej bazy, lub tworzenia schematu testowego katalogu odtwarzania, wyglądała nastepująco:
expdp system/*** directory=DATA_PUMP_DIR dumpfile=rman_1903.dmp logfile=rman_11903.log
Przenosimy wynikowy plik na docelowy serwer. Następnie używaliśmy narzędzia impdp do importu całego schematu katalogu:
Aby uniknąć błędów typu:
REATE TYPE “RMANSIERRA”.”RC_LBREC_T” OID ‘A490D087B6CA066DE04400144F467CE3’ as object
(
list_order1 NUMBER,
list_order2 NUMBER,
pkey NUMBER,
backup_type VARCHAR2(32),
file_type VARCHAR2(32),
keep VARCHAR2(3),
keep_until DATE,
ORA-39083: Object type TYPE failed to create with error:
ORA-02304: invalid object identifier literal
Failing sql is:
CREATE TYPE “RMANSIERRA”.”RC_LBRECSET_T” OID ‘A490D087B6FF066DE04400144F467CE3’ as table of rc_lbRec_t
ORA-39083: Object type TYPE failed to create with error:
ORA-02304: invalid object identifier literal
Failing sql is:
CREATE TYPE “RMANSIERRA”.”RC_LBRECSETIMPL_T” OID ‘A490D087B703066DE04400144F467CE3’ as object
używamy opcji TRANSFORM
impdp system/*** directory=DATA_PUMP_DIR dumpfile=rman_1903.dmp logfile=rman_1903.log remap_schema=RMAN:RMANSIERRA TRANSFORM=oid:n
Opcja TRANSFORM=OID:n zapobiega kreowaniu nowych typów z literałem zawartym w pliku eksportu, natomiast wymusze generacje nowego “object id”.
Wcześniej należało oczywiście zadbać o prekreowanie odpowiednich przestrzeni tabel.
Jak taka sama procedura wyglądała by w przypadku bazy w wersji 11G ?
Bazuje ona na nowej komendzie RMAN :
“IMPORT CATALOG”
Komenda ta umożliwia import metadanych z kilku schematów do jednego. Bazy, których metadane są importowane muszą mieć unikatową nazwe, co implikuje ograniczenie, że nie można merge’ować metadanych o tej samej bazie z różnych katalogów.
Dodatkowym ograniczeniem jest równośc wersji katalogów źródłowego oraz docelowego. Na szczęście mamy do dyspozycji prosty upgrade poprzez komendę
- RMAN> UPGRADE CATALOG;
Prosty import z innego katalogu wyglądaby nastepująco:
Podłączamy się do katalogu docelowego do którego importowane są metadane
- RMAN> CONNECT CATALOG rman_oper@catalog;
Importujemy metadane z katalogu źródłowego
- RMAN> IMPORT CATALOG rman_oper@src_catalog;
Mamy również mozliwość importu informacji o wybranych bazach
- RMAN> IMPORT CATALOG rman_oper@src_catalog DBID=142324331,142443242
- RMAN> IMPORT CATALOG rman_oper@src_catalog DBNAME=BAZA1,BAZA2
Znając tą funkcjonalność możemy wrócić do procedury przenoszenia katalogu do innej bazy/schematu
Tworzymy katalog odtwarzania na bazie docelowej, zgodnie z standardową procedurą tworzenia katalogu. Nie rejestrujemy w nim żadnej bazy
Podłączamy się do czystego katalogu:
- RMAN> CONNECT CATALOG rman@new_catalog
Importujemy katalog z bazy źródłowej
- RMAN> IMPORT CATALOG rman@oryg_catalog
Przydatną informacją jest też, jak sprawdzić wersje katalogu:
Select * from rcver;
Jeśli zwrócone zostanie więcej wierszy, oznacza to, że katalog był upgrade’owany a jego aktualną wersje podaje wiersz z najwyższym numerem wersji