Questions on Logical corruption

Hello all,
My DB version is 10g+ - 11.2.0.3 on various different OS.  We are in process of deploying RMAN on our system and i am having a hard time on testing/get a grip around the whole logical corruption... from what i understand(please correct me if i am wrong)
1. I can have a check logical syntax in my backup cmd(and that will check both physical and logical corruption)...But how much overhead dose it have, Seems to be anywhere from 14-20% overhead on backup time. 
2. Leaving the maxCorrupt to default(which i beleive is 0)...if there is a physical corruption my backup will break and i should get an email/alert saying backup broke...
3.  Would this be same for logical corruption too ??, would RMAN report logical corrution right away like physical corruption would do?  Or do i have to query v$database_block_corruption after backup is done to figure out if i have logical corruption
4. how would one test logical corruption ?? (besides the NO_LOGGING operation, as our DB have force logging turned on)
5. Is it a good practice to have check logical corruption in your daily backup? ( i guess i have no problems for it if DB are small, but some of our DB are close to 50TB+ and i think the check logical is going to increase the backup time significantly)
6. If RMAN cannot repair logical corruption, then why would i want to do the check logical (besides knowing i have a problem and the end user have to fix it by reload the data...assuming its a table not index that is corrupt)..
7. any best practices when it comes for checking logical corruption for DB in 50+ TB
I have actually searched on here and on google, but i could not find any way to reproducing logical corrpution(maybe there is none), but i wanted to ask the community about it....
Thank you in advance for your time. 

General info:
http://www.oracle.com/technetwork/database/focus-areas/availability/maa-datacorruption-bestpractices-396464.pdf
You might want to google "fractured block" for information about it without RMAN.  You can simulate that by writing a C program to flip some bits, although technically that would be physical corruption.  Also see Dealing with Oracle Database Block Corruption in 11g | The Oracle Instructor
One way to simulate is to use nologging operations and then try to recover (this is why force logging is used, so google corruption force logging).  Here's an example: Block corruption after RMAN restore and recovery !!! | Practical Oracl Hey, no simulate, that's for realz!
Somewhere in the recovery docs it explains... aw, I lost my train of thought, you might get better answers with shorter questions, or one question per thread, for this kind of fora.  Oh yeah, somewhere in the docs it explains that RMAN doesn't report the error right away, because later in the recovery stream it may decide the block is newly formatted and there wasn't really a problem.
This really is dependent on how much data is changing and how.  If you do many nologging operations or run complicated standby, you can run into this more.  There's a trade-off between verifying everything and backup windows, site requirements control everything.  That said, I've found only paranoid DBA's check enough, IT managers often say "that will never happen."  Actually, even paranoid DBA's don't check enough, the vagaries of manual labor and flaky equipment can overshadow anything.

