DATA GUARD 101 - Calgary Oracle Users Group

advertisement
PRESENTOR:- KAMRAN SIDDIQUE
SENIOR CONSULTANT/ARCHITECT (HA EXPERT)
CGI
DON’T WAIT OPPORTUNITY TO CREATE TECHNOLOGY…USE
TECHNOLOGY TO CREATE OPPORTUNITY

BASIC CONCEPTS

Basic Steps for Creating a Physical Standby database

MY TRICKS..

REFERENCES

QUESTIONS








A software
An extension to Oracle RDBMS
Protects DATA
Takes data and automatically puts it elsewhere.
Makes DATA available for Failover.
Maintain larger Distances.
Automatic resync with Production database.
High availability, data protection, and disaster
recovery for enterprise data.





Transactionally consistent copy of the primary
database.
Using a backup copy of the primary database.
Up to 30 Standby Databases and integrations with
DG .
Once created, Data Guard automatically maintains
each standby database by transmitting redo data
from the primary database and then applying the
redo to the standby database.
Can be a SINGLE-INSTANCE OR RAC.
 DG
configuration contains one
Production database
 Functions as Primary Role.
 Mainly accessed by Production
applications.
 Can be a Single-instance or RAC





1-PHYSICAL STANDBY
A physical standby database is kept in sync with the
primary database by using media recovery to apply
redo that was generated on the primary database.
A block-for-block identical copy of the primary
database.
Excellent choice for disaster recovery.
Data will be intact and consistent with data that
existed on the primary.
Can receive and apply redo in read only-access
(11.1.0).






2-LOGICAL STANDBY DATABASE
Contains the same logical information as the production
database but physical organization and structure of the
DATA can be different.
synchronization with the primary database through SQL
Apply.
Transforms the data in the redo received from the primary
database into SQL statements and then executes the SQL
statements on the standby database.
Can be used for Reporting.
Upgrade/Migration purpose with no downtime.
Patch sets with no downtime.






A fully updatable standby database.
Receives and archives redo data from a primary
database (like physical/logical)
Does not apply the redo data that it receives (Differs
from physical/logical)
Redo apply starts once standby is converted into
physical standby.
Temporary/updatable snapshot of a physical standby.
Conversion to physical standby could be a lengthy
process.
Database Version = 10.2.0.4 Enterprise 64-bit
 Primary
platform
=
Linux
64-bit)
Secondary platform= Linux 32-bit)
 You can not use DG Broker tool to manage
this environment.
 This restriction is lifted from Data Guard 11g
onward.








one production database and one or more standby
databases
connected by Oracle Net
may be dispersed geographically
No restriction on the distance.
SQL command-line
Data Guard Broker interface (DGMGRL)
GUI interface integrated with EM.







A distributed management framework that automates the
creation, maintenance, and monitoring of Data Guard
configurations.
Oracle Enterprise Manager graphical user interface (GUI)
or the Data Guard command-line interface (DGMGRL)
Create and enable Data Guard configurations
Manage an entire Data Guard configuration from any
system in the configuration
Manage and monitor Data Guard configurations that
contain Oracle RAC primary or standby databases
Simplify switchovers and failovers
Enable fast-start failover to fail over automatically when
the primary database becomes unavailable.
1-Redo Transport Services
 Transmit redo data from the primary system to the
standby systems .
 Resolving any gaps in the archived redo log files due
to a network failure.
 Automatically detects missing or corrupted archived
redo log files on a standby system .
 Automatically retrieve replacement archived redo log
files from the primary database or another standby
database
2-Apply Services
 Automatically apply the redo data on the standby
database to maintain consistency with the primary
database.
 Allows read-only access to the data





Physical standby---Data Guard uses Redo Apply
technology.
Physical standby-- applies redo data on the standby
database using standard recovery techniques of an
Oracle database.
Logical Standby--Data Guard uses SQL Apply
technology
first transforms the received redo data into SQL
statements
Then executes the generated SQL statements on the
logical standby database
3-Role Transitions
Switchover --role reversal between the primary
database and one of its standby databases.
Switchover –No Data Loss
Failover --failure of the primary database
Failover --transition of a standby database to the
primary role
Failover –Can configure Data Guard to ensure no data
loss.
 Both
primary and standby
databases must be set at the
same compatibility mode as
the minimum release
A
standby database cannot be open
read-only in any environment that has
binary-level PL/SQL-related
incompatibilities between primary and
standby databases
1-Maximum Protection

