zmiana nazwy bazy danych przy użyciu NEWID

House of Brick Starszy Konsultant

jednym z wielu zadań, które DBA wykona, jest klonowanie bazy danych. Zwykle odbywa się to z bazy danych produkcji do bazy danych zapewniania jakości lub testowania w celu dostarczenia danych o wielkości produkcji. Jeśli baza danych znajduje się na maszynie wirtualnej, klonowanie może nastąpić na poziomie maszyny wirtualnej.

klonowanie robi dokładnie to, co oznacza, tworząc dokładny duplikat bazy danych. Niestety, kończy się to tym, że masz dwie bazy danych o tej samej nazwie i DBID w swojej sieci. Czasami można rozwiązać go wystarczająco za pomocą aliasingu na poziomie TNSNAMES.

w innych przypadkach będziesz musiał zmienić nazwę bazy danych i wewnętrzny identyfikator DBID. Oracle ma do tego narzędzie, aplikację NEWID.

ten dokument wyszczególni kroki wymagane do przeprowadzenia zmiany nazwy bazy danych za pomocą NEWID.

terminologia i definicje

poniższa terminologia i definicje zostaną użyte w niniejszym dokumencie.

Sid – identyfikator witryny Oracle. To jest nazwa bazy danych, która jest zmieniana.
PFILE-plik parametrów Oracle. Znajduje się w folderze $ORACLE_HOME/dbs.
SPFILE-plik parametrów serwera Oracle. Znajduje się również w folderze $ORACLE_HOME/dbs.
ORATAB – plik konfiguracyjny Oracle, który kojarzy Sid Oracle z domami Oracle. Znajduje się w /etc / oratab.
TNSNAMES – plik konfiguracyjny sieci Oracle, który kojarzy połączenia przychodzące z identyfikatorami Sid Oracle. Znajduje się w folderze $ORACLE_HOME/network/admin.

Nazwa bazy danych
nazwa bazy danych lub SID jest zmieniana z prd na qa. W stosownych przypadkach będzie to wspomniane w dokumencie.

przegląd procesu
aby zmienić nazwę bazy danych Oracle (SID), należy wykonać cztery kroki.

  1. przygotowanie wstępne
  2. Użyj aplikacji NID
  3. Zmień Referencje SID
  4. Uruchom bazę danych i sfinalizuj zmiany

1. Wstępne prace przygotowawcze

po zmianie nazwy bazy danych konieczne będą zmiany w pliku parametrów Oracle. Jeśli baza danych używa pliku parametrów serwera (spfile) zamiast pliku parametrów (PFILE), musisz przekonwertować plik SPFILE na PFILE, zanim dojdzie do zmiany nazwy bazy danych.

1.1 Określanie, czy używany jest plik SPFILE
uruchom następujące zapytanie, aby sprawdzić, czy Twoja baza danych została uruchomiona z plikiem PFILE lub SPFILE:

rysunek 1.1 zapytanie, aby zobaczyć, czy używany jest plik SPFILE

SQL> SELECT DECODE(value, NULL, 'PFILE’, 'SPFILE’) „Init File Type
„od sys.v_$parametr WHERE name = 'spfile’;

Uruchom to zapytanie, aby określić, czy baza danych zaczyna się od Pliku PFILE czy SPFILE.

jeśli baza danych zaczyna się od Pliku PFILE, dalsze prace przygotowawcze nie są konieczne i możesz przejść do kroku 2-Użyj aplikacji NID. W przeciwnym razie przejdź do następnego kroku.

1.2 Tworzenie pliku PFILE z pliku SPFILE
uruchom następujący sql, aby utworzyć plik PFILE z pliku SPFILE:

rysunek 1.2 Tworzenie pliku PFILE z pliku SPFILE.

SQL> Utwórz plik pfile z pliku spfile;

Uruchom to polecenie, aby utworzyć plik PFILE z pliku SPFILE.

spowoduje to utworzenie pliku PFILE w katalogu $ORACLE_HOME/dbs. Użyje bieżącego SID w nazwie. Ponieważ bieżącym SID bazy danych jest prd, nazwa będzie initprd.ora. Skopiuj plik, aby miał nowy SID w swojej nazwie. Dla tego przykładu nową nazwą będzie initqa.ora. Przykład skopiowania pliku znajduje się na rysunku 1.3.

rysunek 1.3 kopiowanie starego PFILE do nowej nazwy


$ cd $ORACLE_HOME/dbs
$ pwd
/U01/app/oracle/product/11.2.0/db_1/dbs
$ is –ls initped.ora
9-rw-r– 1106 Paź 11 20: 17 initprd.ora
$ cp initprd.ora initqa.ora
$