Similar Messages

  • Backup and Logical Corruption

    Hello,
    I am running a backup and checking for any logical corruption -
    RMAN> backup check logical database;
    Starting backup at 03-MAR-10
    allocated channel: ORA_SBT_TAPE_1
    channel ORA_SBT_TAPE_1: SID=135 device type=SBT_TAPE
    channel ORA_SBT_TAPE_1: Data Protection for Oracle: version 5.5.1.0
    allocated channel: ORA_SBT_TAPE_2
    channel ORA_SBT_TAPE_2: SID=137 device type=SBT_TAPE
    channel ORA_SBT_TAPE_2: Data Protection for Oracle: version 5.5.1.0
    allocated channel: ORA_SBT_TAPE_3
    channel ORA_SBT_TAPE_3: SID=138 device type=SBT_TAPE
    channel ORA_SBT_TAPE_3: Data Protection for Oracle: version 5.5.1.0
    channel ORA_SBT_TAPE_1: starting full datafile backup set
    channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
    input datafile file number=00014 name=/oracle1/data01/TESTDB/TESTDB_compress_test_01.dbf
    input datafile file number=00006 name=/oracle/TESTDB/data01/TESTDB_shau_01.dbf
    input datafile file number=00015 name=/oracle/product/11.1/dbs/ILM_TOOLKIT_IML_TEST_TAB_A.f
    channel ORA_SBT_TAPE_1: starting piece 1 at 03-MAR-10
    channel ORA_SBT_TAPE_2: starting full datafile backup set
    channel ORA_SBT_TAPE_2: specifying datafile(s) in backup set
    input datafile file number=00003 name=/oracle/TESTDB/data02/TESTDB_undo_01.dbf
    input datafile file number=00013 name=/oracle/TESTDB/data01/TESTDB_roop_01.dbf
    input datafile file number=00012 name=/oracle/TESTDB/data01/TESTDB_example_01.dbf
    input datafile file number=00005 name=/oracle/TESTDB/data01/TESTDB_sysaud_tab_1m_01.dbf
    channel ORA_SBT_TAPE_2: starting piece 1 at 03-MAR-10
    channel ORA_SBT_TAPE_3: starting full datafile backup set
    channel ORA_SBT_TAPE_3: specifying datafile(s) in backup set
    input datafile file number=00004 name=/oracle/TESTDB/data01/TESTDB_users_01.dbf
    input datafile file number=00001 name=/oracle/TESTDB/data01/TESTDB_system_01.dbf
    input datafile file number=00002 name=/oracle/TESTDB/data01/TESTDB_sysaux_01.dbf
    input datafile file number=00025 name=/oracle/export_files/TESTDB_users_02.dbf
    channel ORA_SBT_TAPE_3: starting piece 1 at 03-MAR-10
    channel ORA_SBT_TAPE_3: finished piece 1 at 03-MAR-10
    piece handle=5ul7ltsd_1_1 tag=TAG20100303T204356 comment=API Version 2.0,MMS Version 5.5.1.0
    channel ORA_SBT_TAPE_3: backup set complete, elapsed time: 00:05:15
    channel ORA_SBT_TAPE_2: finished piece 1 at 03-MAR-10
    piece handle=5tl7ltsd_1_1 tag=TAG20100303T204356 comment=API Version 2.0,MMS Version 5.5.1.0
    channel ORA_SBT_TAPE_2: backup set complete, elapsed time: 00:06:56
    channel ORA_SBT_TAPE_1: finished piece 1 at 03-MAR-10
    piece handle=5sl7ltsd_1_1 tag=TAG20100303T204356 comment=API Version 2.0,MMS Version 5.5.1.0
    channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:08:16
    Finished backup at 03-MAR-10
    Starting Control File and SPFILE Autobackup at 03-MAR-10
    piece handle=c-2109934325-20100303-0c comment=API Version 2.0,MMS Version 5.5.1.0
    Finished Control File and SPFILE Autobackup at 03-MAR-10
    Question: By looking at the output, how can I say that RMAN did an Logical Check for the corruption? This output looks same as a simple backup without logical corruption check. Please advice how to check about this?
    Thanks!

    hi
    I think you won't see any summary on this, only when corruption is found.
    There is also one related setting that can be incorporated here - see example:
    Example 2-25 Specifying Corruption Tolerance for Datafile Backups
    This example assumes a database that contains 5 datafiles. It uses the SET MAXCORRUPT command to indicate than no more than 1 corruption should be tolerated in each datafile. Because the CHECK LOGICAL option is specified on the BACKUP command, RMAN checks for both physical and logical corruption.
    RUN
    +{+
    SET MAXCORRUPT FOR DATAFILE 1,2,3,4,5 TO 1;
    BACKUP CHECK LOGICAL
    DATABASE;
    +}+
    use this to see clear output:
    -- Check for physical corruption of all database files.
         VALIDATE DATABASE;
    -- Check for physical and logical corruption of a tablespace.
         VALIDATE CHECK LOGICAL TABLESPACE USERS;
    eg.
    List of Datafiles
    File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
    +1 FAILED 0 3536 57600 637711+
    File Name: /disk1/oradata/prod/system01.dbf
    Block Type Blocks Failing Blocks Processed
    Data       1              41876
    Index      0              7721
    Other      0              4467

  • Logical corruption in datafile

    what is logical corruption.
    How this can occur in datafile , is it related caused due to disk.
    how to avoid this.
    Is it possible to check the this on regular interval. with some job script .. any idea what command how to do it .. does dbverify will do.
    Any good reading/url is most welcomed.
    Thank You Very Much.

    user642237 wrote:
    what is logical corruption.
    How this can occur in datafile , is it related caused due to disk.
    how to avoid this.
    Is it possible to check the this on regular interval. with some job script .. any idea what command how to do it .. does dbverify will do.
    Any good reading/url is most welcomed.
    Thank You Very Much.What's the db version and o/s? Where did you read the term logical corruption in datafiles? AFAIK, datafiles get physically corrupted only. The logical corruption happens within the blocks , for example some index entry pointing towards a null rowid. I am not sure that I have come across any situation/reference where this corruption is mentioned for files as well. To check it, the best possible tool is RMAN which can do the job by some simple commands.
    HTH
    Aman....

  • Logical corruption found in the sysaux tablespace

    Dear All:
    We lately see the logical corruption error when running dbverify command which shows the block corruption. It is always on the the sysaux tablespace. The database is 11g and platform is Linux.
    we get the error like:error backing up file 2 block xxxx: logical corruption and this comes to alert.log out of the automated maintenance job like sqltunning advisor running during maintenance window.
    Now As far as I know,we can't drop or rename the sysaux tablespace. there is a startup migrate option to drop the SYSAUX but it does not work due to the presence of domain indexes. you may run the rman block media recovery but it ends with not fixing since rman backups are more of physical than maintain the logical integrity.
    Any help, advise, suggestion will be highly appreciated.

    If you let this corruption there then you are likely to face a big issue that will compromise database availability sooner or later. The sysaux is a critical tablespace, so you must proceed with caution.
    Make sure you have a valid backup and don't do any thing unless you are sure about what you are doing and you have a fall back procedure.
    if you still have a valid backup then you can use rman to perform a db block level recovery, this will help you in fixing the block. Otherwise try to restore and recover the sysaux. In case you cannot fix the block by refreshing the sysaux tablespace then I suggest you to create a new database and use aTransportable Tablespace technique to migrate all tablespaces from your current database to the new one and get rid of this database.
    ~ Madrid
    http://hrivera99.blogspot.com

  • Ocrcheck shows "Logical corruption check failed"

    Hi, I have a strange issue, that I am not sure how to recover from...
    In a random 'ocrcheck' we found the above 'logical corruption'. In the CRS_HOME/log/nodename/client/ I found the previous ocrcheck was done a month earlier and was successful. So, something in the last month caused a logical corruption. The cluster is functioning ok currently.
    So, I tried doing an ocrdump on some backups we have and I am receiving the following error -
    #ocrdump -backupfile backup00.ocr <<< any backup I try for the past month
    PROT-306: Failed to retrieve cluster registry data
    This error occurrs even on the backup file taken just prior to the successful ocrcheck from a month earlier. The log for this ocrdump shows -
    cat ocrdump_6494.log
    Oracle Database 11g CRS Release 11.1.0.7.0 - Production Copyright 1996, 2007 Oracle. All rights reserved.
    2010-08-18 12:57:17.024: [ OCRDUMP][2813008768]ocrdump starts...
    2010-08-18 12:57:17.038: [  OCROSD][2813008768]utread:3: Problem reading buffer 7473000 buflen 4096 retval 0 phy_offset 15982592 retry 0
    2010-08-18 12:57:17.038: [  OCROSD][2813008768]utread:4: Problem reading the buffer errno 2 errstring No such file or directory
    2010-08-18 12:57:17.038: [  OCRRAW][2813008768]gst: Dev/Page/Block [0/3870/3927] is CORRUPT (header)
    2010-08-18 12:57:17.039: [  OCRRAW][2813008768]rbkp:2: could not read the free list
    2010-08-18 12:57:17.039: [  OCRRAW][2813008768]gst:could not read fcl page 1
    2010-08-18 12:57:17.039: [  OCRRAW][2813008768]rbkp:2: could not read the free list
    2010-08-18 12:57:17.039: [  OCRRAW][2813008768]gst:could not read fcl page 2
    2010-08-18 12:57:17.039: [  OCRRAW][2813008768]fkce:2: problem reading the tnode 131072
    2010-08-18 12:57:17.039: [  OCRRAW][2813008768]propropen: Failed in finding key comp entry [26]
    2010-08-18 12:57:17.039: [ OCRDUMP][2813008768]Failed to open key handle for key name [SYSTEM] [PROC-26: Error while accessing the physical storage]
    2010-08-18 12:57:17.039: [ OCRDUMP][2813008768]Failure when trying to traverse ROOTKEY [SYSTEM]
    2010-08-18 12:57:17.039: [ OCRDUMP][2813008768]Exiting [status=success]...
    NOTE: an 'ocrdump' of the active ocr does work and creates the ocrdumpfile
    The corruption in the ocr seems to be two keynames pointing to the same block.
    Oracle Database 11g CRS Release 11.1.0.7.0 - Production Copyright 1996, 2007 Oracle. All rights reserved.
    2010-08-18 13:22:54.095: [OCRCHECK][285084544]ocrcheck starts...
    2010-08-18 13:22:55.447: [OCRCHECK][285084544]protchcheck: OCR status : total = [262120], used = [15496], avail = [246624]
    2010-08-18 13:22:55.545: [OCRCHECK][285084544]LOGICAL CORRUPTION: current_keyname [SYSTEM.css.diskfile2], and keyname [SYSTEM.css.diskfile1.FILENAME] point to same block_number [3928]
    2010-08-18 13:22:55.732: [OCRCHECK][285084544]LOGICAL CORRUPTION: current_keyname [SYSTEM.OCR.MANUALBACKUP.ITEMS.0], and keyname [SYSTEM.css.diskfile1] point to same block_number [3927]
    2010-08-18 13:23:03.159: [OCRCHECK][285084544]Exiting [status=success]...
    Since one of the keynames refers to the votedisk, that is not appearing correctly on a query -
    crsctl query css votedisk
    0. 0 /oracrsfiles/voting_disk_01
    1. 0
    2. 0 backup_20100818_103455.ocr <<<<this value changes if I issue a command that writes something to the ocr, in this case a manual backup.
    My DBA is opening an SR, but I am wondering if I can use 'ocrconfig -restore' if the backupfile I want to use cannot be 'ocrdump'd?
    Also, is anyone familiar with the 'ocrconfig -repair' as a possible solution?
    Although this is a developement cluster (two nodes) rebuilding would be a disaster ;)
    Any help or thoughts would be much appreciated!

    Hi buddy,
    My DBA is opening an SRWell.... corruption problems, no doubts that it's better work with support team
    , but I am wondering if I can use 'ocrconfig -restore' if the backupfile I want to use cannot be 'ocrdump'd?No, that is not the idea...if Your backup is not good, it's not safe restoring it. ;)
    Also, is anyone familiar with the 'ocrconfig -repair' as a possible solution?This is for repairing nodes that were down when some kind of change on the configuration (replace OCR for example) has been executed while it was "off", so, I guess it's not Your case.
    Good Luck!
    Cerreia

  • Logically corrupted blocks in standby

    Hi
    Assume I have a primary database and standby database.
    Accidentally, Some of the objects (indexes and tables) are in nologging mode in primary database.
    Force logging is not set.
    When I scan the datafiles in standby I realize that some datafiles are logically corrupted because of this issue.
    How can I get rid of these corrupted blocks?
    If I rebuild indexes with logging option, and recreate table as logging,
    Will it solve the problem? or any other suggestion
    Many thanks

    Sivok wrote:
    Hi
    Assume I have a primary database and standby database.
    Accidentally, Some of the objects (indexes and tables) are in nologging mode in primary database.
    Force logging is not set.
    When I scan the datafiles in standby I realize that some datafiles are logically corrupted because of this issue.
    How can I get rid of these corrupted blocks?
    If I rebuild indexes with logging option, and recreate table as logging,
    Will it solve the problem? or any other suggestion
    Many thanksyour primary should run in force logging mode (ALTER DATABASE FORCE LOGGING) then the object level setting is ignored for direct path operations. You can apply an incremental backup to the standby to catchup (or just recreate the standby which might be as quick depending on volumes).
    Niall Litchfield
    http://www.orawin.info/

  • A question about Logical Disk Performace collection Rules and how the Data is displayed in a Report view

    Hello
    I am currently on SCOM 2007 R2 CU6 and Window Server Operating System MP version 6.0.6989.0 (I cannot use the latest version of the MP as we still have some Windows 2000 Servers we need to support, yes I know :( )
    Any way the issue is, I have never found the Logical Disk performance counter data very reliable from SCOM.
    For example, I have a Windows 2008 R2 Server and when looking at a local Logical Disk (which holds an SQL temp DB on a busy SQL Server) and look at the performance counter
    The SCOM collection rule is called "Collection Rule for Average Disk Seconds per Transfer"
    The actual Windows Perfmon counter is called "Avg. Disk Bytes/Transfer"
    if you look at the description of the above Perfmon counter it is described as 
    "Avg. Disk Bytes/Transfer is the average number of bytes transferred to or from the disk during write or read operations."
    The problem I have is as follows:
    The resulting SCOM performance chart over several days (which has a scale ox 1x) states the value never reach 3 (e.g. maximum wa s 2.7 say). I cannot believe the a drive holding the tempDB databases for a busy SQL Server does not transfer more then 2.7 "bytes"
    of data at a given to to its tempDB databases!
    Indeed when I look at Permon on the Server and looks at this counter over say 20 minutes or so, the figure is often in the 10,000 or 30,000 bytes etc. It does fall back to 0 (zero) momentarily but mostly it is in the 1000s, or 10,000s etc.
    Therefore when my boss says show me the "Avg. Disk Bytes/Transfer" and SCOM says it has not exceeded 2.7 over the last business week (i.e. the chart never peak above this value on the chart with scale 1x) he naturally does not believe it!!
    Any advice please regarding the above. Is it the fact if the counter ever falls to zero it messes up the SCOM report charts?
    Thanks
    AAnotherUser
    AAnotherUser__

    Create your own collection rule, to mirror the sample times, and what not.  Look at the data from your rule vs the mp default rule.  It probably has to do with the chart scale imho.
    Regards, Blake Email: mengotto<at>hotmail.com Blog: http://discussitnow.wordpress.com/ If my response was helpful, please mark it as so, if it answered your question, then please also mark it accordingly. Thank you.

  • Question on Logic of seperation in OOAbap-Selection screen

    Hello guys
    I like to ask you one question i found and get your ideas.
    If you look at the codes for creating an ALV
    it always recommends you to seperate logic and business layer etc..
    this is the new way of creating an ALV
    So you have  a model view and a controller
    I implemented that following useful resources.
    So that there s class called view
    and the selection screen gets called from there inside the method
    like
        call SELECTION-SCREEN 100.
         IF sy-subrc EQ 0.
         ENDIF.
    But one issue when you execute the report and press GO BACK standard button it doesnot come back to your selection screen but way to your code.
    Is there a get around to that?
    here is the code below:
    Header 1
    *& Report  ZZ_SOLEN_FIRST
    REPORT ZZ_SOLEN_FIRST.
    DATA: gv_vbeln type vbap-Vbeln.
    ***Screen
    SELECTION-SCREEN: BEGIN OF SCREEN 100 TITLE t-004.
    SELECTION-SCREEN: BEGIN OF block aa WITH FRAME TITLE t-001.
    SELECT-OPTIONS: s_vbeln FOR gv_vbeln.
    SELECTion-SCREEN: END OF block aa.
    SELECTion-SCREEN: END OF SCREEN 100.
    *****DATA Layer
    class lcl_data DEFINITION.
       PUBLIC SECTION.
         TYPES: BEGIN OF ty_out,
           vbeln type vbap-vbeln,
           posnr type vbap-posnr,
           matnr type vbap-matnr,
           vkorg type vbak-vkorg,
           END OF ty_out
         TYPES: tt_out TYPE STANDARD TABLE OF ty_out.
         TYPES: gr_vbeln TYPE RANGE OF vbap-vbeln.
         DATA: gt_output TYPE tt_out.
         methods: constructor,
                  select_data IMPORTING VALUE(rs_vbeln) TYPE gr_vbeln.
    ENDclass.
    class lcl_data IMPLEMENTATION.
       method constructor.
         clear GT_OUTPUT.
       ENDMETHOD.
       method select_data.
         DATA: lt_vbak type SORTED TABLE OF vbak WITH UNIQUE KEY vbeln.
         FIELD-SYMBOLS: <lfs_output> like LINE OF gt_output,
                        <lfs_vbak> like LINE OF lt_vbak
         select vbeln posnr matnr from vbap
           INto TABLE
            GT_OUTPUT
           where vbeln in S_VBELN
         IF sy-SUBRC EQ 0.
           select * from vbak
             INTO TABLE lt_vbak
             FOR ALL ENTRIES IN  GT_OUTPUT
             where vbeln = GT_OUTPUT-vbeln
           LOOP AT gt_output ASSIGNING <lfs_output>.
             READ TABLE lt_vbak ASSIGNING <lfs_vbak>
             with TABLE KEY vbeln = <lfs_output>-vbeln.
             IF sy-Subrc eq 0.
               <lfs_output>-vkorg = <lfs_vbak>-VKORG.
             ENDIF.
           ENDLOOP.
         ENDIF.
       ENDMETHOD.
    ENDCLASS.
    ****Display
    class lcl_view DEFINITION.
       PUBLIC SECTION.
         methods: start RETURNING VALUE(rv_true) type abap_bool.
         METHODS: display CHANGING it_data TYPE STANDARD TABLE.
    ENDCLASS.
    class lcl_view IMPLEMENTATION.
       METHOD start.
         call SELECTION-SCREEN 100.
         IF sy-subrc EQ 0.
           rv_true = abap_true.
         ENDIF.
       endmethod.
       method display.
         DATA: lo_salv_table type REF TO CL_SALV_TABLE,
               lt_columns TYPE SALV_T_COLUMN_REF.
         FIELD-SYMBOLS: <lfs_columns> like LINE OF lt_columns.
         CL_SALV_TABLE=>FACTORY(
    *    exporting
    *      LIST_DISPLAY   = IF_SALV_C_BOOL_SAP=>FALSE    " ALV Displayed in List Mode
    *      R_CONTAINER    =     " Abstract Container for GUI Controls
    *      CONTAINER_NAME =
           importing
             R_SALV_TABLE   = lo_salv_table    " Basis Class Simple ALV Tables
           changing
             T_TABLE        = it_data
    *    catch CX_SALV_MSG.    " ALV: General Error Class with Message
         lt_columns = lo_salv_table->GET_COLUMNS( )->GET( ).
    *    LOOP AT  lt_columns ASSIGNING <lfs_columns>.
    *    break developer.
    *    ENDLOOP.
         lo_salv_table->DISPLAY( ).
       ENDMETHOD.
    ENDCLASS.
    class lcl_controller DEFINITION.
       PUBLIC SECTION.
         methods: main.
    ENDCLASS.
    class lcl_controller IMPLEMENTATION.
       method main.
         DATA: lo_view type REF TO lcl_view,
               lo_data TYPE REF TO LCL_DATA .
         CREATE OBJECT: lo_data, lo_view.
         break developer.
         IF lo_view->START( ) Eq abap_true.
    **get the data
           lo_data->SELECT_DATA( s_vbeln[] ).
           lo_view->DISPLAY(
             changing
               IT_DATA = lo_data->GT_OUTPUT
         ENDIF.
       ENDMETHOD.
    ENDCLASS.
    INITIALIZATION.
    START-OF-SELECTION.
       break developer.
       DATA: lo_controller type REF TO lcl_controller.
       CREATE OBJECT lo_controller.
       lo_controller->MAIN( ).

    Here is the complete code that works fine!!!
    Thanks to your ideas:
    OO ALV
    *& Report  ZZ_SOLEN_FIRST
    REPORT ZZ_SOLEN_FIRST.
    DATA: gv_vbeln type vbap-Vbeln.
    ***Screen
    SELECTION-SCREEN: BEGIN OF SCREEN 100 TITLE t-004.
    SELECTION-SCREEN: BEGIN OF block aa WITH FRAME TITLE t-001.
    SELECT-OPTIONS: s_vbeln FOR gv_vbeln.
    SELECTion-SCREEN: END OF block aa.
    SELECTion-SCREEN: END OF SCREEN 100.
    *****DATA Layer
    class lcl_data DEFINITION.
       PUBLIC SECTION.
         TYPES: BEGIN OF ty_out,
           vbeln type vbap-vbeln,
           posnr type vbap-posnr,
           matnr type vbap-matnr,
           vkorg type vbak-vkorg,
           END OF ty_out
         TYPES: tt_out TYPE STANDARD TABLE OF ty_out.
         TYPES: gr_vbeln TYPE RANGE OF vbap-vbeln.
         DATA: gt_output TYPE tt_out.
         methods: constructor,
                  select_data IMPORTING VALUE(rs_vbeln) TYPE gr_vbeln.
    ENDclass.
    class lcl_data IMPLEMENTATION.
       method constructor.
         clear GT_OUTPUT.
       ENDMETHOD.
       method select_data.
         DATA: lt_vbak type SORTED TABLE OF vbak WITH UNIQUE KEY vbeln.
         FIELD-SYMBOLS: <lfs_output> like LINE OF gt_output,
                        <lfs_vbak> like LINE OF lt_vbak
         select vbeln posnr matnr from vbap
           INto TABLE
            GT_OUTPUT
           where vbeln in S_VBELN
         IF sy-SUBRC EQ 0.
           select * from vbak
             INTO TABLE lt_vbak
             FOR ALL ENTRIES IN  GT_OUTPUT
             where vbeln = GT_OUTPUT-vbeln
           LOOP AT gt_output ASSIGNING <lfs_output>.
             READ TABLE lt_vbak ASSIGNING <lfs_vbak>
             with TABLE KEY vbeln = <lfs_output>-vbeln.
             IF sy-Subrc eq 0.
               <lfs_output>-vkorg = <lfs_vbak>-VKORG.
             ENDIF.
           ENDLOOP.
         ENDIF.
       ENDMETHOD.
    ENDCLASS.
    ****Display
    class lcl_view DEFINITION.
       PUBLIC SECTION.
         methods: start RETURNING VALUE(rv_return_flag) type abap_bool.
         METHODS: display CHANGING it_data TYPE STANDARD TABLE.
    ENDCLASS.
    class lcl_view IMPLEMENTATION.
       METHOD start.
         call SELECTION-SCREEN 100.
         IF sy-subrc EQ 0.
           rv_return_flag = abap_true.
         ENDIF.
       endmethod.
       method display.
         DATA: lo_salv_table type REF TO CL_SALV_TABLE,
               lt_columns TYPE SALV_T_COLUMN_REF.
         FIELD-SYMBOLS: <lfs_columns> like LINE OF lt_columns.
         CL_SALV_TABLE=>FACTORY(
    *    exporting
    *      LIST_DISPLAY   = IF_SALV_C_BOOL_SAP=>FALSE    " ALV Displayed in List Mode
    *      R_CONTAINER    =     " Abstract Container for GUI Controls
    *      CONTAINER_NAME =
           importing
             R_SALV_TABLE   = lo_salv_table    " Basis Class Simple ALV Tables
           changing
             T_TABLE        = it_data
    *    catch CX_SALV_MSG.    " ALV: General Error Class with Message
         lt_columns = lo_salv_table->GET_COLUMNS( )->GET( ).
    *    LOOP AT  lt_columns ASSIGNING <lfs_columns>.
    *    break developer.
    *    ENDLOOP.
         lo_salv_table->DISPLAY( ).
       ENDMETHOD.
    ENDCLASS.
    class lcl_controller DEFINITION.
       PUBLIC SECTION.
         methods: main.
    ENDCLASS.
    class lcl_controller IMPLEMENTATION.
       method main.
         DATA: lo_view type REF TO lcl_view,
               lo_data TYPE REF TO LCL_DATA .
         CREATE OBJECT: lo_data, lo_view.
         break developer.
    *    while lo_view->START( ) eq abap_true.
    ***get the data
    *      lo_data->SELECT_DATA( s_vbeln[] ).
    *      lo_view->DISPLAY(
    *        changing
    *          IT_DATA = lo_data->GT_OUTPUT
    *    ENDWHILE.
         do.
           if lo_view->START( ) eq abap_true.
    ***get the data
             lo_data->SELECT_DATA( s_vbeln[] ).
             lo_view->DISPLAY(
               changing
                 IT_DATA = lo_data->GT_OUTPUT
           else.
             return.
           ENDIF.
         ENDDO.
       ENDMETHOD.
    ENDCLASS.
    class lcl_test_submit DEFINITION.
       PUBLIC SECTION.
         TYPES: tr_vbeln TYPE RANGE OF vbap-vbeln.
         data: lt_list type table_abaplist.
         methods: test_submit IMPORTING VALUE(ir_vbeln) type tr_vbeln
                              EXCEPTIONS submit_failed
                                         no_data_found
    ENDCLASS.
    class lcl_test_submit IMPLEMENTATION.
       method test_submit.
      submit ZZ_SOLEN_FIRST
       with s_vbeln in ir_vbeln
       exporting list to memory and return
    ***Get the list from the memory
        call function 'LIST_FROM_MEMORY'
           tables
             listobject = lt_list
           exceptions
             not_found  = 1
             others     = 2.
         if sy-subrc <> 0.
           raise submit_failed.
         endif.
         if lt_list is initial.
           raise no_data_found.
         endif.
       ENDMETHOD.
    ENDCLASS.
    INITIALIZATION.
    START-OF-SELECTION.
       break developer.
       DATA: lo_controller type REF TO lcl_controller.
    ****Testing the Main
       CREATE OBJECT lo_controller.
       lo_controller->MAIN( ).

  • Logical corruption of block

    Dear Experts
    Can you pls help in understanding of logical block corruption in detail.
    Thanks
    Asif Husain Khan

    I wrote a small piece of note about it over my blog, you may want to read that,
    http://blog.aristadba.com/?p=109
    HTH
    Aman....

  • Logical corruption

    Hi DBA's,
    We performed corruption check using RMAN and there are some block corrupted in 2 datafiles on the Standby Database.
    My question is it possible to recover those three Datafiles alone if so please suggest me.
    Please give me feedback for my plan.
    1.Rman Datafile backup from primary
    2.Take the Tablespace offline
    3.drop the datafile
    4.Restore the Datafile
    5.Recover the Datafile
    6.Bring the Tablespace online
    corrupted files
    FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
    28 1508048 16 5446971876 NOLOGGING
    28 1508112 16 5446971876 NOLOGGING
    28 1508176 16 5446971876 NOLOGGING
    28 1508240 16 5446971876 NOLOGGING
    30 3083769 1289 5450419752 NOLOGGING
    30 3085079 1289 5450419837 NOLOGGING
    30 3086389 1289 5450419841 NOLOGGING
    30 3087684 1304 5450419884 NOLOGGING
    30 3088994 122 5450419888 NOLOGGING
    Thanks in Advance,
    Raja...

    Hi Raja
    Are your tablespaces in NOLOGGING mode in a standby environment? Or have you turned on FORCE LOGGING anyway at database level?
    If you do a NOLOGGING operation in an logging-unenforced database, you will certianly encounter these issues now and then.
    Try DBMS_REPAIR package to fix the corrupt blocks or Use RMAN to do block recovery.
    If you have to restore the datafiles, your steps look fine. But remember to turn on managed recovery in standby after the recovery.

  • Question about replacing corrupted file in windows 7

    hi,
    I read in windows 7 bible that if a system file is corrupted , I can replace it with system recovery tool (at command prompt) if I have onother computer with windows 7 installed. 
    my question is here , if I replace any file with copy the file from computer to dvd and replac it on my computer ,  does the windows version must be the same for 64 bit or it doesn't a matter.
    thanks
    johan
    h.david

    Hi,
    Yes, the version must be the same. You may be able to get a known good copy of the system file from another computer that is
    running the same version of Windows with your computer. For different versions there may be different configuration settings in the files that you operating on which if replaced with the wrong version might cause new issues.
    More information regarding How to manually replace a corrupted system file with a known good copy of the file, please check it in the link:Use
    the System File Checker tool to repair missing or corrupted system files
    Hope this may help
    Best regards
    Michael
    If you have any feedback on our support, please click
    here.
    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

  • Question on Directory corruption

    Hello,
    I posted last week about my system wide crash on my PM G5. I took it to the Apple store and they diagnosed it as a fried processor. The liquid cooling had also ruptured leaking into the unit. They replaced the processor and I picked up the computer last night. I booted out of my external drive and repaired permissions on my Macintosh HD. I also verified the disk and there were no errors detected. The problem I am having is my spotlight does not seek out the files when rendering the search. For example, I searched for "system profiler" and spotlight did not show the application in its result. When I manualy opened system profiler, then spotlight was able to find it on a subsequent search. This seems to be a consistent thing with alot of program files (it won't find them until I open the file ahead of time). Otherwise, the computer is behaving ok. Does this seem to be a directory corruption of some kind??
    What is the BEST way to deal with this?
    Should I purchase Disk Warrior and use it. Is that just a quick fix or a permanent one?
    Should I back up my data and wipe my hard drive and re-install? I don't want to have to manually reinstall my third party applications one by one. Is there an efficient way around this??
    thanks for all your advice and I PROMISE I will (as I do always) grant points for helpful and solved questions
    RezF
    PM G5 Tiger 10.4.9

    Delete the Spotlight Index files and rebuild.
    I use Tiger Cache Cleaner. But a search will offer more utilities.
    http://www.macupdate.com
    You don't have Disk Warrior?? shame
    That and two backups (backups first, DW4 next).
    Disk Utility does not find every and all errors or problems.
    Add Applejack to your list of tools, too. Deleting the cache files with it improves performance and eliminates some headaches.
    I probably would have erased my hard drive and done a restore from cloned backups. I repair a disk first, never bother to verify, and then run "repair" permissions.
    The Mac's Finder has a real case of amnesia and deferred updating. Something that TCC can help cure by forcing the Finder to be more pro-active. Faster disk drives, more memory for caching, keeping your drives in good health.

  • Basic questions about Logic Pro

    Reading the topics and discussion groupes in this Logic Pro community is a tiny bit scary to me I admitt.
    Yet I will launch my basic question into the air, hoping to get an answer.
    I am a complete beginner in this field and only read something about this Logic Pro program a day ago.
    My question is simple: Is Logic Pro useful for people like me?
    I do not play an instrument, I have no editing and other skills mentioned in the forums, I never put a note on paper or computer before.
    I would only love to find a way to get some music out of my head. That's all.
    Should I take a course first and maybe then get the program? Or is this not what i am looking for?
    Thank you community!
    Eduard

    Your question is impossible to answer. Although... maybe you should just try Garageband first. It's free, and what you learn on it transfers to Logic (Garageband is now in fact Logic Lite).
    And making Dance music really is not that hard, here's a brilliant tutorial from a countryman of yours:
    http://www.youtube.com/watch?v=_N8vSo6gvGg

  • Question for Logic porfessional

    Can someone out there actually explain the relationship that automation data has to the global cut/ insert time features?when or how Is it effected?
    why can't I insert globally snipped song sections WITH the automation?
    How is automation data affected when global cut/snip commands a=re entered?
    There is nothing "global" about this behavior...

    I dont use Logic 8 (still on 7) but since no one has come to your rescue yet, I'll give it a shot.
    In L7, if you want to make sure your automation moves and adjusts with your global edits, its best to change it from "track based" automation to "region based" automation. To do this in L7, select the region where the automation is located (if there is no region; e.g. automation on an aux, create a region using the pencil tool and expand it to cover all automation) and go OPTIONS menu -> TRACK AUTOMATION -> "Move current track data to region data." Now when you make global changes, the automation should adjust as well. If you want to return the data back to track data (for easier editing, etc) simply select "move current region data to track data" and edit away.
    I know for a fact this method works, as this is how I move my automation data into folders, which I can then place wherever I want in a song, or even move to a different song. If you haven't explore folders yet, I HIGHLY recommend you do, as judging from your question would would benefit from this feature.
    I dont have Logic 8, so I don't know if these functions are located in the same menus or even named the same, but they should be in there somewhere. BTW, Logic is a region based program, and so it sometimes has trouble with track based information. Not that I'm making excuses for the program, it should just WORK, but when it doesn't, it helps to "think like the program" when trouble shooting.
    All the best!
    Message was edited by: Jonathan Timpe

  • Pro Tools convert to Logic Newbie some simple question for logic users

    Hey guys, I am a recent convert from Pro Tools! and There were just some simple questions I thought some of you may be able to help me out with. I am using Logic 9.1.1
    1) After I set up a multi timbral software instrument (in this case MOTU Symphonic Library) how do I set up midi channels to trigger the individual sounds in the instrument. (in pro tools I used to create a midi track then send an output of that track to that particular soft synth)
    2) How do I set up a and forgive my Pro Tools vocab but basically I want to set up a reverb channel on an aux track have it receive on a bus so I can send other tracks to that particular bus.
    Thanks for the insight and really looking forward to finally make use of all this ram! lol

    1) I have a nord stage and would like record via midi. In pro tools i would usually need to create a midi track with the output set the the nord and an audo aux track to hear it What would I do in order to record midi from my nord stage?
    To record, just select a non-audio track, hit record and play the keyboard. The notes will get recorded into a region.
    If you want to play it back to the Nord Stage as well, then it makes sense to set the Nord up as a MIDI device in your templates, so you can just add the Nord to a track and not worry about what MIDI ports it's on etc. Open the environment, create a New -> Instrument, called it "Nord Stage", set the MIDI port and MIDI channels it's on, and sav your template.
    Now, when you start a song, to sequence the Nord, you just assign the Nord instrument to a track (by for instance, right clicking on a track and choosing your Nord instrument from the list of environment obects that appears).
    2) The multi instrument trick is quick and easy its great but How would I do that manually?
    Lots of ways, look into your key commands, ther are all kinds of "Create track with same instrument", "Create track with next MIDI channel" and so on. There are too many ways to do this to quickly talk about here. In short, all tracks have an environment object assigned to them, whether it's an audio object, or a MIDI instrument object, and this determines where the data on the track goes.
    3) How do you set up midi so that it doen'ts overwrite notes when recording over them?
    Not sure I understand you here...

Maybe you are looking for