Rollback segment corrupted

After shtting down my database I tried to startup this and appear "datafile rollback segment is corrupted" and I can't start up my database.
what can I do?
please help!!!

In such case you need to do some "surgery"!
1)connect internal
2)Select * from undo$;
3)Records with STATUS$=1 are offline RBS, STATUS$=1 - online RBS
If I remember correctly, STATUS$=5 - needs recovery.
If not, never mind. :)
4)Update undo$
set STATUS$=1
where STATUS$ NOT IN (1,2);
5)restart database...
Your corrupted RBS will be marked as OFFLINE and you safely cand drop it.
Best regards,
Viktor Krokhmal
Oracle Certified DBA.

Similar Messages

  • Rollback segment corruption on oracle 7.3

    We have an oracle 7.3 database on solaris(sparc) 2.6.
    In the midddle of the transactions, the following error message occured:
    ORA 1578 Data block corrupted(file #2, block#8274)
    ORA-1110 Datafile 2:'/user1/oradb/rbstbl.dbf'
    (this datafile corresponds to the rollback segment table space).
    Action Taken:
    1. Tried to make the rollback segments offline, but out of 11, 2 rollback segments could not be taken offline. The status for these 2 was 'pending offline'.
    2. Made the table space and datafile offline.
    3. Created new rollback segments with new datafile and rollback segments, duly commenting the same in init.ora.
    4. The status for these 2 rollback segments has now changed to 'needs recovery'. This status is preventing us from taking any further action.
    We would like to drop the old table space.
    We need you kind help in getting out of this loop!
    Pls. mail your reply to [email protected]

    Kathleen,
    Sorry, the character set scanner only supports 8.0.6 and above. Can you first migrate your US7ACII database to 9.2, and run the scanner before changing database character set to WE8ISO8859P15? Also you can read this paper http://www.oracle.com/technology/tech/globalization/pdf/mwp.pdf
    to understand why you may have invalid data in your US7ASCII database and the best way to migrate it. I am also wondering about your choice of P15 versus P1 and WIN1252? If you need further information you can contact me directly at [email protected]

  • Corrupted ROLLBACK segment

    Hi,
    on 8.1.7 I have the following in alertlog :
    Errors in file u:\oradata\MYDB\bdump\MYDBSMON.TRC:
    ORA-01578: ORACLE data block corrupted (file # 2, block # 348131)
    ORA-01110: data file 2: 'T:\ORADATA\MYDB\01_RBS_01.DBF'
    Can I drop this file and add another to ROLLBACK tablespace ?
    If not any other solution ?
    Many thanks.

    It depends, if your rollback segment is required to perform a recovery action, then it is not possible.
    If you have your database configured in archivelog mode and your backup is valid, then simply perform a complete recovery operation with the rollback tablespace. Otherwise you will have to perform a procedure that involves declaring the rollback segments unavailable by declaring this instance parameter:
    offlinerollback_segments=RBS01, RBS02, RBS03, RBS04, RBS05, RBS06, RBS07, RBS08, RBS09, RBS10
    rollback_segments=SYSTEM, SYSROL
    (depending on the rollback segments you have declared in this tablespace).
    I have documented the procedure here --> Re: Error while Droping Undo Tablespace.
    ~ Madrid
    http://hrivera99.blogspot.com/

  • Rollback segment number not shown with name " not shown " too small

    Hi,
    we have a table TABLE1 with a BLOB field FIELD1 on a Oracle 10g database. Today we found out that there is one record in that table that make problems. if we try to read the BLOB data from that record, Oracle shows the error:
    ORA-01555: snapshot too old: rollback segment number  with name "" too small
    The strange thing about it, that the message shows neither the segment number nor the segment's name. Like it has lost the reference to it.
    Could you help please.
    Notes:
    The TABLE1 and the BLOB data are really not big.
    The UNDO tablespace is 2Gb big and just 1% used.
    Thank you very much
    Igor

    Out-of-row LOB undo is maintained in the LOB segment. So the UNDO tablespace and undo retention is not associated with most LOB ORA-1555 issues. Instead the LOB column is created using either PCT_VERSION or RETENTION to manage how much space within blocks or time transpires before the LOB undo is overwritten. In environments with high updates, deletes on rows including LOBs, the chances of ORA-1555 on LOB undo is very high.
    Source:http://blogs.oracle.com/db/entry/troubleshooting_ora_1555
    In the above link you will get plenty of good metalink notes to understand and solve the issue.
    There is no undo segment name in the error message means this error has no relation with undo tablespace/parameter/segment. This might mean that your LOB table is corrupted. Can you drop and recreate/re-populate this table and try again ?
    Srini Chavali     @ Another "snapshot too old: rollback segment number  with name "" too small"
    Regards
    Girish Sharma

  • ROLLBACK SEGMENT NEEDS RECOVERY AND HOW TO RESOLVE IT

    제품 : ORACLE SERVER
    작성날짜 : 1995-02-06
    Subject :
    This article discusses what it means when a rollback segment needs
    recovery and how to resolve it.
    OVERVIEW
    This bulletin discusses why a rollback segment is the status of
    "needs recovery", what the status means, and how to resolve it.
    INTRODUCTION
    Rollback segments can be monitored through the data dictionary view,
    dba_rollback_segments. There is a status column that describes what state
    the rollback segment is currently in. Normal states are either online or offline.
    Occasionally, the status of "needs recovery" will appear.
    This is considered to be a corrupted rollback segment.
    When a rollback segment is in this state, bringing the rollback segment
    offline or online either through the alter rollback segment command or
    removing it from the rollback segments parameter in the init.ora usually has no effect.
    UNDERSTANDING
    A rollback segment falls into this status of needs recovery whenever
    Oracle tries to roll back an uncommitted transaction in its transaction
    table and fails.
    Here are some examples of why a transaction may need to rollback:
    1-A user may do a dml transaction and decides to issue rollback
    2-A shutdown abort occurs and the database needs to do an instance recovery
    in which case, Oracle has to roll back all uncommitted transactions.
    When a rollback of a transaction occurs, undo must be applied to the
    data block the modified row/s are in. If for whatever reason, that data
    block is unavailable, the undo cannot be applied. The result is a
    'corrupted' rollback segment with the status of needs recovery.
    What could be some reasons a datablock is unaccessible for undo?
    1-If a tablespace or a datafile is offline or missing.
    2-If the object the datablock belongs to is corrupted.
    3-If the datablock that is corrupt is actually in the rollback segment
    itself rather than the object.
    HOW TO RESOLVE IT
    1-MAKE sure that all tablespaces are online and all datafiles are
    online. This can be checked through dba_data_files under the
    status column. For tablespaces, look in dba_tablespaces.
    If that still does not resolve the problem then
    2-PUT the following in the init.ora-
    event = "10015 trace name context forever, level 10"
    Setting this event will generate a trace file that will reveal the
    necessary information about the transaction Oracle is trying to roll
    back and mostimportantly, what object Oracle is trying to apply
    the undo to.
    3-TAKE the corrupted rollback segment out of the rollback_segments parameter in the init.ora
    4-SHUTDOWN the database (if normal does not work, immediate, if that does
    not work, abort) and bring it back up.
    Note: An ora-1545 may be encountered, or other errors, that is ok.
    5-CHECK in the directory that is specified by the user_dump_dest parameter
    (in the init.ora or show parameter command) for a trace file that was
    generated at startup time.
    6-IN the trace file, there should be a message similiar to-
    error recovery tx(#,#) object #.
    TX(#,#) refers to transaction information.
    The object # is the same as the object_id in sys.dba_objects.
    7-USE the following query to find out what object Oracle is trying to
    perform recovery on.
    select owner, object_name, object_type, status
    from dba_objects where object_id = <object #>;
    8-THIS object must be dropped so the undo can be released. An export or
    relying on a backup may be necessary to restore the object after the corrupted
    rollback segment goes away.
    9-AFTER dropping the object, put the rollback segment back in the init.ora
    parameter rollback_segments, removed the event, and shutdown and startup
    the database.
    In most cases, the above steps will resolve the problematic rollback segment.
    If this still does not resolve the problem, it may be likely that the corruption is
    in the actual rollback segment.
    At this point, if the problem has not been resolved, please contact
    customer support.

    Yes we were having the performance issues when it is getting locked? in this what i want to know
    why it happens suddenly?
    or what package this piece of code is calling?
    or is there any possiblity of system will degrade the performance like sys user etc...?
    where exactly i found the root cause for further analysis?
    so that next time onwards if particular objects is locking we come to know why it happens is there any logical false or how do we eliminate this issue last time?
    coz in our environment sometimes most of lockings are from the same table?
    pls let me know where i have to concentrate for debug and how to troubloshoot and reslove this
    sorry for the inconvience.. i m expecting the answer from here. if anybody wants some more info i ll let him know.
    as of till now i got some docs i start to read this.
    Regards
    M.Murali..
    Note: will system/sys degrade the performance ?if so how ?

  • ORA-01555: snapshot too old: rollback segment number 6 with name "R05" too

    Can someone please help me how to overcome this dreaded ORA-01555 and how to know what exactly is causing this. There can be number of reasons this can occur :
    1. Fewer and smaller rollback segments for a very actively changing database
    2. Corrupted rollback segment
    3. Fetch across commit
    4. Fetch across commits with delayed block clean out
    Thanks

    http://asktom.oracle.com/pls/ask/f?p=4950:8:802460143396322798::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:275215756923
    <quote source="asktom">
    the only CAUSE of a 1555 is improperly sized rollback segments.
    </quote>
    http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:275215756923#10100046218454
    Message was edited by:
    Kamal Kishore

  • ROLLBACK SEGMENT VERSION 7.3

    We have an oracle 7.3 database on solaris(sparc) 2.6.
    In the midddle of the transactions, the following error message
    occured:
    ORA 1578 Data block corrupted(file #2, block#8274)
    ORA-1110 Datafile 2:'/user1/oradb/rbstbl.dbf'
    (this datafile corresponds to the rollback segment table space).
    Action Taken:
    1. Tried to make the rollback segments offline, but out of 11, 2
    rollback
    segments could not be taken offline. The status for these 2
    was 'pending
    offline'.
    2. Made the table space and datafile offline.
    3. Created new rollback segments with new datafile and rollback
    segments,
    duly commenting the same in init.ora.
    4. The status for these 2 rollback segments has now changed
    to 'needs
    recovery'. This status is preventing us from taking any further
    action.
    We would like to drop the old table space.
    We need you kind help in getting out of this loop!
    We don't have any backup and the archivlog was not activated.
    HELP is there any way to solve this problem?????
    Thank for your help

    Oracle XML Team wrote:
    : Jerome Sigua (guest) wrote:
    : : My company has version 7.3.4 and my group is thinking of
    using
    : : XML for some data transfers between us and our vendors. From
    : : what I could see from this web site, it looks like we would
    : need
    : : to move to ver 8i in order to do so. Is there any way of
    : : leveraging ver 7 to do XML? I'm sure we'll move up to ver 8
    : : sometime in the future but I don't know if we will within our
    : : timeline(next 3-4 months) for the next phase of the project
    : I'm
    : : working on.
    : : TIA
    : : Jerome Sigua
    : As long as you have the appropriate JDBC 1.1 drivers for 7.3.4
    : you should be able to use the XML SQL Utility to extract data
    in
    : XML.
    : Oracle XML Team
    : http://technet.oracle.com
    : Oracle Technology Network
    For JDBC drivers, please take a look at
    http://technet.oracle.com/tech/java/sqlj_jdbc/
    Take a look at : Oracle 7 JDBC OCI and JDBC Thin Drivers
    Oracle Technology Network
    http://technet.oracle.com
    null

  • ROLLBACK SEGMENT CONTENTION 점검

    제품 : ORACLE SERVER
    작성날짜 : 1997-01-21
    ROLLBACK SEGMENT CONTENTION 점검
    ================================
    롤백 세그먼트는 트랜잭션의 before image 를 저장하기 위해 사용되어진다.
    사용되어지는 롤백 세그먼트 양은 수행되는 operation의 특성이나 변화된 데이타
    블럭에 의존한다.
    각 트랜젝션은 롤백 관련 데이타를 writing 하기위해 가장 먼저 롤백 세그먼트
    헤더에 있는 트랜젝션 테이블을 액세스하고 트랜잭션 테이블에 slot 을 얻는다.
    이것은 동시에 update 되는 데이타를 write 하기 위해 테이블에 순간적인 Latch를
    필요로 한다.
    If the database is update intensive and has a small number of rollback segments,
    user transactions will wait on the latch to access the transaction table.
    A large number of rollback segments on a query intensive database will
    result in wastage of space.
    The following statistics shows interesting information on the rollback
    segments.
    It is generated from the view v$rollstat.
    Before : create table stats$begin_roll as
    select rownum undo#, rssize, gets, waits, writes
    from v$rollstat;
    After : create table stats$end_roll as
    select rownum undo#, rssize, gets, waits, writes
    from v$rollstat;
    select e.gets - b.gets trans_tbl_gets, e.waits - b.waits trans_tbl_waits,
    e.writes - b.writes undo_bytes_written,
    e.rssize segment_size_bytes
    from stats$begin_roll b, stats$end_roll e
    where e.undo# = b.undo#;
    Included below is the statistics collected for this section:
    TRANS_TBL_GETS TRANS_TBL_WAITS UNDO_BYTES_WRITTEN SEGMENT_SIZE_BYTES
    270 0 0 290016
    2742 0 441585 4025986
    614 0 32685 1508486
    591 0 37831 1508486
    In the above output, the waits on transaction table are zero.
    If the ratio of Trans_tbl_waits to Trans_tbl_gets is greater than 5%,
    additional rollback segments should be added to the database.
    In general, rollback segments should be the same size and created with
    a large number of small extents.
    Occasionally, large transactions may enlarge rollback segments.
    The database administrator should periodically verify this and
    recreate them with equal extents.

    I don't believe that a problem in your rollback segment can corrupt your backups, for checking if you have contention in the rollback segments you can run this query and review the results:
    select class, count from v$waitstat where class like 'undo%';
    These values should never be high
    Hope this helps
    Cynthia Pulido
    Monterrey, Mexico

  • Rollback segment Error coming for 8 lacks Record while creating MV

    Hi All,
    i am creating a materialized View and it gives us 8 lacks record but when we creates in production its fails due to rollback segment does not have enough space to handle it and it did not create the MV.
    can anyone help me out to resolve this issue for the below query while creating MV.
    SELECT DISTINCT NVL
    ((ROUND ((jt_date_completed - jt_date_requested) * 24, 2)
    0
    ) AS actual_hrs_to_complete,
    NVL ((ROUND ((jt_date_responded - jt_date_requested) * 24, 2)
    0
    ) AS actual_hrs_to_respond,
    peo1.peo_name AS agent_name,
    peo1.peo_user_name AS asagent_soe_id,
    le.lglent_desc AS ap_system,
    ' ' AS assign_work_request_comment,
    DECODE (jt.jt_bill_id,
    138802, 'CLIENT BILLABLE',
    138803, 'CONTRACTED',
    138804, 'INTERNAL BILLABLE',
    NULL, ' '
    ) AS billable,
    bl.bldg_name_cc AS building, bl.bldg_id_ls AS building_id,
    DECODE (bl.bldg_active_cc,
    'Y', 'ACTIVE',
    'INACTIVE'
    ) AS building_status,
    DECODE (jt.jt_wrk_cause_id,
    141521, 'STANDARD WEAR AND TEAR',
    141522, 'NEGLIGENCE',
    141523, 'ACCIDENTAL',
    141524, 'MECHANICAL MALFUNCTION',
    141525, 'OVERSIGHT',
    141526, 'VANDAL',
    141527, 'STANDARD',
    141528, 'PROJECT WORK',
    6058229, 'TEST',
    NULL, ' '
    ) AS cause_type,
    ' ' AS comments, peo3.peo_name AS completed_by,
    jt.jt_requestor_email AS contact_email,
    jt.jt_requestor_name_first
    || ' '
    || jt.jt_requestor_name_last AS contact_name,
    jt.jt_requestor_phone AS contact_phone,
    cc.cstctrcd_apcode AS corp_code,
    cc.cstctrcd_code AS cost_center,
    jt.jt_date_closed AS date_closed,
    jt.jt_date_completed AS date_completed,
    jt.jt_date_requested AS date_requested,
    jt.jt_date_responded AS date_responded,
    jt.jt_date_response_ecd AS date_response_ecd,
    jt.jt_date_scheduled AS date_scheduled,
    DECODE (jt.jt_def_id,
    139949, 'WTG VENDOR RESPONSE',
    139950, 'WAITING ON PARTS',
    139951, 'LABOR AVAILABILITY',
    139952, 'DEFERRED- HI PRI WORK',
    139953, 'WTG APPROVAL',
    139954, 'FUNDING REQUIRED',
    139955, 'ACCESS DENIED',
    139956, 'WTG MATERIAL',
    NULL, ' '
    ) AS deferral_reason,
    jt.jt_description AS description,
    jt.jt_date_resched_ecd AS ecd,
    fmg.facility_manager AS facility_manager,
    fl.floors_text AS FLOOR, gl.genled_desc AS general_ledger,
    ' ' AS kiosk_date_requested, ' ' AS kiosk_dispatch_confirmed,
    ' ' AS kiosk_dispatched,
    eqp.equip_customer_code AS linked_equipment_alias,
    eqp.equip_id AS linked_equipment_id,
    eqp.equip_text AS linked_equipment_name,
    DECODE (jt_originator_type_id,
    1000, 'PROJECT MOVE REQUEST',
    138834, 'CUSTOMER INITIATED CORRECTION',
    138835, 'CUSTOMER INITIATED REQUEST',
    138836, 'CORRECTIVE MAINTENANCE',
    138837, 'CONFERENCE ROOM BOOKING',
    138838, 'PROJECT INITIATED REQUEST',
    138839, 'PLANNED PREVENTIVE MAINTENANCE',
    138840, 'SELF INITATED REQUEST',
    NULL, ' '
    ) AS originator_type,
    ' ' AS payment_terms, priority_text AS priority_code,
    swoty.sworktype_text AS problem_type,
    prop.property_name_cc AS property,
    jt.jt_cost_quote_total AS quote_total,
    par.levels_name AS region,
    DECODE (jt.jt_repdef_id,
    141534, 'ADJUSTED SETTING',
    141535, 'TRAINING FOR END',
    141536, 'NEW REQUEST',
    141537, 'NO REPAIR REQUIR',
    141538, 'REPLACED PARTS',
    141539, 'REPLACE EQUIPMEN',
    1000699, 'NEW REQUEST',
    NULL, ' '
    ) AS repair_definitions,
    jt.jt_repairdesc AS repair_description,
    jt.jt_requestor AS requestor, ' ' AS requestor_cost_center,
    jt.jt_requestor_email AS requestor_email,
    jt.jt_requestor_name_first AS requestor_name,
    jt.jt_requestor_phone AS requestor_phone,
    ' ' AS response_time, rm.room_name_cc AS room,
    p1.peo_provider_code1 AS service_provider,
    p1.peo_address_1 AS service_provider_address,
    peocity.city_text service_provider_city,
    p1.peo_provider_code1 AS service_provider_code,
    peocity.city_country_name AS service_provider_country,
    peocur.currency_text AS service_provider_currency,
    p1.peo_name AS service_provider_description,
    p1.peo_dispatch_method AS serv_prov_dispatc_hmethod,
    p1.peo_rate_double AS serv_prov_double_time_rate,
    p1.peo_email AS service_provider_email,
    p1.peo_emergency_phone AS serv_prov_emergency_phone,
    p1.peo_fax AS service_provider_fax_number,
    p1.peo_home_phone AS service_provider_home_phone,
    p1.peo_rate_hourly AS service_provider_hourly_rate,
    p1.peo_title AS service_provider_job_title,
    p1.peo_method_id AS service_provider_method,
    p1.peo_cell_phone AS service_provider_mobile_phone,
    p1.peo_pager AS service_provider_pager,
    p1.peo_rate_differential AS service_provider_rates,
    p1.peo_rate_differential AS ser_prov_shift_differential,
    peocity.city_state_prov_text AS serv_prov_state_province,
    DECODE (p1.peo_active,
    'Y', 'ACTIVE',
    'INACTIVE'
    ) AS service_provider_status,
    p1.peo_url AS serv_prov_web_site_address,
    p1.peo_phone AS service_provider_work_phone,
    p1.peo_postal_code AS serv_prov_zip_postal_code, ' ' AS shift,
    ' ' AS skill,
    DECODE (jt.jt_bigstatus_id,
    138813, 'NEW',
    138814, 'PENDING',
    138815, 'OPEN',
    138816, 'COMPLETED',
    138817, 'CLOSED',
    138818, 'CANCELLED',
    NULL, ' '
    ) AS status,
    lev.levels_name AS subregion, ' ' AS trade,
    p1.peo_ls_interface_code1 AS vendor_id,
    p1.peo_fax AS vendor_purchasing_fax,
    p1.peo_vendor_site_code AS vendor_sitecode,
    jt.jt_id AS vendor_ticket, p1.peo_name AS vendor_companyname,
    jt.jt_requestor_vip AS vip, wo.wo_id AS work_order_no,
    jt.jt_id AS work_request,
    jt.jt_class_id AS work_request_class,
    woty.worktype_text AS work_type, ' ' AS wr_cost,
    jt.jt_description AS wr_description,
    ' ' AS wr_dispatch_method,
    DECODE (jt.jt_bigstatus_id,
    138813, 'NEW',
    138814, 'PENDING',
    138815, 'OPEN',
    138816, 'COMPLETED',
    138817, 'CLOSED',
    138818, 'CANCELLED',
    NULL, ' '
    ) AS wr_status,
    ctry.country_name AS country
    FROM citi.jobticket jt,
    citi.property prop,
    citi.bldg bl,
    citi.bldg_levels bldglvl,
    citi.LEVELS lev,
    citi.LEVELS par,
    (SELECT crstools.stragg (peo_name) facility_manager,
    bldgcon_bldg_id
    FROM citi.bldg_contacts, citi.people
    WHERE bldgcon_peo_id = peo_id
    AND bldgcon_contype_id IN (40181, 10142)
    GROUP BY bldgcon_bldg_id) fmg,
    citi.floors fl,
    citi.room rm,
    citi.general_ledger gl,
    citi.legal_entity le,
    citi.cost_center_codes cc,
    citi.equipment eqp,
    citi.worktype woty,
    citi.subworktype swoty,
    citi.work_order wo,
    citi.jt_workers jtwo,
    citi.priority,
    citi.country ctry,
    citi.people p1,
    citi.people peo3,
    citi.people peo1,
    citi.city peocity,
    citi.currency peocur
    WHERE jt.jt_bldg_id = bl.bldg_id
    AND bl.bldg_id = bldglvl.bldg_levels_bldg_id
    AND bldglvl.bldg_levels_levels_id = lev.levels_id
    AND lev.levels_parent = par.levels_id(+)
    AND prop.property_id = bl.bldg_property_id
    AND bl.bldg_active_ls <> 'N'
    AND jt.jt_floors_id = fl.floors_id(+)
    AND jt.jt_room_id = rm.room_id(+)
    AND jt.jt_bldg_id = fmg.bldgcon_bldg_id(+)
    AND jt.jt_genled_id = gl.genled_id(+)
    AND gl.genled_lglent_id = le.lglent_id(+)
    AND jt.jt_cstctrcd_id = cc.cstctrcd_id(+)
    AND jt.jt_equip_id = eqp.equip_id(+)
    AND jt.jt_id = jtwo.jtw_jt_id(+)
    AND jt.jt_worktype_id = woty.worktype_id(+)
    AND jt.jt_sworktype_id = swoty.sworktype_id(+)
    AND jt.jt_wo_id = wo.wo_id
    AND jt.jt_priority_id = priority_id(+)
    AND jt.jt_date_requested >= ADD_MONTHS (SYSDATE, -12)
    AND bl.bldg_country_id = ctry.country_id
    AND jtwo.jtw_peo_id = p1.peo_id(+)
    AND p1.peo_city_id = peocity.city_id(+)
    AND jt.jt_completed_by_peo_id = peo3.peo_id(+)
    AND p1.peo_rate_currency_id = peocur.currency_id(+)
    AND jt.jt_agent_peo_id = peo1.peo_id(+);
    Regards
    shyam~

    Hi,
    Its ora-1555? IS your undo_retention sufficient?
    Since you are developer the only option you have is to tune the query?
    Am curious to know like I create materialized view so that I do not have to run complex query on the master database / or to prevent the access to master database more than once to get the same data?
    Like to know which is your case because your query seem to be too complex to be the case for former. Do you think this materialized view would be used frequently in your application?
    Regards
    Anurag Tibrewal.

  • Forcing a specific rollback segment on a transaction does not seem to work

    Hi!
    We're using Oracle 9.2.0.5.0 on Sun Solaris and we're still configured to use Rollback Segments.
    We have an issue with Snapshot too old due to RBS too small on a long query I attach below for reference:
    set heading off
    set pagesize 0
    set feedback off
    set linesize 200
    <<<<< SET TRANSACTION USE ROLLBACK SEGMENT UMF_RBS_LARGE_TRAN; <<<<<
    SELECT ucms_cards.msisdn
    || ';;' || to_char(to_date(substr(ucms_cards.notes,14+length(ucms_cards.msisdn),19),'MM-DD-YYYY.HH24-MI-SS'),'DD/MM/YYYY HH24:MI:SS')
    || ';;' || to_char(ucms_batches.expiry_date,'dd/mm/yyyy')
    || ';;' || ucms_cards.serial_no
    || ';;' || ucms_cards.serial_no
    || ';;' || ucms_cards.batch_serial_no
    || ';;' || ' '
    || ';;' || CASE ucms_cards.card_status
    WHEN 'used' THEN '1'
    ELSE '0'
    END
    || ';;' || CASE WHEN date_booked_in is null THEN '01/01/1970 00:00:00' ELSE to_char(date_booked_in,'DD/MM/YYYY') || ' 00:00:00' END
    || ';;' || ' '
    from ucms_batches,ucms_cards, UCMS_EVENT_LOG
    WHERE ucms_cards.batch_serial_no = ucms_batches.serial_no
    AND ucms_cards.serial_no = substr(UCMS_EVENT_LOG.ENTITY_ID,11,length(UCMS_EVENT_LOG.ENTITY_ID)-9)
    AND UCMS_EVENT_LOG.PARTY_NO in (0)
    AND UCMS_EVENT_LOG.TIMESTAMP>=TO_TIMESTAMP(TO_CHAR(SYSDATE-1, 'DD-MM-YYYY') || ' 00:00:01', 'DD-MM-YYYY HH24:MI:SS')
    AND UCMS_EVENT_LOG.TIMESTAMP<=TO_TIMESTAMP(TO_CHAR(SYSDATE-1, 'DD-MM-YYYY') || ' 23:59:59', 'DD-MM-YYYY HH24:MI:SS')
    AND UCMS_EVENT_LOG.USER_ID LIKE 'SCP-AGENT1%'
    AND UCMS_EVENT_LOG.EVENT_TYPE_ID IN (1,2)
    AND UCMS_EVENT_LOG.ENTITY_TYPE_ID LIKE 'ucms_cards%'
    UNION
    SELECT ucms_imported_cards.msisdn
    || ';;' || to_char(to_date(substr(ucms_imported_cards.notes,14+length(ucms_imported_cards.msisdn),19),'MM-DD-YYYY.HH24-MI-SS'),'DD/MM/YYYY H24:MI:SS')
    || ';;' || to_char(ucms_imported_cards.expiry_date,'dd/mm/yyyy')
    || ';;' || ucms_imported_cards.serial_no
    || ';;' || ucms_imported_cards.serial_no
    || ';;' || DBMS_UTILITY.GET_HASH_VALUE(ucms_imported_cards.card_type,1,65536)
    || ';;' || ' '
    || ';;' || CASE ucms_imported_cards.card_status
    WHEN 'used' THEN '1'
    ELSE '0'
    END
    || ';;' || '01/01/1970 00:00:00'
    || ';;' || ' '
    from ucms_imported_cards, UCMS_EVENT_LOG
    where ucms_imported_cards.serial_no = substr(UCMS_EVENT_LOG.ENTITY_ID,11,length(UCMS_EVENT_LOG.ENTITY_ID)-9)
    AND UCMS_EVENT_LOG.PARTY_NO in (0)
    AND UCMS_EVENT_LOG.TIMESTAMP>=TO_TIMESTAMP(TO_CHAR(SYSDATE-1, 'DD-MM-YYYY') || ' 00:00:01', 'DD-MM-YYYY HH24:MI:SS')
    AND UCMS_EVENT_LOG.TIMESTAMP<=TO_TIMESTAMP(TO_CHAR(SYSDATE-1, 'DD-MM-YYYY') || ' 23:59:59', 'DD-MM-YYYY HH24:MI:SS')
    AND UCMS_EVENT_LOG.USER_ID LIKE 'SCP-AGENT1%'
    AND UCMS_EVENT_LOG.EVENT_TYPE_ID LIKE '2%'
    AND UCMS_EVENT_LOG.ENTITY_TYPE_ID LIKE 'ucms_imported_cards%';
    As you see we forced the session to use a huge RBS created for the purpose, but strangely after a long while the query fails with a RBS too small failure due to another RBS, not the one specified.
    Is there any chance the UNION or any other component of the query is implicitly opening a new transaction with a different RBS associated?
    Any chance to force the same RBS specified explicitly?
    Thanks!
    Mike

    albertone wrote:
    but strangely after a long while the query fails with a RBS too small failure due to another RBS, not the one specified.You misunderstand snapshot too old. It can be caused by other sessions same as by your session. Assume AFTER your session issued select some other session modified one (or more) tables ucms_batches, ucms_cards, UCMS_EVENT_LOG and committed changes. By the time your select reaches to fetch rows modified by that other session rollback extents in rollback segment used by that other session were reused. You will get snapshot too old. Bottom line - all sessions modifying table(s) used by your select must use rollback segments large enough so they are not overwritten before corresponding rows are needed by your select.
    SY.

  • Error while creating the rollback segment (Oracle 8i & OS Win NT)

    hi
    I am using Oracle 8i and when i am creating the new rollback segment for my database i have got following error message
    ORA-01593 Rollback segment optimal size (30 blks) is smaller than the computed initial size (2560 blks)
    CREATE ROLLBACK SEGMENT "RBS11" TABLESPACE "RBS1"
    STORAGE ( INITIAL 120K NEXT
    120K OPTIMAL
    240K MINEXTENTS 2
    MAXEXTENTS 100)
    Note:- db_block size is 8k
    Tablespace RBS1 is the Locally managed Tablespace having datafile of 50m and uniform size of 10m
    But Given statement processed while i am using Tablespace RBS (winch is data dictionary managed)
    Plz, suggest me to cause of that error and solution

    You said 120K optimal and initial is 120K with minextents of 2. The optimal size then will be smaller than the initial allocation for the rbs.
    ORA-01593: rollback segment optimal size (string blks) is smaller than the computed initial size (string blks)
    Cause: Specified OPTIMAL size is smaller than the cumulative size of the initial extents during create rollback segment.
    Action: Specify a larger OPTIMAL size.

  • Error rollback segment while exporting a table

    I am getting error while exporting a table, can someone advise me how i can handle this issue.
    EXP-00056: ORACLE error 1555 encountered
    ORA-01555: snapshot too old: rollback segment number with name "" too small
    ORA-22924: snapshot too old
    Thanks

    Hi, I have the same problem...
    I have a table with a blob type (14740 records)
    I have increase the PCTVERSION to 100 (= maximum)
    undo_retention = 604800 (7 days)
    undo tablespace = 2 Gb
    exporting with parameter CONSISTENT=n
    Still I got the message
    EXP-00056: ORACLE error 1555 encountered
    ORA-01555: snapshot too old: rollback segment number with name "" too small
    ORA-22924: snapshot too old
    When exporting the table
    What do I have to do more ?????

  • Rollback segment is filling up during creation of the database

    Hi
    The Rollback segment is showing around 520mb immediately after
    creation of the database after following the wizard provided in
    the enterprise manager of oracle. What might be the reason. How
    to reduce it. Could any one give me a solution for this matter.
    Thanks in Advance.

    I tried creating the password file using the following command:
    orapwd file=/home/oracle/product/9.2.0/dbs/orapwHR.ora
    password=HR entries=5
    and got the same error:
    ORA-01501 Create Database failed.
    ORA-01990 -ERROR opening password file '/home/oracle/product/9.2.0/dbs/orapw'
    ORA-27037 Unable to obtain file status.
    Linux error: 2: No such file or directory.
    Additional information: 3.
    Does anybody know how to fix this problem?
    Thanks,
    Katya

  • How to get the size of rollback segments

    Hi,
    on which oracle table can I see which are the rollback segments and its own size?
    Thanks!

    doc questions like this one are best answered by querying the view DICT which is present in every release of Oracle (and which you of course -again- fail to mention)
    Sybrand Bakker
    Senior Oracle DBA

  • Trying to understand rollback segments - offline tblspaces for backup

    Using Oracle 8i, on Windows platform - The question - receive an error ORA-01556 when performing a
    sql "ALTER TABLESPACE MY_TBS_LT OFFLINE IMMEDIATE";
    =============================================
    First off I created a tablespace and table on an 8i database.
    create tablespace my_tbs_lt_tbs_lt
    datafile '&&2\oradata\&&1\my_tbs_lt_guitest1.dbf'
    size 10M
    AUTOEXTEND ON NEXT 1280k EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K; <===== Is this right for use with rollback segments?
    CREATE ROLLBACK SEGMENT rbgui1t2 STORAGE(INITIAL 50K NEXT 250K)
    tablespace my_tbs_lt;
    CREATE ROLLBACK SEGMENT rbgui2t2 STORAGE(INITIAL 50K NEXT 250K)
    tablespace my_tbs_lt;
    CREATE ROLLBACK SEGMENT rbgui3t2 STORAGE(INITIAL 50K NEXT 250K)
    tablespace my_tbs_lt;
    CREATE ROLLBACK SEGMENT rbgui4t2 STORAGE(INITIAL 50K NEXT 250K)
    tablespace my_tbs_lt;
    -- Bring new rollback segments online
    ALTER ROLLBACK SEGMENT rbgui1t2 ONLINE;
    ALTER ROLLBACK SEGMENT rbgui2t2 ONLINE;
    ALTER ROLLBACK SEGMENT rbgui3t2 ONLINE;
    ALTER ROLLBACK SEGMENT rbgui4t2 ONLINE;
    CREATE TABLE guitester.guitester_t2
    ( employee_id NUMBER(6)
    , first_name VARCHAR2(20)
    , last_name VARCHAR2(25)
    CONSTRAINT emp_last_name_nn_demo NOT NULL
    , email VARCHAR2(25)
    CONSTRAINT emp_email_nn_demo NOT NULL
    , phone_number VARCHAR2(20)
    , hire_date DATE DEFAULT SYSDATE
    CONSTRAINT emp_hire_date_nn_demo NOT NULL
    , job_id VARCHAR2(10)
    CONSTRAINT emp_job_nn_demo NOT NULL
    , salary NUMBER(8,2)
    CONSTRAINT emp_salary_nn_demo NOT NULL
    , commission_pct NUMBER(2,2)
    , manager_id NUMBER(6)
    , department_id NUMBER(4)
    , dn VARCHAR2(300)
    , CONSTRAINT emp_salary_min_demo
    CHECK (salary > 0)
    tablespace my_tbs_lt;
    =======================================
    I changed the initSID.ora file to have
    Rollback_segments=( rbgui1t2, rbgui2t2, rbgui3t2, rbgui4t2)
    =======================================
    restarted everything
    ========================================
    did a backup of the tablespace my_tbs_lt;
    ========================================
    added some data to the table in the tablespace
    ========================================
    ran a restore/recover - Get the error
    ========================================
    It makes sense that I get the error because it is the tablespace that I have been working with, adding data. Is my logic correct? How does one restore a tablespace if it has rollback segments active? Can someone look to make sure I am declaring the rollback segments appropriately?

    Thank you for the link - very helpful.
    So would a more appropriate scheme be:
    Create a tablespace
    Create rollback segments
    Put them online
    enter their names in the ROLLBACK_SEGMENTS= segment(s)
    I havent read everything, so you may say go look at the link again, but a second question. If you are managing the extent locally, does it not use a rollback segments, or is it using system, or is it actually creating rollback segments for itself within the context of the local management?
    In my above scenario, I would have to take my rollback segment offline as well as the tablespace.

Maybe you are looking for

  • What's the best workflow for Home Movie Importing and Enjoying?

    I'm new to iMovie (and the mac) and have started importing all my home movies from my camcorder into iMovie. I quickly realized that movies take a huge amount of disk space and it may or may not be reasonable to import all my movies and keep them on

  • Suggestion for a WLS book

    All, I need a book about WLS administration and performance tuning. We develop ADF applications, and I'm in charge to admin and deploy it, with best performances, on a standalone WLS. Could someone of you suggest me a good read on the subject ? Thank

  • Dirty tiff display in InDesign CS4

    Hi there, I have built a number of simple images (rings with solid colour, solid colour with a gradient effect applied etc.) in Photoshop Extended CS4 and then saved them as tiff images at 300 ppi CMYK/16bit files. I have then placed them in an InDes

  • Problems with MiniSAP

    Hello! I am a freelance SAP application developer and had bought the book SAP Interactive Forms by Adobe, in order to incorporate me into the topic. In chapter 3, the installation and configuration of an exercise Systemes is described so that you can

  • Distorted sound (after updating to SP2) (Audigy 4)

    Hello! last week I updated my Vista Home Premium x64 to Service Pack 2 (swedish), and immideatly i started having trouble with my sound (as I understand it, SP2 updates some kind of internal audio driver or something like that). The sound was slighty