przykład skopiowania starego pliku PFILE, INITDWPRD.ora do nowego PFILE, initdwqa.ora.

Użyj aplikacji NID

aby korzystać z aplikacji NID, musisz zalogować się do serwera bazy danych jako użytkownik oracle i wykonać następujące czynności.

  1. Zamknij bazę danych
  2. Uruchom bazę danych w trybie montowania
  3. Uruchom polecenie NID
  4. Zamknij bazę danych

2.1 Zamknij bazę danych
rozpocznij sesję SQLPlus i wprowadź polecenie shutdown natychmiast. Rysunek 2.1 przedstawia ten krok.

Rysunek 2.1 zamykanie bazy danych

$ sqlplus / as sysdba

SQL*Plus: Wydanie 11.2.0.3.0 produkcja w Sob Paź 11 20:02:24 2014

Copyright © 1982, 2011, Oracle, Wszelkie prawa zastrzeżone.

podłączony do:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – produkcja
z opcjami partycjonowania, OLAP, eksploracji danych i testowania rzeczywistych aplikacji

SQL> natychmiastowe zamknięcie bazy danych
zamknięte.
baza danych usunięta.
instancja ORACLE została zamknięta.
SQL>

przykład wyjścia podczas zamykania bazy danych.

2.2 uruchamianie bazy danych w trybie montowania

Uruchom sesję SQLPlus i wprowadź polecenie startup mount. Rysunek 2.2 pokazuje, że jest to zrobione.

rysunek 2.2 uruchamianie bazy danych w trybie montowania

$ Sqlplus / as sysdbaSQL*Plus: Wydanie 11.2.0.3.0 produkcja on Sob Paź 11 20: 02: 24 2014Copyright © 1982, 2011, Oracle, Wszelkie prawa zastrzeżone.

podłączony do bezczynnej instancji.

SQL> startup mount
uruchomiona instancja ORACLE.
całkowity globalny obszar systemu 535662593 bajtów
stały rozmiar 1346140 bajtów
Rozmiar zmiennej 260048292 bajtów
bufory bazy danych 268435456 bajtów
Przywróć bufory 5832704 bajtów
zamontowana baza danych.
SQL>

przykład wyjścia przy uruchamianiu bazy danych w trybie montowania.

Enter exit to return back to the Shell prompt.

2.3 Uruchom polecenie NID
polecenie NID jest programem Oracle, który zmienia SID bazy danych. Aby z niego korzystać, potrzebne będzie hasło konta SYS i Nowy SID dla bazy danych. Z nowym SID jest qa, wiersz poleceń będzie NID target=SYS dbname = qa. Po naciśnięciu klawisza enter zostanie wyświetlony monit o hasło konta SYS. Wprowadź hasło. Zostaniesz poproszony o potwierdzenie, że chcesz zmienić SID. Wyświetlanie ekranu na rysunku 2.3.1.

rysunek 2.3.1 wyświetlanie na ekranie uruchomionego polecenia NID

$ NID target = SYS dbname = qa
DBNEVID: Release 11.2.0.3.0-produkcja w Sob Paź 11 20:05:54 2014

Copyright © 1982, 2011, Oracle i/lub podmioty stowarzyszone. Wszelkie prawa zastrzeżone.

hasło:
podłączony do bazy danych PRD (DBID = 3949194393)

Połącz się z serwerem w wersji 11.2.0

pliki kontrolne w bazie danych:
/U01/app/oracle/oradata/prd/control01.ctl
/u01/app/oracle / oradata / prd / control02.ctl

Zmiana ID bazy danych i nazwy bazy PRD na QA? (Y/) => _

wyjście z uruchomienia komendy NID.

wprowadź Y, aby zatwierdzić zmianę nazwy bazy danych, jak pokazano na rysunku 2.3.2

rysunek 2.3.2 potwierdzający zmianę nazwy bazy danych

$ NID target = SYS dbname = qa
DBNEVID: Release 11.2.0.3.0-produkcja w Sob Paź 11 20:05:54 2014

Copyright © 1982, 2011, Oracle i/lub podmioty stowarzyszone. Wszelkie prawa zastrzeżone.

hasło:
podłączony do bazy danych PRD (DBID=3949194393)

Połącz się z serwerem w wersji 11.2.0

pliki kontrolne w bazie danych:
/U01/app/oracle/oradata/prd/control01.ctl
/u02/app/oracle / oradata / prd / control02.ctl

Zmiana ID bazy danych i nazwy bazy PRD na QA? (Y/) => Y

odpowiadam y na confimację.

program wprowadzi wewnętrzne zmiany i wyświetli jego postęp. Po zakończeniu zostanie wyświetlony monit powłoki, Jak pokazano na rysunku 2.3.3.

