Configuration of Oracle Database 10g Dataguard

12
CONFIGURATION OF ORACLE DATABASE 10g DATA GUARD (DATED: 27 AUGUST 2011) Written By: Ahmer Mansoor Email : [email protected] Profile : http://www.linkedin.com/in/ahmermansoor

description

Step Configuration of Oracle Database 10g Dataguard

Transcript of Configuration of Oracle Database 10g Dataguard

CONFIGURATION

OF

ORACLE DATABASE 10g

DATA GUARD

(DATED: 27 AUGUST 2011)

Written By: Ahmer Mansoor Email : [email protected]

Profile : http://www.linkedin.com/in/ahmermansoor

Written By: Ahmer Mansoor Email : [email protected] Profile : http://www.linkedin.com/in/ahmermansoor

Page | 2

CONSIDERATIONS

PRIMARY STANDBY

DATABASE NAME KARACHI LAHORE

IP ADDRESS 172.17.1.4 172.17.1.5

DATABASE VERSION 10.2.0.2 10.2.0.2

SHARED FOLDER C:\SHARED N/A

CONSOLE SYSTEM 172.17.1.53

STANDBY DATABASE PHYSICAL STANDBY

PROTECTION LEVEL MAXIMUM PERFORMANCE

Written By: Ahmer Mansoor Email : [email protected] Profile : http://www.linkedin.com/in/ahmermansoor

Page | 3

1) PREPARE PRIMARY DATABASE

a) Connect to Primary Database Server using Remote Desktop Connection

C:\> MSTSC

b) Enable Archivelog Mode

C:\> SET ORACLE_SID=KARACHI

C:\> SQLPLUS / AS SYSDBA

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP MOUNT;

SQL> ALTER DATABASE ARCHIVELOG;

SQL> ALTER DATABASE OPEN;

c) Enable Force Logging on the Primary Database

SQL> ALTER DATBASE FORCE LOGGING;

d) Set Required Parameter

SQL> CREATE PFILE='C:\SHARED\INITKARACHI.ORA' FROM SPFILE;

Open the file 'INITKARACHI.ORA' on notepad and set following parameters

LOG_ARCHIVE_DEST_1='SERVICE=LAHORE LGWR ASYNC NOAFFIRM'

STANDBY_FILE_MANAGEMENT=AUTO

FAL_SERVER='LAHORE'

FAL_CLIENT='KARACHI'

LOG_FILE_NAME_CONVERT='LAHORE','KARACHI'

DB_FILE_NAME_CONVERT='LAHORE','KARACHI'

DG_BROKER_START=TRUE

SQL> SHUTDOWN IMMEDIATE;

SQL> CREATE SPFILE FROM PFILE='C:\SHARED\INITKARACHI.ORA';

SQL> STARTUP;

Written By: Ahmer Mansoor Email : [email protected] Profile : http://www.linkedin.com/in/ahmermansoor

Page | 4

e) Create Standby Redo Logs for Active Archival

i) Get size of Redo Log files in the KARACHI Database

SQL> SELECT BYTES FROM V$LOG;

ii) Create Standby Redo Log files of the same size as Redo Log files

SQL> ALTER DATABASE ADD STANDBY LOGFILE

('C:\ORACLE\PRODUCT\10.2.0\ORADATA\KARACHI\STANDBY01.LOG')

SIZE 52428800;

SQL> ALTER DATABASE ADD STANDBY LOGFILE

('C:\ORACLE\PRODUCT\10.2.0\ORADATA\KARACHI\STANDBY02.LOG')

SIZE 52428800;

SQL> ALTER DATABASE ADD STANDBY LOGFILE

('C:\ORACLE\PRODUCT\10.2.0\ORADATA\KARACHI\STANDBY03.LOG')

SIZE 52428800;

SQL> ALTER DATABASE ADD STANDBY LOGFILE

('C:\ORACLE\PRODUCT\10.2.0\ORADATA\KARACHI\STANDBY04.LOG')

SIZE 52428800;

f) Configure Listener and TNS Names at Primary Database Server

TNSNAMES.ORA

KARACHI =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.1.4)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = KARACHI)

)

)

LAHORE =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.1.5)(PORT = 1521))

Written By: Ahmer Mansoor Email : [email protected] Profile : http://www.linkedin.com/in/ahmermansoor

Page | 5

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = LAHORE)

)

)

LISTENER.ORA

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = c:\oracle\product\10.2.0\db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = KARACHI)

(SID_NAME = KARACHI)

)

(SID_DESC =

(GLOBAL_DBNAME = KARACHI_DGMGRL)

(SID_NAME = KARACHI)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

)

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.1.4)(PORT = 1521))

)

)

C:\>LSNRCTL STOP

C:\>LSNRCTL START

Written By: Ahmer Mansoor Email : [email protected] Profile : http://www.linkedin.com/in/ahmermansoor

Page | 6

g) Copy required file to shared folder to transfer to Standby Site

i) Create Standby Controlfile for Standby Database

C:\>SET ORACLE_SID=KARACHI

C:\>SQLPLUS / AS SYSDBA

SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'C:\SHARED\CONTROL01.CTL';

ii) Take a cold backup of Primary Database

SQL> SHUTDOWN IMMEDIATE;

C:\>MKDIR \SHARED\DB

C:\>CD \ORACLE\PRODUCT\10.2.0\ORADATA\KARACHI

C:\ ORACLE\PRODUCT\10.2.0\ORADATA\KARACHI>COPY *.DBF \SHARED\DB

C:\ ORACLE\PRODUCT\10.2.0\ORADATA\KARACHI>COPY *.LOG \SHARED\DB