Redo data needed to recover a transaction
must be written to both the online redo log
and to the standby redo log on at least one
synchronized standby database before the
transaction commit

Zero Data Loss

Processing on primary is suspended if no
standby is available.
2-Maximum Availability
 Minimal Data Loss
 Similar to Maximum protection mode
 If not standby database ,primary operates as if it were
in maximum performance mode to preserve primary
database availability until it is again able to write its
redo stream to a synchronized standby database.
3-Maximum Performance
 Default protection mode.
 Highest level of data protection that is possible
without affecting the performance of a primary
database
 Asynchronous in terms of transaction commitment.
 primary database performance is unaffected by
delays in writing redo data to the standby
database(s).



Symmetric configuration with RAC at all sites
Same number of instances
Asymmetric configuration with RAC at all sites
Different number of instances
Asymmetric configuration with mixture of RAC and
single instance
Some single-instance sites not running
under Oracle Clusterware
Metalink note 413484.1

Beginning with Oracle Database 11.1.0.7, a
physical standby database can be used to
execute a rolling database upgrade to a new
Oracle Patch Set or database release by using
the transient logical rolling database upgrade
process
Basic Steps for Creating a
Physical Standby database









Two Vmwares (2.6.32-100.26.2.el5)
11.2.0.3.0
Primary ASM
Secondary ASM
Primary Database Name => Primary
Primary DB_UNIQUE_NAME => Primary
Standby DB_UNUIQUE_NAME =>Secondary
Primary Hostname =>primary.localdomain
Secondary Hostname => secondary.localdomain

Enable Force Logging
SQL> ALTER DATABASE FORCE LOGGING;
Database altered.
 On
the primary node, connect to the
primary database and create a PFILE
from the SPFILE
 create
pfile='/home/oracle/stage/secondary.
ora' from spfile;



On the primary node, perform an RMAN backup of
the primary database that places the backup pieces
into the staging directory
RMAN> BACKUP DEVICE TYPE DISK FORMAT
'/opt/oracle/stage/%U' DATABASE PLUS ARCHIVELOG;
RMAN> BACKUP DEVICE TYPE DISK FORMAT
'/opt/oracle/stage/%U' CURRENT CONTROLFILE FOR
STANDBY;











DB_UNIQUE_NAME
LOG_ARCHIVE_CONFIG
LOG_ARCHIVE_DEST_2
DB_FILE_NAME_CONVERT
LOG_FILE_NAME_CONVERT
STANDBY_FILE_MANAGEMENT
FAL_SERVER
FAL_CLIENT
SERVICE_NAMES
DB_RECOVERY_DEST
LOG_ARCHIVE_DEST_1
Before
After
db_unique_name=CALGARY_DG
db_unique_name=VANCOUVER_DG
INSTANCE_NAME=CALGARY
instance_name=VANCOUVER
log_archive_config='dg_config=(VANCOUVER_DG,CALGARY_
DG)
log_archive_dest_2='service=CALGARY valid_for=(online_logfiles,primary_role)
db_unique_name=CALGARY_DG
db_file_name_convert='+DATA/CALGARY','+DATA/VANCOUVER','+RECOVERY/CALGARY','+RECOVERY/V
ANCOUVER'
log_file_name_convert='+DATA/CALGARY','+DATA/VANCOUVER','+RECOVERY/CALGARY','+RECOVERY/V
ANCOUVER'
standby_file_management=auto
fal_server='CALGARY'
fal_client='VANCOUVER'
service_names='VANCOUVER'
log_archive_config='dg_config=(VANCOUVER_DG,CALGARY_
DG)'
 log_archive_dest_2='service=VANCOUVER
valid_for=(online_logfiles,primary_role)
db_unique_name=VANCOUVER_DG'
 db_file_name_convert='+DATA/VANCOUVER/',’+DATA/CALGAR
Y/', ’+RECOVERY/VANCOUVER’,’+RECOVERY/CALGARY’
 log_file_name_convert='+DATA/VANCOUVER/',’+DATA/CALGA
RY/', ’+RECOVERY/VANCOUVER’,’+RECOVERY/CALGARY’
 standby_file_management=auto
 fal_server=‘VANCOUVER'
 fal_client='CALGARY'
 service_names=CALGARY

PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.105)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = primary)
)
)
=================================================
SECONDARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.106)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = secondary)
)
)
Create password file for standby database
orapwd file=orapwstandby password=xxxx
Password must be same as Primary password file
OR
Copy primary password file over standby site.
$
rman target sys/oracle@primary
auxiliary /
 RMAN>