rysunek 2.3.3 wyjście z programu NID

Datafile /U02/app/oracle/oradata/prd/dw03.db-dbid zmienił, napisał nową nazwę
Datafile /U02/app/oracle/oradata/prd/dw04.db-dbid zmienił, napisał nową nazwę
Datafile /U02/app/oracle/oradata/prd/dw05.db-dbid zmienił, napisał nową nazwę
Datafile /u01/app/oracle/oradata/prd/temp01.db-dbid zmienił, napisał nową nazwę
Plik Kontrolny / U01 / app/oracle/oradata/prd / control01.zmieniono ctl-dbid, zapisano nową nazwę
Plik Kontrolny /U02/app/oracle/oradata/prd/control02.zmieniono ctl-dbid, zapisano nową nazwę
Zamknięcie instancji

zmieniono nazwę bazy danych na QA.
zmodyfikuj plik parametrów i wygeneruj nowy plik hasła przed ponownym uruchomieniem.
identyfikator bazy danych dla QA bazy danych zmieniony na 1714809981
wszystkie poprzednie kopie zapasowe i zarchiwizowane dzienniki powtórzeń dla tej bazy danych są bezużyteczne.
Baza Danych nie jest świadoma wcześniejszych kopii zapasowych i zarchiwizowanych logów w obszarze odzyskiwania.
hase bazy danych został zamknięty, otwórz bazę danych z opcją RESETLOGS.
pomyślnie zmieniono nazwę i identyfikator bazy danych.
DBNEWID-zakończone pomyślnie.

$

wyjście z programu NID pokazujące pomyślne zakończenie.

2.4 Zamknij bazę danych
baza danych musi zostać ponownie zamknięta. Powtórz rozpoczęcie sesji SQLPlus i wprowadź polecenie shutdown natychmiastowe, jak pokazano w kroku 2.1.

3. Zmień referencje SID

zmiany będą musiały zostać wprowadzone w parametrze bazy danych, plikach tnsnames, oratab i environment, aby odzwierciedlić zmianę SID bazy danych.

  1. plik parametrów Oracle musi zostać zmieniony i edytowany.
  2. Oratab musi mieć nazwę SID.
  3. plik ora wymaga Sid o nazwie
  4. jeśli ORACLE_SID jest ustawiony w profilu, będzie musiał zostać zmieniony.

3.1 plik parametrów Oracle należy zmienić i edytować

plik parametrów Oracle należy edytować i zmienić dwie linie. Zmień na folder $ORACLE_HOME/dbs, gdzie przechowywany jest plik parametru. Przykład: rysunek 3.1.1.

rysunek 3.1.1 Zmiana folderu plików parametrów


$ cd $ORACLE_HOME/dbs
$ pwd
/u01/app/oracle/product/11.2.0/db_1/dbs
$ is –ls initqa.ora
9-rw-r– 1106 Paź 11 20: 17 initqa.ora
$

przykład przejścia do folderu pliku parametrów w celu przygotowania do edycji pliku parametrów.

Edytuj plik i znajdź dwie linie, które należy zmienić. Linie zaczynają się od dbname i instance_name. Zobacz rysunek 3.1.2 Dla przykładu jak plik parametrów będzie wyglądał przed zmianami.

rysunek 3.1.2 zapytanie, aby sprawdzić, czy SPFILE jest w użyciu.


dbname=”prd”
db_recovery_file_dest_size=64424509440
db_recovery_file_dest=”/u01/app/oracle/flash_recovery_area”
fast_start_mttr_target=120
instance_name=prd

linie, które są podświetlone, muszą zostać zmienione na nową nazwę SID.

musisz zmienić wartość SID dla dwóch linii ze starego SID, prd, na nowy SID, qa. Zobacz rysunek 3.1.3, jak linie wyglądałyby po zmianach.

rysunek 3.1.3 zapytanie, aby sprawdzić, czy SPFILE jest w użyciu


dbname=”qa”
db_recovery_file_dest_size=64424509440
db_recovery_file_dest=”/u01/app/oracle/flash_recovery_area”
fast_start_mttr_target=120
instance_name=qa

plik parametrów pokazujący zmiany nazw SID po edycji.

Zapisz plik i zamknij Edytor.

3.2 Oratab musi zmienić nazwę SID

plik Oracle ORATAB, /etc/oratab, będzie potrzebował zmiany referencji SID ze starego SID. prd do nowego Sida. qa. Edytuj plik i zmień stary wpis SID na nowy SID. Przykład: rysunek 3.2.1.

rysunek 3.2.1 przykład zmodyfikowanego pliku ORATAB /etc/oratab

