FINAL DATA GUARD ON ORACLE 11G ON LINUX SYSTEM



PRIMARY DATABASE

1.
SQL> ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;

2.
SQL>  ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;

3. SHU IMMEDIATE;

4. STARTUP

5. Create Folder with name "backup" and create pfile in backup folder

SQL> Create pfile='/home/oracle/backup/pfile.ora' from spfile


6. Open Pfile and past following code.

*.db_unique_name='PRIMARY'
*.FAL_Client='primary'
*.FAL_Server='standby'
*.Log_archive_config='DG_CONFIG=(primary, standby)'
*.Log_archive_dest_1='Location=/home/oracle/backup VALID_FOR=(ALL_LOGFILES,ALL_ROLES) db_unique_name=primary'
*.Log_archive_dest_2='Service=standby lgwr async VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=standby'
*.Log_archive_dest_state_1=ENABLE
*.Log_archive_dest_state_2=ENABLE
*.Service_names='srbdb'
*.Standby_File_Management='AUTO'

Note: Change Password mode in shared mode

7. shut down the Database.

SQL> shut immediate


8. Now Open Database with pfile created above.

SQL> Startup mount pfile='/home/oracle/backup/pfile.ora';


8. Check weather database is archive or not

SQL> Archive Log list 

9. if Not Archived than type following commands.

SQL> shut immediate

SQL> startup mount;

SQL> alter database archivelog;

SQL> Alter database flashback on;

SQL> shut immediate;

SQL> startup

10. Create Log Files for Standby Database Server.

SQL> Alter database add standby logfile('/u01/app/oracle/oradata/srbdb/standbyredo1.log') size 150m;

SQL> Alter database add standby logfile('/u01/app/oracle/oradata/srbdb/standbyredo2.log') size 150m;

11. Create Control File for Standby Database Server.

Alter database create standby controlfile as
'/u01/app/oracle/oradata/srbdb/standbycontrol.ctl';

12. Shut Down the Primary Database.

SQL> Shutdown immediate.

13. Now on PRIMARY site create a service in TNSnames.ora file through which the PRIMARY site will be connected to the Standby machine.

$ cd /u01/app/oracle/product/11.2.0/db_1/network/admin/

$ vi tnsnames.ora

14. Past the following code in TNSname.ora File

standby =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.96)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = srbdb)
   )
 )


15. Shut down the  Primary Database.

SQL> Shutdown immediate.


16. shut down the Standby Database.

SQL> Shutdown immediate.

17. Copy All Data File and  standbyredo log files and Control Fiel to Standby Database Server through linux console.

$ scp example01.dbf standbycontrol.ctl standbyredo1.log standbyredo2.log standbyredo.log sysaux01.dbf system01.dbf temp01.dbf undotbs01.dbf users01.dbf 172.16.3.22:/u01/app/oracle/oradata/srbdb/



18.Deleter Password file from Standby Database.

$ cd /u01/app/oracle/product/11.2.0/db_1/dbs/
$ scp orapwsrbdb 172.16.3.22: /u01/app/oracle/product/11.2.0/db_1/dbs/

19.Start Primary Database with Pfile

SQL> Startup pfile='/home/oracle/backup/pfile.ora';


20.Creat SPFile on Primary Database from PFile.

SQL> create spfile from pfile='/home/oracle/backup/pfile.ora'; 


21. Now start the primary database.

SQL> Shutdown immediate

SQL> Startup

22. Chek Ping on Primary Database to check connectivity with Standby Database

$ ping standby

SQL> !tnsping standby











Now Steps Completed on Primary database


NOW PERFORM STEP ON SECONDARY DATABASE


1.Create pfile on Standby Database from spfile.

SQL> Create pfile='/home/oracle/backup/pfile.ora' from spfile

OR

Copy pfile from Primay Database Server by following command.

2. on Primary Database Server

$ cd /home/oracle/backup/pfile.ora

$ scp pfile.ora 172.16.3.22:/home/oracle/backup/


3.open Pfile and past following code.

*.db_unique_name='STANDBY'
*.FAL_Client='standby'
*.FAL_Server='primary'
*.Log_archive_config='DG_CONFIG=(primary, standby)'
*.Log_archive_dest_1='Location=/u02/ARCHIVE
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) db_unique_name=standby'
*.Log_archive_dest_2='Service=primary
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=primary'
*.Log_archive_dest_state_1=ENABLE
*.Log_archive_dest_state_2=ENABLE
*.Service_names='srbdb'
*.Standby_File_Management='AUTO'



4. To veryify some parameters

SQL> show parameter log_

SQL> show parameter fal_

SQL> alter system set Log_archive_dest_2='Service=standby db_unique_name=standby';

4. Now start the Standby database with pfile

SQL> startup mount pfile='/home/oracle/backup/pfile.ora';

5. Check the mode of Archiving by following command.

SQL> Archive Log List

6. IF NOT THAN TYPE FOLLOWING COMMANDS.

SQL> alter database archivelog;

SQL> Alter database flashback on;

SQL> shut immediate;

SQL> startup mount pfile='/home/oracle/backup/pfile.ora';

# mount -t tmpfs shmfs -o size=1500m /dev/shm

7. create spfile from pfile.

SQL> create spfile from pfile='/home/oracle/backup/pfile.ora';

SQL> shut immediate;




8. Now on Standby (DR) site create a service in TNSnames.ora file through which the Standby site will be connected to the PRIMARY machine.

$ cd /u01/app/oracle/product/11.2.0/db_1/network/admin/

$ vi tnsnames.ora

14. Past the following code in TNSname.ora File

primary =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.96)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = srbdb)
   )
 )


15. Startup Standby Database (DR) site.

SQL> startup mount;

Step Completed on STANDBY database


NOW FOLLOW STEPS ON PRIMARY DATABASE SERVER

SQL> show parameter log_archive_dest_state_2

SQL> Alter system set log_archive_dest_state_2=enable scope=spfile;

SQL> Archive log list;

SQL> Alter system switch logfile;

SQL> Archive log list;

SQL> Select status, error from v$archive_dest where dest_id=2;

16. To Check Log / Trace File.

$ cd /u01/app/oracle/diag/rdbms/primary/srbdb/trace

$ tail -f alert_srbdb.log

17. Note:- The status column should return the "Valid" value


NOW FOLLOW STEPS ON STANDBY DATABASE SERVER


SQL> alter database recover managed standby database disconnect;

SQL> select name, applied, archived from v$archived_log;

SQL> select database_role from v$database;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;


18. A database can be in one of two mutually exclusive modes (primary or standby). These roles can be altered at runtime without loss of data or resetting of redo logs. This process is known as a Switchover and can be performed using the following statements.





CONVERT PRIMARY DATABASE INTO STANDBY DATABASE

18. On Primary Database Server

SQL> CONNECT / AS SYSDBA

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY;

-- Shutdown primary database

SQL> SHUTDOWN IMMEDIATE;

-- Mount old primary database as standby database

SQL> STARTUP NOMOUNT;

SQL> alter database recover managed standby database finish;

SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;



On the original standby database issue the following commands.

19. ON STANDBY DATABASE SERVER

-- Convert standby database to primary

SQL> CONNECT / AS SYSDBA

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

-- Shutdown standby database

SQL> SHUTDOWN IMMEDIATE;

-- Open old standby database as primary

STARTUP;

20. To Check Log / Trace File.

$ cd /u01/app/oracle/diag/rdbms/standby/srbdb/trace

$ tail -f alert_srbdb.log

21. Now Try to connect Standby Database Server from Primary Database Server

SQL> conn sys@standby as sysdba
Enter password: abc
Connected.

Comments