bigpansen
Goto Top

Oracle 9i Datenbank reparieren oder Dump zurückspielen ?

Hallo,

ich stehe vor einem Problem das mit meinem derzeitigen Wissenstand nicht lösen kann. Wir haben hier eine etwas ältere Oracle Datenbank (9.2.0.5) auf einem Windows Server 2003 laufen. Am Server selbst ging der Raid Controler kaputt, was den Server zum Absturtz brachte. Nach erfolgreicher Reparatur startet der Server wieder wie gewohnt, nur leider fährt die Datenbank nicht mehr hoch. Mit dem Oracle Enterprise Manager kann ich die Datenbank in den Zustand "Gestartet (NOMOUNT)" fahren und danach auch mounten. Sobald ich die Datenbank dann öffnen will bricht er ab und bringt er die Fehlermeldung :
ORA-01092: ORACLE-Instance beendet. Verbindungsabbruch erzwungen.

Hier der Auszug aus dem entsprechenden alert_*.log :

Starting up ORACLE RDBMS Version: 9.2.0.5.0.
System parameters with non-default values:
processes = 150
timed_statistics = TRUE
shared_pool_size = 109051904
large_pool_size = 8388608
java_pool_size = 33554432
control_files = d:\oracle\oradata\topo\control1.ora, e:\oracle\oradata\topo\control2.ora, d:\oracle\oradata\topo\control3.ora
db_block_size = 8192
db_cache_size = 327155712
compatible = 9.2.0.0.0
log_archive_start = TRUE
log_archive_dest_1 = LOCATION=E:\ORACLE\Arch\TOPO
log_archive_format = ARC%S.%T
db_file_multiblock_read_count= 16
fast_start_mttr_target = 300
undo_management = AUTO
undo_tablespace = UNDOTBS1
undo_retention = 10800
remote_login_passwordfile= EXCLUSIVE
db_domain =
instance_name = TOPO
hash_join_enabled = TRUE
background_dump_dest = D:\oracle\admin\TOPO\bdump
user_dump_dest = D:\oracle\admin\TOPO\udump
core_dump_dest = D:\oracle\admin\TOPO\cdump
sort_area_size = 524288
db_name = TOPO
open_cursors = 300
star_transformation_enabled= FALSE
query_rewrite_enabled = FALSE
pga_aggregate_target = 141557760
PMON started with pid=2
DBW0 started with pid=3
LGWR started with pid=4
CKPT started with pid=5
SMON started with pid=6
RECO started with pid=7
Wed Sep 14 14:50:00 2011
ARCH: STARTING ARCH PROCESSES
ARC0 started with pid=8
ARC0: Archival started
ARC1 started with pid=9
Wed Sep 14 14:50:01 2011
ARCH: STARTING ARCH PROCESSES COMPLETE
Wed Sep 14 14:50:01 2011
ARC0: Thread not mounted
Wed Sep 14 14:50:01 2011
alter database mount exclusive
Wed Sep 14 14:50:02 2011
ARC1: Archival started
Wed Sep 14 14:50:02 2011
ARC1: Thread not mounted
Wed Sep 14 14:50:06 2011
Successful mount of redo thread 1, with mount id 1554753626
Wed Sep 14 14:50:06 2011
Database mounted in Exclusive Mode.
Completed: alter database mount exclusive
Wed Sep 14 14:50:06 2011
alter database open
Wed Sep 14 14:50:06 2011
Beginning crash recovery of 1 threads
Wed Sep 14 14:50:06 2011
Started redo scan
Wed Sep 14 14:50:07 2011
Completed redo scan
33 redo blocks read, 4 data blocks need recovery
Wed Sep 14 14:50:07 2011
Started recovery at
Thread 1: logseq 5760, block 2, scn 0.62905267
Recovery of Online Redo Log: Thread 1 Group 5 Seq 5760 Reading mem 0
Mem# 0 errs 0: D:\ORACLE\ORADATA\TOPO\REDO5.ORA
Mem# 1 errs 0: E:\ORACLE\ORADATA\TOPO\REDO51.ORA
Wed Sep 14 14:50:07 2011
Completed redo application
Wed Sep 14 14:50:07 2011
Ended recovery at
Thread 1: logseq 5760, block 35, scn 0.62925296
4 data blocks read, 4 data blocks written, 33 redo blocks read
Crash recovery completed successfully
Wed Sep 14 14:50:07 2011
LGWR: Primary database is in CLUSTER CONSISTENT mode
Thread 1 advanced to log sequence 5761
Thread 1 opened at log sequence 5761
Current log# 2 seq# 5761 mem# 0: D:\ORACLE\ORADATA\TOPO\REDO2.ORA
Current log# 2 seq# 5761 mem# 1: E:\ORACLE\ORADATA\TOPO\REDO21.ORA
Successful open of redo thread 1
Wed Sep 14 14:50:09 2011
SMON: enabling cache recovery
Wed Sep 14 14:50:09 2011
ARC0: Evaluating archive log 5 thread 1 sequence 5760
ARC0: Beginning to archive log 5 thread 1 sequence 5760
Creating archive destination LOG_ARCHIVE_DEST_1: 'E:\ORACLE\ARCH\TOPO\ARC05760.001'
ARC0: Completed archiving log 5 thread 1 sequence 5760
Wed Sep 14 14:50:10 2011
Undo Segment 1 Onlined
Undo Segment 2 Onlined
Undo Segment 3 Onlined
Undo Segment 4 Onlined
Undo Segment 5 Onlined
Undo Segment 6 Onlined
Undo Segment 7 Onlined
Undo Segment 8 Onlined
Undo Segment 9 Onlined
Undo Segment 10 Onlined
Successfully onlined Undo Tablespace 1.
Wed Sep 14 14:50:10 2011
SMON: enabling tx recovery
Wed Sep 14 14:50:10 2011
Database Characterset is WE8MSWIN1252
*
Corrupt block relative dba: 0x004031eb (file 1, block 12779)
Fractured block found during buffer read
Data in bad block -
type: 6 format: 2 rdba: 0x004031eb
last change scn: 0x0000.03ba59c4 seq: 0x1 flg: 0x04
consistency value in tail: 0x0aed0601
check value in block header: 0xb7c0, computed block checksum: 0x5329
spare1: 0x0, spare2: 0x0, spare3: 0x0
*
Reread of rdba: 0x004031eb (file 1, block 12779) found same corrupted data
Wed Sep 14 14:50:10 2011
Errors in file d:\oracle\admin\topo\udump\topo_ora_1412.trc:
ORA-01578: ORACLE-Datenblock beschadigt (Datei Nr. 1, Block Nr. 12779)
ORA-01110: Datendatei 1: 'E:\ORACLE\ORADATA\TOPO\SYSTEM1.ORA'

