Wie kann ich die SID einer Oracle-XE-Instanz
-
03-07-2019 - |
Frage
Ich musste mich ändern die SID einer Oracle XE Datenbank (nicht der Dienst-Name), um eine Produktions-Datenbank.
Wenn ich habe versucht, online-Suche, die meisten Seiten waren der Beschreibung ändern oder hinzufügen eines service-Namen durch tnsnames.ora;das ist nicht, was ich tun musste.
Lösung
Die AskTom Artikel haben die Antwort, aber die Formatierung und Ausführlichkeit macht es schwer, zu folgen, so ist hier eine Zusammenfassung:
[XE_HOME] bedeutet, wo Oracle XE installiert ist. Normalerweise ist dies C:\oraclexe\app\oracle\product\10.2.0\server
.
Vergewissern Sie sich, Administratorrechte oder die Prozedur fehlschlagen.
- Konfigurieren Sie die SPFILE (Sie können die alte Datei entfernen, wenn Sie möchten)
-
copy [XE_HOME]\dbs\spfileXE.ora [XE_HOME]\dbs\spfileNEW_SID_NAME.ora
-
copy [XE_HOME]\database\initXE.ora [XE_HOME]\database\initNEW_SID_NAME.ora
- Bearbeiten
[XE_HOME]\database\initNEW_SID_NAME.ora
: Es sollte eine Zeile wie diese enthält:SPFILE='[XE_HOME]\server\dbs/spfileNEW_SID_NAME.ora'
-
- Shutdown und ersetzen Sie den alten Dienst mit einem neuen:
-
sqlplus / as sysdba
und führenshutdown
-
lsnrctl stop
-
oradim -new -sid NEW_SID_NAME -startmode auto -pfile [XE_HOME]\database\initNEW_SID_NAME.ora
-
oradim -delete -sid XE
-
lsnrctl start
-
- Aktualisieren Sie die ORACLE_SID Umgebungseigenschaft (Systemeinstellungen> Erweitert> Environment)
- Kraft Oracle mit Hörern registrieren
-
sqlplus / as sysdba
und führenalter system register;
-
Sie können überprüfen, ob die SID durch Ausführen der folgenden Abfrage geändert wurde: select instance_name from v$instance;
Andere Tipps
AskTom hat die Antwort , hatte ich durch eine Menge von google-fu zu gehen, um es zu erhalten.
Ich hatte einige Probleme mit der Lösung geschrieben von Johannes, also musste ich einige zusätzliche Schritte zu tun.Wenn Sie versuchen, eine Verbindung zu oracle (Schritt 4), indem er sqlplus / as sysdba Ich habe:
ERROR: ORA-12560: TNS:protocol adapter error
Die Lösung für diese war die Ausführung der folgenden Zeile:
oradim -start -sid NEW_SID_NAME
Dann verbinden Sie mit / fein gearbeitet, sondern versucht, eine Verbindung zu NEW_SID_NAME mit system-oder Personalabteilung hat mich ein anderes problem:
ERROR: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
Ich habe das mit der Abfrage select instance_name from v$instance;
der Hörer wäre NEW_SID_NAME, und so Taten.Aber läuft lsnrctl status
in der Befehlszeile oder der Abfrage select name from dba_services;
nicht zeigen, NEW_SID_NAME als Zuhörer.Die Lösung dieses Problems war die Ausführung der followind Satz auf sqlplus:
alter system set service_names='NEW_SID_NAME';
Vielleicht werden Sie ausführen müssen alter system register;
nachdem dies auch.
Nachdem Sie diese beiden Schritte, die ich anschließen kann, um die NEW_SID_NAME mit system und HR.
Hoffe es hilft
In der Version 11g, die alle der bisherigen Lösung hat nicht funktioniert ... Ich habe immer die folgende Fehlermeldung erhalten, wenn sie versuchen, die zu tun sqlplus / as sysdba :
ERROR: ORA-12560: TNS: Protokolladapterstörung
Zum Glück fand ich ein Skript zu tun, was ich unter [XE_HOME] \ config \ scripts tun wollte. Das Skript wird XE.bat genannt, und es wird eine neue Datenbank von Grund auf Sie für den syspassword entlang der Prozess fragen instanziiert. Also, was ich tat, war:
- Stop und entfernen Sie den vorhandenen Dienst falls vorhanden:
oradim -delete -sid XE
- Stoppen Sie den Hörer
- Konfigurieren Sie den SPFILE wie von Johannes erklärt
- Erstellen Sie eine Kopie des Skripts XE.bat, können Sie es nennen, was Sie wollen
-
, um die Kopie des Skripts bearbeiten, wie folgt:
- Ändern line "gesetzt ORACLE_SID = XE" auf "ORACLE_SID = NEW_SID_NAME"
- Ändern Sie, wo immer Sie "-sid XE" auf "-sid NEW_SID_NAME" siehe
- die Zeile aktualisieren, wo er die „orapwd.exe“ Befehl Punkt in einer Datei ruft genannt PWDNEW_SID_NAME.ora statt PWDXE.ora
- Aktualisieren Sie die Zeile, die die spfileXE.ora in die initXE.ora Echos spfileNEW_SID_NAME.ora in initNEW_SID_NAME.ora Echo (dieser Teil kann den Schritt 3 unbrauchbar machen, aber ich ziehe es trotzdem zu tun, nur für den Fall ...)
-
das Skript ausführen ... Es wird Sie für das System-Passwort aufgefordert ein paar Mal sagen
Geben Sie Wert für 1:
oder
Geben Sie Wert für 2:
Das ist es, die neue Datenbank mit Ihrem NEW_SID_NAME ist und läuft !!