Skip to main content

How to enable log shipping on Standby after failing archival.



The Primary Database was giving error in alert log that it was not able to send archivelogs to Standby. The error looked like the following:

Tue Jun  5 10:31:36 2012
Errors in file /u01/oracle/admin/DB1/bdump/DB1_arcp_6846.trc:
ORA-16055: FAL request rejected
ARCH: FAL archive failed. Archiver continuing

Diagnosis:

To check the status of archiving the following sql was issued:

  •  Check what is the destination status

 select ds.dest_id                id,
          ad.status,
         ds.database_mode          db_mode,
         ad.archiver               type,
         ds.recovery_mode,
         ds.protection_mode,
         ds.standby_logfile_count  "SRLs",
         ds.standby_logfile_active active,
         ds.archived_seq#
    from v$archive_dest_status ds, v$archive_dest ad
   where ds.dest_id = ad.dest_id
     and ad.status != 'INACTIVE'
   order by ds.dest_id;
    
ID
STATUS
DB_MODE
TYPE
RECOVERY_MODE
PROTECTION_MODE
SRLs
ACTIVE
ARCHIVED_SEQ#
2
ERROR
MOUNTED-STANDBY
LGWR
MANAGED
MAXIMUM PERFORMANCE
8
7
13317
10
VALID
OPEN
ARCH
IDLE
MAXIMUM PERFORMANCE
0
0
13319 

We can see one destination which is STANDBY has status "ERROR".

  select dest_id, dest_name, status
    from v$archive_dest_status
   where status != 'INACTIVE';


DEST_ID
DEST_NAME
STATUS
2
LOG_ARCHIVE_DEST_2
ERROR
10
LOG_ARCHIVE_DEST_10
VALID

  • Where the log stuck in standby
select thread#, sequence#, process, status from v$managed_standby;

  • Check the errors in dataguard status from primary
  select error_code, message, timestamp
    from v$dataguard_status
   where dest_id = 2;

  • To check if the process MRPO exists in secondary, issue the command.

SELECT PROCESS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE 'MRP%';

This SQL returned no row which means the dataguard was not working properly.

To find out the root cause of this problem I tried the "df -h" to check space on my STANDBY.
I found that there was no space left on device.

The Solution:

STEP 1: First of all space was made available by deleting BACKUPSET of STANDBY.

STEP 2: Issue the command to delete the archived and old archivelog.

BACKUP ARCHIVELOG ALL DELETE ALL INPUT; 


STEP 3: Issue the command to CROSSCHECK the archivelogs.

CROSSCHECK ARCHIVELOG ALL; 

STEP 4: Shutdown STANDBY.

alter database recover managed standby database cancel;
(N.B : This command is used before shutting down the STANDBY database for regular maintenance of STANDBY)


shutdown immediate;

STEP 5: Startup the database in mount mode.

startup mount;

STEP 6: Start log applying to secondary:

 I.  Log on to STAN SQL prompt and issue the command.
 alter database recover managed standby database disconnect; ---apply cuurent logfile

 II. To check archives are applied to secondary, issue the following command.
 Select sequence#,first_time,applied from v$archived_log order by sequence#;

 III. To check if the process MRPO exists in secondary, issue the command.
SELECT PROCESS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE 'MRP%';


Now the MRP process should be there and dataguard should work properly.

-----------------------------------------------------------------------------------------------------



Comments

Popular posts from this blog

EXPDP/IMPDP Export/Import dumpfile to a Remote Server Using Network_Link.

EXPDP/IMPDP Export/Import dumpfile to a Remote Server Using Network_Link. Step 1:   First you have to create a TNS entry at destination database which will be used to connect to the remote target database. pumplink =   (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.1.171)(PORT = 1521))     )     (CONNECT_DATA =       (SERVER = DEDICATED)       (SERVICE_NAME = Ultimus)     )   ) Step 2:   Connect to SQL plus: --Issue the following command to create db link on destination database: CREATE PUBLIC DATABASE LINK pumplink    connect to scott identified by tiger USING 'pumplink'; Step 3:   Issue the expdp command on the destination server using Network_link parameter: expdp scott/tiger directory= dumpdir logfile=impi_temp.log network_link= pumplink  schemas=scott dump...

Solution of problem: Resultset Exceeds the Maximum Size (100 MB)

Solution of problem: Resultset Exceeds the Maximum Size (100 MB) I was running a select statement in PL/SQL Developer. it was a short query but the data volume that the query was fetching was huge. But when ever i Click the button Fetch Last Page or press 'ALT+End' button a message box comes after a while saying: Then I started looking for the exact reason of this sort of problem in Google. When I realized there was no direct solution in the web, I started looking the PL/SQL Developer Software menu and found the ultimate solution. The reason of this problem is there is a parameter of maximum result set size in PL/SQL Developer Software which is by default set to 100 MB. To change this parameter you have to go to the following location: 1. Goto Edit Menu and click ' PL/SQL Beautifier Options '. A new window will open. 2. Click SQL Window of " Window Types ". 3. Now Change the value of "Maximum Result Set Size( 0 is unlimited)"  ...

10g Release 2 (10.2.0.5) Patch Set 4 for Solaris Operating System (x86-64)

10g Release 2 (10.2.0.5) Patch Set 4 for Solaris Operating System (x86-64) PART ONE: Applying Patch___________________________________________________ Step 1:  Shut Down Oracle Databases SQL> shutdown immediate;  Shut down any existing Oracle Database instances with normal or immediate priority. On Oracle RAC systems, shut down all instances on each node. Step 2: Stopping All Processes for a Single Instance Installation Shut down the following Oracle Database 10g processes in the order specified before installing the patch set:  Shut down all processes in the Oracle home that might be accessing a database; for example, Oracle Enterprise Manager Database Control: $ emctl stop dbconsole $ lsnrctl stop Step 3: To install the Oracle Database 10g patch set interactively: a. Log in as the oracle user. b. Enter the following commands to start Oracle Universal Installer, where patchset_directory is the directory where you unpac...