Error 1578 happened during db open, shutting down database
USER: terminating instance due to error 1578
Instance terminated by USER, pid = 1412
ORA-1092 signalled during: alter database open...


Jetzt zu meiner Frage an sich :

Ist es möglich diese Datenbank zu reparieren ? Wenn nicht habe ich einen FullDump vorliegen der funktionieren müsste, leider habe ich noch nie eine einen Oracle 9i dump zurückgespielt und währe für jede Hilfe dankbar, da unser Datenbank Mensch hier noch 2 Monate sich in Kur befindet.


Grüße,
bigpansen

Content-Key: 173102

Url: https://administrator.de/contentid/173102

Printed on: April 19, 2024 at 23:04 o'clock

Member: Silberruecken
Silberruecken Sep 14, 2011 at 13:46:43 (UTC)
Goto Top
Hi,
ich würde IMMER den Dump zurücklesen, wenn ich einen habe....Reparaturen nur im Notfall. Habe schlechte Erfahrungen damit...

Grüße,

Stephan
Member: bigpansen
bigpansen Sep 14, 2011 at 14:03:17 (UTC)
Goto Top
Hi ,

danke für den schnellen Erfahrungsbericht. Gibt es irgendwo ein gutes HowTo wie man den Dump bei 9i zurückspielt außer auf der off. Oracle Seite ? Leider sind meine Oracle Fähigkeiten sehr begrenzt und auf der off. Seite verstehe ich stellenweise nur Bahnhof. Bei der Oracle 10´er Version ist es ja so das beim Dump zurückspielen die Tabellen überschrieben werden was ja bei der 9´er nicht der Fall ist. Ich möchte hier nicht mehr kaputt machen als es schon ist.


Grüße,
bigpansen
Mitglied: 48507
48507 Sep 14, 2011 at 15:09:33 (UTC)
Goto Top
Wie man das genau macht, hängt von deiner DB-Struktur ab. Wenn du z.B. nur einen Schema-User hast, der gleichzeitig dba sein soll, könnte man es so machen:

SET ORACLE_SID=NameDerInstanz
SET NLS_LANG=GERMAN_GERMANY.WE8MSWIN1252 // eventuell anzupassen

SQLPLUS system/passwort // eventuell als: sys as sysdba

drop user SchemaUser cascade;
create user SchemaUser identified by SchemeUserPasswort;
grant dba to SchemaUser ;
exit;

imp SchemaUser/SchemeUserPasswort file=backup.dmp log=import.log fromuser=SchemaUser touser=SchemaUser commit=y analyze=no buffer=8192000

Oder über den Enterprise Manager...

Auf eigene Gefahr!
Member: bigpansen
bigpansen Sep 14, 2011 at 15:32:32 (UTC)
Goto Top
Danke für die schnelle Antwort, werde es Morgen früh direkt mal versuchen.


Grüße,
bigpansen
Mitglied: 48507
48507 Sep 14, 2011 at 16:15:50 (UTC)
Goto Top
Für solche Fälle empfehle ich RMAN, vielleicht sichert ihr damit, ohne dass du es weißt? Ich glaube, das Einspielen des Dumps wird nicht funktionieren, denn es hat ja die system.ora erwischt... es sei dem, du erstellst eine neue, funktionierende Instanz.
Member: pi314
pi314 Sep 15, 2011 at 13:39:36 (UTC)
Goto Top
Mahlzeit..

und, wie ist der Stand?
Ist dein Dump eine kompletter DB-Dump (full=y)?
Hast du eine Sicherung deiner system1.ora?

Gruß,
pi314