een databasenaam wijzigen met behulp van NEWID
House of Brick Senior Consultant
een van de vele taken die een DBA zal uitvoeren is het klonen van een database. Gewoonlijk wordt dit gedaan van een productiedatabase aan een kwaliteitsborgings-of testdatabase om productievolumegegevens te verstrekken. Als de database zich op een virtuele machine bevindt, kan het klonen plaatsvinden op VM-niveau.
klonen doet precies wat het betekent, het creëren van een exact duplicaat van een database. Helaas, dat eindigt met u twee databases met dezelfde naam en DBID in uw netwerk. Soms kun je het voldoende oplossen met aliasing op het niveau van TNSNAMES.
andere keren moet u de naam van de database en de DBID intern wijzigen. Oracle heeft hiervoor een hulpprogramma, de newid-toepassing.
dit document beschrijft de stappen die nodig zijn om de naam van de database te wijzigen met behulp van NEWID.
terminologie en definities
in dit document worden de volgende terminologie en definities gebruikt.
Sid-Oracle Site Identifier. Dit is de naam van de database die wordt gewijzigd.
Pfile-Oracle parameterbestand. Bevindt zich in de map $ORACLE_HOME / dbs.
Spfile-Oracle Server parameterbestand. Ook te vinden in $oracle_home / DBS map.
oratab-Oracle configuratiebestand dat de Oracle-Sid ‘ s koppelt aan Oracle homes. Bevindt zich in/etc / oratab.
TNSNAMES-Oracle-netwerkconfiguratiebestand dat inkomende verbindingen koppelt aan Oracle-Sid ‘ s. Bevindt zich in de map $oracle_home/network / admin.
databasenaam
de databasenaam, of SID, wordt gewijzigd van prd in qa. In voorkomend geval zal in het document naar dit punt worden verwezen.
overzicht van proces
er zijn vier stappen uit te voeren om een Oracle database name (SID) te wijzigen.
- voorbereidende werkzaamheden
- Nid-toepassing
- SID-verwijzingen
- database starten en wijzigingen afronden
1. Voorbereidende werkzaamheden
na de naamswijziging van de database moeten wijzigingen worden aangebracht in het Oracle-parameterbestand. Als de database een server parameterbestand (SPFILE) gebruikt in plaats van een parameterbestand (PFILE), moet je van een SPFILE naar een PFILE converteren voordat de naam van de database verandert.
1.1 bepalen of SPFILE in gebruik is
Voer de volgende query uit om te zien of uw database is gestart met een PFILE of SPFILE:
figuur 1.1 Query om te zien of SPFILE in gebruik is
“van sys.V_$parameter WHERE name = ‘spfile’;
Voer deze query uit om te bepalen of de database begint met een PFILE of SPFILE.
als de database met een PFILE begint, is verder prep werk niet nodig en kunt u verder gaan met stap 2-Gebruik NID applicatie. Ga anders verder met de volgende stap.
1.2 een PFILE maken van SPFILE
Voer de volgende sql uit om een PFILE te maken van een SPFILE:
figuur 1.2 een PFILE maken van SPFILE.
voer dit commando uit om een PFILE van een SPFILE te maken.
dit zal een PFILE aanmaken in de map $ORACLE_HOME/dbs. Het zal de huidige SID in de naam gebruiken. Aangezien de huidige SID van de database prd is, zal de naam initprd zijn.ora. Kopieer het bestand om de nieuwe SID in zijn naam te hebben. In dit voorbeeld zou de nieuwe naam initqa zijn.ora. Zie figuur 1.3 Voor een voorbeeld van het kopiëren van het bestand.
figuur 1.3 het oude PFILE kopiëren naar de nieuwe naam
…
$ cd $ORACLE_HOME/dbs
$ pwd
/U01/app/Oracle/product/11.2.0/db_1 / dbs
$ is –ls geïnitped.ora
9-rw-r — 1 oracle oinstall 1106 Oct 11 20:17 initprd.ora
$ cp initprd.ora initqa.ora
$
…
voorbeeld van het kopiëren van de oude PFILE, initdwprd.ora naar de nieuwe PFILE, initdwqa.ora.
gebruik Nid-toepassing
om de Nid-toepassing te gebruiken, moet u als de Oracle-gebruiker inloggen op de databaseserver en de volgende stappen uitvoeren.
- de database afsluiten
- de database in aankoppelmodus starten
- het Nid-commando uitvoeren
- de database afsluiten
2.1 sluit de Database
Start een SQLPlus-sessie en voer het commando shutdown onmiddellijk in. Figuur 2.1 laat deze stap zien.
Figuur 2.1 het afsluiten van de database
$ SQLPlus / as sysdba
SQL * Plus: Release 11.2.0.3.0 productie op Sat okt 11 20:02:24 2014
Copyright © 1982, 2011, Oracle, Alle rechten voorbehouden.
verbonden met:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0-productie
met de opties partitionering, OLAP, data Mining en Real Application Testing
SQL> shutdown onmiddellijk
Database gesloten.
Database gedemonteerd.
Oracle-instantie afgesloten.
SQL>
…
voorbeeld van uitvoer bij het afsluiten van de database.
2.2 de Database starten in Mountmodus
Start een SQLPlus-sessie en voer het commando startup mount in. Figuur 2.2 laat dit zien.
figuur 2.2 de database starten met mountmodus
$ SQLPlus / as sysdbaSQL * Plus: Release 11.2.0.3.0 productie op za 11 okt 20: 02: 24 2014Copyright © 1982, 2011, Oracle, Alle rechten voorbehouden.
verbonden met een niet-actieve instantie.
SQL> opstarten mount
Oracle instantie gestart.
totaal systeem globaal gebied 535662593 bytes
vaste grootte 1346140 bytes
variabele grootte 260048292 bytes
Databasebuffers 268435456 bytes
buffers opnieuw opslaan 5832704 bytes
Database aangekoppeld.
SQL>
…
voorbeeld van uitvoer bij het starten van de database naar mountmodus.
voer exit in om terug te keren naar de shell-prompt.
2.3 voer het Nid Commando
uit het Nid commando is het Oracle programma dat de SID van de database verandert. Om het te gebruiken, heb je het SYS account wachtwoord en de nieuwe SID voor de database nodig. Als de nieuwe SID qa is, zal de opdrachtregel nid target=SYS dbname=qa zijn. Nadat u op enter hebt gedrukt, wordt u gevraagd om het SYS-accountwachtwoord. Voer het wachtwoord in. U wordt gevraagd te bevestigen dat u de SID wilt wijzigen. Zie figuur 2.3.1 voor de schermweergave.
figuur 2.3.1 schermweergave van het uitvoeren van Nid-opdracht
$ nid target = SYS dbname = qa
DBNEWID: Release 11.2.0.3.0-productie op Sat Oct 11 20:05:54 2014
Copyright © 1982, 2011, Oracle en / of haar gelieerde ondernemingen. Alle rechten voorbehouden.
wachtwoord:
verbonden met database PRD (DBID=3949194393)
verbinding maken met server versie 11.2.0
Controlebestanden in de database:
/U01/app/Oracle/oradata/prd/control01.ctl
/ u01 / app / oracle / oradata / prd / control02.ctl
database-ID en databasenaam PRD wijzigen in QA? (Y/) => _
…
uitvoer van het starten van het Nid Commando.
voer Y in om de databasenaam te wijzigen zoals weergegeven in figuur 2.3.2
figuur 2.3.2 bevestiging van de wijziging van de databasenaam
$ nid target = SYS dbname = qa
DBNEWID: Release 11.2.0.3.0-productie op za okt 11 20:05:54 2014
Copyright © 1982, 2011, Oracle en / of haar gelieerde ondernemingen. Alle rechten voorbehouden.
wachtwoord:
verbonden met database PRD (DBID=3949194393)
verbinding maken met server versie 11.2.0
Controlebestanden in de database:
/U01/app/Oracle/oradata/prd/control01.ctl
/ u02 / app / oracle / oradata / prd / control02.ctl
database-ID en databasenaam PRD wijzigen in QA? (Y/) = > Y
…
y beantwoorden aan de confimatie.
het programma zal de interne wijzigingen aanbrengen en de voortgang weergeven. Wanneer het klaar is, wordt u teruggestuurd naar de shell prompt zoals getoond in Figuur 2.3.3.
figuur 2.3.3 uitvoer van Nid-programma
Datafile/u02/app/Oracle/oradata/prd / dw03.db-dbid veranderd, schreef nieuwe naam
Datafile/u02/app/Oracle/oradata/prd / dw04.db-dbid veranderd, schreef nieuwe naam
Datafile/u02/app/Oracle/oradata/prd / dw05.db-dbid veranderd, schreef nieuwe naam
Datafile/u01/app/Oracle/oradata/prd / temp01.db-dbid veranderd, schreef een nieuwe naam
controlebestand / u01/app/Oracle/oradata/prd / control01.ctl-dbid gewijzigd, schreef een nieuwe naam
controlebestand / u02/app/Oracle/oradata/prd / control02.ctl-dbid veranderd, schreef nieuwe naam
Instance shut down
databasenaam gewijzigd in QA.
wijzig parameterbestand en genereer een nieuw wachtwoordbestand voordat u opnieuw opstart.
Database ID voor database QA gewijzigd in 1714809981
alle vorige back-ups en gearchiveerde redo logs voor deze database zijn onbruikbaar.
Database is niet op de hoogte van eerdere back-ups en gearchiveerde logs in het herstelgebied.
Database is afgesloten, open database met RESETLOGS optie.
met succes de naam en ID van de database gewijzigd.
DBNEWID-succesvol voltooid.
$
…
uitvoer van NID programma die een succesvolle voltooiing laat zien.
2.4 de database afsluiten
de database moet weer worden afgesloten. Herhaal het starten van een SQLPlus-sessie en voer de opdracht shutdown onmiddellijk in zoals getoond in Stap 2.1.
3. SID-verwijzingen wijzigen
wijzigingen moeten worden aangebracht in de databaseparameter, tnsnames, oratab en omgevingsbestanden om de wijziging van de SID van de database weer te geven.
- Oracle parameterbestand moet hernoemd en bewerkt worden.
- Oratab moet de SID hernoemd hebben.
- ora-bestand heeft de SID hernoemd
- als de oracle_sid is ingesteld in het profiel, moet het worden gewijzigd.
3.1 Oracle parameterbestand moet hernoemd en bewerkt worden
het Oracle parameterbestand moet bewerkt worden en er moeten twee regels gewijzigd worden. Ga naar waar het parameterbestand is opgeslagen, de $ ORACLE_HOME/dbs map. Zie figuur 3.1.1 Voor een voorbeeld.
figuur 3.1.1 het veranderen naar de parameter bestandsmap
…
$ 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
$
…
voorbeeld van het veranderen naar de map parameter bestand voor te bereiden voor het bewerken parameter bestand.
Bewerk het bestand en zoek de twee regels die gewijzigd moeten worden. De regels beginnen met dbname en instance_name. Zie figuur 3.1.2 voor een voorbeeld van hoe het parameterbestand eruit zou zien voor de wijzigingen.
figuur 3.1.2 Query om te zien of SPFILE in gebruik is.
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
…
regels die zijn gemarkeerd, moeten worden gewijzigd in een nieuwe SID-naam.
u moet de SID-waarde voor de twee regels wijzigen van oude SID, prd, naar de nieuwe SID, qa. Zie figuur 3.1.3 Voor hoe de lijnen zouden kijken na de veranderingen.
figuur 3.1.3 Query om te zien of SPFILE in gebruik is
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
…
parameterbestand met SID-naamwijzigingen na bewerking.
sla het bestand op en sluit de editor af.
3.2 Oratab moet de SID hernoemd hebben
het Oracle ORATAB bestand, /etc / oratab, moet de SID referentie veranderen van de oude SID. prd aan de nieuwe SID. qa. Bewerk het bestand en verander de oude SID ingang naar de nieuwe SID. Zie figuur 3.2.1 Voor een voorbeeld.
figuur 3.2.1 voorbeeld van gewijzigd ORATAB bestand/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;
Voorbeeld ORATAB bestand weergave van gewijzigde SID verwijzing van dwprd te dwqa. De gewijzigde waarde is vetgedrukt.
3.3 TNSNAMES moet de SID hernoemd hebben
het Oracle TNSNANES-bestand, tnsnames.ora, zal de SID referentie moeten veranderen van de oude SID. dwprd aan de nieuwe SID. dwqa. Het zal ook het HOST adres moeten veranderen om het nieuwe systeem te matchen. TNSNAMES bevindt zich in de map $ORACLE_HOME/network/admin. Bewerk het bestand en verander de oude SID ingang naar de nieuwe SID, en verander het HOST adres om overeen te komen met het nieuwe systeem. Zie figuur 3.3.1 voor een voorbeeld.
figuur 3.3.1 voorbeeld van een gewijzigd bestand met TNSNAMES $ORACLE_HOME/network/admin/tnsnames.ora
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)QA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP) (HOST = 192.188.1.86) (poort)= 1521))
)
( CONNECT_DATA =
(SERVICE_NAME = qa)
(UR = A)
)
)
voorbeeld TNSNAMES-bestand met gewijzigde SID-verwijzing van dwprd naar dwqa en hostadres ingesteld op nieuw adres. De gewijzigde waarde is vetgedrukt.
3.4 als de oracle_sid is ingesteld in het profiel, moet deze worden gewijzigd.
gewoonlijk wordt de omgevingsvariabele $ORACLE_SID ingesteld op de SID waarde in het login profielscript, $HOME/.profiel of $HOME/.bash_profile. Zoek en wijzig de SID-instelling naar de nieuwe waarde. Figuur 3.4.1 toont een voorbeeld van het weergeven van de $ ORACLE_SID waarde vanaf de commandoregel.
figuur 3.4.1 toont de waarde $ORACLE_SID
$ echo $ORACLE_SID
prd
$
…
het gebruik van het echo commando om de $ORACLE_SID waarde weer te geven.
u moet zich afmelden en opnieuw inloggen nadat u de oracle_sid-waarde in het profielscript hebt gewijzigd om deze in uw omgeving in te stellen.
4. Start database en finaliseer wijzigingen
de laatste stap die moet worden voltooid is om de database te starten tot mount-niveau en te openen met de optie resetlogs. Start een SQLPlus sessie, start de database up to mount mode door het invoeren van startup mount. Als je in Stap 1 een PFILE moest aanmaken, is het start Commando startup pfile = initSID.ora mount. Dus voor ons voorbeeld, het zou opstarten pfile = initqa.ora mount. Open vervolgens de database met het alter database open resetlogs; Commando. Zie figuur 4.1 voor een voorbeeld van het scherm.
figuur 4.1 de database opstarten en logs resetten
$ SQLPlus / as sysdba
SQL * Plus: Release 11.2.0.3.0 productie op Sat okt 11 20:02:24 2014
Copyright © 1982, 2011, Oracle, Alle rechten voorbehouden.
verbonden met een niet-actief exemplaar.
SQL> opstarten mount
Oracle instantie gestart.
totaal systeem globaal gebied 535662593 bytes
vaste grootte 1346140 bytes
variabele grootte 260048292 bytes
Databasebuffers 268435456 bytes
buffers opnieuw opslaan 5832704 bytes
Database aangekoppeld.
SQL> ALTER database open resetlogs;
Database gewijzigd.
SQL>
…
de database starten in mount modus en Openen met de resetlogs optie.
als u in Stap 1 een PFILE moest aanmaken, moet u de PFILE terug converteren naar een SPFILE. Dit wordt gedaan met het commando CREATE SPFILE. Voer bij de SQL prompt het commando create spfile from pfile in.
conclusie
het wijzigen van de databasenaam van een Oracle-database kan ingewikkeld klinken, maar kan worden uitgevoerd met basisvaardigheden op het gebied van systemen. Volgens de procedures die in dit document worden beschreven, kan een DBA de taak uitvoeren met een minimale uitvaltijd voor de database.