Configuration of Oracle Database 10g Dataguard
-
Upload
ahmer-mansoor -
Category
Self Improvement
-
view
5.945 -
download
2
description
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';