Configure Dataguard on Oracle Linux 6-3 by Cornelia Dwi M v1-1

Embed Size (px)

DESCRIPTION

configure dataguard on oracle linux

Citation preview

  • Cornelia Dwi Mulyawati [[email protected]] Page 1

    ASUMSI 1. Install 2 operating system di VM Ware dan install oracle di masing-masing OS tersebut.

    a. OS pertama untuk Oracle primary install engine, buat database-nya, database dalam kondisi archive mode, dan buat pfile-nya

    b. OS kedua untuk Oracle standby install engine. Berikut contoh konfigurasinya.

    Primary Standby

    OS Oracle Enterprise Linux 6.3 64 bit Oracle Enterprise Linux 6.3 64 bit IP 192.168.6.162 192.168.6.155 Hostname primary.odg.com stby.odg.com Memory 2054308 kB 2054308 kB Swap 4128764 kB 4128764 kB Oracle Version 11.2.0.3 11.2.0.3 Oracle Base /home/odg/oracle/app/oracle /home/odg/oracle/app/oracle Oracle Home home/odg/oracle/app/oracle /

    product/11.2.0/db_1 home/odg/oracle/app/oracle / product/11.2.0/db_1

    Database Name prod prod Instance Name prod stby DB Unique Name

    prod stby

    2. Berikut capture lokasi adump,bdump, dll.

    Object Primary Standby

    Audit files /home/odg/oracle/app/oracle/admin/prod/adump

    /home/odg/oracle/app/oracle/admin/stby/adump

    Background dump files

    /home/odg/oracle/app/oracle/diag/rdbms/prod/prod/trace

    /home/odg/oracle/app/oracle/diag/rdbms/stby/stby/trace

    Core dump files

    /home/odg/oracle/app/oracle/diag/rdbms/prod/prod/cdump

    /home/odg/oracle/app/oracle/diag/rdbms/stby/stby/cdump

    User dump files

    /home/odg/oracle/app/oracle/diag/rdbms/prod/prod/trace

    /home/odg/oracle/app/oracle/diag/rdbms/stby/stby/trace

    Data pump dump files

    /home/odg/oracle/app/oracle/admin/prod/dpdump

    /home/odg/oracle/app/oracle/admin/stby/dpdump

    Db recovery files

    /archive /archive

    Control files

    /oradata/prod , /archive/prod /oradata/stby , /archive/stby

    Redo log files

    /oradata/prod /oradata/stby

    Datafiles /oradata/prod /oradata/stby

    Archive Destination

    /archive/PROD /archive/STBY

  • Cornelia Dwi Mulyawati [[email protected]] Page 2

    PRIMARY 1. Pastikan database dalam kondisi archive mode:

    SQL> select LOG_MODE from V$DATABASE;

    LOG_MODE

    --------------------

    ARCHIVELOG

    2. Enable force logging

    - Cek status force logging SQL> select FORCE_LOGGING from V$DATABASE;

    FOR

    ------

    NO

    - Apabila statusnya masih NO , maka ubah statusnya menjadi YES SQL> ALTER DATABASE FORCE LOGGING;

    Database altered.

    - Cek ulang status force logging

    SQL> select FORCE_LOGGING from V$DATABASE;

    FOR

    ------

    YES

    3. Buat standby redolog

    - Cek ukuran redolog SQL> select bytes/1024/1024 as MB from v$log;

    MB

    ----------

    50

    50

    50

    - Cek lokasi redolog SQL> column group# format 9;

    SQL> column member format A45;

    SQL> select group#, member from v$logfile;

    GROUP# MEMBER

    ------ ---------------------------------------------

    3 /oradata/prod/redo03.log

  • Cornelia Dwi Mulyawati [[email protected]] Page 3

    2 /oradata/prod/redo02.log

    1 /oradata/prod/redo01.log

    - Buat standby redolog (kriteria pembuatan standby redolog = jumlah online redolog + 1) SQL> alter database add standby logfile group 4

    '/oradata/prod/srl04.log' size 50M;

    SQL> alter database add standby logfile group 5

    '/oradata/prod/srl05.log' size 50M;

    SQL> alter database add standby logfile group 6

    '/oradata/prod/srl06.log' size 50M;

    SQL> alter database add standby logfile group 7

    '/oradata/prod/srl07.log' size 50M;

    - Cek lagi SQL> select group#, member from v$logfile order by 1;

    GROUP# MEMBER

    ------ ---------------------------------------------

    1 /oradata/prod/redo01.log

    2 /oradata/prod/redo02.log

    3 /oradata/prod/redo03.log

    4 /oradata/prod/srl04.log

    5 /oradata/prod/srl05.log

    6 /oradata/prod/srl06.log

    7 /oradata/prod/srl07.log

    4. Cek setting db_name dan db_unique_name SQL> show parameter db_name;

    NAME TYPE VALUE

    ------------------------------------ ----------- ----------------

    db_name string prod

    SQL> show parameter db_unique_name;

    NAME TYPE VALUE

    ------------------------------------ ----------- ----------------

    db_unique_name string prod

    5. Inisialisasi parameter, ubah parameter dengan cara berikut (perhatikan lokasi archive

    LOG_ARCHIVE_DEST_1, lokasinya akan sama dengan lokasi di database stanby nantinya,

    jadi kalau mau dibuat jadi /archive juga gak apa-apa. SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(prod,stby)'

    scope=both;

    SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/archive/PROD

    VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=prod' scope=both;

  • Cornelia Dwi Mulyawati [[email protected]] Page 4

    SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=stby LGWR ASYNC

    VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=stby'

    scope=both;

    SQL> alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=both;

    SQL> alter system set FAL_SERVER=stby scope=both;

    SQL> alter system set FAL_CLIENT=prod scope=both;

    SQL> alter system set LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' scope=spfile;

    Optional SQL> alter system set

    DB_FILE_NAME_CONVERT='/oradata/stby/','/oradata/prod/' scope=spfile;

    SQL> alter system set

    LOG_FILE_NAME_CONVERT='/oradata/stby/','/oradata/prod/' scope=spfile;

    STANDBY Masuk sebagai user oracle, dan aktifkan profile-nya. Masuk ke folder lokasi listener (cd

    $ORACLE_HOME/network/admin), kemudian buat static listener seperti di bawah ini (vi

    listener.ora) SID_LIST_LISTENER =

    (SID_LIST =

    (SID_DESC =

    (GLOBAL_DBNAME = stby)

    (ORACLE_HOME = /home/odg/oracle/app/oracle/product/11.2.0/db_1)

    (SID_NAME = stby)

    )

    )

    LISTENER =

    (DESCRIPTION_LIST =

    (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = stby.odg.com)(PORT = 1521))

    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

    )

    PRIMARY DAN STANDBY 1. Disable SELINUX dan FIREWALL di masing-masing server (primary dan standby), lakukan sebagai

    user root

    - Disable SELINUX # vi /etc/sysconfig/selinux

    SELINUX=disabled

    #reboot

  • Cornelia Dwi Mulyawati [[email protected]] Page 5

    - Matikan FIREWALL # /etc/init.d/iptables stop

    2. Buat tnsnames. ora di masing-masing server (primary dan standby) seperti dibawah

    PROD =

    (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = primary.odg.com)(PORT = 1521))

    (CONNECT_DATA =

    (SERVER = DEDICATED)

    (SERVICE_NAME = prod)

    )

    )

    STBY =

    (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = stby.odg.com)(PORT = 1521))

    (CONNECT_DATA =

    (SERVER = DEDICATED)

    (SERVICE_NAME = stby)

    )

    )

    3. Tes konfigurasi tnsnames.ora yang sudah dibuat

    - Mesin primary $ tnsping stby

    TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 23-

    JUL-2013 14:34:28

    Copyright (c) 1997, 2011, Oracle. All rights reserved.

    Used parameter files:

    Used TNSNAMES adapter to resolve the alias

    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL =

    TCP)(HOST = stby.odg.com)(PORT = 1521)) (CONNECT_DATA = (SERVER =

    DEDICATED) (SERVICE_NAME = stby)))

    OK (130 msec)

    - Mesin standby $ tnsping prod

    TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 23-

    JUL-2013 14:35:14

    Copyright (c) 1997, 2011, Oracle. All rights reserved.

  • Cornelia Dwi Mulyawati [[email protected]] Page 6

    Used parameter files:

    Used TNSNAMES adapter to resolve the alias

    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL =

    TCP)(HOST = primary.odg.com)(PORT = 1521)) (CONNECT_DATA = (SERVER =

    DEDICATED) (SERVICE_NAME = prod)))

    OK (110 msec)

    STANDBY 1. Copy password file dari primary, rename password file tersebut menjadi password file dengan

    nama database oracle untuk mesin standby $ scp orapwprod

    [email protected]:/home/odg/oracle/app/oracle/product/11.2.0/db_1/dbs

    /orapwstby

    The authenticity of host 'stby.odg.com (192.168.6.155)' can't be

    established.

    RSA key fingerprint is 27:8b:74:32:5e:9f:d6:46:53:95:52:4e:43:84:b9:94.

    Are you sure you want to continue connecting (yes/no)? yes

    Warning: Permanently added 'stby.odg.com' (RSA) to the list of known

    hosts.

    [email protected]'s password:

    orapwprod 100% 1536 1.5KB/s

    00:00

    2. Buat pfile yang hanya berisi parameter DB_NAME, untuk parameter memory_target dan

    db_block_size, samakan dengan parameter memory_target dan db_block_size di pfile database

    di mesin primary

    [oracle@stby dbs]$ vi initstby.ora

    *.db_name='stby'

    *.db_unique_name='stby'

    *.memory_target=839909376

    *.db_block_size=8192

    3. Buat folder yang diperlukan untuk lokasi datafile, archive, dan adump (lakukan sebagai user

    root)

    # mkdir p /oradata/stby

    # mkdir p /archive

    # mkdir p /home/odg/oracle/app/oracle/admin/stby/adump

    # chown R oracle:oinstall /oradata

    # chown R oracle:oinstall /oradata/stby

    # chown R oracle:oinstall /archive

    # chown R oracle:oinstall /home/odg/oracle/app/oracle/admin/stby/adump

  • Cornelia Dwi Mulyawati [[email protected]] Page 7

    4. Ubah oracle_sid menjadi nama sid untuk database standby, kemudian startup nomount [oracle@stby dbs]$ export ORACLE_SID=stby

    [oracle@stby dbs]$ sqlplus "/as sysdba"

    SQL*Plus: Release 11.2.0.3.0 Production on Tue Jul 23 15:33:12 2013

    Copyright (c) 1982, 2011, Oracle. All rights reserved.

    Connected to an idle instance.

    SQL> startup nomount pfile='initstby.ora';

    ORACLE instance started.

    Total System Global Area 839282688 bytes

    Fixed Size 2233000 bytes

    Variable Size 494931288 bytes

    Database Buffers 339738624 bytes

    Redo Buffers 2379776 bytes

    5. Cek apakah bisa dilakukan koneksi sysdba SQL> connect sys/oracle@stby as sysdba;

    Connected.

    PRIMARY 1. Cek di sql, apakah bisa dilakukan koneksi sysdba

    SQL> connect sys/oracle@prod as sysdba;

    Connected.

    2. Jalankan RMAN, koneksikan database primary dan auxiliary database (standby database),

    jalankan duplicate rman $ rman target sys/oracle@prod auxiliary sys/oracle@stby

    Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jul 23

    16:13:25 2013

    Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights

    reserved.

    connected to target database: PROD (DBID=232969419)

    connected to auxiliary database: STBY (not mounted)

    RMAN>run {

    duplicate target database for standby from active database

    spfile

    parameter_value_convert 'prod','stby'

    set db_unique_name='stby'

  • Cornelia Dwi Mulyawati [[email protected]] Page 8

    set DB_FILE_NAME_CONVERT='/oradata/prod/','/oradata/stby/'

    set LOG_FILE_NAME_CONVERT='/oradata/prod/','/oradata/stby/'

    set control_files='/oradata/stby/control01.ctl'

    set log_archive_max_processes='5'

    set fal_client='stby'

    set fal_server='prod'

    set standby_file_management='AUTO'

    set log_archive_config='dg_config=(prod,stby)'

    set log_archive_dest_2='service=prod ASYNC

    valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=prod'

    ;

    }

    STANDBY 1. Cek status open_mode

    SQL> SELECT NAME, DB_UNIQUE_NAME, DATABASE_ROLE, OPEN_MODE FROM

    V$DATABASE;

    NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE

    --------- ------------------------------ ---------------- -------------

    PROD stby PHYSICAL STANDBY MOUNTED

    2. Cek archive log, samakan dengan archive log list di mesin primary SQL> archive log list;

    Database log mode Archive Mode

    Automatic archival Enabled

    Archive destination /archive/PROD

    Oldest online log sequence 0

    Next log sequence to archive 0

    Current log sequence 24

    Apabila lokasi archive di mesin standby tidak sesuai dengan lokasi yang diinginkan, maka ubah

    lokasinya

    a. Cek lokasi archive SQL> sho parameter LOG_ARCHIVE_DEST_1;

    NAME TYPE VALUE

    ----------------------- ----------- ------------------

    log_archive_dest_1 string LOCATION=/archive/PROD

    VALID_FOR=(ALL_LOGFILES,ALL_ROLES)

    DB_UNIQUE_NAME=stby

    log_archive_dest_10 string

    log_archive_dest_11 string

    log_archive_dest_12 string

    log_archive_dest_13 string

    log_archive_dest_14 string

  • Cornelia Dwi Mulyawati [[email protected]] Page 9

    log_archive_dest_15 string

    log_archive_dest_16 string

    log_archive_dest_17 string

    NAME TYPE VALUE

    ----------------------- ----------- -------------------

    log_archive_dest_18 string

    log_archive_dest_19 string

    b. Ubah lokasi archive SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/archive/STBY

    VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=stby' scope=both;

    System altered.

    3. Cek apakah archive log sudah ter-apply atau belum SQL> select sequence#, applied from v$archived_log;

    SEQUENCE# APPLIED

    ---------- ---------

    30 NO

    29 NO

    28 NO

    4. Eksekusi query di bawah agar archive log ter-apply SQL> recover managed standby database disconnect;

    Media recovery complete.

    5. Cek lagi archive log sudah ter-apply atau belum SQL> select sequence#, applied from v$archived_log;

    SEQUENCE# APPLIED

    ---------- ---------

    30 YES

    29 YES

    28 YES

    PRIMARY

    1. Jalankan query dibawah untuk men-tes apakah archive log yang di primary terkirim ke mesin

    standby SQL> alter system switch logfile;

    System altered.

    Setelah itu cek di mesin standby apakah archive log yang di primary terkirim ke mesin standby

  • Cornelia Dwi Mulyawati [[email protected]] Page 10

    STANDBY 1. Cek apakah archive log dari mesin primary terkirim ke mesin standby

    SQL> select process, thread#, sequence#, status from v$managed_standby;

    PROCESS THREAD# SEQUENCE# STATUS

    --------- ---------- ---------- ------------

    ARCH 0 0 CONNECTED

    ARCH 1 30 CLOSING

    ARCH 0 0 CONNECTED

    ARCH 0 0 CONNECTED

    ARCH 1 31 CLOSING

    RFS 0 0 IDLE

    RFS 0 0 IDLE

    RFS 0 0 IDLE

    RFS 1 32 IDLE

    MRP0 1 32 WAIT_FOR_LOG

    10 rows selected.

    2. Apabila ingin mematikan database standby dengan kondisi dimana archive dari primary dikirim

    ke database standby, tetapi tidak di apply di database standby maka matikan MRP-nya SQL> recover managed standby database cancel;

    Media recovery complete.

    SQL> select process, thread#, sequence#, status from v$managed_standby;

    PROCESS THREAD# SEQUENCE# STATUS

    --------- ---------- ---------- ------------

    ARCH 0 0 CONNECTED

    ARCH 1 30 CLOSING

    ARCH 0 0 CONNECTED

    ARCH 0 0 CONNECTED

    ARCH 1 31 CLOSING

    RFS 0 0 IDLE

    RFS 0 0 IDLE

    RFS 0 0 IDLE

    RFS 1 32 IDLE

    9 rows selected.

    3. Cek apakah file fisik archive terkirim dari mesin primary SQL> !ls -ltr /archive/STBY

    total 1752

    drwxr-x--- 2 oracle oinstall 4096 Jul 24 11:24 onlinelog

    -rw-r----- 1 oracle oinstall 1786880 Jul 26 00:01 1_31_821131093.arc

    4. Cek apakah archive sudah ter-apply

  • Cornelia Dwi Mulyawati [[email protected]] Page 11

    SQL> select sequence#, applied from v$archived_log;

    SEQUENCE# APPLIED

    ---------- ---------

    30 YES

    29 YES

    28 YES

    31 YES

  • Cornelia Dwi Mulyawati [[email protected]] Page 12

    AGAR MENJADI ACTIVE DATA GUARD

    STANDBY 1. Matikan standby database (archive dari primary dikirim ke database standby, tetapi tidak di

    apply di database standby), agar dapat dilakukan query di database standby: SQL> recover managed standby database cancel;

    Media recovery complete.

    2. Cek status standby database: SQL> SELECT NAME, DB_UNIQUE_NAME, DATABASE_ROLE, OPEN_MODE FROM

    V$DATABASE;

    NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE

    ----------- ------------------ ------------------ ---------------------

    PROD stby PHYSICAL STANDBY MOUNTED

    3. Ubah status standby database menjadi open : SQL> alter database open;

    Database altered.

    4. Aktifkan lagi MRP-nya: SQL> recover managed standby database disconnect;

    Media recovery complete.

    5. Cek status standby database: SQL> SELECT NAME, DB_UNIQUE_NAME, DATABASE_ROLE, OPEN_MODE FROM

    V$DATABASE;

    NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE

    --------- ------------------ ------------------- ----------------------

    PROD stby PHYSICAL STANDBY READ ONLY WITH APPLY

    6. Cek apakah archive sudah ter apply atau belum: SQL> select sequence#, applied from v$archived_log;

    SEQUENCE# APPLIED

    ---------- ---------

    34 YES

    35 YES

    36 YES

    37 YES

    38 YES

    7. Cek status standby database:

  • Cornelia Dwi Mulyawati [[email protected]] Page 13

    SQL> select process, thread#, sequence#, status from v$managed_standby;

    PROCESS THREAD# SEQUENCE# STATUS

    --------- -------- --------- ------------

    ARCH 1 37 CLOSING

    ARCH 0 0 CONNECTED

    ARCH 0 0 CONNECTED

    ARCH 0 0 CONNECTED

    ARCH 1 38 CLOSING

    MRP0 1 39 WAIT_FOR_LOG

    RFS 0 0 IDLE

    RFS 0 0 IDLE

    RFS 1 39 IDLE

    RFS 0 0 IDLE

    Note : kalau mau mengembalikan agar jadi odg lagi, di restart aja standby database-nya

  • Cornelia Dwi Mulyawati [[email protected]] Page 14

    PHYSICAL STANDBY KE SNAPSHOT DAN SEBALIKNYA

    CONVERT PHYSICAL STANDBY DATABASE MENJADI SNAPSHOT DATABASE

    Di Oracle Data Guard 11g, ada metode snapshot. Pengertiannya diterjemahin sendiri ya.

    STANDBY

    1. Stop redo apply-nya: SQL> recover managed standby database cancel;

    Media recovery complete.

    2. Convert physical stanbdby ke snapshot standby: SQL> alter database convert to snapshot standby;

    Database altered.

    3. Open database-nya SQL> alter database open;

    Database altered.

    4. Cek database role-nya apakah sudah berubah atau belum: SQL> SELECT NAME, DB_UNIQUE_NAME, DATABASE_ROLE, OPEN_MODE FROM

    V$DATABASE;

    NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE

    --------- ------------------------------ ---------------- ----------

    PROD stby SNAPSHOT STANDBY READ WRITE

    Note :

    While the standby is in snapshot standby mode you are free to run transactions against the

    snapshot standby.

    Using this feature you can use your physical standby database to temporary process transactions. If you have a need to test out application fixes or new functionality you can leverage your physical standby while still protecting the primary database. A Snapshot Standby database still receives redo data from the primary but it does not apply the redo data until after it converted back to a physical standby. Keep in mind that a snapshot standby database cannot be the target of a switchover or failover. A snapshot must be converted back to a physical standby prior to performing a role transition. Flashback Database technology is used in the conversion process so the Fast (Flash) Recovery area must be configured.

  • Cornelia Dwi Mulyawati [[email protected]] Page 15

    While the standby is in snapshot mode it still continues to receive redo data from the primary

    but it does not apply the redo data. You verify the transport by switching logs on the primary

    and looking at the alert log on the standby

    Kira-kira tejemahannya begini (jangan percaya banget ya sama terjemahannya, takutnya kalau

    salah, coba sambil buka google translate aja hehehehe):

    Ketika databse standby dalam kondisi snapshot standby, maka dapat dilakukan transaksi di

    snapshot standby tersebut.

    Ketika standby database yang berada dalam dalam kondisi snapshot standby menerima redo

    data dari primary tetapi tidak me-apply-nya, maka lakukan verifikasi pengiriman redo-nya

    dengan switch log dan lihat alert di standby database

    CONVERT SNAPSHOT DATABASE MENJADI PHYSICAL STANDBY DATABASE

    STANDBY

    1. Matikan standby database dan nyalakan kembali dengan status mount SQL> shut immediate;

    Database closed.

    Database dismounted.

    ORACLE instance shut down.

    SQL> startup mount;

    ORACLE instance started.

    Total System Global Area 839282688 bytes

    Fixed Size 2233000 bytes

    Variable Size 494931288 bytes

    Database Buffers 339738624 bytes

    Redo Buffers 2379776 bytes

    Database mounted.

    2. Convert snapshot standby ke physical standby (sambil buka alert ya) SQL> alter database convert to physical standby;

    Database altered.

    Di alert kayak gini nih: Tue Aug 20 12:56:46 2013

    alter database convert to physical standby

    ALTER DATABASE CONVERT TO PHYSICAL STANDBY (stby)

    krsv_proc_kill: Killing 3 processes (all RFS)

    Tue Aug 20 12:57:41 2013

  • Cornelia Dwi Mulyawati [[email protected]] Page 16

    Flashback Restore Start

    Tue Aug 20 13:00:58 2013

    Flashback Restore Complete

    Drop guaranteed restore point

    Tue Aug 20 13:01:09 2013

    Stopping background process RVWR

    Deleted Oracle managed file /archive/STBY/flashback/o1_mf_915zhd9y_.flb

    Deleted Oracle managed file /archive/STBY/flashback/o1_mf_915zjokp_.flb

    Guaranteed restore point dropped

    Clearing standby activation ID 235822423 (0xe0e5d57)

    The primary database controlfile was created using the

    'MAXLOGFILES 16' clause.

    There is space for up to 13 standby redo logfiles

    Use the following SQL commands on the standby database to create

    standby redo logfiles that match the primary database:

    ALTER DATABASE ADD STANDBY LOGFILE 'srl1.f' SIZE 52428800;

    ALTER DATABASE ADD STANDBY LOGFILE 'srl2.f' SIZE 52428800;

    ALTER DATABASE ADD STANDBY LOGFILE 'srl3.f' SIZE 52428800;

    ALTER DATABASE ADD STANDBY LOGFILE 'srl4.f' SIZE 52428800;

    Tue Aug 20 13:01:18 2013

    ARC3: Becoming the active heartbeat ARCH

    Shutting down archive processes

    Archiving is disabled

    ARCH shutting down

    ARC3: Relinquishing active heartbeat ARCH roleTue Aug 20 13:01:19 2013

    ARCH shutting down

    ARC4: Archival stopped

    ARC3: Archival stoppedTue Aug 20 13:01:19 2013

    ARCH shutting down

    ARC2: Archival stopped

    Tue Aug 20 13:01:19 2013

    ARCH shutting down

    ARC0: Archival stopped

    Tue Aug 20 13:01:19 2013

    ARCH shutting down

    ARC1: Archival stopped

    Tue Aug 20 13:01:26 2013

    Completed: alter database convert to physical standby

    Tue Aug 20 13:03:00 2013

    destination database instance is 'started' not 'mounted'

    Tue Aug 20 13:04:02 2013

    destination database instance is 'started' not 'mounted'

    3. Aktifkan MRP-nya : SQL> recover managed standby database disconnect;

    Media recovery complete

  • Cornelia Dwi Mulyawati [[email protected]] Page 17

    SWITCHOVER

    PRIMARY Note :

    - pastikan tidak ada job yang sedang running

    - buka alert primary dan standby (tail f)

    1. Cek job apa saja yang sedang running SQL> SELECT * FROM DBA_JOBS_RUNNING;

    no rows selected

    SQL> SHOW PARAMETER job_queue_processes;

    NAME TYPE VALUE

    ----------------------- ----------- ------------------------------

    job_queue_processes integer 1000

    2. Ubah value parameter job_queue_processes menjadi 0 (nanti dikembaliin seperti semula

    lagi ya) SQL> ALTER SYSTEM SET job_queue_processes=0;

    System altered.

    3. Cek status switch_over SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

    SWITCHOVER_STATUS

    --------------------

    TO STANDBY

    Apabila value TO STANDBY atau SESSION ACTIVE, maka hal ini menandakan bahwa database

    primary dapat di switchover menjadi database standby. Apabila value-nya bukan TO STANDBY

    atau SESSION ACTIVE, katanya itu berarti redo transport-nya tidak ter-configure dengan benar

    atau tidak berfungsi dengan sebagaimana mestinya.

    4. Ayo kita switchover

    - Kalau status switchover-nya TO STANDBY SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY;

    Database altered.

    - Kalau status switchover-nya SESSION ACTIVE

  • Cornelia Dwi Mulyawati [[email protected]] Page 18

    SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY WITH SESSION

    SHUTDOWN;

    Database altered.

    STANDBY Note : pastikan MRP aktif

    1. Cek status switchover: SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

    SWITCHOVER_STATUS

    --------------------

    TO PRIMARY

    Apabila value-nya TO PRIMARY atau SESSION ACTIVE, maka hal ini menandakan bahwa

    database standby dapat di switchover ke primary. Apabila value-nya bukan TO PRIMARY atau

    SESSION ACTIVE, maka pastikan bahwa redo apply aktif dan dan redo tansport sudah di

    configure dengan benar dan berfungsi sebagaimana mestinya.

    2. Ayo kita switchover SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

    Database altered.

    3. Open database primary yang baru SQL> ALTER DATABASE OPEN;

    Database altered.

    Sekarang database ini telah menjadi database primary.

    STANDBY DATABASE BARU 1. Restart database

    SQL> shutdown immediate;

    SQL> exit

    SQL> startup mount;

    2. Aktifkan MRP SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT

    LOGFILE DISCONNECT;

    Database altered

  • Cornelia Dwi Mulyawati [[email protected]] Page 19

    POST-SWITCHOVER Kembalikan semua value parameter yang di ubah pada saat switchover seperti semula pada saat

    sebelum dilakukan switchover.

  • Cornelia Dwi Mulyawati [[email protected]] Page 20

    ISENG-ISENG

    Note : Ini bagian iseng-isengnya penulis yah. Kalau menurut yang baca, bagian ini gak penting,

    silahkan diabaikan, hapus bagian ini, atau kalau perlu hapus file ini sekalian

    ISENG CREATE DAN DROP TABLESPACE Note : Disini mau dites, kalau buat tablespace di database primary, terkirim gak ke standby. Dari

    teori yang saya baca (Oracle Dataguard, Concept And Administration), di database standby

    ada parameter standby_file_management. Value parameter ini harus AUTO agar si

    tablespace yang dibentuk di primary, sukses dikirim ke standby. Jangan lupa file alert di

    kedua database dibuka ya (tail f)

    STANDBY

    Note : pastikan MRP aktif

    1. Cek parameter standby_file_management SQL> show parameter standby_file;

    NAME TYPE VALUE

    ------------------------------------ ----------- ----------------------

    standby_file_management string AUTO

    PRIMARY

    1. Cek lokasi datafile SQL> select name from v$datafile;

    NAME

    -----------------------------------------------------------------------

    /oradata/prod/system01.dbf

    /oradata/prod/sysaux01.dbf

    /oradata/prod/undotbs01.dbf

    /oradata/prod/users01.dbf

    /oradata/prod/example01.dbf

    2. Buat tablespace (yang kecil-kecil aja, namanya juga iseng) SQL> create tablespace test datafile '/oradata/prod/test.dbf' size 1m;

    Tablespace created.

    SQL> alter system switch logfile;

  • Cornelia Dwi Mulyawati [[email protected]] Page 21

    System altered.

    3. Periksa datafile SQL> select name from v$datafile;

    NAME

    -----------------------------------------------------------------------

    /oradata/prod/system01.dbf

    /oradata/prod/sysaux01.dbf

    /oradata/prod/undotbs01.dbf

    /oradata/prod/users01.dbf

    /oradata/prod/example01.dbf

    /oradata/prod/test.dbf

    6 rows selected.

    4. Periksa tablespace SQL> select name from v$tablespace;

    NAME

    ------------------------------

    SYSTEM

    SYSAUX

    UNDOTBS1

    USERS

    TEMP

    EXAMPLE

    TEST

    7 rows selected.

    STANDBY

    1. Periksa apakah datafile yang dibuat di primary, terkirim ke standby SQL> select name from v$datafile;

    NAME

    ----------------------------------------------------------------------

    /oradata/stby/system01.dbf

    /oradata/stby/sysaux01.dbf

    /oradata/stby/undotbs01.dbf

    /oradata/stby/users01.dbf

    /oradata/stby/example01.dbf

    /oradata/stby/test.dbf

    6 rows selected.

  • Cornelia Dwi Mulyawati [[email protected]] Page 22

    2. Periksa apakah tablespace yang dibuat di primary, terbentuk di standby SQL> select name from v$tablespace;

    NAME

    ------------------------------

    SYSTEM

    SYSAUX

    UNDOTBS1

    USERS

    TEMP

    EXAMPLE

    TEST

    7 rows selected.

    Note : Oke, sukses ya. Tapi kalau value parameter standby_fie_management nya MANUAL

    gimana ya.. Yuk dicoba

    STANDBY

    1. Matikan MRP SQL> recover managed standby database cancel;

    Media recovery complete.

    2. Ubah value parameter standby_file_management menjadi manual SQL> alter system set standby_file_management='MANUAL';

    System altered.

    3. Cek value parameter-nya sudah berubah atau belum SQL> show parameter standby_file_management;

    NAME TYPE VALUE

    ------------------------------------ ----------- ----------------------

    standby_file_management string MANUAL

    4. Nyalakan lagi MRP-nya SQL> recover managed standby database disconnect;

    Media recovery complete.

  • Cornelia Dwi Mulyawati [[email protected]] Page 23

    PRIMARY

    1. Buat tablespace SQL> create tablespace test01 datafile '/oradata/prod/test01.dbf' size

    1m;

    Tablespace created.

    SQL> alter system switch logfile;

    System altered.

    2. Periksa datafile-nya terbentuk atau tidak SQL> select name from v$datafile;

    NAME

    -----------------------------------------------------------------------

    /oradata/prod/system01.dbf

    /oradata/prod/sysaux01.dbf

    /oradata/prod/undotbs01.dbf

    /oradata/prod/users01.dbf

    /oradata/prod/example01.dbf

    /oradata/prod/test.dbf

    /oradata/prod/test01.dbf

    7 rows selected.

    3. Periksa tablespace-nya SQL> select name from v$tablespace;

    NAME

    ------------------------------

    SYSTEM

    SYSAUX

    UNDOTBS1

    USERS

    TEMP

    EXAMPLE

    TEST

    TEST01

    8 rows selected.

  • Cornelia Dwi Mulyawati [[email protected]] Page 24

    STANDBY

    1. Cek alert-nya Tue Aug 06 21:52:04 2013

    Archived Log entry 41 added for thread 1 sequence 76 ID 0xdfb3abe dest

    1:

    Tue Aug 06 21:52:08 2013

    Media Recovery Log /archive/STBY/1_76_821131093.arc

    File #7 added to control file as 'UNNAMED00007' because

    the parameter STANDBY_FILE_MANAGEMENT is set to MANUAL

    The file should be manually created to continue.

    MRP0: Background Media Recovery terminated with error 1274

    Errors in file

    /home/odg/oracle/app/oracle/diag/rdbms/stby/stby/trace/stby_mrp0_3098.t

    rc:

    ORA-01274: cannot add datafile '/oradata/prod/test01.dbf' - file could

    not be created

    Recovery interrupted!

    Recovery stopped due to failure in applying recovery marker (opcode

    17.30).

    Datafiles are recovered to a consistent state at change 1327808 but

    controlfile could be ahead of datafiles.

    MRP0: Background Media Recovery process shutdown (stby)

    2. Cek datafile SQL> select name from v$datafile;

    NAME

    -----------------------------------------------------------------------

    ---------

    /oradata/stby/system01.dbf

    /oradata/stby/sysaux01.dbf

    /oradata/stby/undotbs01.dbf

    /oradata/stby/users01.dbf

    /oradata/stby/example01.dbf

    /oradata/stby/test.dbf

    /home/odg/oracle/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00007

    7 rows selected.

    Note : bisa dilihat lokasi datafile dan nama datafile-nya berubah

    3. Ubah lokasi datafile dan nama file-nya, sesuaikan dengan yang dibuat di primary SQL> alter database create datafile

    '/home/odg/oracle/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00007' as

    '/oradata/stby/test01.dbf';

    Database altered.

  • Cornelia Dwi Mulyawati [[email protected]] Page 25

    Di alert akan muncul: Tue Aug 06 22:05:07 2013

    alter database create datafile

    '/home/odg/oracle/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00007' as

    '/oradata/stby/test01.dbf'

    Completed: alter database create datafile

    '/home/odg/oracle/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00007' as

    '/oradata/stby/test01.dbf'

    4. Cek datafile dan tablespace SQL> select name from v$datafile;

    NAME

    -----------------------------------------------------------------------

    /oradata/stby/system01.dbf

    /oradata/stby/sysaux01.dbf

    /oradata/stby/undotbs01.dbf

    /oradata/stby/users01.dbf

    /oradata/stby/example01.dbf

    /oradata/stby/test.dbf

    /oradata/stby/test01.dbf

    7 rows selected.

    SQL> select name from v$tablespace;

    NAME

    ------------------------------

    SYSTEM

    SYSAUX

    UNDOTBS1

    USERS

    TEMP

    EXAMPLE

    TEST

    TEST01

    8 rows selected.

    5. Ubah value parameter standby_file_management menjadi AUTO SQL> alter system set standby_file_management=AUTO;

    System altered.

    6. Aktifkan MRP-nya SQL> recover managed standby database disconnect;

    Media recovery complete.

  • Cornelia Dwi Mulyawati [[email protected]] Page 26

    Note : Create database sudah dicoba, sekarang di drop aja ya.. Kan cuma buat iseng-iseng aja

    tablespace yang tadi

    PRIMARY

    1. Drop database berikut datafile dan content-nya SQL> drop tablespace test including contents and datafiles;

    Tablespace dropped.

    SQL> drop tablespace test01 including contents and datafiles;

    Tablespace dropped.

    SQL> alter system switch logfile;

    System altered.

    Note : ok, tablespace dan datafile sudah di hapus, tunggu beberapa saat lalu cek apakah

    datafile dan tablespace tersebut terhapus juga di standby

    STANDBY

    1. Cek datafile dan tablespace apakah sudah terhapus atau belum SQL> select name from v$tablespace;

    NAME

    ------------------------------

    SYSTEM

    SYSAUX

    UNDOTBS1

    USERS

    TEMP

    EXAMPLE

    6 rows selected.

    SQL> select name from v$datafile;

    NAME

    -----------------------------------------------------------------------

    /oradata/stby/system01.dbf

    /oradata/stby/sysaux01.dbf

    /oradata/stby/undotbs01.dbf

    /oradata/stby/users01.dbf

    /oradata/stby/example01.dbf