Heim  >  Artikel  >  Datenbank  >  Was tun, wenn in der Oracle-Datenbank der Fehler ora-12899 auftritt?

Was tun, wenn in der Oracle-Datenbank der Fehler ora-12899 auftritt?

小云云
小云云Original
2017-12-11 14:54:173823Durchsuche

Bei der Verwendung von ORACLE treten verschiedene Probleme und Fehler auf. Unter anderem ist ORA-12899 das Problem, das vor einiger Zeit immer wieder auftrat, als ich Daten auf meinen lokalen Computer importierte. Jetzt werde ich es teilen und hoffe, allen zu helfen.

ORA-12899 wird durch den chinesischen Zeichensatz verursacht, der 3 Bytes in UTF-8 und 2 Bytes in ZHS16GBK belegt. Der Zeichensatz der Quell-DMP-Datei wird aus der ZHS16GBK-Bibliothek gegossen wird nun in eine Bibliothek importiert, deren Zielzeichensatz UTF-8 ist, sodass ORA-12899 erscheint

Tatsächlich lässt sich dieses Problem gut lösen, indem man den ORACLE-Zeichensatz ändert;

Aber Als ich den Zeichensatz änderte, stellte ich fest, dass ich das Passwort des Sys-Kontos vergessen hatte, was tragisch war, also musste ich zuerst das Passwort des Sys-Benutzers ändern

Passwort ändern Es gibt mehrere Situationen , und ich werde sie unten einzeln auflisten:

1. Ich habe das Anmeldekennwort anderer Benutzer als SYS- und SYSTEM-Benutzer vergessen.

Melden Sie sich als SYS- (oder SYSTEM-)Benutzer an.

CONN SYS/PASS_WORD AS SYSDBA;

Verwenden Sie die folgende Anweisung, um das Passwort des Benutzers zu ändern.

ALTER USER user_name IDENTIFIED BY newpass;

Hinweis: Das Passwort darf nicht nur aus Zahlen bestehen. Und es kann nicht mit einer Zahl beginnen. Ansonsten: ORA-00988: Passwort fehlt oder ist ungültig

2. Passwort des SYS-Benutzers oder des SYSTEM-Benutzers vergessen.

Wenn Sie das Passwort des SYSTEM-Benutzers vergessen, können Sie sich mit dem SYS-Benutzer anmelden. Verwenden Sie dann das ALTER USER-Passwort

, um das Passwort zu ändern.

CONN SYS//PASS_WORD AS SYSDBA; 
ALTER USER SYSTEM IDENTIFIED BY newpass;

Wenn Sie das Passwort des SYS-Benutzers vergessen, können Sie sich als SYSTEM-Benutzer anmelden. Verwenden Sie dann das ALTER USER-Passwort

, um das Passwort zu ändern.

CONN SYSTEM//PASS_WORD ; 
ALTER USER SYSTEM IDENTIFIED BY newpass;

3. Wenn die Passwörter von SYS- und SYSTEM-Benutzern vergessen werden oder verloren gehen.

Dieser ist besonders wichtig.

Sie können das Tool ORAPWD.EXE verwenden, um das Passwort zu ändern.

Startmenü->Ausführen->Geben Sie „CMD“ ein, öffnen Sie das Eingabeaufforderungsfenster und geben Sie den folgenden Befehl ein:

orapwd file=D:/oracle/product/10.2.0/db_1/database/pwdctcsys.ora 
password=newpass

Dieser Befehl generiert die Datenbank-Passwortdatei neu. Der Speicherort der Passwortdatei befindet sich im Verzeichnis /database von
im Verzeichnis ORACLE_HOME.

Mit diesem Passwort wird das Passwort des Systembenutzers geändert. Die Passwörter anderer Benutzer außer sys und system werden nicht geändert.

Nachdem Sie das Passwort geändert haben, können Sie als Datenbankadministrator Änderungen vornehmen. Wenn Sie kein Datenbankadministrator sind, werden Sie beim Ausführen des Änderungsbefehls nach unzureichenden Berechtigungen gefragt.

Start- ->Führen Sie -->cmd aus und geben Sie dann Folgendes ein: „sqlplus sys/oracle@192.168.0.1/orcl as SYSDBA

Wenn Sie nicht normal eingeben können, müssen Sie den Benutzernamen und das Passwort manuell eingeben. Nach der Eingabe erscheint die Eingabeaufforderung „SQL>“. wird angezeigt. Befolgen Sie einfach die folgenden Anweisungen.

SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP MOUNT
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTER DATABASE OPEN;
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK ;
ALTER DATABASE CHARACTER SET ZHS16GBK
*ERROR at line 1:
ORA-12712: new character set must be a superset of old character set

meldet, dass der Zeichensatz nicht kompatibel ist Der Befehl überprüft nicht die Zeichensatzobermenge:

SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP

Zu diesem Zeitpunkt wurde dieser ORA-12899 vollständig behoben und die Daten können importiert werden. ..

PS: Lassen Sie mich noch etwas hinzufügen: Wofür wird die *.ora-Datei in Oracle verwendet? Warum gibt es in 10g keine *.ora-Datei?

Ist *.ora in 9i gleich *.dbf in 10g?

Beim Erstellen einer Tabelle

a8da73ae7924bc0166fb7e2b785e4751空间5db79b134e9f6b82c0b36e0489ee08ed DATAFILE wird verwendet, um den spezifischen Speicherort und die Größe der Datendatei anzugeben. Aber ich habe gesehen, dass einige Artikel

*.ora-Dateien verwenden, wie z. B.

, und einige

DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M *.dbf-Dateien verwenden, wie z. B.

.

DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.dbf' SIZE 5M
Das Online-Sprichwort lautet .dbf-data file, .tmp-temporary file, .log-redo log file (redo log file), .ctl-control file

-Parameterdatei, .dat-Oracle-Systemdatei


identifiziert nur den Dateityp durch die Erweiterung. Bei Datendateien gibt es keinen Unterschied, unabhängig davon, ob es sich um ora/dat/dbf handelt . . Das denke ich persönlich auch. Ich frage mich, was die Meinungen aller sind?

Verwandte Empfehlungen:


Wie Oracle den Datendateispeicherort des Tabellenbereichs ändert

MySQL- und Oracle-Datenbankstopp und Start So lösen Sie das Problem beim Speichern der Batchdatei

Das Oracle Clob-Feld ist zu lang?

Das obige ist der detaillierte Inhalt vonWas tun, wenn in der Oracle-Datenbank der Fehler ora-12899 auftritt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn