{"id":4211,"date":"2025-06-14T15:36:37","date_gmt":"2025-06-14T15:36:37","guid":{"rendered":"https:\/\/w3buddy.com\/?post_type=cposts&#038;p=4211"},"modified":"2025-06-14T15:36:38","modified_gmt":"2025-06-14T15:36:38","slug":"apply-services-in-oracle-data-guard","status":"publish","type":"cposts","link":"https:\/\/w3buddy.com\/blog\/notes\/data-guard\/apply-services-in-oracle-data-guard\/","title":{"rendered":"Apply Services in Oracle Data Guard"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Apply Services in Oracle Data Guard<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Apply Services keep the standby database updated by applying redo data received from the primary \u2014 using core and supporting processes.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">What Are Apply Services?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In Oracle Data Guard, once redo data is shipped to the standby, <strong>Apply Services<\/strong> apply that data to keep the standby in sync with the primary.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They are critical for ensuring <strong>high availability<\/strong>, <strong>data consistency<\/strong>, and <strong>fast failover<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Real-Life Analogy<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine your main office sends a stream of instructions to a backup office.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Redo logs = instructions<\/li>\n\n\n\n<li>Apply Services = workers reading and following those instructions<\/li>\n\n\n\n<li>Supporting staff = helpers organizing, delivering, or translating those instructions.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Without Apply Services, the backup office would have the files \u2014 but nothing gets updated.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Key Apply Services Components (Full Breakdown)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s understand <strong>who does what<\/strong> in the background when Apply Services are running:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. <code>MRP0<\/code> \u2013 Managed Recovery Process<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Used in:<\/strong> Physical Standby<br><strong>Role:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Applies redo <strong>block-by-block<\/strong>.<\/li>\n\n\n\n<li>Automatically resolves gaps in logs.<\/li>\n\n\n\n<li>Supports real-time and delayed apply.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">This is the <strong>main apply engine<\/strong> in <strong>Redo Apply<\/strong>.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">2. <code>LSP<\/code> \u2013 Logical Standby Process<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Used in:<\/strong> Logical Standby<br><strong>Role:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Reads redo logs.<\/li>\n\n\n\n<li>Converts changes into <strong>SQL statements<\/strong>.<\/li>\n\n\n\n<li>Applies SQL to standby tables.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">This is the <strong>main process<\/strong> in <strong>SQL Apply<\/strong>.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udd1d Supporting Processes That Help Apply Services<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">These processes don\u2019t apply redo directly but are critical <strong>supporting components<\/strong>:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>RFS<\/code> \u2013 Remote File Server<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Used in:<\/strong> Both Physical &amp; Logical<br><strong>Role:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Receives redo data from the primary.<\/li>\n\n\n\n<li>Writes redo to standby log files (<code>SRLs<\/code> or archived logs).<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">It <strong>feeds the redo<\/strong> to be applied.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\"><code>ARCH<\/code> \u2013 Archiver Process<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Used in:<\/strong> Physical Standby<br><strong>Role:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Archives redo logs on the standby.<\/li>\n\n\n\n<li>Helps with <strong>gap resolution<\/strong> and redo retention.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><code>READER<\/code>, <code>BUILDER<\/code>, <code>APPLY<\/code> (SQL Apply Internals)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Used in:<\/strong> Logical Standby<br><strong>Role:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>READER<\/code>: Reads logical change records.<\/li>\n\n\n\n<li><code>BUILDER<\/code>: Prepares transactions for execution.<\/li>\n\n\n\n<li><code>APPLY<\/code>: Executes SQL changes.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">These are <strong>child processes<\/strong> launched by <code>LSP<\/code>.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Summary Table \u2013 Apply Services Components<\/h2>\n\n\n\n<figure class=\"wp-block-table has-small-font-size\"><table><thead><tr><th>Process Name<\/th><th>Standby Type<\/th><th>Role in Apply Services<\/th><\/tr><\/thead><tbody><tr><td><code>MRP0<\/code><\/td><td>Physical Standby<\/td><td>Applies redo at block level<\/td><\/tr><tr><td><code>LSP<\/code><\/td><td>Logical Standby<\/td><td>Applies redo as SQL<\/td><\/tr><tr><td><code>RFS<\/code><\/td><td>Both<\/td><td>Receives redo from primary<\/td><\/tr><tr><td><code>ARCH<\/code><\/td><td>Physical<\/td><td>Archives redo logs<\/td><\/tr><tr><td><code>READER<\/code><\/td><td>Logical<\/td><td>Reads LCRs (Logical Change Records)<\/td><\/tr><tr><td><code>BUILDER<\/code><\/td><td>Logical<\/td><td>Assembles and prepares SQL transactions<\/td><\/tr><tr><td><code>APPLY<\/code><\/td><td>Logical<\/td><td>Executes SQL statements<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Apply Modes in Oracle Data Guard<\/h2>\n\n\n\n<figure class=\"wp-block-table has-small-font-size\"><table><thead><tr><th>Mode<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>Real-Time Apply<\/strong><\/td><td>Applies redo <strong>as soon as it&#8217;s received<\/strong><\/td><\/tr><tr><td><strong>Delayed Apply<\/strong><\/td><td>Applies redo after a <strong>configured delay<\/strong> (e.g., 30 mins)<\/td><\/tr><tr><td><strong>Manual Apply<\/strong><\/td><td>DBA must <strong>manually start<\/strong> apply process<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udcdd Monitoring Apply Services<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check which processes are running:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>SELECT PROCESS, STATUS, THREAD#, SEQUENCE# \nFROM V$MANAGED_STANDBY;<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You\u2019ll see entries like <code>MRP0<\/code>, <code>RFS<\/code>, <code>LSP<\/code>, etc.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apply Services in Oracle Data Guard Apply Services keep the standby database updated by applying redo data received from the primary \u2014 using core and supporting processes. What Are Apply Services? In Oracle Data Guard, once redo data is shipped to the standby, Apply Services apply that data to keep the standby in sync with [&hellip;]<\/p>\n","protected":false},"template":"","meta":{"googlesitekit_rrm_CAowu461DA:productID":""},"categories":[988,952],"class_list":["post-4211","cposts","type-cposts","status-publish","hentry","category-data-guard","category-notes"],"_links":{"self":[{"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/cposts\/4211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/cposts"}],"about":[{"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/types\/cposts"}],"wp:attachment":[{"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/media?parent=4211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/categories?post=4211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}