# wielokrotne wpisy z tym samym $oracle_sid nie są dozwolone.
#
#
#1120:/u01/app/oracle/product/11.2.0:N
orcl:/u01/app/oracle/product/11.2.0/db_1:Y
#prd:/u01/app/oracle/product/11.2.0/db_1:Y
qa:/u01/app/oracle/product/11.2.0/db_1:Y;

przykładowy plik ORATAB pokazujący zmienione odniesienie SID z dwprd na dwqa. Zmieniona wartość jest pogrubiona.

3.3 TNSNAMES musi mieć Sid o nazwie

plik Oracle TNSNANES, tnsnames.ora, będzie musiał zmienić odniesienie SID ze starego Sida. dwprd do nowego Sida. dwqa. Będzie również musiał zmienić adres hosta, aby pasował do nowego systemu. TNSNAMES znajduje się w folderze $ORACLE_HOME/network/admin. Edytuj plik i zmień stary wpis SID na nowy SID, a także zmień adres hosta, aby pasował do nowego systemu. Przykład: rysunek 3.3.1.

rysunek 3.3.1 przykład zmodyfikowanego pliku TNSNAMES $ORACLE_HOME/network/admin/tnsnames.ora

(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)QA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.188.1.86) (PORT = 1521))
)
(CONNECT_DATA =
(NAZWA_USŁUGI = qa)
(UR = a)
)
)

przykładowy plik TNSNAMES pokazujący zmienione odniesienie SID z dwprd na dwqa i adres hosta ustawiony na nowy adres. Zmieniona wartość jest pogrubiona.

3.4 jeśli W profilu jest ustawiony identyfikator ORACLE_SID, należy go zmienić.

zazwyczaj zmienna środowiskowa $ORACLE_SID jest ustawiona na wartość SID w skrypcie profilu logowania, $HOME/.profil lub $HOME/.bash_profile. Znajdź i zmień ustawienie SID na nową wartość. Rysunek 3.4.1 pokazuje przykład wyświetlania wartości $ORACLE_SID z wiersza poleceń.

rysunek 3.4.1 wyświetlający wartość $ORACLE_SID


$ echo $ORACLE_SID
prd
$

użycie polecenia echo do wyświetlenia wartości $ORACLE_SID.

musisz się wylogować i zalogować ponownie po zmianie wartości ORACLE_SID w skrypcie profilu, aby ustawić ją w swoim środowisku.

4. Uruchom bazę danych i sfinalizuj zmiany

ostatnim krokiem, który należy wykonać, jest uruchomienie bazy danych do poziomu montowania i otwarcie jej za pomocą opcji resetlogs. Uruchom sesję SQLPlus, Uruchom bazę danych w trybie montowania, wchodząc w tryb montowania startowego. Jeśli musisz utworzyć plik PFILE w Kroku 1, polecenie start to startup pfile=initsid.Ora mount. Dla naszego przykładu będzie to startup pfile=initqa.Ora mount. Następnie otwórz bazę danych za pomocą polecenia alter database open resetlogs;. Przykład wyświetlania ekranu znajduje się na rysunku 4.1.

rysunek 4.1 uruchamianie bazy danych i resetowanie dzienników

$ sqlplus / as sysdba

SQL*Plus: Wydanie 11.2.0.3.0 produkcja w Sob Paź 11 20:02:24 2014
Copyright © 1982, 2011, Oracle, Wszelkie prawa zastrzeżone.
podłączony do bezczynnej instancji.

SQL> startup mount
uruchomiona instancja ORACLE.
całkowity globalny obszar systemu 535662593 bajtów
stały rozmiar 1346140 bajtów
Rozmiar zmiennej 260048292 bajtów
bufory bazy danych 268435456 bajtów
Przywróć bufory 5832704 bajtów
zamontowana baza danych.
SQL> alter database open resetlogs;

database altered.

SQL>

uruchomienie bazy danych w trybie montowania i otwarcie z opcją resetlogs.

aby utworzyć plik PFILE w Kroku 1, musisz przekonwertować plik PFILE z powrotem na plik SPFILE. Odbywa się to za pomocą polecenia CREATE SPFILE. W wierszu polecenia SQL wprowadź polecenie create spfile from pfile.

wniosek

zmiana nazwy bazy danych bazy danych Oracle może wydawać się skomplikowana, ale może być wykonana z podstawowymi umiejętnościami systemowymi. Postępując zgodnie z procedurami opisanymi w tym dokumencie, DBA może wykonać zadanie przy minimalnym czasie przestoju bazy danych.

Leave a Reply

Twój adres e-mail nie zostanie opublikowany.