Změna názvu databáze pomocí NEWID
House of Brick Senior Consultant
jedním z mnoha úkolů, které DBA provede, je klonování databáze. Obvykle se to provádí z výrobní databáze do databáze pro zajištění kvality nebo testování, aby se poskytly údaje o objemu výroby. Pokud je databáze na virtuálním počítači, může dojít k klonování na úrovni VM.
klonování dělá přesně to, co to znamená, vytváří přesný duplikát databáze. Bohužel to skončí tím, že máte ve své síti dvě databáze se stejným názvem a DBID. Někdy to můžete vyřešit dostatečně aliasingem na úrovni TNSNAMES.
jindy budete muset interně změnit název databáze a DBID. Oracle má k tomu nástroj, aplikaci NEWID.
tento dokument podrobně popisuje kroky potřebné k provedení změny názvu databáze pomocí NEWID.
terminologie a definice
v tomto dokumentu budou použity následující terminologie a definice.
Sid-Oracle Site Identifier. Toto je název databáze, který se mění.
soubor parametrů PFILE-Oracle. Nachází se ve složce $ORACLE_HOME/dbs.
SPFILE-soubor parametrů serveru Oracle. Také se nachází ve složce $ORACLE_HOME / dbs.
oratab-konfigurační soubor Oracle, který sdružuje Oracle SIDs s Oracle homes. Nachází se na /etc / oratab.
TNSNAMES-konfigurační soubor sítě Oracle, který spojuje příchozí spojení s Oracle SIDS. Nachází se ve složce $ORACLE_HOME/network / admin.
název databáze
název databáze nebo SID se mění z prd na qa. Na to bude v případě potřeby v dokumentu odkazováno.
přehled procesu
pro změnu názvu databáze Oracle (Sid) je třeba provést čtyři kroky.
- předběžné přípravné práce
- použijte aplikaci NID
- změňte odkazy na SID
- spusťte databázi a dokončete změny
1. Předběžné přípravné práce
po změně názvu databáze bude nutné provést změny v souboru parametrů Oracle. Pokud databáze používá soubor parametrů serveru (SPFILE) namísto souboru parametrů (PFILE), budete muset převést ze souboru SPFILE na soubor PFILE dříve, než dojde ke změně názvu databáze.
1.1 určení, zda se používá soubor SPFILE
Spusťte následující dotaz, abyste zjistili, zda byla vaše databáze spuštěna pomocí souboru PFILE nebo SPFILE:
obrázek 1.1 dotaz, abyste zjistili, zda se soubor SPFILE používá
“ ze sys.V_$parametr kde name = ‚spfile‘;
spusťte tento dotaz a zjistěte, zda databáze začíná souborem PFILE nebo SPFILE.
pokud databáze začíná PFILE, není nutná žádná další přípravná práce a můžete pokračovat krokem 2-Použijte aplikaci NID. V opačném případě pokračujte dalším krokem.
1.2 vytvoření souboru PFILE ze souboru spfile
Spusťte následující sql pro vytvoření souboru PFILE ze souboru SPFILE:
obrázek 1.2 vytvoření souboru PFILE ze souboru SPFILE.
spusťte tento příkaz k vytvoření souboru PFILE ze souboru SPFILE.
tím se vytvoří soubor PFILE v adresáři $ORACLE_HOME/dbs. Bude používat aktuální SID v názvu. Protože aktuální Sid databáze je prd, bude název initprd.ora. Zkopírujte soubor, aby měl nový SID ve svém názvu. Pro tento příklad by nový název byl initqa.ora. Viz obrázek 1.3 pro příklad kopírování souboru.
obrázek 1.3 kopírování starého PFILE do nového názvu
…
$ cd $ORACLE_HOME / dbs
$ pwd
/ u01 / app / oracle / product / 11.2.0 / db_1 / dbs
$ is –ls initped.ora
9-rw-r– 1 oracle oinstall 1106 Oct 11 20: 17 initprd.ora
$ cp initprd.ora initqa.ora
$
…
příklad kopírování starého PFILE, initdwprd.ora do nového PFILE, initdwqa.ora.
použití aplikace NID
Chcete-li používat aplikaci NID, musíte se přihlásit do databázového serveru jako uživatel oracle a provést následující kroky.
- vypnutí databáze
- spusťte databázi v režimu připojení
- Spusťte příkaz NID
- vypněte databázi
2.1 vypnutí databáze
spusťte relaci SQLPlus a zadejte příkaz vypnutí okamžitě. Obrázek 2.1 ukazuje tento krok.
Obrázek 2.1 Vypnutí databáze
$ sqlplus / as sysdba
SQL * Plus: Release 11.2.0.3.0 Production on Sat Oct 11 20:02:24 2014
Copyright © 1982, 2011, Oracle, Všechna práva vyhrazena.
připojeno k:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0-výroba
s možností rozdělení, OLAP, dolování dat a testování reálných aplikací
SQL> okamžité vypnutí
databáze uzavřena.
databáze sesazena.
instance ORACLE vypnuta.
SQL>
…
příklad výstupu při vypnutí databáze.
2.2 spuštění databáze do režimu připojení
spusťte relaci SQLPlus a zadejte příkaz startup mount. Obrázek 2.2 ukazuje, že se to děje.
obrázek 2.2 spuštění databáze do režimu připojení
$ sqlplus / as sysdbaSQL * Plus: Release 11.2.0.3.0 Production on so Oct 11 20: 02: 24 2014Copyright © 1982, 2011, Oracle, Všechna práva vyhrazena.
připojeno k nečinné instanci.
SQL> spuštění mount
ORACLE instance začala.
celková Globální oblast systému 535662593 bajtů
Pevná velikost 1346140 bajtů
proměnná Velikost 260048292 bajtů
databázové vyrovnávací paměti 268435456 bajtů
znovu vyrovnávací paměti 5832704 bajtů
databáze namontována.
SQL>
…
příklad výstupu při spuštění databáze do režimu připojení.
zadejte exit pro návrat zpět na výzvu shellu.
2.3 Spusťte příkaz NID
příkaz NID je program Oracle, který mění Sid databáze. Chcete-li jej použít, budete potřebovat heslo účtu SYS a nové SID pro databázi. S novým SID je qa, příkazový řádek bude Nid target=SYS dbname=qa. Po stisknutí klávesy enter budete vyzváni k zadání hesla účtu SYS. Zadejte heslo. Budete vyzváni k potvrzení, že chcete změnit SID. Viz obrázek 2.3.1 pro zobrazení na obrazovce.
obrázek 2.3.1 zobrazení spuštěného příkazu NID na obrazovce
$ nid target=SYS dbname=qa
DBNEWID: Release 11.2.0.3.0-Production on Sat Oct 11 20:05:54 2014
Copyright © 1982, 2011, Oracle a/nebo její přidružené společnosti. Všechna práva vyhrazena.
heslo:
připojeno k databázi PRD (DBID=3949194393)
připojení k serveru verze 11.2.0
kontrolní soubory v databázi:
/ U01 / app / oracle / oradata/prd / control01.ctl
/u01/app / oracle / oradata/prd / control02.ctl
změnit ID databáze a název databáze PRD na QA? (Y/) => _
…
výstup ze spuštění příkazu NID.
zadejte Y, abyste se zavázali ke změně názvu databáze, jak ukazuje obrázek 2.3.2
obrázek 2.3.2 potvrzující změnu názvu databáze
$ nid target=SYS dbname=qa
DBNEWID: Release 11.2.0.3.0-Výroba v So Oct 11 20:05:54 2014
Copyright © 1982, 2011, Oracle a/nebo její přidružené společnosti. Všechna práva vyhrazena.
heslo:
připojeno k databázi PRD (DBID=3949194393)
připojení k serveru verze 11.2.0
kontrolní soubory v databázi:
/ U01 / app / oracle / oradata/prd / control01.ctl
/u02/app/oracle/oradata/prd / control02.ctl
změnit ID databáze a název databáze PRD na QA? (Y/) => Y
…
odpověď Y na konfimaci.
program provede vnitřní změny a zobrazí pokrok. Po dokončení se vrátíte na výzvu shellu, jak je znázorněno na obrázku 2.3.3.
obrázek 2.3.3 výstup z programu NID
Datafile / u02 / app / oracle / oradata/prd / dw03.db-dbid změněn, napsal nový název
Datafile / u02 / app / oracle / oradata/prd / dw04.db-dbid změněn, napsal nový název
Datafile / u02 / app / oracle / oradata/prd / dw05.db-dbid změněn, napsal nový název
Datafile / u01 / app/oracle / oradata/prd / temp01.db-dbid změněn, napsal nový název
Control File / u01 / app/oracle / oradata/prd / control01.ctl-dbid změněn, napsal nový název
Control File / u02 / app/oracle / oradata/prd / control02.ctl-dbid změněn, napsal nový název
Instance vypnout
název databáze změněn na QA.
před restartováním upravte soubor parametrů a vygenerujte nový soubor s heslem.
ID databáze pro databázi QA změněno na 1714809981
všechny předchozí zálohy a archivované protokoly redo pro tuto databázi jsou nepoužitelné.
Databáze si není vědoma záloh previos a archivovaných protokolů v oblasti obnovy.
databáze hase byla vypnuta, otevřete databázi s možností RESETLOGS.
úspěšně změnil název databáze a ID.
DBNEWID-úspěšně dokončeno.
$
…
výstup z NID programu ukazuje úspěšné dokončení.
2.4 vypnutí databáze
databáze bude muset být vypnuta zpět. Opakujte spuštění relace SQLPlus a zadejte příkaz shutdown immediate, jak je znázorněno v kroku 2.1.
3. Změnit odkazy na SID
změny budou muset být provedeny v parametrech databáze, tnsnames, oratab a souborech prostředí, aby odrážely změnu databázového Sid.
- soubor parametrů Oracle je třeba přejmenovat a upravit.
- Oratab potřebuje přejmenovat SID.
- soubor ora potřebuje přejmenovat Sid
- pokud je ORACLE_SID nastaven v profilu, bude nutné jej změnit.
3.1 soubor parametrů Oracle musí být přejmenován a upraven
soubor parametrů Oracle bude třeba upravit a změnit dva řádky. Změňte na místo, kde je uložen soubor parametrů, složku $ORACLE_HOME/dbs. Viz obrázek 3.1.1 pro příklad.
obrázek 3.1.1 Změna složky souboru parametrů
…
$ cd $ORACLE_HOME / dbs
$ pwd
/ u01 / app / oracle / product / 11.2.0 / db_1 / dbs
$ is –ls initqa.ora
9-rw-r– 1 oracle oinstall 1106 Oct 11 20: 17 initqa.ora
$
…
příklad změny složky souboru parametrů pro přípravu na úpravu souboru parametrů.
upravte soubor a vyhledejte dva řádky, které je třeba změnit. Řádky začínají na dbname a instance_name. Viz obrázek 3.1.2 pro příklad toho, jak by soubor parametrů vypadal před změnami.
obrázek 3.1.2 dotaz, zda se používá SPFILE.
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
…
zvýrazněné řádky je třeba změnit na nový název SID.
budete muset změnit hodnotu SID pro dva řádky ze starého Sid, prd na nový Sid, qa. Viz obrázek 3.1.3, jak budou řádky vypadat po změnách.
obrázek 3.1.3 dotaz, zda se používá SPFILE
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
…
soubor parametrů zobrazující změny názvu SID po úpravách.
uložte soubor a ukončete editor.
3.2 Oratab potřebuje přejmenovat Sid
soubor Oracle ORATAB, / etc / oratab, bude potřebovat změnit odkaz SID ze starého SID. prd novému SID. qa. Upravte soubor a změňte starý záznam SID na nový Sid. Viz obrázek 3.2.1 pro příklad.
obrázek 3.2.1 příklad upraveného souboru oratab / etc / oratab
#
#
#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;
příklad souboru ORATAB zobrazující změněný odkaz SID z dwprd na dwqa. Změněná hodnota je tučně.
3.3 TNSNAMES musí mít Sid přejmenován
Oracle tnsnanes soubor, tnsnames.ora, bude potřebovat změnit odkaz SID ze starého SID. dwprd novému SID. dwqa. Bude také nutné změnit adresu hostitele, aby odpovídala novému systému. Tnsnames je umístěn ve složce $ORACLE_HOME/network/admin. Upravte soubor a změňte starý záznam SID na nový SID a změňte adresu hostitele tak, aby odpovídala novému systému. Viz obrázek 3.3.1 pro příklad.
obrázek 3.3.1 příklad upraveného souboru tnsnames $oracle_home / network/admin / tnsnames.ora
(Sid = PLSExtProc)
(PRESENTATION = RO)
)
)QA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.188.1.86) (PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = qa)
(UR = A)
)
)
příklad souboru TNSNAMES zobrazující změněný odkaz SID z dwprd na dwqa a adresu hostitele nastavenou na novou adresu. Změněná hodnota je tučně.
3.4 pokud je ORACLE_SID nastaven v profilu, bude nutné jej změnit.
proměnná prostředí $ORACLE_SID je obvykle nastavena na hodnotu Sid ve skriptu přihlašovacího profilu $HOME/.profil nebo $domů/.bash_profile. Vyhledejte a změňte nastavení SID na novou hodnotu. Obrázek 3.4.1 ukazuje příklad zobrazení hodnoty $ORACLE_SID z příkazového řádku.
obrázek 3.4.1 zobrazující hodnotu $oracle_sid
$ echo $ORACLE_SID
prd
$
…
pomocí příkazu echo zobrazíte hodnotu $ORACLE_SID.
budete se muset odhlásit a znovu se přihlásit po změně hodnoty ORACLE_SID ve skriptu profilu, aby byla nastavena ve vašem prostředí.
4. Spusťte databázi a dokončete změny
posledním krokem, který je třeba dokončit, je spustit databázi až na úroveň připojení a otevřít ji pomocí možnosti resetlogs. Spusťte relaci SQLPlus, spusťte databázi až do režimu připojení zadáním startup mount. Pokud jste museli vytvořit PFILE v kroku 1, příkaz start je startup pfile=initSID.ora mount. Takže pro náš příklad by to byl startup pfile=initqa.ora mount. Poté otevřete databázi pomocí příkazu alter database open resetlogs;. Viz obrázek 4.1 pro příklad zobrazení na obrazovce.
obrázek 4.1 spuštění databáze a resetování protokolů
$ sqlplus / as sysdba
SQL * Plus: Release 11.2.0.3.0 Production on Sat Oct 11 20:02:24 2014
Copyright © 1982, 2011, Oracle, Všechna práva vyhrazena.
připojeno k nečinné instanci.
SQL> spuštění mount
ORACLE instance zahájena.
celková Globální oblast systému 535662593 bajtů
Pevná velikost 1346140 bajtů
proměnná Velikost 260048292 bajtů
databázové vyrovnávací paměti 268435456 bajtů
znovu vyrovnávací paměti 5832704 bajtů
databáze namontována.
SQL> alter databáze otevřené resetlogy;
databáze změněna.
SQL>
…
spuštění databáze v režimu připojení a otevření pomocí možnosti resetlogs.
pokud jste museli vytvořit soubor PFILE v kroku 1, budete muset převést soubor PFILE zpět do souboru SPFILE. To se provádí pomocí příkazu CREATE SPFILE. Na řádku SQL zadejte příkaz Vytvořit spfile z pfile.
závěr
Změna názvu databáze databáze Oracle může znít komplikovaně, ale může být provedena se základními systémovými dovednostmi. Podle postupů uvedených v tomto dokumentu může DBA provést úkol s minimální dobou prostoje pro databázi.