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.

Similar Messages

  • 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.

  • How can I avoid using rollback segment for batch updates.

    I am currently trying to avoid associating a large amount of space for rollback segment as this gets filled up only during the nightly batch updates. All that space will never be used during the day. Hence want to know if there is any way of avoiding the use of rollback segment at the session level.
    Rajesh

    No, but what you can do is create a large rollback segment to use with your batch job, at the start of your batch job bring the segment online, then use set transaction to use that rollback segment, when the batch job is finished and committed, you can then bring the rollback segment offline.
    If you are really pressed for space, as an alternate plan, you could actually create the large segment before the batch job and drop it after.

  • 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 ?

  • 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]

  • Failed to extend Rollback Segment

    Version of the database is
    Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
    I have a rollback tablespace that is 99%used and wen I am tryng to use DML statements to the database it is throwing the following error.
    ORA-01562:FAILED TO EXTEND ROLLBACK SEGMENT 2
    ORA-01650:UNABLE TO EXTEND ROLLBACK SEGMENT RBS01 BY 128 IN TABLESPACE
    R
    May I know how do I proceed now? Do I have to extend the tablespace or add a new datafile to the tablespace?

    PK wrote:
    Version of the database is
    Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
    I have a rollback tablespace that is 99%used and wen I am tryng to use DML statements to the database it is throwing the following error.
    ORA-01562:FAILED TO EXTEND ROLLBACK SEGMENT 2
    ORA-01650:UNABLE TO EXTEND ROLLBACK SEGMENT RBS01 BY 128 IN TABLESPACE
    R
    May I know how do I proceed now? Do I have to extend the tablespace or add a new datafile to the tablespace?
    01562, 00000, "failed to extend rollback segment number %s"
    // *Cause: Failure occurred when trying to extend rollback segment
    // *Action: This is normally followed by another error message that caused
    //        the failure. You may take the rollback segment offline to perform
    //         maintainence. Use the alter rollback segment offline command
    //         to take the rollback segment offline.
    bcm@bcm-laptop:~$ oerr ora 1650
    01650, 00000, "unable to extend rollback segment %s by %s in tablespace %s"
    // *Cause:  Failed to allocate an extent of the required number of blocks for
    //          a rollback segment in the tablespace.
    // *Action: Use ALTER TABLESPACE ADD DATAFILE statement to add one or more
    //          files to the tablespace indicated.

  • 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

  • Different rollback segment used. why?

    Hi. I am trying to use rollback segment RB6 in a delete process in a stored procedure using SET TRANSACTION USE ROLLBACK SEGMENT RB6;
    However, when the procedure is called and performed, an error is thrown:
    ORA-01562: failed to extend rollback segment number 2
    ORA-01650: unable to extend rollback segment RB2 by 128 in tablespace my_table_space
    If you notice, the error refers to segment RB2. I have not set RB2 as a rollback segment in this procedure. How is it possible? I am using RB6 and now it's throwing an error regarding RB2? Please help. Thanks.

    It depends on where in the code you SET TRANSACTION, when you call the procedure, where delete transaction starts and where it ends. i.e does the delete part of the code run within that same windows?
    The database can decide which rollback segment to use for different transactions.
    BTW - What is your oracle release?

  • Rollback segments using UNDO Tablespace?

    First, I created a database for a vendor with an Undo Tablespace UNDOTBS. Then the vendor requested me to create rollback segments instead. So I created a new tablespace RBSTBS just to hold these segments. When I tried to create the rollback segment using the newly created tablespace RBSTBS, it complained that I am not allowed to use non-system tablespaces.
    So instead, I used the Undo tablespace UNDOTBS to hold the rollback segment. It worked.
    Am I really allowed to use the UNDO tablespace to hold rollback segments? Can't I use normal tablespaces for rollback segments?
    Another thing, the vendor wanted me to create rollback segments of 200MB each. Where do I set this while creating the rollback segment? Is this the INITIAL, NEXT, or OPTIMAL size?
    I know that Oracle recommends using UNDO rather than rollback segments. Is there any advantage in using traditional rollback segments?
    Thanks for any help!

    Advantage with rollback segment is you can force your transaction to use any specific rollback segment, where as with undo you don't have any control. Oracle does it for us.
    Thanks and Regards,
    Satheesh Babu.S
    Bangalore.

  • Trying to understand OIM - Please help

    Hello All,
    I am pretty new to OIM, just trying to understand how OIM works. For the past 4 years I was in Sun IdM and planning to switch over to OIM.
    I read some documentation, I think OIM will perform basic provisioning and it contains out of box connectors to do basic provisoning. I have some questions can anybody please help
    - Sun IdM uses Express language to develop custom workflows or forms, in OIM to develop workflows which language did you use, is it Java or any other language?
    - If I want to provision users on AS/400, HP Open VMS or AIX systems, how can I do that I don't see any out of box connectors for these resources, so in order to integrate these resources do we need to write our own custom connectors?
    - If the out of box connector does not support a specific function on a resource what are the options do we have? for example if the AD connector does not support to delete the exchange mailbox, how your going to perform this in OIM? Do we need to write a Java code for this?
    - How much Java coding is necessary in OIM?
    - Is OIM supports role based provisioning?
    Please share any information.
    Thanks in advance.

    Sun IdM uses Express language to develop custom workflows or forms, in OIM to develop workflows which language did you use, is it Java or any other language?
    - JAVA
    If I want to provision users on AS/400, HP Open VMS or AIX systems, how can I do that I don't see any out of box connectors for these resources, so in order to integrate these resources do we need to write our own custom connectors?
    - If OOTB connectors are not available then you'll have build you own connector as per Target Resource.
    If the out of box connector does not support a specific function on a resource what are the options do we have?
    - You'll have customize their connector as per your requirements or write your own
    How much Java coding is necessary in OIM?
    - We can't calculate how much java. It's totally depends on requirements how much code you'll ahve to write. But everything will be done using Java only.
    - Is OIM supports role based provisioning?
    Here Group represent Role. At a small scale it supports. But for large scale you'll have to use Oracle Role Manager as you do in Sun Role Manager.

  • Trying to understand, being prompted the file compression rules on saving, or not

    Hello,
    I'm trying to understand something, could I ask for your help, please ?
    After working on a jpg file, when I want to save it, still as jpg, with my Photoshop CS5,
    - sometimes photoshop will just save the picture, and it's done
    - sometimes photoshop will show me the compression dialog, "JPEG Options", in which I can choose the compression ratio, the format options (baseline, baseline optimized, progressive), and have an estimation of the total file size
    While not being prompted any dialog is simpler, and I'll then simply assume Photoshop decides to retain the current image's compression and format rules, I must say I like to be in control, and I'd like to know under what form the file is being saved without having to resort to the much more complex "Save For Web" menu.
    Please, would you know WHAT "triggers" the appearance of the JPEG Options when we close/save a jpeg file, in photoshop ? What makes this menu not to appear, what makes it appear ?
    If there are trivial file operations/changes/filters that necessarily trigger its appearance when we want to save, something like that ? I've tried a variety of these, but I still can't figure it out, sometimes it shows in the end, and sometimes it doesn't.
    Thank you very much if you can help me
    Kind regards,
    Oliver

    @ c.pfaffenbichler
    These are images from various sources, not just one.
    I'm deliberately excluding Save For Web, this completely re-processes everything.
    My purpose, precisely, is to know when photoshop takes the decision to retain the image's "rules", and when photoshop decides to pose us the question, how do we want it saved.
    Simply taking a jpeg image, doing stuff on it, and hitting control-w to close the window, and seeing if it will be an
    - «OK, sure, do you want to save ? You clicked OK to confirm you wanted the changes saved ? Good, now it's closed» or a
    - «please sir, how would you like your image saved, tell me the compression ratio and the format options, thank you»

  • ORA-01545: rollback segment 'R01' specified not available, after disk crash

    After a disk problem, when I try to open the database I receive the error 0ra-01545.What can I do resolve this? It seems that the rollback segment is marked for recover. I an only mount the database.

    This is the forms forum. If you ask your question the the database forum you may get an answer much quicker.

  • When to backup the rollback segments?

    Does anyone know when do I need to backup the rollback segments and what for? How are they used during restore/recovery?
    I'm using RMAN in Oracle 9.2. We have databases with both manual and automatic undo management. Does the undo management type make any difference?
    Thanks,
    Niki

    Does anyone know when do I need to backup the rollback segments and what for? How are they used during restore/recovery?
    Your question is a little large to answer but I am going to summary the most important.
    The database works with transactions in commit and in not commit mode. While a transaction has not commit , this transaction has not finished. While the transaction has not finished the rollback segments or undo segments are used to store the image of blocks with changes and without changes. That is the method that Oracle uses to ensure that a block is not going to be modified definitevely until the transaction gets commit.
    When you have a point of failure you are going to have transactions with commit and transactions with no commit and that tablespace ( RBS or UNDO ) is needed to carry to the database to a consistent point carrying to disk all transactions with commit and the rest have to suffer a rollback operation. That means that those operations without commit are not going to be complete transactions for the database.
    When you want to recover a database all tablespaces are need excepting the temp tablespace because that tablespace is only needed to carry out sorts and operation likeness.
    Does the undo management type make any difference?
    if you use rollback segments you have to administer them and the management instead if you work with undo tablespace. If you work with undo tablespace it by itself manage its segments you do not have to worry about.
    I think that I have answered your questions if you have any doubt or something like that feel free to follow asking.
    Good Luck!
    Joel P�rez

  • OCI setting rollback segment

    When using OCI, how does not set which rollback segment to use?
    The equiv PL/SQL stmt is "EXEC SQL set transaction use rollback segment BIGRBS2;"

    Thanks for replying.
    You mean mix Pro*C with OCI? How would it know that the pro*c set transaction goes with a given OCI session?
    Or do you mean give the "set transaction" statement to the OCIStmtExecute method?

  • ROLLBACK SEGMENT의 MINEXTENTS를 20 이상으로 하면 좋은 이유

    제품 : ORACLE SERVER
    작성날짜 : 2003-06-19
    ROLLBACK SEGMENT의 MINEXTENTS를 20 이상으로 하면 좋은 이유
    =========================================================
    PURPOSE
    이 자료는 다음과 같은 주제에 대하여 소개하는 자료이다.
    이 문서는 database application의 요구 사항을 충족시키기 위해 고려되어
    져야 할 rollback segment tablespace 구성에 관한 내용을 담고 있다.
    Creating, Optimizing, and Understanding Rollback Segments
    -Rollback Segment 구성과 기록 방식
    -Transaction에 Rollback Segment를 할당하는 Oracle 내부 메커니즘
    -Rollback Segment 크기와 갯수
    -Rollback Segment의 크기와 갯수 결정을 위한 테스트
    -Rollback Segment extent의 크기와 갯수
    -Rollback Segment의 minextents를 20 이상으로 하면 좋은 이유?
    -Rollback Segment의 Optimal storage parameter와 Shrink
    Explanation
    Rollback Segment 구성과 기록 방식
    Rollback segment는 extent라 불리는 연속적인 여러 개의 block으로 구성된다.
    Rollback segment는 ordered circular 방식으로 extent를 쓰게 되는데,
    current extent가 full이 되면 next extent로 옮겨 가며 사용하게 된다.
    Transaction은 rollback segment 내의 current location에 record를 쓴 다음,
    record의 size 만큼 current pointer를 옮겨 간다.
    Rollback segment에 현재 record가 쓰여지고 있는 위치를 "Head"라고 한다.
    또한, "Tail"이란 용어는 rollback segment에서 가장 오래된 active
    transaction record의 시작 위치가 되는 부분을 말한다.
    Transaction에 Rollback Segment를 할당하는 Oracle 내부 메커니즘
    새로운 transaction이 rollback segment 를 요청하면, 각 rollback segment
    를 이용하고 있는 active transaction 갯수를 확인하여 가장 적은 갯수의
    active transaction 을 가진 rollback segment를 할당하게 된다.
    Rollback segment는 transaction load를 처리하기에 충분한 크기를 가져야
    하고, 필요한 만큼의 rollback segment를 사용할 수 있도록 적당한 갯수의
    rollback segment를 가져야 한다.
    1. 한 transaction은 단 하나의 rollback segment만을 사용할 수 있다.
    2. 같은 extent에 여러 transaction이 기록할 수 있다.
    3. Rollback segment의 Head는 Tail에 의해 현재 사용 중인 extent를
    침범하지 않는다.
    4. 링 형태로 구성되어 있는 rollback segment의 extent들은 다음 extent를
    찾을 때 절대 건너 뛰는 일이 없으며, 순서를 뒤바꾸어 사용하지도 않는다.
    5. Head가 next extent를 찾지 못하면, 새로운 extent를 추가로 할당하고,
    그 extent를 링 안에 포함시킨다.
    위와 같은 원리를 감안할 때, transaction size 뿐만 아니라 transaction
    time도 상당히 중요한 고려 사항이라는 것을 알 수 있다.
    Rollback Segment 크기와 갯수
    Rollback segment size가 충분한지 판단하는 기준은 transaction activity에
    직접적으로 영향을 받는다. 주로 일어나는 transaction activity에 근거하여
    rollback segment size를 결정하여야 하고, 잘 일어나지 않는 특수한 경우의
    큰 transaction이 문제라면 별도의 rollback segment로 관리되어야 한다.
    Transaction 발생 중 Head가 너무 빨리 wrap around 시켜서 tail을 catch하
    지 않도록 하여야 하며, 자주 변경되는 data에 대해 long-running query가
    수행되었을 경우 read-consistency가 유지될 수 있도록 rollback segment
    가 wrap around되지 않아야 한다.
    Rollback segment 갯수를 적당히 잡아야 하는 이유는 process들 간에
    contention을 방지하기 위함이고, V$WAITSTAT, V$ROLLSTAT, V$ROLLNAME
    view를 통해서 contention을 확인할 수 있으며, 조회문은 다음과 같다.
    sqlplus system/manager
    select rn.name, (rs.waits/rs.gets) rbs_header_wait_ratio
    from v$rollstat rs, v$rollname rn
    where rs.usn = rn.usn
    order by 1;
    위의 query에 의해 조회된 rbs_header_wait_ratio 가 0.01 보다 크면,
    rollback segment 갯수를 추가한다.
    Rollback Segment의 크기와 갯수 결정을 위한 테스트
    1. Rollback segment tablespace 생성
    2. 테스트하기 위해 생성할 Rollback segment 갯수 결정
    3. 같은 크기의 extent로 rollback segment 생성
    extent 갯수는 최대 확장 시 10 - 30 개 정도가 되도록 extent 크기를 결정
    4. Rollback segment의 minextents는 2이다.
    5. 테스트할 rollback segment와 system rollback segment만 online 상태로 한다.
    6. Transaction을 수행하고, 필요하면 application을 load한다.
    7. Rollback segment contention을 확인한다.
    8. Rollback segment가 최대 얼마까지 확장하는지 모니터링한다.
    Rollback Segment extent의 크기와 갯수
    Rollback segment가 자라나는 최대 사이즈를 알 수 있는데, 이 수치를
    "minimum coverage size"라 한다. 만약, contention이 발생한다면 rollback
    segment 갯수를 늘려 가면 테스트를 반복한다. 또한, extent 갯수가 10개
    미만이나 30개 이상이 될 필요가 있다면 extent 크기를 늘리거나 줄이면서
    테스트를 반복해 나가면 된다.
    Rollback segment의 extent 크기를 정할 때, 각 extent는 모두 같은 크기로
    생성할 것을 recommend한다.
    Rollback tablespace의 크기는 extent size의 배수로 지정한다.
    최적의 성능을 위한 rollback segment의 minextents는 20 이상이어야 한다.
    Rollback Segment의 minextents를 20 이상으로 하면 좋은 이유?
    Rollback segment는 dynamic하게 allocate되고, 더 이상 필요 없게 되었을 때
    (만약, Optimal parameter가 셋팅되어 있으면) 모두 commit된 extent에
    대해서는 optimal size 만큼만 남기고 release(deallocate)된다.
    Rollback segment가 적은 수의 extent를 가질 수록, space 할당/해제 시
    extent 수가 많을 때보다 큰 사이즈의 space가 할당되고, 해제된다.
    다음과 같은 예를 들어 보자.
    200M 정도의 rollback segment가 있는데, 100M 짜리 2개의 extent로 이루어져
    있다고 가정해보자. 이 rollback segment에 추가로 space를 할당해야 할 일이
    생겼을 때, 모든 rollback segment extent는 같은 크기를 가져야 한다는 점을
    감안할 때, 100M 짜리 extent를 하나 더 할당해야 할 것이다.
    이 결과 직전의 rollback segment 크기에 비하여 50% 만큼의 크기 증가분이
    생겨나게 된 것인데, 실제 필요로 하는 space보다 더 많은 space가 할당되었을
    것이다.
    이와 반대로, 10M 짜리 extent 20개로 구성된 200M 짜리 rollback segment를
    생각해보자.
    여기에 추가로 space를 할당해야 할 일이 생겼을 때, 10M 짜리 extent 하나만
    추가되면 되는 것이다.
    Rollback segment가 20개 또는 그 이상의 extent로 구성되어 있다면 extent가
    하나 더 증가할 경우가 생겼을 때, rollback segment의 전체 크기가 5% 이상은
    늘어나지 않는다는 것이다.
    즉, space의 할당과 해제 작업이 보다 유연하고 쉽게 일어날 수 있다.
    요약하면, rollback segment의 extent 갯수를 20 이상으로 잡으면 space
    할당과 해제가 "보다" 수월해진다.
    실제로 extent 갯수를 20 이상으로 잡았을 때, 처리 속도가 훨씬 빨라진다는
    사실이 많은 테스트 결과 밝혀졌다.
    한가지 확실한 사실은, space를 할당하고 해제하는 작업은 cost가 적게 드는
    작업이 아니라는 사실이다.
    실제로 extent가 할당/해제되는 작업이 일어날 때, performance가 저하되는
    일이 발생한다는 것이다.
    Extent 하나에 대한 cost는 별 문제가 안 된다고 할지라도, rollback segment
    는 끊임없이 space를 할당하고 해제하는 작업을 반복하기 때문에 작은 크기의
    extent를 갖는 것이 cost 측면에서 훨씬 효율적이라는 결론이다.
    Rollback Segment의 Optimal storage parameter와 Shrink
    Optimal은 deallocate 시에 rollback segment 내에 optimal size 만큼의
    extents를 유지하기 위해 사용하는 rollback segment storage parameter이다.
    다음과 같은 명령으로 사용한다.
    alter rollback segment r01 storage (optimal 1m);Optimal size는 storage 절 안에서 기술되어야 한다.
    Optimal size 이상이 되면, 모두 commit된 extent에 대해서는 optimal size
    만큼만 남기고 release된다.
    즉, optimal에서 지정한 크기 만큼만 rollback segment를 유지하겠다는
    뜻이며, 일정한 크기로 늘어났다가 다음번 tx이 해당 rbs를 취할 경우
    optimal size만큼 resize하는 option이다.
    rbs의 가장 최근에 사용된 extent가 다 차서 다른 extent를 요구할 때
    이 optimal size와 rbs size를 비교하게 되며, 만약 rbs size가 더 크다면
    active tx에 관여하지 않는 tail extent에 대하여 deallocation이 이루어진다.
    특정 rollback segment가 너무 큰 space를 차지해서 다른 rollback segment가
    extent를 발생할 수 있는 여유 공간을 부족하게 만들기 때문에 이를 극복하기
    위해서 optimal size를 지정할 필요가 있다.
    즉, optimal parameter를 지정하면 space availability 측면에서 효율적이다.
    다음과 같이 shrink 명령을 수행하는데, size를 지정하지 않으면 optimal
    size 만큼 shrink된다.
    alter rollback segment [rbs_name] shrink to [size];Shrink 명령 수행 후, 바로 줄어들지 않는 경우가 있는데,
    transaction이 있는 경우는 줄어들지 않고, transaction이 종료되면 줄어든다.
    Optimal이 적용되는 시간은 session이 빠져 나가고 약 5~10 분 정도 걸린다.
    적당한 OPTIMAL SIZE?
    => 20 ~ 30 extents 정도가 적당한데, batch job의 성격에 따라 size는 달라
    지며 각 optimal의 합이 datafile의 size를 넘어도 전혀 상관없다.
    Optimal size를 initial, next와 같게 주면 extent가 발생하는 매번 shrink가
    일어나므로 좋지 않다.
    RBS들의 평균 크기를 구하여 이것을 optimal 크기로 지정하여 사용하는 것을
    권한다.
    다음의 query를 이용하여 peak time에 rollback segment들의 평균 크기를 구한다.
    select initial_extent + next_extent * (extents-1) "Rollback_size", extents
    from dba_segments
    where segment_type ='ROLLBACK';
    이 크기의 평균값(bytes)을 rollback segment들의 optimal size로 사용할 수
    있다.
    주의할 사항은 너무 자주 shrink된다거나 optimal 값을 너무 작게 주면
    ora-1555 : snapshot too old error가 발생할 확률이 높아지므로,
    사용하지 않는 것이 좋을 수도 있고, 되도록 큰 값으로 셋팅해야 한다.
    Rollback segment의 optimal size를 확인할 수 있는 view는 V$ROLLSTAT
    이라는 dynamic view로서 OPTSIZE column에서 확인이 가능하다.
    Example
    none
    Reference Documents
    <Note:69464.1>

Maybe you are looking for

  • Planning in APO with configurable products

    Dear Gurus we would like to use APO DP in order to plan the demand of configurable products managing the demand figures only for a combination of the two main products characteristics (model/version) without having in DP all the complexity of the ord

  • Getting and setting attributes

    Hi!!! I have to get attributes from the workflow process, i have a function, with some activity attributes, but i want to, instead of putting the internal names of the global attributes, put as an Item Attribute instead of Constant. When i try to rea

  • Using WLSTInterpreter with Maven

    I'm try to write an maven plugin for WLST, I'm using the following path to include weblogic in my classpath to avoid the weblogic.home error. No matter how do i set it, still get the same error ' java.lang.RuntimeException: error in finding weblogic.

  • N82 problems... anyone else having them?

    I love this phone to death (I only wish it had a slightly bigger screen with touchscreen capability but oh well) but am having some issues: *Almost every time I play a video using Smart Movie Player the phone freezes completely, requiring taking the

  • [SOLVED] Primary selection not being copied to clipboard

    So what's up with that? I can paste the primary selection via shift+insert fine in xterm or urxvt, but not in Firefox. In Firefox shift+insert instead pastes the current clipboard. I hear this should work without a clipboard manager, but it isn't. Ho