咨询微信: dbservice1234 7 x 24 在线支持!

ORA-1545 during Oracle Startup

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"