Configure about the DATA GUARD APPLICATION on ORACLE 9i platform

I have worked on Oracle 9i (9.2.0.1) platform. I have installed Oracle 9i server edition in my machine, and created one database name ORCL.
I want to configure DATA GUARD APPLICATION in my machine... is it possible?
if it is then how can I do this...

Yes, it is possible.
Please refer to the Dataguard Concepts and Administration Manual for installation guidance.
Please do not bother to come back to ask further doc questions, showing you are not prepared to do your own work.
Sybrand Bakker
Senior Oracle DBA

Similar Messages

  • ORA-16525: the Data Guard broker is not yet available while conneting ...

    Hi,
    I am trying to connect oracle database instance in dgmgrl prompt.
    Following error message appear ...
    DGMGRL>
    DGMGRL> connect sys/<password>@<oracle_service_name>
    Connected.
    Error:
    ORA-16525: the Data Guard broker is not yet available
    ORA-06512: at "SYS.DBMS_DRS", line 124
    ORA-06512: at line 1
    DGMGRL> exit
    $ e
    We are using oracle enterprise manager ...
    SSM

    DG broker is the way to go. There are only minor points you can't control - like when you have standby redo logs and no redo application delay, dg broker will always start real-time apply.
    Also, DG broker is the only way if you want fast-start failover (10gR2 feature).
    What is the latency of your nework, especially under load? Add this latency to each commit - will the commit time be acceptable? If not, you cannot use sync.
    What version do you use? In 10gR1, there are issues with async - there is only about 50MB buffer, and if you get such backlog, even with async commit will wait for standby. (In 10gR2 this is solved, async will read from disk redo logs.)
    NET_TIMEOUT - set it low for sync (so commits won't hang long), higher for async. Default is 180 seconds, Oracle recommends minimum value to 10 seconds. I would start with 10 sec for sync, 180 for sync. The main question is, how reliable your network is, and how long brownouts you want to survive without affecting data protection (with the expense of performance).
    Regarding the proper setting of all bells and whistles of archive_log_dest_n - I had best experience with leaving it to dg broker. Just set LogXptMode property to sync/async/arch, and let dg broker set everything else (service, valid_for, affirm, retries...).
    The authoritative source: http://www.oracle.com/technology/deploy/availability/htdocs/maa.htm#Publications
    If you are on 10.2.0.1 - 10.2.0.3, please see metalink bug 5578157, 5587231 - if sqlnet.outbound_connection_timeout is not set, the lgwr can hang even if net_timeout is set. (Yes, real-world experience:-)

  • Error: ORA-16525: the Data Guard broker is not yet available

    Hi ,
    After upgrading from 11201 to 11203 ON AIX GI/RDBMS on standby but have not upgraded the primary db yet.I had set dg_broker_start=false and disable configuration before i started the upgrade .
    once the GI for oracle restart was upgraded i upgraded the rdbms binaries and brought up the standby on mount ,while trying to enable configuration its throwing the below error.I had already started the broker process.
    SQL> show parameter dg_
    NAME TYPE VALUE
    dg_broker_config_file1 string /u01/app/omvmxp1/product/11.2.
    0/dbhome_2/dbs/dr1mvmxs2.dat
    dg_broker_config_file2 string /u01/app/omvmxp1/product/11.2.
    0/dbhome_2/dbs/dr2mvmxs2.dat
    dg_broker_start boolean TRUE
    DGMGRL> show configuration;
    Configuration - Matrxrep_brkr
    Protection Mode: MaxAvailability
    Databases:
    mvmxp2 - Primary database
    mvmxs2 - Physical standby database
    Error: ORA-16525: the Data Guard broker is not yet available
    Fast-Start Failover: DISABLED
    Configuration Status:
    ERROR
    from drcmvmxs2.log
    Starting Data Guard Broker bootstrap <<Broker Configuration File Locations:
    dg_broker_config_file1 = "/u01/app/omvmxp1/product/11.2.0/dbhome_2/dbs/dr1mvmxs2.dat"
    dg_broker_config_file2 = "/u01/app/omvmxp1/product/11.2.0/dbhome_2/dbs/dr2mvmxs2.dat"
    12/19/2012 16:05:33
    Data Guard Broker shutting down
    DMON Process Shutdown <<12/19/2012 16:10:20
    Starting Data Guard Broker bootstrap <<Broker Configuration File Locations:
    dg_broker_config_file1 = "/u01/app/omvmxp1/product/11.2.0/dbhome_2/dbs/dr1mvmxs2.dat"
    dg_broker_config_file2 = "/u01/app/omvmxp1/product/11.2.0/dbhome_2/dbs/dr2mvmxs2.dat"
    ~
    Regards
    Edited by: Monto on Dec 19, 2012 1:23 PM

    Hi,
    I removed the configuration and removed the broker files from RAC primary(mvmxp2) and single instance standby(mvmxs2) and re-created back.i tried it many times but getting error "ORA-16532" .I needed to have this standby backup before i start upgrading the primary.
    SQL> alter system set dg_broker_start=true scope=both;
    System altered.
    SQL> exit
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, Automatic Storage Management, OLAP, Data Mining
    and Real Application Testing options
    palmer60:/u01/app/omvmxp1/product/11.2.0/dbhome_2/dbs>dgmgrl
    DGMGRL for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - 64bit Production
    Copyright (c) 2000, 2009, Oracle. All rights reserved.
    Welcome to DGMGRL, type "help" for information.
    DGMGRL> connect sys@mvmxp2
    Password:
    Connected.
    DGMGRL> CREATE CONFIGURATION 'Matrxrep'
    AS
    PRIMARY DATABASE IS 'mvmxp2'
    CONNECT IDENTIFIER IS 'mvmxp2';> > >
    Configuration "Matrxrep" created with primary database "mvmxp2"
    DGMGRL> ADD DATABASE 'mvmxs2'
    AS
    CONNECT IDENTIFIER IS 'mvmxs2'
    ;Database "mvmxs2" added
    DGMGRL> SHOW CONFIGURATION;
    Configuration - Matrxrep
    Protection Mode: MaxPerformance
    Databases:
    mvmxp2 - Primary database
    mvmxs2 - Physical standby database
    Fast-Start Failover: DISABLED
    Configuration Status:
    DISABLED
    DGMGRL> ENABLE CONFIGURATION;
    Enabled.
    DGMGRL> SHOW DATABASE MVMXS2;
    Database - mvmxs2
    Role: PHYSICAL STANDBY
    Intended State: APPLY-ON
    Transport Lag: (unknown)
    Apply Lag: (unknown)
    Real Time Query: OFF
    Instance(s):
    mvmxs2
    Database Status:
    DGM-17016: failed to retrieve status for database "mvmxs2"
    ORA-16532: Data Guard broker configuration does not exist
    ORA-16625: cannot reach database "mvmxs2"
    DGMGRL>
    tailed the drcmvmxs2.log during stop and start of the broker
    palmer60:/u01/app/omvmxp1/diag/rdbms/mvmxs2/mvmxs2/trace>tail -f drcmvmxs2.log
    12/19/2012 20:32:20
    drcx: cannot open configuration file "/u01/app/omvmxp1/product/11.2.0/dbhome_2/dbs/dr1mvmxs2.dat"
    ORA-27037: unable to obtain file status
    IBM AIX RISC System/6000 Error: 2: No such file or directory
    Additional information: 3
    12/19/2012 20:32:55
    drcx: cannot open configuration file "/u01/app/omvmxp1/product/11.2.0/dbhome_2/dbs/dr2mvmxs2.dat"
    ORA-27037: unable to obtain file status
    IBM AIX RISC System/6000 Error: 2: No such file or directory
    Additional information: 3
    12/19/2012 20:59:10
    Data Guard Broker shutting down
    DMON Process Shutdown <<12/19/2012 20:59:35
    Starting Data Guard Broker bootstrap <<Broker Configuration File Locations:
    dg_broker_config_file1 = "/u01/app/omvmxp1/product/11.2.0/dbhome_2/dbs/dr1mvmxs2.dat"
    dg_broker_config_file2 = "/u01/app/omvmxp1/product/11.2.0/dbhome_2/dbs/dr2mvmxs2.dat"
    Not sure how to fix this one.
    Regards

  • How to access Data Guard option in Oracle 10g OEM

    Hi All,
    I have Oracle 10g ENTERPRISE EDITION on Unix envoirement. I want to setup logical standby Database through Data Guard technology. But when I brows through OEM I do not find Link for DATA GUARD????
    1) How to access Data Guard option from oracle 10g OEM.
    2) Does It come with Enterprise Edition OR I have to install it separately.
    Regards,
    Darshan

    I am managing almost everything through EM Grid Control. It is easy to setup and configure.
    Anyways, if you have read the documentation on
    Oracle® Data Guard Concepts and Administration and setup your environment accordingly then you should not have any problems. Atleast I can assure you that your production database will not be affected by it.
    Just make sure that you follow each step and read thoroughly. If you have spare machines then you can test and record your configuration before performing it on your production db. This link will provide you with the information on DataGuard.
    http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14239/concepts.htm
    If you think that way then you will never be able to do any new stuff since you will always fear that something might go wrong. Go ahead pal, try it on test machines and you will know that it is not that difficult.
    There are real experts who help people like us in this forum and I know that they are doing a pretty good job.
    All the best.
    Rgds
    Adnan

  • How to bring the data from application server to presentation server

    hi,
    i have one problem,i have written the program which will open the files in the application server when we run the program in the background(sm37),the same data from application server i want to bring into presentation server in the format of (.csv),how to bring the data from application to presentation server can any body help me on this  topic.folowing is the code .
    *& Report  ZPFA_HIER_LOAD
    REPORT  ZFPA_HIER_LOAD.
    *---- Declaration of Oracle connectioN
    DATA con_name LIKE dbcon-con_name VALUE 'COMSHARE'.
    DATA: MFL1(9),MFL2(5),MFL3(9),MFL4(2),MFL5(8) TYPE c.
    DATA : mfilename type string.
    data: begin of matab1 occurs 0,
          MFL1(9) TYPE C,
          MFL2(5) TYPE C,
          MFL3(9) TYPE C,
          MFL4(2) TYPE C,
          MFL5(8) TYPE C  ,
         end of matab1 .
    data: setid(8) type c.
    data: begin of source occurs 0,
          setid(8) type c,
          end of source.
    *PARAMETERS : p_pfile LIKE filename-FILEEXTERN.
    *PARAMETERS : m_bsenty(8). " type c obligatory.
    *mfilename = P_PFILE.
    EXEC SQL.
      SET CONNECTION :con_name
    ENDEXEC.
    EXEC SQL.
      CONNECT TO :con_name
    ENDEXEC.
    EXEC SQL PERFORMING get_source.
      SELECT set_id FROM UNIT_SET INTO
      :setid
      ORDER BY SET_ID
    ENDEXEC.
    start-of-selection.
    LOOP AT SOURCE.
      REFRESH matab1. CLEAR matab1.
      EXEC SQL PERFORMING evaluate.
    SELECT TO_CHAR(MEM_ID),TRIM(TO_CHAR(MEM_PID)) FROM UNIT_TREE INTO :MFL1,
    :MFL5
    where set_id = :SOURCE-SETID ORDER BY MEM_ID
      ENDEXEC.
      if SOURCE-SETID = '80000000'.
       mfilename = '/tmp/aesorg'.
      elseif SOURCE-SETID = '80000006'.
       mfilename = '/tmp/Consolidation_Manager'.
      elseif SOURCE-SETID = '80000010'.
       mfilename = '/tmp/10org'.
      elseif SOURCE-SETID = '80000012'.
       mfilename = '/tmp/20org'.
      elseif SOURCE-SETID = '80000018'.
       mfilename = '/tmp/30org'.
      elseif SOURCE-SETID = '80000025'.
       mfilename = '/tmp/40org'.
      Endif.
      mfilename = '/usr/test.dat'.
    ************************This was i tried***********************
      open dataset mfilename for output in text mode encoding default." IN
    *TEXT MODE ENCODING DEFAULT.
    if sy-subrc <> 0.
    exit.
    endif.
    close dataset mfilename.
    CALL FUNCTION 'GUI_DOWNLOAD'
       EXPORTING
         FILENAME         = MFILENAME
         FILETYPE         = 'ASC'
       TABLES
         data_tab         = matab1
       EXCEPTIONS
         file_write_error = 1
         invalid_type     = 2
         no_authority     = 3
         unknown_error    = 4
         OTHERS           = 10.
    loop at matab1 .
    transfer matab1 to mfilename.
    endloop.
      clear matab1.
    ENDLOOP.
    loop at matab1 .
    transfer matab1 to mfilename.
    endloop.
    close dataset mfilename.
         MFL5 = '0'.
       CLEAR MFL5.
    FORM evaluate.
      if MFL5 = -1.
        MFL5 = ''.
      ENDIF.
      concatenate MFL1 ','   into MFL1.
      concatenate MFL1 ','   into MFL3.
      matab1-MFL1 = MFL1.
      matab1-MFL2 = 'ZBUE,'.
      matab1-MFL3 = MFL3.
      matab1-MFL4 = ' ,'.
      matab1-MFL5 = MFL5.
      append matab1 .
      CLEAR MFL1.
      CLEAR MFL2.
      CLEAR MFL3.
      CLEAR MFL4.
      CLEAR MFL5.
    ENDFORM.
                     "evaluate
    *&      Form  GET_SOURCE
          text
    FORM GET_SOURCE.
      source-setid = setid.
      append source.
      clear source.
    ENDFORM.                    "GET_SOURCE

    Hi Rammohan,
    You cannot use OPEN DATASET to transfer data from application server to presentation server.
    You can do the following :
    <b>Do 1st point in BACKGROUND</b>
    1. Read the data file from application server into an internal table using OPEN DATASET
    <b>Do 2nd point in Foreground</b>
    2. Once you get the data into an internal table, then use FM GUI_DOWNLOAD to download it on presentation server
    You cannot use the above 2 point together in Background because its not possible. Hence you need program it partially in background and partially in foreground.
    Best regards,
    Prashant

  • Oracle 9i Data Guard supported on Windows 2000 platform ?

    Is Oracle 9i Data Guard supported on Windows 2000 platform ?

    YES, we are currently using Data guard on 2000 Windows Server. Will need to have the Management server installed in order to get the Data guard function.

  • How can I download the data to Application Server and Network Drive

    Hi Experts
    I am having problem with download the data to Application Server and Network Drive in back ground. its working in foregorund but not in back ground.please suggest me . Thanks for advance.
    Thanks & Regards
    Raghava

    Hi Experts
    I am using like this
    P_Back is a check box on the selection-screen.
    it_fihrst_out-its internal table
    sy-batch -Program is running in the background
    IF sy-batch IS INITIAL.
        IF p_back = 'X'.
          OPEN DATASET file_01 FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
          IF sy-subrc = 0.
            LOOP AT it_fihrst_out.
              TRANSFER it_fihrst_out TO file_01.
            ENDLOOP.
          ENDIF.
          CLOSE DATASET file_01.
          CASE sy-subrc.
            WHEN 0.
              WRITE: / file_01, / 'successfully generated.'.
            WHEN OTHERS.
              WRITE: / file_01, 'Unexpected error occurred.'.
          ENDCASE.
        ELSE.
          CALL FUNCTION 'WS_DOWNLOAD'
            EXPORTING
              filename                = file_01
              filetype                = 'ASC'
            TABLES
              data_tab                = it_fihrst_out
            EXCEPTIONS
              file_open_error         = 1
              file_write_error        = 2
              invalid_filesize        = 3
              invalid_type            = 4
              no_batch                = 5
              unknown_error           = 6
              invalid_table_width     = 7
              gui_refuse_filetransfer = 8
              customer_error          = 9
              OTHERS                  = 10.
          CASE sy-subrc.
            WHEN 0.
              WRITE: / file_01, / 'successfully generated.'.
            WHEN 2.
              WRITE: / file_01, 'Output Error: File still open'.
            WHEN OTHERS.
              WRITE: / file_01, 'Unexpected error occurred.'.
          ENDCASE.
        ENDIF.
      ELSE.
        LOOP AT it_fihrst_out.
          WRITE:/ it_fihrst_out.
        ENDLOOP.
      ENDIF.
    This is the code .

  • Need Sample code to upload the data to Application Server

    Hi ,
    I need to upload the data to application server.
    The output should be an XML file.
    Can anybody send me sample code for this.
    Reward points are assured.
    Best Regards
    Bhagat.

    may be this code wil help ,first to downjload the XML fine -
    1)
    REPORT  zhr_test2_tk.
    TYPE-POOLS: ixml.
    TYPES: BEGIN OF xml_line,
            data(256) TYPE x,
           END OF xml_line.
    DATA: l_ixml            TYPE REF TO if_ixml,
          l_streamfactory   TYPE REF TO if_ixml_stream_factory,
          l_ostream         TYPE REF TO if_ixml_ostream,
          l_renderer        TYPE REF TO if_ixml_renderer,
          l_document        TYPE REF TO if_ixml_document.
    DATA: l_element_position TYPE REF TO if_ixml_element,
          l_element_title    TYPE REF TO if_ixml_element,
           l_element_flight  TYPE REF TO if_ixml_element,
           l_element_from    TYPE REF TO if_ixml_element,
           l_element_to      TYPE REF TO if_ixml_element,
            l_element_dummy   TYPE REF TO if_ixml_element,
             l_value           TYPE string.
    DATA: l_xml_table       TYPE TABLE OF xml_line,
          l_xml_size        TYPE i,
          l_rc              TYPE i.
    DATA: lt_erec TYPE TABLE OF hrp5126,
          l_erec TYPE hrp5126.
    DATA: date(10),
          time(4),
          filepath TYPE string.
    CONSTANTS: filedir TYPE string VALUE 'C:\tmp\',
               filename TYPE string VALUE 'ZHR_test'.
    START-OF-SELECTION.
    fill internal table
      SELECT * FROM hrp5126 INTO TABLE lt_erec.
    Start filling xml DOM object from internal table lt_erec.
      LOOP AT lt_erec INTO l_erec.
    *Create the root node 'position'
        IF sy-tabix EQ 1.
        create an ixml factory
          l_ixml = cl_ixml=>create( ).
        create Document Object Model
          l_document = l_ixml->create_document( ).
       Fill root node with value 'position'
          l_element_position = l_document->create_simple_element(
                         name   = 'position'
                         parent = l_document ).
        ENDIF.
        IF sy-tabix GT 1.
        create element jobtitle as child of position
          l_value = l_erec-jobtitle.
          l_element_title = l_document->create_simple_element(
                             name   = 'job_title'
                             parent = l_element_position
                             value  = l_value ).
          l_value = l_erec-empl_start_date.
          l_element_dummy = l_document->create_simple_element(
                             name   = 'StartDate'
                             parent = l_element_title
                             value  = l_value ).
          l_value = l_erec-empl_end_date.
          l_element_dummy = l_document->create_simple_element(
                             name   = 'EndDate'
                             parent = l_element_title
                             value  = l_value ).
        ENDIF.
      ENDLOOP.
      IF sy-subrc NE 0.
        WRITE: 'No data in table hrp5125'.
      ENDIF.
    create a stream factory
      l_streamfactory = l_ixml->create_stream_factory( ).
    connect internal XML table to streamfactory
      l_ostream = l_streamfactory->create_ostream_itable(
                      table = l_xml_table ).
    render the document
      l_renderer = l_ixml->create_renderer( ostream  = l_ostream
                                            document = l_document ).
      l_rc = l_renderer->render( ).
    Get time and date
      WRITE sy-uzeit2(2) TO time2(2).
      WRITE sy-uzeit0(2) TO time0(2).
      WRITE sy-datum4(2) TO date0(2).
      WRITE sy-datum6(2) TO date2(2).
      WRITE sy-datum0(4) TO date4(4).
    *Build filename with date and time reference
    CONCATENATE filedir filename date time '.xml' INTO filepath.
    <i>* This is the code I hope to modify in order to save the xml structure on the application server, with a specified filepath.</i>
    <b>  OPEN DATASET filepath FOR OUTPUT IN BINARY MODE.
      LOOP AT lt_erec into l_erec.
        TRANSFER  l_erec TO filepath.
      ENDLOOP.
      CLOSE DATASET filepath.</b>
    save XML document
      l_xml_size = l_ostream->get_num_written_raw( ).
    *This is the code for download to local computer
    CALL METHOD cl_gui_frontend_services=>gui_download
       EXPORTING
         bin_filesize            = l_xml_size
         filename                = filepath
         filetype                = 'BIN'
       CHANGING
         data_tab                = l_xml_table
       EXCEPTIONS
         file_write_error        = 1
         no_batch                = 2
         gui_refuse_filetransfer = 3
         invalid_type            = 4
         no_authority            = 5
         unknown_error           = 6
         header_not_allowed      = 7
         separator_not_allowed   = 8
         filesize_not_allowed    = 9
         header_too_long         = 10
         dp_error_create         = 11
         dp_error_send           = 12
         dp_error_write          = 13
         unknown_dp_error        = 14
         access_denied           = 15
         dp_out_of_memory        = 16
         disk_full               = 17
         dp_timeout              = 18
         file_not_found          = 19
         dataprovider_exception  = 20
         control_flush_error     = 21
         OTHERS                  = 22.
    IF sy-subrc <> 0.
       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    2) uploading tht PC XML file to APPliaction server -
    DATA rec like QISRS_XML_LINE.
    OPEN DATASET filepath FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
    LOOP AT l_xml_table into rec.
    TRANSFER rec TO filepath.
    ENDLOOP.
    CLOSE DATASET filepath.

  • What is the SAFEST SEQUENCE to convert from a Outlook/iPad/iPhone synced with MobileMe to syncing with iCloud (I have 10 years of calendar diary events and 3000 contacts) - I am worried about the data issues that have been posted about iCloud.

    What is the SAFEST SEQUENCE to convert from a Outlook/iPad/iPhone synced with MobileMe to syncing with iCloud (I have 10 years of calendar diary events and 3000 contacts) - I am worried about the data issues that have been posted about iCloud.
    This has worked fine with MobileMe with only a couple of minor glitches in the past.
    Any experience doing this the "right" way?

    The warranty entitles you to complimentary phone support for the first 90 days of ownership.

  • Uploading the data to application server

    Hi,
    I have created a report.In the selection screen I have created 2 check boxes(screen,server).If I click on the screen check box the o/p should be displayed on the screen.If I click on the server checkbox the o/p should be sent to the application server.How can I send the data to application server?
    Regards,
    Hema

    Hi Hema,
    Since the location that you have mentioned is some outside the systema nd no the Application Server,this third party location can be done only when there is some other T-code that has been integrated with the system.
    If in case,you want to send the data to the Presentation server when you clikc on the Checkbox for it, and else,it should save it on the Applicaton server ,the code is mentioned below:
    *& Report  ZHYPERION                                                   *
    *& Project : SubSea7
    Created on : 07/02/2007
    Created by : Puneet Jhari.
    *& Purpose : For SAP Interface download Hyperion.
    REPORT  zhyperion NO STANDARD PAGE HEADING  MESSAGE-ID zhyper.
    Start of Data Declaration
    TYPE-POOLS : truxs,vrm.
    TABLES : glpct,cepc.
    DATA : var TYPE i,
            total TYPE f.
    DATA : BEGIN OF wa2,
           ryear LIKE glpct-ryear,
           rbukrs LIKE glpct-rbukrs,
           racct LIKE glpct-racct,
           ksl01 LIKE glpct-ksl01,
           END OF wa2.
    DATA : BEGIN OF wa3,
           ryear LIKE glpct-ryear,
           rbukrs LIKE glpct-rbukrs,
           racct LIKE glpct-racct,
           ksl01 LIKE glpct-ksl01,
           END OF wa3.
    DATA : BEGIN OF wa4,
           racct LIKE glpct-racct,
           END OF wa4.
    DATA : BEGIN OF wa5,
           rbukrs LIKE glpct-rbukrs,
           racct LIKE glpct-racct,
           total1(8) TYPE p DECIMALS 2,
           END OF wa5.
    DATA : BEGIN OF wa9,
           khinr LIKE cepc-khinr,
           racct LIKE glpct-racct,
           total1(8) TYPE p DECIMALS 2,
           END OF wa9.
    DATA : BEGIN OF wa6,
           khinr LIKE cepc-khinr,
           prctr LIKE cepc-prctr,
           rprctr LIKE glpct-rprctr,
           ryear LIKE glpct-ryear,
           rbukrs LIKE glpct-rbukrs,
           racct LIKE glpct-racct,
           ksl01 LIKE glpct-ksl01,
           END OF wa6.
    DATA : BEGIN OF wa7,
           khinr LIKE cepc-khinr,
           prctr LIKE cepc-prctr,
           rprctr LIKE glpct-rprctr,
           ryear LIKE glpct-ryear,
           rbukrs LIKE glpct-rbukrs,
           racct LIKE glpct-racct,
           ksl01 LIKE glpct-ksl01,
           END OF wa7.
    DATA : itab3 LIKE TABLE OF wa2,
           itab4 LIKE TABLE OF wa3,
           itab5 LIKE TABLE OF wa4 WITH HEADER LINE,
           itab6 LIKE TABLE OF wa5 WITH HEADER LINE,
           itab7 LIKE TABLE OF wa6,
           itab8 LIKE TABLE OF wa7,
           itab10 LIKE TABLE OF wa9.
    DATA : flag(1) TYPE c,
           temp(6) TYPE c.
    DATA : itab2 TYPE truxs_t_text_data,
           itab9 TYPE truxs_t_text_data WITH HEADER LINE.
    DATA : name TYPE vrm_id,
           list TYPE vrm_values,
           value LIKE LINE OF list,
           FILNAM11 TYPE STRING,
           FILNAM21 TYPE STRING.
    End of Data Declaration
    Begin of Selection Screen
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: r1 DEFAULT 'X' RADIOBUTTON GROUP g1 USER-COMMAND rad1,
    r2 RADIOBUTTON GROUP g1 .
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-005.
    PARAMETERS: rbukrs1 TYPE glpct-rbukrs MODIF ID ful,
                khinr1 TYPE cepc-khinr AS LISTBOX VISIBLE LENGTH 20
                MODIF ID sam ,
                ryear1 TYPE glpct-ryear MODIF ID ful,
                ryear2 TYPE glpct-ryear MODIF ID sam,
                rpmax1 TYPE i MODIF ID ful,
                rpmax2 TYPE i MODIF ID sam,
                filnam1 TYPE rlgrap-filename MODIF ID ful,
                filnam2 TYPE RLGRAP-FILENAME MODIF ID sam.
    SELECTION-SCREEN END OF BLOCK b3.
    End of Selection Screen
    AT SELECTION-SCREEN OUTPUT
    AT SELECTION-SCREEN OUTPUT.
    PERFORM populate.          "For populating the drop-down list.
    CLEAR VALUE.
    REFRESH LIST.
    NAME = 'KHINR1'.
    VALUE-KEY = '1S7_NOCASV'.
    VALUE-TEXT = '1S7_NOCASV'.
    APPEND VALUE TO LIST.
    VALUE-KEY = '1S7_NOCJOT'.
    VALUE-TEXT = '1S7_NOCJOT'.
    APPEND VALUE TO LIST.
    LOOP AT SCREEN.            "For toggling between the selection screens.
        IF r1 EQ 'X'.
          IF screen-group1 = 'SAM'.
            screen-active = 0.
          ENDIF.
        ELSEIF r2 EQ 'X'.
          IF screen-group1 = 'FUL'.
            screen-active = 0.
          ENDIF.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    For the Drop-Down Listbox
      CALL FUNCTION 'VRM_SET_VALUES'
        EXPORTING
          id                    = name
          values                = list
    EXCEPTIONS
      ID_ILLEGAL_NAME       = 1
      OTHERS                = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    Begin of Data Selection
    START-OF-SELECTION.
    When Company Code radio button is selected.
      IF r1 EQ 'X'.            "If Company Code radio button is selected.
        IF rbukrs1 IS INITIAL.
          MESSAGE i002.
          LEAVE TO SCREEN 1000.
        ENDIF.
        IF rpmax1 IS INITIAL.
          MESSAGE i002.
          LEAVE TO SCREEN 1000.
        ENDIF.
        IF ryear1 IS INITIAL.
          MESSAGE i002.
          LEAVE TO SCREEN 1000.
        ENDIF.
        IF filnam1 IS INITIAL.
          MESSAGE i002.
          LEAVE TO SCREEN 1000.
        ENDIF.
    MOVE FILNAM1 TO FILNAM11.
        CASE rpmax1.
          WHEN '01'.
            SELECT ryear rbukrs racct ksl01
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '02'.
            SELECT ryear rbukrs racct ksl02
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '03'.
            SELECT ryear rbukrs racct ksl03
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '04'.
            SELECT ryear rbukrs racct ksl04
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '05'.
            SELECT ryear rbukrs racct ksl05
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '06'.
            SELECT ryear rbukrs racct ksl06
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '07'.
            SELECT ryear rbukrs racct ksl07
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '08'.
            SELECT ryear rbukrs racct ksl08
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '09'.
            SELECT ryear rbukrs racct ksl09
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '10'.
            SELECT ryear rbukrs racct ksl10
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '11'.
            SELECT ryear rbukrs racct ksl11
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '12'.
            SELECT ryear rbukrs racct ksl12
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '13'.
            SELECT ryear rbukrs racct ksl13
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '14'.
            SELECT ryear rbukrs racct ksl14
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '15'.
            SELECT ryear rbukrs racct ksl15
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
          WHEN '16'.
            SELECT ryear rbukrs racct ksl16
    FROM glpct INTO TABLE itab3 WHERE rbukrs EQ rbukrs1 AND ryear EQ ryear1.
        ENDCASE.
        MOVE itab3 TO itab4.
        LOOP AT itab3 INTO wa2.
          flag = 0.
          LOOP AT itab5 INTO wa4.
            IF wa2-racct EQ wa4-racct.
              flag = 1.
              EXIT.
            ENDIF.
          ENDLOOP.
          DELETE ADJACENT DUPLICATES FROM itab5.
          IF flag = 1.
            CONTINUE.
          ENDIF.
          LOOP AT itab4 INTO wa3.
            IF wa2-rbukrs EQ wa3-rbukrs AND wa2-racct EQ wa3-racct AND
            wa2-ryear EQ wa3-ryear.
              total = total + wa3-ksl01.
            ENDIF.
          ENDLOOP.
          wa5-rbukrs = wa2-rbukrs.
          wa5-racct = wa2-racct+4(6).
          wa5-total1 = total.
          APPEND wa5 TO itab6.
          CLEAR total.
          APPEND wa2-racct TO itab5.
        ENDLOOP.
    If no data is available corresponding to the values entered.
        IF itab6[] IS INITIAL.
          MESSAGE i003.
        ENDIF.
    For making the file Comma separated
        CALL FUNCTION 'SAP_CONVERT_TO_TEX_FORMAT'
          EXPORTING
            i_field_seperator          = ','
    I_LINE_HEADER              =
      I_FILENAME                 =
      I_APPL_KEEP                = ' '
          TABLES
            i_tab_sap_data             = itab6
         CHANGING
           i_tab_converted_data       = itab2
    EXCEPTIONS
      CONVERSION_FAILED          = 1
      OTHERS                     = 2
        IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    For downloading it to the Presentation Server
       MOVE itab2[] TO itab9[].
       OPEN DATASET filnam1 FOR OUTPUT IN LEGACY TEXT MODE.
       LOOP AT itab9.
         TRANSFER itab9 TO filnam1.
       ENDLOOP.
       CLOSE DATASET filnam1.
       IF sy-subrc EQ 0.
         MESSAGE s004.
       ENDIF.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
      BIN_FILESIZE                    =
        filename                        = FILNAM11
      FILETYPE                        = 'ASC'
      APPEND                          = ' '
      WRITE_FIELD_SEPARATOR           = ' '
      HEADER                          = '00'
      TRUNC_TRAILING_BLANKS           = ' '
      WRITE_LF                        = 'X'
      COL_SELECT                      = ' '
      COL_SELECT_MASK                 = ' '
      DAT_MODE                        = ' '
      CONFIRM_OVERWRITE               = ' '
      NO_AUTH_CHECK                   = ' '
      CODEPAGE                        = ' '
      IGNORE_CERR                     = ABAP_TRUE
      REPLACEMENT                     = '#'
      WRITE_BOM                       = ' '
      TRUNC_TRAILING_BLANKS_EOL       = 'X'
      WK1_N_FORMAT                    = ' '
      WK1_N_SIZE                      = ' '
      WK1_T_FORMAT                    = ' '
      WK1_T_SIZE                      = ' '
      WRITE_LF_AFTER_LAST_LINE        = ABAP_TRUE
    IMPORTING
      FILELENGTH                      =
      tables
        data_tab                        = itab2
      FIELDNAMES                      =
    EXCEPTIONS
      FILE_WRITE_ERROR                = 1
      NO_BATCH                        = 2
      GUI_REFUSE_FILETRANSFER         = 3
      INVALID_TYPE                    = 4
      NO_AUTHORITY                    = 5
      UNKNOWN_ERROR                   = 6
      HEADER_NOT_ALLOWED              = 7
      SEPARATOR_NOT_ALLOWED           = 8
      FILESIZE_NOT_ALLOWED            = 9
      HEADER_TOO_LONG                 = 10
      DP_ERROR_CREATE                 = 11
      DP_ERROR_SEND                   = 12
      DP_ERROR_WRITE                  = 13
      UNKNOWN_DP_ERROR                = 14
      ACCESS_DENIED                   = 15
      DP_OUT_OF_MEMORY                = 16
      DISK_FULL                       = 17
      DP_TIMEOUT                      = 18
      FILE_NOT_FOUND                  = 19
      DATAPROVIDER_EXCEPTION          = 20
      CONTROL_FLUSH_ERROR             = 21
      OTHERS                          = 22
    IF sy-subrc eq 0.
    message s004.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    When Region radio button is selected.
      ELSEIF r2 EQ 'X'.
        IF khinr1 IS INITIAL.
          MESSAGE i002.
          LEAVE TO SCREEN 1000.
        ENDIF.
        IF rpmax2 IS INITIAL.
          MESSAGE i002.
          LEAVE TO SCREEN 1000.
        ENDIF.
        IF ryear2 IS INITIAL.
          MESSAGE i002.
          LEAVE TO SCREEN 1000.
        ENDIF.
        IF filnam2 IS INITIAL.
          MESSAGE i002.
          LEAVE TO SCREEN 1000.
        ENDIF.
    MOVE FILNAM2 TO FILNAM21.
        CASE rpmax2.
          WHEN '01'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl01
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '02'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl02
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '03'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl03
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '04'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl04
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '05'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl05
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '06'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl06
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '07'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl07
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '08'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl08
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '09'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl09
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '10'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl10
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '11'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl11
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '12'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl12
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '13'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl13
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '14'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl14
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '15'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl15
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
          WHEN '16'.
           SELECT ckhinr cprctr grprctr gryear grbukrs gracct g~ksl16
           INTO CORRESPONDING FIELDS OF TABLE itab7
           FROM (  glpct AS g
                   INNER JOIN cepc AS c ON grprctr = cprctr )
           WHERE c~khinr = khinr1 AND
                 g~ryear = ryear2.
        ENDCASE.
        MOVE itab7 TO itab8.
        LOOP AT itab7 INTO wa6.
          flag = 0.
          LOOP AT itab5 INTO wa4.
            IF wa6-racct EQ wa4-racct.
              flag = 1.
              EXIT.
            ENDIF.
          ENDLOOP.
          DELETE ADJACENT DUPLICATES FROM itab5.
          IF flag = 1.
            CONTINUE.
          ENDIF.
          LOOP AT itab8 INTO wa7.
            IF wa6-rbukrs EQ wa7-rbukrs AND wa6-racct EQ wa7-racct AND
            wa6-ryear EQ wa7-ryear.
              total = total + wa7-ksl01.
            ENDIF.
          ENDLOOP.
          wa9-khinr = khinr1.
          wa9-racct = wa6-racct+4(6).
          wa9-total1 = total.
          APPEND wa9 TO itab10.
          CLEAR total.
          APPEND wa6-racct TO itab5.
        ENDLOOP.
    *If no data is available corresponding to the values entered.
        IF itab10 IS INITIAL.
          MESSAGE i003.
        ENDIF.
    For making the file Comma separated
        CALL FUNCTION 'SAP_CONVERT_TO_TEX_FORMAT'
          EXPORTING
            i_field_seperator          = ','
      I_LINE_HEADER              =
      I_FILENAME                 =
      I_APPL_KEEP                = ' '
          TABLES
            i_tab_sap_data             = itab10
         CHANGING
           i_tab_converted_data       = itab2
    EXCEPTIONS
      CONVERSION_FAILED          = 1
      OTHERS                     = 2
        IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    For downloading it to the Presentation Server
       MOVE itab2[] TO itab9[].
       OPEN DATASET filnam2 FOR OUTPUT IN LEGACY TEXT MODE.
       LOOP AT itab9.
         TRANSFER itab9 TO filnam2.
       ENDLOOP.
       CLOSE DATASET filnam2.
       IF sy-subrc EQ 0.
         MESSAGE s004.
       ENDIF.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
      BIN_FILESIZE                    =
        filename                        = FILNAM21
      FILETYPE                        = 'ASC'
      APPEND                          = ' '
      WRITE_FIELD_SEPARATOR           = ' '
      HEADER                          = '00'
      TRUNC_TRAILING_BLANKS           = ' '
      WRITE_LF                        = 'X'
      COL_SELECT                      = ' '
      COL_SELECT_MASK                 = ' '
      DAT_MODE                        = ' '
      CONFIRM_OVERWRITE               = ' '
      NO_AUTH_CHECK                   = ' '
      CODEPAGE                        = ' '
      IGNORE_CERR                     = ABAP_TRUE
      REPLACEMENT                     = '#'
      WRITE_BOM                       = ' '
      TRUNC_TRAILING_BLANKS_EOL       = 'X'
      WK1_N_FORMAT                    = ' '
      WK1_N_SIZE                      = ' '
      WK1_T_FORMAT                    = ' '
      WK1_T_SIZE                      = ' '
      WRITE_LF_AFTER_LAST_LINE        = ABAP_TRUE
    IMPORTING
      FILELENGTH                      =
      tables
        data_tab                        = itab2
      FIELDNAMES                      =
    EXCEPTIONS
      FILE_WRITE_ERROR                = 1
      NO_BATCH                        = 2
      GUI_REFUSE_FILETRANSFER         = 3
      INVALID_TYPE                    = 4
      NO_AUTHORITY                    = 5
      UNKNOWN_ERROR                   = 6
      HEADER_NOT_ALLOWED              = 7
      SEPARATOR_NOT_ALLOWED           = 8
      FILESIZE_NOT_ALLOWED            = 9
      HEADER_TOO_LONG                 = 10
      DP_ERROR_CREATE                 = 11
      DP_ERROR_SEND                   = 12
      DP_ERROR_WRITE                  = 13
      UNKNOWN_DP_ERROR                = 14
      ACCESS_DENIED                   = 15
      DP_OUT_OF_MEMORY                = 16
      DISK_FULL                       = 17
      DP_TIMEOUT                      = 18
      FILE_NOT_FOUND                  = 19
      DATAPROVIDER_EXCEPTION          = 20
      CONTROL_FLUSH_ERROR             = 21
      OTHERS                          = 22
    IF sy-subrc eq 0.
    message s004.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
      ENDIF.
    *&      Form  POPULATE
          text
    FORM populate.
      CLEAR value.
      REFRESH list.
      name = 'KHINR1'.
      value-key = '1S7_SUBSEA'.
      value-text = '1S7_SUBSEA'.
      APPEND value TO list.
      value-key = '1S7_GEN'.
      value-text = '1S7_GEN'.
      APPEND value TO list.
      value-key = '1S7'.
      value-text = '1S7'.
      APPEND value TO list.
      value-key = '1S7_CORPTP'.
      value-text = '1S7_CORPTP'.
      APPEND value TO list.
      value-key = '1S7_BRRE'.
      value-text = '1S7_BRRE'.
      APPEND value TO list.
      value-key = '1S7_BRCON'.
      value-text = '1S7_BRCON'.
      APPEND value TO list.
      value-key = '1S7_BRCJOB'.
      value-text = '1S7_BRCJOB'.
      APPEND value TO list.
      value-key = '1S7_BRCJBU'.
      value-text = '1S7_BRCJBU'.
      APPEND value TO list.
      value-key = '1S7_BRCJCO'.
      value-text = '1S7_BRCJCO'.
      APPEND value TO list.
      value-key = '1S7_BRCJIR'.
      value-text = '1S7_BRCJIR'.
      APPEND value TO list.
      value-key = '1S7_BRCJEN'.
      value-text = '1S7_BRCJEN'.
      APPEND value TO list.
      value-key = '1S7_BRCJPI'.
      value-text = '1S7_BRCJPI'.
      APPEND value TO list.
      value-key = '1S7_BRCJSU'.
      value-text = '1S7_BRCJSU'.
      APPEND value TO list.
      value-key = '1S7_BRCJFL'.
      value-text = '1S7_BRCJFL'.
      APPEND value TO list.
      value-key = '1S7_BRCJOT'.
      value-text = '1S7_BRCJOT'.
      APPEND value TO list.
      value-key = '1S7_BRCASV'.
      value-text = '1S7_BRCASV'.
      APPEND value TO list.
      value-key = '1S7_BRCASE'.
      value-text = '1S7_BRCASE'.
      APPEND value TO list.
      value-key = '1S7_BRCOOC'.
      value-text = '1S7_BRCOOC'.
      APPEND value TO list.
      value-key = '1S7_BRCOHD'.
      value-text = '1S7_BRCOHD'.
      APPEND value TO list.
      value-key = '1S7_BRCGEN'.
      value-text = '1S7_BRCGEN'.
      APPEND value TO list.
      value-key = '1S7_BRDRI'.
      value-text = '1S7_BRDRI'.
      APPEND value TO list.
      value-key = '1S7_BRDJOB'.
      value-text = '1S7_BRDJOB'.
      APPEND value TO list.
      value-key = '1S7_BRDASV'.
      value-text = '1S7_BRDASV'.
      APPEND value TO list.
      value-key = '1S7_BRDASE'.
      value-text = '1S7_BRDASE'.
      APPEND value TO list.
      value-key = '1S7_BRDAEW'.
      value-text = '1S7_BRDAEW'.
      APPEND value TO list.
      value-key = '1S7_BRDAEO'.
      value-text = '1S7_BRDAEO'.
      APPEND value TO list.
      value-key = '1S7_BRDAET'.
      value-text = '1S7_BRDAET'.
      APPEND value TO list.
      value-key = '1S7_BRDOOC'.
      value-text = '1S7_BRDOOC'.
      APPEND value TO list.
      value-key = '1S7_BRDOHD'.
      value-text = '1S7_BRDOHD'.
      APPEND value TO list.
      value-key = '1S7_BRVER'.
      value-text = '1S7_BRVER'.
      APPEND value TO list.
      value-key = '1S7_BRVJOB'.
      value-text = '1S7_BRVJOB'.
      APPEND value TO list.
      value-key = '1S7_BRVASV'.
      value-text = '1S7_BRVASV'.
      APPEND value TO list.
      value-key = '1S7_BRVASE'.
      value-text = '1S7_BRVASE'.
      APPEND value TO list.
      value-key = '1S7_BRVOOC'.
      value-text = '1S7_BRVOOC'.
      APPEND value TO list.
      value-key = '1S7_BRVOHD'.
      value-text = '1S7_BRVOHD'.
      APPEND value TO list.
      value-key = '1S7_UKRE'.
      value-text = '1S7_UKRE'.
      APPEND value TO list.
      value-key = '1S7_UKCON'.
      value-text = '1S7_UKCON'.
      APPEND value TO list.
      value-key = '1S7_UKCJOB'.
      value-text = '1S7_UKCJOB'.
      APPEND value TO list.
      value-key = '1S7_UKCJBU'.
      value-text = '1S7_UKCJBU'.
      APPEND value TO list.
      value-key = '1S7_UKCJCO'.
      value-text = '1S7_UKCJCO'.
      APPEND value TO list.
      value-key = '1S7_UKCJIR'.
      value-text = '1S7_UKCJIR'.
      APPEND value TO list.
      value-key = '1S7_UKCJEN'.
      value-text = '1S7_UKCJEN'.
      APPEND value TO list.
      value-key = '1S7_UKCJPI'.
      value-text = '1S7_UKCJPI'.
      APPEND value TO list.
      value-key = '1S7_UKCJSU'.
      value-text = '1S7_UKCJSU'.
      APPEND value TO list.
      value-key = '1S7_UKCJFL'.
      value-text = '1S7_UKCJFL'.
      APPEND value TO list.
      value-key = '1S7_UKCJOT'.
      value-text = '1S7_UKCJOT'.
      APPEND value TO list.
      value-key = '1S7_UKCASV'.
      value-text = '1S7_UKCASV'.
      APPEND value TO list.
      value-key = '1S7_UKCASE'.
      value-text = '1S7_UKCASE'.
      APPEND value TO list.
      value-key = '1S7_UKCOOC'.
      value-text = '1S7_UKCOOC'.
      APPEND value TO list.
      value-key = '1S7_UKBA'.
      value-text = '1S7_UKBA'.
      APPEND value TO list.
      value-key = '1S7_UKBATE'.
      value-text = '1S7_UKBATE'.
      APPEND value TO list.
      value-key = '1S7_UKCOHD'.
      value-text = '1S7_UKCOHD'.
      APPEND value TO list.
      value-key = '1S7_UKCGEN'.
      value-text = '1S7_UKCGEN'.
      APPEND value TO list.
      value-key = '1S7_UKDRI'.
      value-text = '1S7_UKDRI'.
      APPEND value TO list.
      value-key = '1S7_UKDJOB'.
      value-text = '1S7_UKDJOB'.
      APPEND value TO list.
      value-key = '1S7_UKDASV'.
      value-text = '1S7_UKDASV'.
      APPEND value TO list.
      value-key = '1S7_UKDASE'.
      value-text = '1S7_UKDASE'.
      APPEND value TO list.
      value-key = '1S7_UKDAEW'.
      value-text = '1S7_UKDAEW'.
      APPEND value TO list.
      value-key = '1S7_UKDAEO'.
      value-text = '1S7_UKDAEO'.
      APPEND value TO list.
      value-key = '1S7_UKDAET'.
      value-text = '1S7_UKDAET'.
      APPEND value TO list.
      value-key = '1S7_UKDOOC'.
      value-text = '1S7_UKDOOC'.
      APPEND value TO list.
      value-key = '1S7_UKDOHD'.
      value-text = '1S7_UKDOHD'.
      APPEND value TO list.
      value-key = '1S7_UKVER'.
      value-text = '1S7_UKVER'.
      APPEND value TO list.
      value-key = '1S7_UKVJOB'.
      value-text = '1S7_UKVJOB'.
      APPEND value TO list.
      value-key = '1S7_UKVASV'.
      value-text = '1S7_UKVASV'.
      APPEND value TO list.
      value-key = '1S7_UKVASE'.
      value-text = '1S7_UKVASE'.
      APPEND value TO list.
      value-key = '1S7_UKVOOC'.
      value-text = '1S7_UKVOOC'.
      APPEND value TO list.
      value-key = '1S7_UKVOHD'.
      value-text = '1S7_UKVOHD'.
      APPEND value TO list.
      value-key = '1S7_NORE'.
      value-text = '1S7_NORE'.
      APPEND value TO list.
      value-key = '1S7_NOCON'.
      value-text = '1S7_NOCON'.
      APPEND value TO list.
      value-key = '1S7_NOCJOB'.
      value-text = '1S7_NOCJOB'.
      APPEND value TO list.
      value-key = '1S7_NOCJBU'.
      value-text = '1S7_NOCJBU'.
      APPEND value TO list.
      value-key = '1S7_NOCJCO'.
      value-text = '1S7_NOCJCO'.
      APPEND value TO list.
      value-key = '1S7_NOCJIR'.
      value-text = '1S7_NOCJIR'.
      APPEND value TO list.
      value-key = '1S7_NOCJEN'.
      value-text = '1S7_NOCJEN'.
      APPEND value TO list.
      value-key = '1S7_NOCJPI'.
      value-text = '1S7_NOCJPI'.
      APPEND value TO list.
      value-key = '1S7_NOCJSU'.
      value-text = '1S7_NOCJSU'.
      APPEND value TO list.
      value-key = '1S7_NOCJFL'.
      value-text = '1S7_NOCJFL'.
      APPEND value TO list.
      value-key = '1S7_NOCJOT'.
      value-text = '1S7_NOCJOT'.
      APPEND value TO list.
      value-key = '1S7_NOCASV'.
      value-text = '1S7_NOCASV'.
      APPEND value TO list.
      value-key = '1S7_NOCASE'.
      value-text = '1S7_NOCASE'.
      APPEND value TO list.
      value-key = '1S7_NOCOOC'.
      value-text = '1S7_NOCOOC'.
      APPEND value TO list.
      value-key = '1S7_NOCOHD'.
      value-text = '1S7_NOCOHD'.
      APPEND value TO list.
      value-key = '1S7_NOCGEN'.
      value-text = '1S7_NOCGEN'.
      APPEND value TO list.
      value-key = '1S7_NODRI'.
      value-text = '1S7_NODRI'.
      APPEND value TO list.
      value-key = '1S7_NODJOB'.
      value-text = '1S7_NODJOB'.
      APPEND value TO list.
      value-key = '1S7_NODASV'.
      value-text = '1S7_NODASV'.
      APPEND value TO list.
      value-key = '1S7_NODASE'.
      value-text = '1S7_NODASE'.
      APPEND value TO list.
      value-key = '1S7_NODAEW'.
      value-text = '1S7_NODAEW'.
      APPEND value TO list.
      value-key = '1S7_NODAEO'.
      value-text = '1S7_NODAEO'.
      APPEND value TO list.
      value-key = '1S7_NODAET'.
      value-text = '1S7_NODAET'.
      APPEND value TO list.
      value-key = '1S7_NODOOC'.
      value-text = '1S7_NODOOC'.
      APPEND value TO list.
      value-key = '1S7_NODOHD'.
      value-text = '1S7_NODOHD'.
      APPEND value TO list.
      value-key = '1S7_NOVER'.
      value-text = '1S7_NOVER'.
      APPEND value TO list.
      value-key = '1S7_NOVJOB'.
      value-text = '1S7_NOVJOB'.
      APPEND value TO list.
      value-key = '1S7_NOVASV'.
      value-text = '1S7_NOVASV'.
      APPEND value TO list.
      value-key = '1S7_NOVASE'.
      value-text = '1S7_NOVASE'.
      APPEND value TO list.
      value-key = '1S7_NOVOOC'.
      value-text = '1S7_NOVOOC'.
      APPEND value TO list.
      value-key = '1S7_NOVOHD'.
      value-text = '1S7_NOVOHD'.
      APPEND value TO list.
      value-key = '1S7_GORE'.
      value-text = '1S7_GORE'.
      APPEND value TO list.
      value-key = '1S7_GOCON'.
      value-text = '1S7_GOCON'.
      APPEND value TO list.
      value-key = '1S7_GOCJOB'.
      value-text = '1S7_GOCJOB'.
      APPEND value TO list.
      value-key = '1S7_GOCJBU'.
      value-text = '1S7_GOCJBU'.
      APPEND value TO list.
      value-key = '1S7_GOCJCO'.
      value-text = '1S7_GOCJCO'.
      APPEND value TO list.
      value-key = '1S7_GOCJIR'.
      value-text = '1S7_GOCJIR'.
      APPEND value TO list.
      value-key = '1S7_GOCJEN'.
      value-text = '1S7_GOCJEN'.
      APPEND value TO list.
      value-key = '1S7_GOCJPI'.
      value-text = '1S7_GOCJPI'.
      APPEND value TO list.
      value-key = '1S7_GOCJSU'.
      value-text = '1S7_GOCJSU'.
      APPEND value TO list.
      value-key = '1S7_GOCJFL'.
      value-text = '1S7_GOCJFL'.
      APPEND value TO list.
      value-key = '1S7_GOCJOT'.
      value-text = '1S7_GOCJOT'.
      APPEND value TO list.
      value-key = '1S7_GOCASV'.
      value-text = '1S7_GOCASV'.
      APPEND value TO list.
      value-key = '1S7_GOCASE'.
      value-text = '1S7_GOCASE'.
      APPEND value TO list.
      value-key = '1S7_GOCOOC'.
      value-text = '1S7_GOCOOC'.
      APPEND value TO list.
      value-key = '1S7_GOCOHD'.
      value-text = '1S7_GOCOHD'.
      APPEND value TO list.
      value-key = '1S7_GOCGEN'.
      value-text = '1S7_GOCGEN'.
      APPEND value TO list.
      value-key = '1S7_GODRI'.
      value-text = '1S7_GODRI'.
      APPEND value TO list.
      value-key = '1S7_GODJOB'.
      value-text = '1S7_GODJOB'.
      APPEND value TO list.
      value-key = '1S7_GODASV'.
      value-text = '1S7_GODASV'.
      APPEND value TO list.
      value-key = '1S7_GODASE'.
      value-text = '1S7_GODASE'.
      APPEND value TO list.
      value-key = '1S7_GODAEW'.
      value-text = '1S7_GODAEW'.
      APPEND value TO list.
      value-key = '1S7_GODAEO'.
      value-text = '1S7_GODAEO'.
      APPEND value TO list.
      value-key = '1S7_GODAET'.
      value-text = '1S7_GODAET'.
      APPEND value TO list.
      value-key = '1S7_GODOOC'.
      value-text = '1S7_GODOOC'.
      APPEND value TO list.
      value-key = '1S7_GODOHD'.
      value-text = '1S7_GODOHD'.
      APPEND value TO list.
      value-key = '1S7_GOVER'.
      value-text = '1S7_GOVER'.
      APPEND value TO list.
      value-key = '1S7_GOVJOB'.
      value-text = '1S7_GOVJOB'.
      APPEND value TO list.
      value-key = '1S7_GOVASV'.
      value-text = '1S7_GOVASV'.
      APPEND value TO list.
      value-key = '1S7_GOVASE'.
      value-text = '1S7_GOVASE'.
      APPEND value TO list.
      value-key = '1S7_GOVOOC'.
      value-text = '1S7_GOVOOC'.
      APPEND value TO list.
      value-key = '1S7_GOVOHD'.
      value-text = '1S7_GOVOHD'.
      APPEND value TO list.
      value-key = '1S7_GVRE'.
      value-text = '1S7_GVRE'.
      APPEND value TO list.
      value-key = '1S7_GVCON'.
      value-text = '1S7_GVCON'.
      APPEND value TO list.
      value-key = '1S7_GVCJOB'.
      value-text = '1S7_GVCJOB'.
      APPEND value TO list.
      value-key = '1S7_GVCJBU'.
      value-text = '1S7_GVCJBU'.
      APPEND value TO list.
      value-key = '1S7_GVCJCO'.
      value-text = '1S7_GVCJCO'.
      APPEND value TO list.
      value-key = '1S7_GVCJIR'.
      value-text = '1S7_GVCJIR'.
      APPEND value TO list.
      value-key = '1S7_GVCJEN'.
      value-text = '1S7_GVCJEN'.
      APPEND value TO list.
      value-key = '1S7_GVCJPI'.
      value-text = '1S7_GVCJPI'.
      APPEND value TO list.
      value-key = '1S7_GVCJSU'.
      value-text = '1S7_GVCJSU'.
      APPEND value TO list.
      value-key = '1S7_GVCJFL'.
      value-text = '1S7_GVCJFL'.
      APPEND value TO list.
      value-key = '1S7_GVCJOT'.
      value-text = '1S7_GVCJOT'.
      APPEND value TO list.
      value-key = '1S7_GVCASV'.
      value-text = '1S7_GVCASV'.
      APPEND value TO list.
      value-key = '1S7_GVCASE'.
      value-text = '1S7_GVCASE'.
      APPEND value TO list.
      value-key = '1S7_GVCOOC'.
      value-text = '1S7_GVCOOC'.
      APPEND value TO list.
      value-key = '1S7_GVCOHD'.
      value-text = '1S7_GVCOHD'.
      APPEND value TO list.
      value-key = '1S7_GVCGEN'.
      value-text = '1S7_GVCGEN'.
      APPEND value TO list.
      value-key = '1S7_GVDRI'.
      value-text = '1S7_GVDRI'.
      APPEND value TO list.
      value-key = '1S7_GVDJOB'.
      value-text = '1S7_GVDJOB'.
      APPEND value TO list.
      value-key = '1S7_GVDASV'.
      value-text = '1S7_GVDASV'.
      APPEND value TO list.
      value-key = '1S7_GVDASE'.
      value-text = '1S7_GVDASE'.
      APPEND value TO list.
      value-key = '1S7_GVDOOC'.
      value-text = '1S7_GVDOOC'.
      APPEND value TO list.
      value-key = '1S7_GVDOHD'.
      value-text = '1S7_GVDOHD'.
      APPEND value TO list.
      value-key = '1S7_GVVER'.
      value-text = '1S7_GVVER'.
      APPEND value TO list.
      value-key = '1S7_GVVJOB'.
      value-text = '1S7_GVVJOB'.
      APPEND value TO list.
      value-key = '1S7_GVVASV'.
      value-text = '1S7_GVVASV'.
      APPEND value TO list.
      value-key = '1S7_GVVASE'.
      value-text = '1S7_GVVASE'.
      APPEND value TO list.
      value-key = '1S7_GVVOOC'.
      value-text = '1S7_GVVOOC'.
      APPEND value TO list.
      value-key = '1S7_GVVOHD'.
      value-text = '1S7_GVVOHD'.
      APPEND value TO list.
      value-key = '1S7_GCRE'.
      value-text = '1S7_GCRE'.
      APPEND value TO list.
      value-key = '1S7_GCCON'.
      value-text = '1S7_GCCON'.
      APPEND value TO list.
      value-key = '1S7_GCCJOB'.
      value-text = '1S7_GCCJOB'.
      APPEND value TO list.
      value-key = '1S7_GCCJBU'.
      value-text = '1S7_GCCJBU'.
      APPEND value TO list.
      value-key = '1S7_GCCJCO'.
      value-text = '1S7_GCCJCO'.
      APPEND value TO list.
      value-key = '1S7_GCCJIR'.
      value-text = '1S7_GCCJIR'.
      APPEND value TO list.
      value-key = '1S7_GCCJEN'.
      value-text = '1S7_GCCJEN'.
      APPEND value TO list.
      value-key = '1S7_GCCJPI'.
      value-text = '1S7_GCCJPI'.
      APPEND value TO list.
      value-key = '1S7_GCCJSU'.
      value-text = '1S7_GCCJSU'.
      APPEND value TO list.
      value-key = '1S7_GCCJFL'.
      value-text = '1S7_GCCJFL'.
      APPEND value TO list.
      value-key = '1S7_GCCJOT'.
      value-text = '1S7_GCCJOT'.
      APPEND value TO list.
      value-key = '1S7_GCCASV'.
      value-text = '1S7_GCCASV'.
      APPEND value TO list.
      value-key = '1S7_GCCASE'.
      value-text = '1S7_GCCASE'.
      APPEND value TO list.
      value-key = '1S7_GCCOOC'.
      value-text = '1S7_GCCOOC'.
      APPEND value TO list.
      value-key = '1S7_GCCOHD'.
      value-text = '1S7_GCCOHD'.
      APPEND value TO list.
      value-key = '1S7_GCCRD'.
      value-text = '1S7_GCCRD'.
      APPEND value TO list.
      value-key = '1S7_GCCGEN'.
      value-text = '1S7_GCCGEN'.
      APPEND value TO list.
      value-key = '1S7_GCDRI'.
      value-text = '1S7_GCDRI'.
      APPEND value TO list.
      value-key = '1S7_GCDJOB'.
      value-text = '1S7_GCDJOB'.
      APPEND value TO list.
      value-key = '1S7_GCDASV'.
      value-text = '1S7_GCDASV'.
      APPEND value TO list.
      value-key = '1S7_GCDASE'.
      value-text = '1S7_GCDASE'.
      APPEND value TO list.
      value-key = '1S7_GCDOOC'.
      value-text = '1S7_GCDOOC'.
      APPEND value TO list.
      value-key = '1S7_GCDOHD'.
      value-text = '1S7_GCDOHD'.
      APPEND value TO list.
      value-key = '1S7_GCVER'.
      value-text = '1S7_GCVER'.
      APPEND value TO list.
      value-key = '1S7_GCVJOB'.
      value-text = '1S7_GCVJOB'.
      APPEND value TO list.
      value-key = '1S7_GCVASV'.
      value-text = '1S7_GCVASV'.
      APPEND value TO list.
      value-key = '1S7_GCVASE'.

  • Shell script to monitor the data guard

    Hi,
    Can any body please provide the shell scripts to monitor the data guard in all scenarios and to get the mail when problem occurs in dataguard.
    Thanks,
    Mahipal

    Sorry Mahi. Looks like all of the scripts i've got are for logical standbys and not physical. Have a look at the link ualual posted - easy enough to knock up a script from one or more of those data dictionary views. Just had a look on metalink and there's what looks to be a good script in note 241438.1. Its a good starting point definately.
    regards,
    Mark

  • Configure data guard broker on Oracle 11.2.0.1

    Our primary is a 3 node RAC of 11.2.0.1 on Redhat 5.2. The physical standby is a single instance on redhat 5.2. After configured data guard, I am trying to configure data guard broker following docOracle® Data Guard Broker 11g Release 2 (11.2)
    E10702-01
    It says to add a entry to the listener.ora file
    LISTENER = (DESCRIPTION =
    (ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=host_name)
    (PORT=port_num))))
    SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME=sid_name)
    (GLOBAL_DBNAME=db_unique_name_DGMGRL.db_domain)
    (ORACLE_HOME=oracle_home)))My lstener.ora under grid_home is LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))))            # line added by Agent
    LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1))))                # line added by Agent
    ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON              # line added by AgentAfter addedLISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = cchORdb1)(PORT = 1521))
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = cchprd_DGMGRL)
          (SID_NAME = cchprd)
          (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      )I started the listener and got errorLSNRCTL> start
    Starting /u01/app/grid/bin/tnslsnr: please wait...
    TNSLSNR for Linux: Version 11.2.0.1.0 - Production
    System parameter file is /u01/app/grid/network/admin/listener.ora
    Log messages written to /u01/app/oracle/diag/tnslsnr/cchORdb1/listener/alert/log.xml
    Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cchORdb1)(PORT=1521)))
    TNS-12542: TNS:address already in use
    TNS-12560: TNS:protocol adapter error
      TNS-00512: Address already in use
       Linux Error: 98: Address already in use
    Listener failed to start. See the error message(s) above..Without the Listener and SID_LIST_LISTENER entries, the grid infrastucture appear to manage a default listener and works OK. After add these, it appears to conflick with the default setting. I also tried to add a different listener name, then I got messge LISTENER is already startedHow should one handle this problem?
    Thanks.

    Shutdown the listener and check for white spaces in the file. Try to restart it. If if fails review against my example below.
    Here is my working example:
    PRIMARY
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = primary.myserver.com)(PORT = 1521))
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /u01/app/oracle/product/11.2.0)
    (PROGRAM = extproc)
    (SID_DESC =
    (global_dbname = PRIMARY_DGMGRL.myserver.com)
    (ORACLE_HOME = /u01/app/oracle/product/11.2.0)
    (SID_NAME = PRIMARY)
    STANDBY
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = standby.mydomain.com)(PORT = 1521))
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /u01/app/oracle/product/11.2.0)
    (PROGRAM = extproc)
    (SID_DESC =
    (global_dbname = STANDBY_DGMGRL.mydomain.com)
    (ORACLE_HOME = /u01/app/oracle/product/11.2.0)
    (sid_name = STANDBY)
    ADR_BASE_LISTENER = /u01/app/oracle
    INBOUND_CONNECT_TIMEOUT_LISTENER=120
    When I first tried to setup this up several months ago I had this issue:
    ORA-12514 during SWITCHOVER
    Problem: You perform a switchover using DGMGRL. Though the switchover itself completes successful, databases don't get started up again. Instead, DGMGRL output holds an
    ORA-12514: TNS:listener does not currently know of service requested in connect
    Cause: This is a configuration issue: DGMGRL needs a special entry in the listener.ora.
    Solution: Details on this can be found in the Metalink note 308943.1. Make sure both, your primary and standby database have an explicit entry in the listener.ora like this:
    SID_LIST_LISTENER = (
    SID_LIST = (
    SID_DESC = ( GLOBAL_DBNAME = <db_unique_name>DGMGRL.<dbdomain> )
    ( SERVICE_NAME = <db_unique_name>.<db_domain> )
    ( SID_NAME = <ORACLE_SID> )
    ( ORACLE_HOME = <ORACLE_HOME> )
    Take special care, that:
    * <db_unique_name> reflects the databases unique name (SHOW PARAMETER db_unique_name)
    * <db_domain> reflects the databases domain (SHOW PARAMETER db_domain)
    * <ORACLE_SID> and <ORACLE_HOME> reflect the corresponding settings of the database
    Having adjusted your listener.ora files, restart the listener (lsnrctl stop && lsnrctl start). Give your databases a few minutes to register with the listener again, and then - just to be on the safe side - let the listener tell you its configuration: lsnrctl status && lsnrctl services. Check the output if everything matches.
    Edited by: mseberg on Dec 10, 2010 8:01 AM

  • Configure TAF on Data Guard

    Hi,
    I've created a data guard setup consisting of single-node primary and standby databases using 11.2.0.1 AIX 6.1
    Now I would like to configure the TAF, so that the application is automatically and transparently failed-over to the new primary database during switchover. I've read several links, but they seem to be pointing to some documents which are no-longer accessible on the Oracle website.
    I'd a appreciate a simple walk-through on the process, or a pointer to some useful documentation on this.
    Regards,
    dula

    Not sure how far you want to go with this. If far enough is to have the users re-connect then what follows works.
    I assume you have flashback database configured and an observer in place.
    Given that' true then:
    A trigger will be created in the database so that whichever database opens as “primary”, the service will start. The service will be defined in tnsnames so that applications connect to that service. Since only the current primary will have the service running, applications will only connect to the “primary”.
    1.     Create the service current primary.
    SQL> Exec dbms_service.create_service (service_name => 'testserv',network_name = > 'testserv');
    PL/SQL procedure successfully completed.
    2.     Now create the trigger to start the service.
    create or replace
    trigger start_testserv
    after startup on database
    declare
    role varchar (30);
    begin
    select database_role into role from v$database;
    If role= 'PRIMARY' then
    dbms_service.start_service('testserv');
    end if;
    end;
    3.     Manually start the service (fires at database startup normally).
    SQL> execute dbms_service.start_service('testserv');
    4.     Verify the service is started.
    Lsnrctl status
    And you should see:
    Service "testserv.nsight.com" has 1 instance(s).
    Instance "standdb", status READY, has 1 handler(s) for this service...
    5.     Create a tnsnames entry for this service that references both databases – but only the primary will have the service running so when a user connects, they get the current primary and, should a failover occur, when they login they connect to what is then the primary.
    testserv =
    (description=
    (SDU=32767)
    (address_list=
    (address=(protocol=tcp)(host=ora-vm-db2.nsight.com)(port=1521))
    (address=(protocol=tcp)(host=ora-vm-db3.nsight.com)(port=1521))
    (connect_data=
    (service_name = testserv.nsight.com)
    (server=dedicated)
    (FAILOVER_MODE =
    (TYPE=select)
    (METHOD=BASIC)
    (RETRIES=30)
    (DELAY=10)
    Note: included in the address list are both servers
    6.     Test the connection
    Create a connection to testserv from sql developer.
    select db_unique_name from v$database;
    DB_UNIQUE_NAME
    standdb
    Now shutdown abort the current primary (standdb);
    SQL> shutdown abort;
    ORACLE instance shut down.
    Now connect to the broker and look at status.
    DGMGRL> show configuration verbose;
    Configuration - drconfig
    Protection Mode: MaxAvailability
    Databases:
    testdb - Primary database
    Warning: ORA-16817: unsynchronized fast-start failover configuration
    standdb - (*) Physical standby database (disabled)
    ORA-16661: the standby database needs to be reinstated
    (*) Fast-Start Failover target
    Fast-Start Failover: ENABLED
    Threshold: 300 seconds
    Target: standdb
    Observer: ora-vm-db3.nsight.com
    Lag Limit: 30 seconds (not in use)
    Shutdown Primary: TRUE
    Auto-reinstate: TRUE
    Configuration Status:
    WARNING
    The former standby is now the primary.
    Try again from sql developer. You will need to reconnect.
    select db_unique_name from v$database;
    DB_UNIQUE_NAME
    testdb
    And that is basically how the applications will operate – reconnect if there is a failure and they will be connected to the new primary with no data loss and with only a momentary loss of service while the failover occurs.

  • Data Guard Application Failover

    Hi,
    We've setup a physical standby database on 11.2.0.1.
    I'd request for opinions on how well to manage application fail-over when we switchover/fail over the database. The application connects to the database through TNS name resolution.
    Some people have suggested we edit the tns entry for the application server and point it to a virtual hostname, which will resolve to one IP address, then change this IP address only on the DNS to point to the new primary during switchover. But this looks to have challenges since the service names for the primary and standy instances are different, so the tns entry has to be modified.
    Any suggestions on best application failover?
    dula

    Dan,
    You are most welcome to OTN
    I have a question regarding Active Data Guard and any potential outage that might be encounted in a failover or switchover.Switchover/Failover wont happen without your interaction.
    If you configure FSFO with protection mode(Ex: Max Availability)
    Read-Only application is accessing Active Data Guard database on standby. Would there be any outage if the standby were made the primary ?What outage? If standby made to primary(failover) then you may less very minor data based on how redo transport you are configuring. if you are using ARCH then the lost would only data+changes what ever in Archive log file, If you using LGWR then its very very less. So recommended to use redo transport as LGWR
    I have assumed no, but there is a debate in my office that there would be a small outage due to change in roles. We are using broker also.If you change role, then there would be no outage.
    For more details refer this oracle documentation http://www.oracle.com/technetwork/articles/smiley-fsfo-084973.html
    Edited by: CKPT on Jan 12, 2012 4:50 PM

  • Configure listener for data guard

    HI everyone,
    I am currently setting data guard (Physical standby database) for my database. But I have problem to configure the listener on both servers. Can anyone provide me some example?
    Oracle: 10g R2
    O/S: Windows
    Primary database ken10g
    standby database: ken10gbk
    Following is the content of my current listener files on both of servers:
    Primary server:
    # listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
    (PROGRAM = extproc)
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (ADDRESS = (PROTOCOL = TCP)(HOST = Primary_server)(PORT = 1521))
    Standby Server:
    # listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
    # Generated by Oracle configuration tools.
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
    (PROGRAM = extproc)
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = standby_server)(PORT = 1521))
    Thanks in advance.
    Ken

    Hi Ken,
    You need to configure this on both primary and standby, I would have kept different listener name on primary and standby. Also if you are going to use dataguard broker you would need to set GLOBAL_DBNAME in your listener.ora file
    I have give a sample entry for tnsnames.ora and listener.ora
    TNSNAMES.ORA on primary
    STNDBY =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = node2-prv)(PORT = 10521))
    (CONNECT_DATA =
    (SERVICE_NAME = STNDBY)
    PRIM =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = node1-prv)(PORT = 10521)))
    PRIMARY =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = node1-prv)(PORT = 10521))
    (CONNECT_DATA =
    (SERVICE_NAME = PRIMARY)
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    Copy the same file to the standby server and adjust it based on the listener.ora file. Also update the listener.ora file so that it listen the SIDs mentioned in the tnsnames.ora file.
    Listener.ora
    LISTENER_STBY =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = node2-prv)(PORT = 10521))
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    SID_LIST_LISTENER_STBY =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db10g)
    (PROGRAM = extproc)
    (SID_DESC =
    (SID_NAME = stndby)
    (GLOBAL_DBNAME = stndby_DGMGRL)
    (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db10g)
    )

Maybe you are looking for