SQL> STARTUP;

iii) Copy Password file to Shared Folder

C:\>COPY \ORACLE\PRODUCT\10.2.0\DB_1\DATABASE>PWDKARACHI.ORA

\SHARED\PWDLAHORE.ORA

h) Disconnect from Primary Database Server

Written By: Ahmer Mansoor Email : [email protected] Profile : http://www.linkedin.com/in/ahmermansoor

Page | 7

2) PREPARE STANDBY DATABASE

a) Connect to Primary Database Server using Remote Desktop Connection

C:\> MSTSC

b) Create Windows Service for Standby Database

C:\ORADIM -NEW -SID LAHORE –STARTMODE AUTO

c) Create directories for the Standby Database

C:\>MKDIR C:\oracle\product\10.2.0\oradata\LAHORE

C:\>MKDIR C:\oracle\product\10.2.0\ADMIN\LAHORE (Create complete directory including

subdirectories as well)

C:\>MKDIR C:\oracle\product\10.2.0\flash_recovery_area\LAHORE

d) Copy files from Primary Database to Standby Database as follows:

Run \\171.17.1.4\SHARED

Copy CONTROL01.CTL to C:\ORACLE\PRODUCT\10.2.0\ADMIN\LAHORE\CONTROL01.CTL

Copy CONTROL01.CTL to C:\ORACLE\PRODUCT\10.2.0\ADMIN\LAHORE\CONTROL02.CTL

Copy CONTROL01.CTL to C:\ORACLE\PRODUCT\10.2.0\ADMIN\LAHORE\CONTROL03.CTL

Copy Primary Database Cold Backup to C:\ORACLE\PRODUCT\10.2.0\ADMIN\LAHORE\

Copy PWDLAHORE.ORA & INITLAHORE.ORA to C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\

e) Configure Listener and TNS Names at Standby Database Server

TNSNAMES.ORA

KARACHI =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.1.4)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = KARACHI)

)

)

Written By: Ahmer Mansoor Email : [email protected] Profile : http://www.linkedin.com/in/ahmermansoor

Page | 8

LAHORE =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.1.5)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = LAHORE)

)

)

LISTENER.ORA

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = c:\oracle\product\10.2.0\db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = LAHORE)

(SID_NAME = LAHORE)

)

(SID_DESC =

(GLOBAL_DBNAME = LAHORE_DGMGRL)

(SID_NAME = LAHORE)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

)

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.1.5)(PORT = 1521))

)

)

C:\>LSNRCTL STOP

C:\>LSNRCTL START

Written By: Ahmer Mansoor Email : [email protected] Profile : http://www.linkedin.com/in/ahmermansoor

Page | 9

f) Create Parameter File for Standby Database

OPEN THE FILE 'INITLAHORE.ORA' ON NOTEPAD AND SET FOLLOWING PARAMETERS

SEARCH 'KARACHI' AND REPLACE WITH 'XYZ'

SEARCH 'LAHORE AND REPLACE WITH 'KARACHI'

SEARCH 'XYZ' AND REPLACE WITH 'LAHORE'

db_name='KARACHI'

C:\>SET ORACLE_SID=LAHORE

SQL> CONNECT / AS SYSDBA

SQL> CREATE SPFILE FROM PFILE=

' C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\INITLAHORE.ORA';

SQL> STARTUP MOUNT;

g) Create Managed Recovery

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE

USING CURRENT LOGFILE DISCONNECT;

h) Disconnect from Standby Database Server

Written By: Ahmer Mansoor Email : [email protected] Profile : http://www.linkedin.com/in/ahmermansoor

Page | 10

3) CONFIGURE TNS NAMES AT CONSOLE

TNSNAMES.ORA

KARACHI =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.1.4)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = KARACHI)

)

)

LAHORE =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.1.5)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = LAHORE)

)

)

C:\>LSNRCTL STOP

C:\>LSNRCTL START

Written By: Ahmer Mansoor Email : [email protected] Profile : http://www.linkedin.com/in/ahmermansoor

Page | 11

4) TEST DATAGUARD CONFIGURATION

Run following commands from your Console System (Oracle 10g Client Tools must be installed)

C:\> SQLPLUS /NOLOG

SQL> CONNECT SYS@KARACHI AS SYSDBA

SQL> INSERT INTO HR.DEPARTMENTS VALUES (300,’New Business Division’,NULL,1700);

SQL> COMMIT;

SQL> ALTER SYSTEM SWITCH LOGFILE;

SQL> CONNECT SYS@LAHORE AS SYSDBA

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

SQL> ALTER DATABASE OPEN READ ONLY;

SQL> SELECT * FROM HR.DEPARTMENTS;

(You should get the inserted row with DEPT_ID=300 at KARACHI in the result.)

SQL> SHUTDOWN IMMEDIATE;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE

DISCONNECT;

Written By: Ahmer Mansoor Email : [email protected] Profile : http://www.linkedin.com/in/ahmermansoor

Page | 12

5) CONFIGURE DATAGUARD BROKER AND SWITCHOVER

a) Configure Dataguard Broker Tool

C:\>DGMGRL

DGMGRL> CONNECT SYS@KARACHI

DGMGRL> CREATE CONFIGURATION 'DR_KARACHI' AS PRIMARY DATABASE

IS 'KARACHI' CONNECT IDENTIFIER IS KARACHI;

DGMGRL> ADD DATABASE 'LAHORE' AS CONNECT IDENTIFIER IS LAHORE

MAINTAINED AS PHYICAL;

DGMGRL> ENABLE CONFIGURATION;

b) Perform Switchover

DGMGRL> SWITCHOVER TO 'LAHORE';