Oracle Data Guard
The software which Oracle Corporation markets as Oracle Data Guard forms an extension to the Oracle RDBMS. It aids in establishing and maintaining secondary "standby databases" as alternative/supplementary repositories to production "primary databases".
Oracle provides both GUI and command-line tools for managing Data Guard configurations.
Data Guard supports both physical standby and logical standby sites. Oracle Corporation makes Data Guard available only as a bundled feature included within its "Enterprise Edition" of the Oracle RDBMS.[1]
With appropriately set-up Data Guard operations, DBAs can facilitate failovers or switchovers to alternative hosts in the same or alternative locations.
Configurations
For the purposes of Data Guard, each Oracle database functions either in a primary database role or in a standby database role - with the ability to transition from one role to the other.[2]
Physical standby (Redo Apply)
A physical standby database replicates the exact contents of its primary database across the Oracle Net network layer. While the relative physical storage locations can differ, the data in the database will be exactly the same as in the primary database. Physical standby databases can function either in managed-recovery mode or in read-only mode, but not in both modes at the same time (unless the databases are at Oracle Database 11.1 or higher and the Active Data Guard option is licensed - see below). The standby makes use of "Redo Apply" technology.
Physical standby databases have the same DBID identifiers as their primary equivalents.[3]
Logical standby (SQL Apply)
Logical standby databases convert the redo generated at the primary database into data and SQL and then re-apply those SQL transactions on the logical standby. Thus, physical structures and organization will be different from the primary database. Users can read from logical standby databases while the changes are being applied and, if the GUARD is set to STANDBY (ALTER DATABASE GUARD STANDBY;), write to tables in the logical standby database that are not being maintained by SQL Apply.
Unfortunately there are a number of unsupported objects (e.g. tables or sequences owned by SYS, tables that use table compression, tables that underlie a materialized view or Global temporary tables (GTTs)) and unsupported data types (i.e.: datatypes BFILE, ROWID, and UROWID, user-defined TYPEs, multimedia data types like Oracle Spatial, ORDDICOM, and Oracle Text Collections (e.g. nested tables, VARRAYs), SecureFile LOBs, OBJECT RELATIONAL XMLTypes and BINARY XML).[4] Physical standby may be appropriate in such a case.
Active Data Guard
The "Oracle Active Data Guard" option, an extra-cost facility,[5] extends Oracle Data Guard functionality in Oracle 11g configurations. It allows read-only access on the Physical standby node at the same time as applying archived transactions from the primary node. Also it features Automatic Block Repair and Fast Incremental Backup on Physical Standby,[6]
Operation
Server-side functionality
LNS (log-write network-server) and ARCH (archiver) processes running on the primary database select archived redo logs and send them to the standby-database host,[7] where the RFS (remote file server) background process within the Oracle instance performs the task of receiving archived redo logs originating from the primary database and writing them to a standby redo log (SRL).[8]
Alternatively, a supplementary mechanism may transfer the archived redo logs. On the standby database a Fetch Archive Log (FAL) client monitors for gaps in the sequence of received logs. If it finds a gap, it may invoke one or more Fetch Archive Log (FAL) servers to run on the primary database to forward the missing item(s).[9]
Once the archived redo logs have arrived on the standby host, other processes - such as an ARCH (archiver process), an MRP (Managed Recovery Process[10]), and/or an LSP (Logical Standby Process) - may set about applying the log contents to the standby database.
The use of standby redo logs can speed up the application of changes to a standby database[11] with real-time apply.[12]
The Data Guard Connection process (DRCX) plays a role in transferring data between databases.[13]
Client-side access
The Data Guard Broker subsystem can aid in the setup, management and monitoring of Data Guard configurations.[14]
Advantages
Data Guard provides high availability for a database system. It can also reduce the human intervention required to switch between databases at disaster-recovery ("failover") or upgrade/maintenance ("switchover") time.
Through the use of standby redo log files, Data Guard can minimize data loss.[15]
It supports heterogeneous configurations in which the primary and standby systems may have different CPU architectures, operating systems (for example, Microsoft Windows and Linux), operating-system binaries (32-bit/64-bit), or Oracle database binaries (32-bit/64-bit).[16]
Disadvantages
If the network link connecting primary and standby is over-subscribed, the redo logs are not shipped in chronological order, which can result in large gaps appearing in the available redo at the standby. Such a condition results in the standby being behind the primary. [5]
The same release of Oracle Database Enterprise Edition must be installed on the primary database and all standby databases, except during rolling database upgrades using logical standby databases.
Oracle Data Guard is available only as a feature of Oracle Database Enterprise Edition.
See also
References
- ↑ http://download.oracle.com/docs/cd/B28359_01/server.111/b28294/standby.htm#insertedID3 Data Guard Concepts and Administration, 11g Release 1 (11.1); Section 2.3.2: "Oracle Software Requirements" Retrieved 2007-10-01
- ↑ Rich, Kathy; et al. Oracle Data Guard Concepts and Administration 11g Release 2 (11.2). Retrieved July 2012.
- ↑ Tchoko, Floribert (2012). Oracle: Protect Your Data. AuthorHouse. p. 128. ISBN 9781467896214. Retrieved 2015-03-17.
[...] a new identifier DBID is assigned to the new database unless the database is a standby database. In this case it retains the same DBID as the source database.
- ↑ Czuprynski, Jim (January 2010). "Leveraging Logical Standby Databases in Oracle 11g Data Guard". Retrieved 2010-07-16.
- 1 2 Lorentz, Diana (January 2009). "Oracle Database Options". Oracle Database Licensing Information 11g Release 1 (12c). Oracle Corporation. Retrieved 2009-04-22.
If a physical standby database in a Data Guard configuration has any of the above features enabled, then the Active Data Guard option must be licensed for every such physical standby, and also for the primary database.
- ↑ "Oracle Active data Guard". Oracle Database. Oracle Corporation. January 2010. Retrieved 2009-04-22.
Oracle Active Data Guard enables read-only access to a physical standby database for queries, sorting, reporting, web-based access, etc., while continuously applying changes received from the production database.
- ↑ Smith, Michael T (February 2007). "Data Guard Redo Transport & Network Best Practices: Oracle Database 10g Release 2" (PDF). Oracle Corporation. pp. 6, 14. Retrieved 2009-03-11.
... sending processes (LNS and ARC) on the production database....The Data Guard LNS process on the production database performs a network send to the Data Guard RFS process on the standby database.
- ↑ Carpenter, Larry; et al. (2009). Oracle Data Guard 11g Handbook. Oracle Press. McGraw Hill Professional. p. 5. ISBN 9780071621489. Retrieved 2015-02-17.
Redo records transmitted by the LNS are received at the standby database by another Data Guard process called the Remote File Server (RFS). The RFS receives the redo at the standby database and writes it to a sequential file called a standby redo log file (SRL).
- ↑ Oracle-Base site summary of Data Guard, retrieved 2007-09-05; Oracle Corp version 11.1 documentation links, retrieved 2007-09-05.
- ↑ Ault, Mike (2004). Oracle 10g Grid & Real Application Clusters: Oracle 10g Grid Computing with RAC. Oracle In-Focus Series. Madhu Tumma. Rampant TechPress. p. 640. ISBN 9780974435541. Retrieved 2012-08-31.
[...] the managed recovery process (MRP) on the standby database determines the correct order to apply the archive logs from the different threads on the Standby Database.
- ↑ Bach, Martin (2013). Expert Consolidation in Oracle Database 12c. Expert's voice in Oracle. Apress. p. 320. ISBN 9781430244295. Retrieved 2015-02-19.
[...] with Oracle 10g, [u]sing standby redo logs on the standby database server, the redo stream arriving on the destination could be applied to the standby database immediately, without having to wait for the standby redo log to be archived and applied.
- ↑ Schupmann, Vivian (2008). "Oracle Data Guard Concepts and Administration, 10g Release 2 (10.2)". Oracle. Retrieved 2015-02-20.
Redo data can be applied either from archived redo log files, or, if real-time apply is enabled, directly from the standby redo log files as they are being filled, without requiring the redo data to be archived first at the standby database.
- ↑ "Oracle Database Online Documentation, 10g Release 2 (10.2)". docs.oracle.com. Oracle. 2015. Retrieved 2015-06-16.
The Data Guard Connection process (DRCX) detected an error while transferring data from one database to another.
- ↑ Whalen, Edward (2005). Oracle Database 10g Linux administration. McGraw-Hill Professional. p. 329. ISBN 978-0-07-223053-6. Retrieved 2011-09-07.
The Data Guard Broker is the set of utilities and services that manage Data Guard. Included in the Data Guard Broker are both a GUI interface using Oracle Enterprise Manager and a command-line interface (CLI). The Data Guard Broker is used to set up Data Guard, to manage the configuration, and to monitor Data Guard.
- ↑ Kumar, Bipul (2005). Oracle Data Guard: Standby Database Failover Handbook. Oracle In-Focus Series 19. Rampant TechPress. p. 277. ISBN 9780974599380.
With the introduction of [...] standby redo logs [...] it is possible to have a logical standby database be a part of a data Guard configuration running in maximum protection mode. In this way, the Data Guard SQL Apply method offers complete zero-data-loss support.
- ↑ "Data Guard Operational Prerequisites". Data Guard Concepts and Administration. Oracle Corporation. Retrieved 2013-08-26.
As of Oracle Database 11g, Data Guard provides increased flexibility for Data Guard configurations in which the primary and standby systems may have different CPU architectures, operating systems (for example, Windows & Linux), operating system binaries (32-bit/64-bit), or Oracle database binaries (32-bit/64-bit).