DUPLICATE TARGET
DATABASE FOR STANDBY;
The recommended number of standby redo
logs is:
(maximum # of logfiles +1) * maximum # of
threads
 If uses two online log files for each thread.
the number of standby redo logs should be (2
+ 1) * 1 = 3. That is, one more standby redo
log file for each thread.

 Start
managed recovery on the
standby database:
 SQL>
ALTER DATABASE RECOVER
MANAGED STANDBY DATABASE
USING CURRENT LOGFILE
DISCONNECT;
Create standby redo logs on the primary database to support the standby
role
 SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
GROUP 5 SIZE 10M,
GROUP 6 SIZE 10M,
GROUP 7 SIZE 10M;
 SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 2
GROUP 8 SIZE 10M,
GROUP 9 SIZE 10M,
GROUP 10 SIZE 10M;

 Data
Guard configuration includes a
primary database and up to 30 standby
databases. These standby databases may
be a mix of physical and logical standby
databases.


To start log apply services on a physical standby
database
ALTER DATABASE RECOVER MANAGED
STANDBY DATABASE DISCONNECT;
If the real-time apply feature is enabled, apply
services can apply redo data as it is received, without
waiting for the current standby redo log file to be
archived
ALTER DATABASE RECOVER MANAGED
STANDBY DATABASE USING CURRENT
LOGFILE;

DGMGRL> show configuration;
Configuration - DRSOLUTION
Protection Mode: MaxPerformance
Databases:
PRIMARY - Primary database
SECONDARY - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS



It is not necessary that the primary and the standby both be
Oracle RAC databases, or both use ASM.
For example, the primary database may be running Oracle
RAC with or without ASM, and the standby database(s) may
be single-instance, with or without ASM.
Furthermore, the versions of ASM and CRS do not need to be
the same between the primary and standby systems.


Exadata Database Machine: It is transparent to Data
Guard whether primary and/or standby databases
reside on an Exadata Database Machine or on other
hardware, as long as the platform ID's of primary
and standby systems within the same Data Guard
configuration conform to the support requirements.
If Exadata Hybrid Columnar Compression (EHCC) is
used, it is strongly recommended that both primary
and standby databases reside on Exadata.
Verify Managed Recovery is Running (non-broker) on the standby
SELECT PROCESS
FROM V$MANAGED_STANDBY
WHERE PROCESS LIKE 'MRP%';
SELECT DELAY_MINS
FROM V$MANAGED_STANDBY
WHERE PROCESS = 'MRP0';
SQL> select database_role,protection_level,fs_failover_status from v$database;
V$DATAGUARD_STATUS
V$LOG &V$STANDBY_LOG…REDO LOG CHANGED.
V$MANAGED_STANDBY..RECOVERY PROGRESS
Select max(sequence#),thread# from v$archived_log where applied=‘YES’ group by thread#; Secondary
Select max(sequence#) from v$log;......primary




Dgmgrl /
Connect sys/password@primary/secondary
DGMGRL> CREATE CONFIGURATION
'DRSolution' AS PRIMARY DATABASE IS
'North_Sales' CONNECT IDENTIFIER IS
North_Sales.foo.com;
DGMGRL> ADD DATABASE 'DR_Sales' AS
CONNECT IDENTIFIER IS DR_Sales.foo.com
MAINTAINED AS PHYSICAL;












DGMGRL> SWITCHOVER TO STANDBY;
Site "standby" was not found
DGMGRL> SWITCHOVER TO "SECONDARY";
Performing switchover NOW, please wait...
New primary database "SECONDARY" is opening...
Operation requires shutdown of instance "primary" on database
"PRIMARY"
Shutting down instance "primary"...
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "primary" on database
"PRIMARY"
Starting instance "primary"...

1. Shutdown the new primary database
If using RAC then set database to unclustered: SQL> alter system set cluster_database=false
scope=spfile;
SQL> shutdown immediate
2. Startup the new primary in UPGRADE mode
SQL> startup upgrade
3. Invalidate existing PL/SQL modules in preparation to convert the format required by the new
primary.

SQL> spool utlirp.log
SQL> @?/rdbms/admin/utlirp
SQL> spool off
4. Restart the database
If using RAC then set database back to clustered:
SQL> alter system set cluster_database=true scope=spfile;
SQL> shutdown immediate
SQL> startup
5. Recompile all invalid PL/SQL modules to be in the format required by the new primary database.
SQL> spool utlrp.log
SQL> @?/rdbms/admin/utlrp
SQL> spool off
6. Verify that all expected packages and classes are valid.
SQL> SELECT count(*) FROM dba_objects WHERE status='INVALID';
SQL> SELECT distinct object_name FROM dba_objects WHERE status='INVALID';

An implicit guaranteed restore point is created when a physical
standby database is converted into a snapshot standby database and
this restore point is used to flashback a snapshot standby to its
original state when it is converted back into a physical standby
database.

STEP 1
AIf not already configured , configure flash recovery area;
Alter system set db_recovery_file_dest_size=<size>
BSet Flash recovery area.
Alter system set db_recovery_file_dest=<path>
db_recovery_file_dest
db_recovery_file_dest_size
string
+FLASH
big integer 3882M
Step 2
Bring the physical standby database to mount
stage.

Step 3
Stop managed recovery if it is active.

SQL> alter database recover managed standby
database cancel;
Database altered.

Step 4
Convert physical standby database to snapshot
standby database.
ALTER DATABASE CONVERT TO SNAPSHOT
STANDBY;
The database is dismounted during conversion
and must be restarted.
SQL> shutdown immediate
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size
2217952 bytes
Variable Size
507512864 bytes
Database Buffers
322961408 bytes
Redo Buffers
2412544 bytes
Database mounted.
Database opened.
SQL> select open_mode,database_role from v$database;
OPEN_MODE
DATABASE_ROLE
-------------------- ---------------READ WRITE
SNAPSHOT STANDBY

Step 1
Shutdown the snapshot standby database.
Step 2
Bring the database to the mount stage.
 Step 3
Issue the command

ALTER DATABASE CONVERT TO PHYSICAL
STANDBY;
Step 3
Issue the command

ALTER DATABASE CONVERT TO PHYSICAL
STANDBY;
 Step 4 :Shutdown the database and mount it .
 Step 5
Start the media recovery process.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
Database mounted.
SQL> alter database convert to physical standby;
Database altered.
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup mount
Redo Buffers
2412544 bytes
Database mounted.
SQL> select open_mode,database_role from v$database;
OPEN_MODE
DATABASE_ROLE
-------------------- ---------------MOUNTED
PHYSICAL STANDBY
SQL> alter database recover managed standby database disconnect;
DGMGRL> CONVERT DATABASE
"SECONDARY" TO SNAPSHOT STANDBY;
Converting database "SECONDARY" to a
Snapshot Standby database, please wait...
Database "SECONDARY" converted successfully

DGMGRL> CONVERT DATABASE "SECONDARY" TO
PHYSICAL STANDBY;
Converting database "SECONDARY" to a Physical
Standby database, please wait...
Operation requires shutdown of instance "secondary"
on database "SECONDARY"
Shutting down instance "secondary"...
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "secondary" on
database "SECONDARY"
Starting instance "secondary".
Create Restore Point
CREATE restore point before_rw guarantee
flashback database;
 Failover the standby database:
ALTER DATABASE ACTIVATE STANDBY
DATABASE
 Open Database in Read Write Mode:

Revert database back to standby mode:
 Shutdown the database;
 Startup database in mount mode;
 Flashback database;
FLASH BACK DATABASE TO RESTORE POINT
before_rw;
 ALTER DATABASE CONVERT TO PHYSICAL
STANDBY;









Scenario 1: Creating a Configuration
Scenario 2: Setting Database Properties
Scenario 3: Enabling the Configuration and
Databases
Scenario 4: Setting the Configuration Protection
Mode
Scenario 5: Performing Routine Management
Tasks
Scenario 6: Performing a Switchover Operation
Scenario 7: Performing a Failover Operation
Scenario 8: Monitoring a Data Guard
Configuration





http://www.oracle.com/technetwork/database/fe
atures/availability/s291923-2hughesallstatemaa-133334.pdf
http://www.oracle.com/technetwork/database/fe
atures/availability/s291923-2hughesallstatemaa-133334.pdf
http://www.oracle.com/technetwork/database/fe
atures/availability/data-guard-esg-casestudies-133297.pdf
http://streaming.oracle.com/ebn/podcasts/db_i
nsider/media/7548105_bank_of_aus_040709.mp
3
Metalink note 413484.1
For any further information
contact me at
Kamran.siddique@cgi.com
Download