Email: service@parnassusdata.com 7 x 24 online support!
ORA-1545 during Oracle Startup
[oracle@ocp2 ~]$ oerr ora 1545 01545, 00000, "rollback segment '%s' specified not available" // *Cause: Either: // 1) An attempt was made to bring a rollback segment online that is // unavailable during startup; for example, the rollback segment // is in an offline tablespace. // 2) An attempt was made to bring a rollback segment online that is // already online. This is because the rollback segment is // specified twice in the ROLLBACK_SEGMENTS parameter in the // initialization parameter file or the rollback segment is already // online by another instance. // 3) An attempt was made to drop a rollback segment that is // currently online. // 4) An attempt was made to alter a rollback segment that is // currently online to use unlimited extents. // 5) An attempt was made to online a rollback segment that is // corrupted. This is because the rollback is specified in // _corrupted_rollback_segments parameter in initialization // parameter file. // *Action: Either: // 1) Make the rollback segment available; for example, bring an // offline tablespace online. // 2) Remove the name from the ROLLBACK_SEGMENTS parameter if the name // is a duplicate or if another instance has already acquired the // rollback segment. // 3) Bring the rollback segment offline first. This may involve // waiting for the active transactions to finish, or, if the // rollback segment needs recovery, discover which errors are // holding up the rolling back of the transactions and take // appropriate actions. // 4) Same as 3). // 5) Remove the name from the _corrupted_rollback_segments parameter. ORA-1545 during Startup ~~~~~~~~~~~~~~~~~~~~~~~ This means that the named rollback segment is listed in the ROLLBACK_SEGMENTS init.ora parameter and that this rollback segment is not available. This is usually because the datafile containing the rollback segment header is offline. eg: Database mounted ORA-01545: rollback segment '' specified not available (Note: a corrupt rollback segment header would usually raise ORA-1578 at startup and not an ORA-1545) If you are running Oracle Parallel Server (OPS) then ORA-1545 can also be signaled if another instance currently has the named rollback segment in use. Actions: 1. Make a note of the rollback segment name in the error 2. Check for any offline files that may contain this rollback segment. eg: SELECT name FROM v$datafile WHERE status not in ('ONLINE','SYSTEM'); 3. Shutdown the instance (or you will get ORA-704/ORA-604/ORA-955 when you next try to open the database) eg: SHUTDOWN ABORT 4. Take the rollback segment OUT of the ROLLBACK_SEGMENTS clause in the init.ora file and startup MOUNT. eg: STARTUP MOUNT 5. Restore, online and recover any file you suspect may contain the missing rollback segment (as determined in step 2 above). This is only possible if you are in ARCHIVELOG mode. eg: Save any current copy of the file Restore a good backup copy of the file ALTER DATABASE DATAFILE 'name_of_file' ONLINE; RECOVER DATABASE If you cannot recover the file continue to step 6. 6. Attempt to OPEN the database eg: ALTER DATABASE OPEN; 7. Assuming the database now starts up the you need to check if the rollback segment needs recovering. Go to "Recovering Rollback Segments"