Thứ Năm, 6 tháng 8, 2015

Another way: To Create An Oracle Dataguard !

@@@@@@@@@@@@@PRIMARY@@@@@@@@@@@@@

1/ Backup RMAN full + Standby Controlfile:

RMAN> run {
2> allocate channel st1 device type disk;
3> allocate channel st2 device type disk;
4> backup as compressed backupset format '/setup/rman/%d_%U.rman' database plus archivelog;
5> backup format '/setup/rman/std_controlfile.ctl' current controlfile for standby;
6> release channel st1;
7> release channel st2;
8> }

2/ Backup spfile.ora

SQL> create pfile='/setup/rman/pfile.ora' from spfile;[backup]

3/ Set new parameters

SQL>ALTER SYSTEM SET DB_UNIQUE_NAME='EWALLET';
SQL>ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(EWALLET,EWALLET_DR)';
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/app/oracle/fast_recovery_area/EWALLET/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=EWALLET';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=EWALLET_DR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=EWALLET_DR';
ALTER SYSTEM SET DB_FILE_NAME_CONVERT='EWALLET','EWALLET' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='EWALLET','EWALLET' SCOPE=SPFILE;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
ALTER SYSTEM SET FAL_SERVER='EWALLET_DR';
ALTER SYSTEM SET FAL_CLIENT='EWALLET';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
ALTER SYSTEM SET STANDBY_ARCHIVE_DEST='/home/oracle/app/oracle/fast_recovery_area/EWALLET/standbylog';
SQL> create pfile='/setup/rman/pfile_for_standby.ora' from spfile;

4/ Create standby logfile to use realtime apply log
[(maximum number of logfiles for each thread + 1) * maximum number of threads]
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL;
SQL> alter database add standby logfile group 4 ('/home/oracle/app/oracle/oradata/EWALLET/standby1.rdo') size 200M;
SQL> alter database add standby logfile group 5 ('/home/oracle/app/oracle/oradata/EWALLET/standby2.rdo') size 200M;
SQL> alter database add standby logfile group 6 ('/home/oracle/app/oracle/oradata/EWALLET/standby3.rdo') size 200M;
SQL> alter database add standby logfile group 7 ('/home/oracle/app/oracle/oradata/EWALLET/standby4.rdo') size 200M;
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

5/ Create tnsnames by netmgr


EWALLET =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.159.20)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = EWALLET)
    )
  )

EWALLET_DR =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.159.21)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = EWALLET_DR)
    )
  )



@@@@@@@@@@@@@DR@@@@@@@@@@@@@

6/ Copy all to DR

$scp /setup/rman/* oracle@192.168.159.21:/setup/rman

7/ set pfile_for_standby.ora:

*.db_unique_name='EWALLET_DR'
*.db_file_name_convert='EWALLET','EWALLET'
*.fal_client='EWALLET_DR'
*.fal_server='EWALLET'
*.log_archive_config='DG_CONFIG=(EWALLET,EWALLET_DR)'
*.log_archive_dest_1='LOCATION=/home/oracle/app/oracle/fast_recovery_area/EWALLET/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=EWALLET_DR'
*.log_archive_dest_2='SERVICE=EWALLET_DR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=EWALLET'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_file_name_convert='EWALLET','EWALLET'
*.standby_archive_dest='/home/oracle/app/oracle/fast_recovery_area/EWALLET/standbylog'
*.standby_file_management='AUTO'

8/ Create directories follow pfile_for_standby.ora:

9/ Create tnsnames by netmgr or copy from primary

EWALLET =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.159.20)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = EWALLET)
    )
  )

EWALLET_DR =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.159.21)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = EWALLET_DR)
    )
  )

10/ Make standby

[oracle@dg02 ~]$ export ORACLE_SID=EWALLET
[oracle@dg02 ~]$ rman target /
RMAN> startup nomount pfile='/setup/rman/pfile_for_standby.ora'
RMAN> restore standby controlfile from '/setup/rman/stb_controlfile.ctl';
RMAN> alter database mount;
RMAN> restore database;
RMAN> recover database;
[oracle@dg02 ~]$ export ORACLE_SID=EWALLET
[oracle@dg02 ~]$ sqlplus / as sysdba
SQL> alter system register;
SQL> !lsnrctl status
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL;
SQL> alter database add standby logfile group 4 ('/home/oracle/app/oracle/oradata/EWALLET/standby1.rdo') size 200M;
SQL> alter database add standby logfile group 5 ('/home/oracle/app/oracle/oradata/EWALLET/standby2.rdo') size 200M;
SQL> alter database add standby logfile group 6 ('/home/oracle/app/oracle/oradata/EWALLET/standby3.rdo') size 200M;
SQL> alter database add standby logfile group 7 ('/home/oracle/app/oracle/oradata/EWALLET/standby4.rdo') size 200M;
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
SQL> alter database recover managed standby database using current logfile disconnect from session;
SQL> create spfile='/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/spfileEWALLET' from pfile='/setup/rman/pfile_for_standby.ora';

11/ Check standby

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

 SEQUENCE# APPLIED   COMPLETIO
---------- --------- ---------
2 YES     16-JAN-15
12 YES     16-JAN-15
3 YES     16-JAN-15
4 YES     16-JAN-15
6 YES     16-JAN-15
5 YES     16-JAN-15
7 YES     16-JAN-15
8 YES     16-JAN-15
9 YES     16-JAN-15
10 YES     16-JAN-15
11 YES     16-JAN-15

 SEQUENCE# APPLIED   COMPLETIO
---------- --------- ---------
13 YES     16-JAN-15
14 YES     16-JAN-15

Không có nhận xét nào: