Download presentation
Presentation is loading. Please wait.
Published byEleanore Baker Modified over 9 years ago
1
1 © 2006 Julian Dyke Logical Standby Julian Dyke Independent Consultant juliandyke.com Web Version
2
© 2006 Julian Dyke juliandyke.com 2 Logical Standby
3
© 2006 Julian Dyke juliandyke.com 3 Standby Database ARCH Redo Transmission ARC0ARC1 Online Redo Log LGWRRFS Standby Redo Log ARCn Archived Redo Logs MRP LSP Standby Database Primary Database LOG_ARCHIVE_DEST_1 LOG_ARCHIVE_DEST_2 Primary DatabaseStandby Database Archived Redo Logs
4
© 2006 Julian Dyke juliandyke.com 4 Standby Database LGWR (ASYNC) Redo Transmission Archived Redo Logs ARCn RFS Standby Redo Log ARCn Archived Redo Logs MRP LSP Standby Database Primary Database LOG_ARCHIVE_DEST_1 Primary DatabaseStandby Database LNSn LGWR Online Redo Log
5
© 2006 Julian Dyke juliandyke.com 5 Standby Database LGWR (SYNC) Redo Transmission Archived Redo Logs ARCn Online Redo Log RFS Standby Redo Log ARCn Archived Redo Logs MRP LSP Standby Database Primary Database LOG_ARCHIVE_DEST_1 Primary DatabaseStandby Database LNSnLGWR
6
© 2006 Julian Dyke juliandyke.com 6 Logical Standby Preparation Used two separate servers london1 and reading1 Used DBCA to create one database on primary server PRIMARY Archiving must be enabled NOLOGGING must be disabled Installed SCOTT/TIGER schema $ORACLE_HOME/rdbms/admin/utlsampl.sql Created physical standby on reading1 SQL> ALTER DATABASE FORCE LOGGING;
7
© 2006 Julian Dyke juliandyke.com 7 Physical Standby Preparation On both servers, configure TNSNAMES.ORA LONDON = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = london1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = LONDON) ) ) READING = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = reading1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = READING) ) )
8
© 2006 Julian Dyke juliandyke.com 8 Physical Standby Preparation On primary server create backup location mkdir /u01/oradata/PRIMARY/backup; On primary server run RMAN to backup database $ORACLE_HOME/bin/rman NOCATALOG TARGET sys/oracle@PRIMARY In RMAN configure backup CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/oradata/PRIMARY/backup/%F'; CONFIGURE CHANNEL 1 DEVICE TYPE DISK CONNECT 'sys/oracle@PRIMARY'; CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/admin/PRIMARY/backup/snapcf_PRIMARY.f';
9
© 2006 Julian Dyke juliandyke.com 9 Physical Standby Preparation In RMAN backup database BACKUP FORMAT '/u01/oradata/PRIMARY/backup/%d_D_%T_%u_s%s_p%p' DATABASE; BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT '/u01/oradata/PRIMARY/backup/%d_C_%U'; SQL "ALTER SYSTEM ARCHIVE LOG CURRENT"; BACKUP FILESPERSET 10 ARCHIVELOG ALL FORMAT '/u01/oradata/PRIMARY/backup/%d_A_%T_%u_s%s_p%p'; In RMAN create controlfile for standby database In RMAN switch and archive current online redo log In RMAN backup archived redo logs
10
© 2006 Julian Dyke juliandyke.com 10 Physical Standby Preparation On standby server create administrative directories $ mkdir $ORACLE_BASE/admin/PRIMARY; $ mkdir $ORACLE_BASE/admin/PRIMARY/adump; $ mkdir $ORACLE_BASE/admin/PRIMARY/bdump; $ mkdir $ORACLE_BASE/admin/PRIMARY/cdump; $ mkdir $ORACLE_BASE/admin/PRIMARY/dpdump; $ mkdir $ORACLE_BASE/admin/PRIMARY/pfile; $ mkdir $ORACLE_BASE/admin/PRIMARY/udump; On standby server create database location $ mkdir /u01/oradata/PRIMARY/arch On standby server create backup location $ mkdir /u01/oradata/PRIMARY/backup; $ mkdir /u01/oradata/PRIMARY On standby server create archived redo log location
11
© 2006 Julian Dyke juliandyke.com 11 Physical Standby Preparation On standby server create password file Copy SPFILE from primary to standby scp london1:$ORACLE_HOME/dbs/spfilePRIMARY.ora \ reading1:$ORACLE_HOME/dbs $ORACLE_HOME/bin/orapwd \ file=$ORACLE_HOME/dbs/orapwPRIMARY \ password=oracle \ Note - initPRIMARY.ora is not required on either server
12
© 2006 Julian Dyke juliandyke.com 12 Physical Standby Configuration On primary server set parameters ALTER SYSTEM SET db_unique_name = LONDON SCOPE = SPFILE; ALTER SYSTEM SET log_archive_dest_1 = 'LOCATION=/u01/oradata/PRIMARY/arch' SCOPE=SPFILE; ALTER SYSTEM SET log_archive_dest_2 = 'SERVICE=READING VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=READING' SCOPE=SPFILE; ALTER SYSTEM SET fal_client = LONDON SCOPE = SPFILE; ALTER SYSTEM SET fal_server = READING SCOPE = SPFILE; ALTER SYSTEM SET standby_file_management = AUTO SCOPE = SPFILE; Restart the instance
13
© 2006 Julian Dyke juliandyke.com 13 Physical Standby Configuration On standby server configure LISTENER.ORA SID_LIST_LISTENER_SERVER4 = (SID_LIST = (SID_DESC = (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1) (SID_NAME = PRIMARY) ) ) Reload the listener $ lsnrctl reload Start the standby instance (NOMOUNT) $ export ORACLE_SID=PRIMARY $ sqlplus / as sysdba SQL> startup nomount
14
© 2006 Julian Dyke juliandyke.com 14 Physical Standby Configuration On standby server set parameters ALTER SYSTEM SET db_unique_name = READING SCOPE = SPFILE; ALTER SYSTEM SET log_archive_dest_1 = 'LOCATION=/u01/oradata/PRIMARY/arch' SCOPE = SPFILE; ALTER SYSTEM SET log_archive_dest_2 = 'SERVICE=LONDON VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=LONDON' SCOPE=SPFILE; ALTER SYSTEM SET fal_client = READING SCOPE = SPFILE; ALTER SYSTEM SET fal_server = LONDON SCOPE = SPFILE; ALTER SYSTEM SET standby_file_management = AUTO SCOPE = SPFILE; Restart the instance
15
© 2006 Julian Dyke juliandyke.com 15 Physical Standby Configuration On primary server run RMAN connecting to standby server as AUXILIARY $ORACLE_HOME/bin/rman NOCATALOG TARGET / AUXILIARY sys/oracle@"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=reading1) (PORT=1521))(CONNECT_DATA=(SID=PRIMARY)))" Run the following command to clone the database backup on the standby server RMAN> DUPLICATE TARGET DATABASE FOR STANDBY DORECOVER NOFILENAMECHECK;
16
© 2006 Julian Dyke juliandyke.com 16 Physical Standby Configuration On standby server restart the instance SQL> SHUTDOWN IMMEDIATE SQL> STARTUP NOMOUNT SQL> ALTER DATABASE MOUNT STANDBY DATABASE; SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; Mount the standby database Start managed recovery
17
© 2006 Julian Dyke juliandyke.com 17 Logical Standby Configuration On standby server cancel managed recovery SQL> ALTER SYSTEM SET log_archive_dest_2 = 'SERVICE=READING VALID_FOR=(ONLINE_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=READING' SCOPE=SPFILE; On primary server modify the LOG_ARCHIVE_DEST_2 parameter SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
18
© 2006 Julian Dyke juliandyke.com 18 Logical Standby Configuration On primary server build the logical standby dictionary SQL> EXECUTE LOGSTDBY.BUILD; For a default database this generated about 8MB redo and updated the following objects: SYS.LOGMNRG_SEED$SYS.LOGMNRG_TYPE$ SYS.LOGMNRG_DICTIONARY$SYS.LOGMNRG_COLTYPE$ SYS.LOGMNRG_OBJ$SYS.LOGMNRG_ATTRIBUTE$ SYS.LOGMNRG_TAB$SYS.LOGMNRG_LOB$ SYS.LOGMNRG_COL$SYS.LOGMNRG_CDEF$ SYS.LOGMNRG_ATTRCOL$SYS.LOGMNRG_CCOL$ SYS.LOGMNRG_TS$SYS.LOGMNRG_ICOL$ SYS.LOGMNRG_IND$SYS.LOGMNRG_LOGFRAG$ SYS.LOGMNRG_USER$SYS.LOGMNRG_INDPART$ SYS.LOGMNRG_TABPART$SYS.LOGMNRG_BUILDLOG
19
© 2006 Julian Dyke juliandyke.com 19 Logical Standby Configuration On standby server enable recovery and change the name of the standby database SQL> ALTER DATABASE RECOVER TO LOGICAL STANDBY standby; On standby server create a new password file $ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapwSTANDBY \ password=oracle On standby server restart the instance and reset the logs SQL> SHUTDOWN IMMEDIATE SQL> STARTUP SQL> ALTER DATABASE OPEN RESETLOGS; On standby server start SQL apply SQL> ALTER DATABASE START LOGICAL STANDBY APPLY;
20
© 2006 Julian Dyke juliandyke.com 20 Thank you for your interest info@juliandyke.com
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.