Oracle 10g - Manually Create a Physical Standby Database Using Data Guard

articles: 

Step-by-step instructions on how to create a Physical Standby Database on Windows and UNIX servers, and maintenance tips on the databases in a Data Guard Environment.

Oracle 10g Data Guard is a great tool to ensure high availability, data protection and disaster recovery for enterprise data. I have been working on Data Guard/Standby databases using both Grid control and SQL command line for a couple of years, and my latest experience with Data Guard was manually creating a Physical Standby Database for a Laboratory Information Management System (LIMS) half a year ago. I maintain it daily and it works well. I would like to share my experience with the other DBAs.

In this example the database version is 10.2.0.3.. The Primary database and Standby database are located on different machines at different sites. The Primary database is called PRIM and the Standby database is called STAN. I use Flash Recovery Area, and OMF.

I. Before you get started:

1. Make sure the operating system and platform architecture on the primary and standby systems are the same;

2. Install Oracle database software without the starter database on the standby server and patch it if necessary. Make sure the same Oracle software release is used on the Primary and Standby databases, and Oracle home paths are identical.

3. Test the Standby Database creation on a test environment first before working on the Production database.

II. On the Primary Database Side:

1. Enable forced logging on your primary database:
SQL> ALTER DATABASE FORCE LOGGING;

2. Create a password file if it doesn’t exist.
1) To check if a password file already exists, run the following command:
SQL> select * from v$pwfile_users;

2) If it doesn’t exist, use the following command to create one:
- On Windows:
$cd %ORACLE_HOME%\database
$orapwd file=pwdPRIM.ora password=xxxxxxxx force=y
(Note: Replace xxxxxxxxx with the password for the SYS user.)

- On UNIX:
$Cd $ORACLE_HOME/dbs
$Orapwd file=pwdPRIM.ora password=xxxxxxxx force=y
(Note: Replace xxxxxxxxx with your actual password for the SYS user.)

3. Configure a Standby Redo log.
1) The size of the standby redo log files should match the size of the current Primary database online redo log files. To find out the size of your online redo log files:
SQL> select bytes from v$log;

BYTES
----------
52428800
52428800
52428800

2) Use the following command to determine your current log file groups:
SQL> select group#, member from v$logfile;

3) Create standby Redo log groups.
My primary database had 3 log file groups originally and I created 3 standby redo log groups using the following commands:
SQL>ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 SIZE 50M;
SQL>ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 SIZE 50M;
SQL>ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 SIZE 50M;

4) To verify the results of the standby redo log groups creation, run the following query:
SQL>select * from v$standby_log;

4. Enable Archiving on Primary.
If your primary database is not already in Archive Log mode, enable the archive log mode:
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter database open;
SQL>archive log list;

5. Set Primary Database Initialization Parameters
Create a text initialization parameter file (PFILE) from the server parameter file (SPFILE), to add the new primary role parameters.

1) Create pfile from spfile for the primary database:
- On Windows:
SQL>create pfile=’\database\pfilePRIM.ora’ from spfile;
(Note- specify your Oracle home path to replace ‘’).

- On UNIX:
SQL>create pfile=’/dbs/pfilePRIM.ora’ from spfile;
(Note- specify your Oracle home path to replace ‘’).

2) Edit pfilePRIM.ora to add the new primary and standby role parameters: (Here the file paths are from a windows system. For UNIX system, specify the path accordingly)

db_name=PRIM
db_unique_name=PRIM
LOG_ARCHIVE_CONFIG='DG_CONFIG=(PRIM,STAN)'
LOG_ARCHIVE_DEST_1=
'LOCATION=F:\Oracle\flash_recovery_area\PRIM\ARCHIVELOG
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=PRIM'
LOG_ARCHIVE_DEST_2=
'SERVICE=STAN LGWR ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=STAN'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30
remote_login_passwordfile='EXCLUSIVE'
FAL_SERVER=STAN
FAL_CLIENT=PRIM
STANDBY_FILE_MANAGEMENT=AUTO
# Specify the location of the standby DB datafiles followed by the primary location;
DB_FILE_NAME_CONVERT='E:\oracle\product\10.2.0\oradata\STAN\DATAFILE','E:\oracle\product\10.2.0\oradata\PRIM\DATAFILE'
# Specify the location of the standby DB online redo log files followed by the primary location LOG_FILE_NAME_CONVERT=’E:\oracle\product\10.2.0\oradata\STAN\ONLINELOG’,’E:\oracle\product\10.2.0\oradata\PRIM\ONLINELOG’,’F:\Oracle\flash_recovery_area\STAN\ONLINELOG’,’F:\Oracle\flash_recovery_area\PRIM\ONLINELOG’

6. Create spfile from pfile, and restart primary database using the new spfile.
Data Guard must use SPFILE. Create the SPFILE and restart database.
- On windows:
SQL> shutdown immediate;
SQL> startup nomount pfile=’\database\pfilePRIM.ora’;
SQL>create spfile from pfile=’\database\pfilePRIM.ora’;
-- Restart the Primary database using the newly created SPFILE.
SQL>shutdown immediate;
SQL>Startup;
(Note- specify your Oracle home path to replace ‘’).

- On UNIX:
SQL> shutdown immediate;
SQL> startup nomount pfile=’/dbs/pfilePRIM.ora’;
SQL>create spfile from pfile=’/dbs/pfilePRIM.ora’;
-- Restart the Primary database using the newly created SPFILE.
SQL>shutdown immediate;
SQL>Startup;
(Note- specify your Oracle home path to replace ‘’).

III. On the Standby Database Site:

1. Create a copy of Primary database data files on the Standby Server:
On Primary DB:
SQL>shutdown immediate;

On Standby Server (While the Primary database is shut down):
1) Create directory for data files, for example, on windows, E:\oracle\product\10.2.0\oradata\STAN\DATAFILE.
On UNIX, create the directory accordingly.

2) Copy the data files and temp files over.

3) Create directory (multiplexing) for online logs, for example, on Windows, E:\oracle\product\10.2.0\oradata\STAN\ONLINELOG and F:\Oracle\flash_recovery_area\STAN\ONLINELOG.
On UNIX, create the directories accordingly.

4) Copy the online logs over.

2. Create a Control File for the standby database:
On Primary DB, create a control file for the standby to use:
SQL>startup mount;
SQL>alter database create standby controlfile as ‘STAN.ctl;
SQL>ALTER DATABASE OPEN;

3. Copy the Primary DB pfile to Standby server and rename/edit the file.

1) Copy pfilePRIM.ora from Primary server to Standby server, to database folder on Windows or dbs folder on UNIX under the Oracle home path.

2) Rename it to pfileSTAN.ora, and modify the file as follows. : (Here the file paths are from a windows system. For UNIX system, specify the path accordingly)

*.audit_file_dest='E:\oracle\product\10.2.0\admin\STAN\adump'
*.background_dump_dest='E:\oracle\product\10.2.0\admin\STAN\bdump'
*.core_dump_dest='E:\oracle\product\10.2.0\admin\STAN\cdump'
*.user_dump_dest='E:\oracle\product\10.2.0\admin\STAN\udump'
*.compatible='10.2.0.3.0'
control_files='E:\ORACLE\PRODUCT\10.2.0\ORADATA\STAN\CONTROLFILE\STAN.CTL','F:\ORACLE\FLASH_RECOVERY_AREA\STAN\CONTROLFILE\STAN.CTL'
db_name='PRIM'
db_unique_name=STAN
LOG_ARCHIVE_CONFIG=’DG_CONFIG=(PRIM,STAN)’
LOG_ARCHIVE_DEST_1=
‘LOCATION=F:\Oracle\flash_recovery_area\STAN\ARCHIVELOG
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=STAN’
LOG_ARCHIVE_DEST_2=
‘SERVICE=PRIM LGWR ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=PRIM’
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30
FAL_SERVER=PRIM
FAL_CLIENT=STAN
remote_login_passwordfile='EXCLUSIVE'
# Specify the location of the primary DB datafiles followed by the standby location
DB_FILE_NAME_CONVERT=’E:\oracle\product\10.2.0\oradata\PRIM\DATAFILE’,’E:\oracle\product\10.2.0\oradata\STAN\DATAFILE’
# Specify the location of the primary DB online redo log files followed by the standby location
LOG_FILE_NAME_CONVERT=’E:\oracle\product\10.2.0\oradata\PRIM\ONLINELOG’,’E:\oracle\product\10.2.0\oradata\STAN\ONLINELOG’,’F:\Oracle\flash_recovery_area\PRIM\ONLINELOG’,’F:\Oracle\flash_recovery_area\STAN\ONLINELOG’
STANDBY_FILE_MANAGEMENT=AUTO

(Note: Not all the parameter entries are listed here.)

4. On Standby server, create all required directories for dump and archived log destination:
Create directories adump, bdump, cdump, udump, and archived log destinations for the standby database.

5. Copy the standby control file ‘STAN.ctl’ from primary to standby destinations ;

6. Copy the Primary password file to standby and rename it to pwdSTAN.ora.
On Windows copy it to \database folder, and on UNIX copy it to /dbs directory. And then rename the password file.

7. For Windows, create a Windows-based services (optional):
$oradim –NEW –SID STAN –STARTMODE manual

8. Configure listeners for the primary and standby databases.

1) On Primary system: use Oracle Net Manager to configure a listener for PRIM and STAN. Then restart the listener.
$lsnrctl stop
$lsnrctl start

2) On Standby server: use Net Manager to configure a listener for PRIM and STAN. Then restart the listener.
$lsnrctl stop
$lsnrctl start

9. Create Oracle Net service names.
1) On Primary system: use Oracle Net Manager to create network service names for PRIM and STAN. Check tnsping to both services:
$tnsping PRIM
$tnsping STAN

2) On Standby system: use Oracle Net Manager to create network service names for PRIM and STAN. Check tnsping to both services:
$tnsping PRIM
$tnsping STAN

10. On Standby server, setup the environment variables to point to the Standby database.

Set up ORACLE_HOME and ORACLE_SID.

11. Start up nomount the standby database and generate a spfile.
- On Windows:
SQL>startup nomount pfile=’\database\pfileSTAN.ora’;
SQL>create spfile from pfile=’\database\pfileSTAN.ora’;
-- Restart the Standby database using the newly created SPFILE.
SQL>shutdown immediate;
SQL>startup mount;

- On UNIX:
SQL>startup nomount pfile=’/dbs/pfileSTAN.ora’;
SQL>create spfile from pfile=’/dbs/pfileSTAN.ora’;
-- Restart the Standby database using the newly created SPFILE.
SQL>shutdown immediate;
SQL>startup mount;
(Note- specify your Oracle home path to replace ‘’).

12. Start Redo apply
1) On the standby database, to start redo apply:
SQL>alter database recover managed standby database disconnect from session;

If you ever need to stop log apply services:
SQL> alter database recover managed standby database cancel;

13. Verify the standby database is performing properly:
1) On Standby perform a query:
SQL>select sequence#, first_time, next_time from v$archived_log;

2) On Primary, force a logfile switch:
SQL>alter system switch logfile;

3) On Standby, verify the archived redo log files were applied:
SQL>select sequence#, applied from v$archived_log order by sequence#;

14. If you want the redo data to be applied as it is received without waiting for the current standby redo log file to be archived, enable the real-time apply.

To start real-time apply:
SQL> alter database recover managed standby database using current logfile disconnect;

15. To create multiple standby databases, repeat this procedure.

IV. Maintenance:

1. Check the alert log files of Primary and Standby databases frequently to monitor the database operations in a Data Guard environment.

2. Cleanup the archive logs on Primary and Standby servers.

I scheduled weekly Hot Whole database backup against my primary database that also backs up and delete the archived logs on Primary.

For the standby database, I run RMAN to backup and delete the archive logs once per week.
$rman target /@STAN;
RMAN>backup archivelog all delete input;

To delete the archivelog backup files on the standby server, I run the following once a month:
RMAN>delete backupset;

3. Password management
The password for the SYS user must be identical on every system for the redo data transmission to succeed. If you change the password for SYS on Primary database, you will have to update the password file for Standby database accordingly, otherwise the logs won’t be shipped to the standby server.

Refer to section II.2, step 2 to update/recreate password file for the Standby database.

Reference:
Oracle Data Guard Concepts and Administration 10g Release 2 (10.2), B14239-04

About Author
Hailie Jiao works as Oracle DBA at Baltimore, Maryland. She is an Oracle 10g Certified Professional and 9i Certified Associate.

Comments

Hi, hjiao, thank you for the detailed instructions!

hrb_qiuyb's picture

well done!!

Hi Jiao
Thanks for the detailed document.

db_name='PRIM'
db_unique_name=STAN

these parameters on standby db, is db_name right here?

The db_name has to be the primary database name here, and db_unique_name is the standby database name. Thanks.

Thanks for the detailed document - I have successfully configured standby server. It seems to be working fine - if I make some changes on the primary server the standby server also shows those changes after about 30-40 mins. I have one question - how to switchover to standby server in case primary server is down. I have searched online for this but so far no success. I have tried various methods to convert to primary but everytime when I try to switchover it gives errors like "Media recovery required" or "Imcompatible media recovery in progress". Can you please suggest a simple way to switchover?

Thanks.

Hi hamnad83,

Was the error caused by the untransmitted redo data? I would suggest you perform a 'switch logfile' before switchover.

Before switch over, you can query sequence# column in v$archived_log to see if the last redo data transmitted from the original primary database was applied on the standby database.

I submitted a blog on quick and easy switchover steps and hope it can be published soon. Thanks.

step by step instructions will help always.....
Really Helpfull......
Thank you boss.....

gr8 notes
typo mistake,

LOG_FLE_NAME_CONVERT
LOG_FiLE_NAME_CONVERT

Regards
Shamsher Ali

Thanks, Shamsher. I corrected that.

I received several requests on switch over steps, and here is what I came up with. Hope this helps.

I. Before Switchover:

1. As I always recommend, test the Switchover first on your testing systems before working on Production.

2. Verify the primary database instance is open and the standby database instance is mounted.

3. Verify there are no active users connected to the databases.

4. Make sure the last redo data transmitted from the Primary database was applied on the standby database. Issue the following commands on Primary database and Standby database to find out:
SQL>select sequence#, applied from v$archvied_log;
Perform SWITCH LOGFILE if necessary.

In order to apply redo data to the standby database as soon as it is received, use Real-time apply.

II. Quick Switchover Steps

1. Initiate the switchover on the primary database PRIM:
SQL>connect /@PRIM as sysdba
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;

2. After step 1 finishes, Switch the original physical standby db STAN to primary role;
Open another prompt and connect to SQLPLUS:
SQL>connect /@STAN as sysdba
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

3. Immediately after issuing command in step 2, shut down and restart the former primary instance PRIM:
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;

4. After step 3 completes:
- If you are using Oracle Database 10g release 1, you will have to Shut down and restart the new primary database STAN.
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP;

- If you are using Oracle Database 10g release 2, you can open the new Primary database STAN:
SQL>ALTER DATABASE OPEN;

STAN is now transitioned to the primary database role.

5. On the new primary database STAN, perform a SWITCH LOGFILE to start sending redo data to the standby database PRIM.
SQL>ALTER SYSTEM SWITCH LOGFILE;

Hi,

I switched hover the DB but I got this error:

Thread: Getting ORA-16009:remote archive log destination must be a STANDBY database

First of all, let me thank hjiao for the excellent documentation.

In our case, we did not have the time to do your Step II->1 (Initiate the switchover on the primary database PRIM) as systems got shutdown due to overheating.
However, we had no problems switching to the standby. But we had to have another standby otherwise we would be risking ourselves if something were to happen to that database.

We thought we could do the primary-standby role reversed for a couple of days. That is we wanted to bring up the ORIGINAL PRIMARY as the NEW STANDBY, until the air-conditioning was stable enough to fail back to the way it was.

In doing so, we discovered that we should have FLASHBACK enabled and active on the primary database before switching over. Luckily for us, we have had Flashback going on in the ORIGINAL Primary database before shutdown. Assuming you had flashback going on before, here is what you need to do.

On the CURRENT primary database (which was the old standby)
SQL>SELECT TO_CHAR(STANDBY_BECAME_PRIMARY_SCN) FROM V$DATABASE;

Then using the result value, do the following on the ORIGINAL primary (which is going to be the new Standby)
SQL>STARTUP MOUNT;
SQL>FLASHBACK DATABASE TO SCN XXXX; --supply the scn identified in the previous step
SQL>alter database convert to physical standby;
SQL>shutdown immediate
SQL>startup mount
SQL>alter database recover managed standby database disconnect;

Of course, you also have to make sure to do the following on the CURRENT Primary database to send the log files to the new standby:
SQL>alter system set log_archive_dest_2 = "SERVICE=NEW_STANDBY REOPEN=300";
SQL>alter system set log_archive_dest_state_2 = ENABLE;

Hope this makes sense. Does anyone know of any other way of doing this (reversing primary/secondary roles)?

Now that our air-conditioning system is stable, we are working on switching back to the old primary. Lets see how that goes.

Hello hjiao

I have done almost most of the steps like what you have told except for the fact that instead of using the same Drives for storing the data files i am using two different drives,like d:\ drive for Primary and F:\drive for standby datafiles..Somehow the db file conversion is not hapening...Do u see nay reason for it.
Regards
MM

I'm trying to configure the listeners. I'm able to get a listener for the primary database but when I try for the standby I get "A valid "SID" is required".

The notes say to configure both of each server. I am able to configure the primary database.

I'm trying to set this up on two servers.

Hi,
I tried to test this in my PC, I followed all the steps per the post, but
select sequence#, first_time, next_time from v$archived_log returns nothing even after i force the log switch in primary it is not reflecting in standby DB.
What could b the problem?

Thanks for ur assistance

Hi hjiao,
Thanks for your excellent documentation, my DB works properly but recently my datafiles have problem. Both my PRIM and STAN are 10.2.0, the db_file_name_convert parameter is below:

*.db_file_name_convert='F:\oracle\product\10.2.0\oradata\stan','F:\oracle\product\10.2.0\oradata\orcl'

Then F:\ has no space left, I install 1 HDD for each server and add some datafile to database PRIM, but forgot to reconfiguration the parameter *.db_file_name_convert. So datafile created on PRIM but not sync to STAN.

I stopped 2 DB and modify parameter *db_file_name_convert to:

*.db_file_name_convert='G:\oracle\oradata\stan','G:\oracle\oradata\orcl','F:\oracle\product\10.2.0\oradata\stan','F:\oracle\product\10.2.0\oradata\orcl'

Restart 2 DB but datafiles sitll not sync to STAN.

Please help me, how can I do to pass this problem? My pfile is below.

Many Thanks,
Dang

orcl.__db_cache_size=465567744
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=130023424
orcl.__streams_pool_size=0
*.audit_file_dest='F:\oracle\product\10.2.0\admin\orcl\adump'
*.background_dump_dest='F:\oracle\product\10.2.0\admin\orcl\bdump'
*.compatible='10.2.0.1.0'
*.control_files='F:\oracle\product\10.2.0\oradata\orcl\control01.ctl','F:\oracle\product\10.2.0\oradata\orcl\control02.ctl','F:\oracle\product\10.2.0\oradata\orcl\control03.ctl'
*.core_dump_dest='F:\oracle\product\10.2.0\admin\orcl\cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_file_name_convert='G:\oracle\oradata\stan','G:\oracle\oradata\orcl','F:\oracle\product\10.2.0\oradata\stan','F:\oracle\product\10.2.0\oradata\orcl'
*.db_name='orcl'
*.db_recovery_file_dest='F:\oracle\product\10.2.0\flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.db_unique_name='orcl'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.FAL_CLIENT='ORCL'
*.FAL_SERVER='STAN'
*.job_queue_processes=10
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(ORCL,STAN)'
*.LOG_ARCHIVE_DEST_1='LOCATION=F:\oracle\product\10.2.0\flash_recovery_area\ORCL\ARCHIVELOG VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ORCL'
*.LOG_ARCHIVE_DEST_2='SERVICE=STAN LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STAN'
*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.LOG_ARCHIVE_FORMAT='%t_%s_%r.arc'
*.log_archive_max_processes=30
*.log_archive_min_succeed_dest=1
*.log_file_name_convert='F:\oracle\product\10.2.0\oradata\stan','F:\oracle\product\10.2.0\oradata\orcl','F:\oracle\product\10.2.0\flash_recovery_area\STAN\ONLINELOG','F:\oracle\product\10.2.0\flash_recovery_area\ORCL\ONLINELOG'
*.open_cursors=300
*.pga_aggregate_target=203423744
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=611319808
*.standby_file_management='AUTO'
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='F:\oracle\product\10.2.0\admin\orcl\udump'

Hi Hjiao,

Thank You for sharing your experience. I have a question.
Can I have a primary database and standby database on the same server/pc?
I want to setup and try.

Thanks
Neeraj

As it is said in original documentation (http://download.oracle.com/docs/cd/B19306_01/server.102/b15658/admin_ora.htm#CFHCAJDG):
"The name of the file must be: orapw ...."
Please, correct it

I did everything written, but when I do
*SQL>alter database recover managed standby database disconnect from session;*

I go and look in the standby database AlertLog file, and this is what's written:

*ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\DB\SYSTEM01.DBF'
ORA-27041: unable to open file
OSD-04002: غير قادر على فتح الملف
O/S-Error: (OS 3) The system cannot find the path specified.
ORA-01157: cannot identify/lock data file 2 - see DBWR trace file
ORA-01110: data file 2: 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\DB\UNDOTBS01.DBF'
ORA-27041: unable to open file
OSD-04002: غير قادر على فتح الملف
O/S-Error: (OS 3) The system cannot find the path specified.
ORA-01157: cannot identify/lock data file 3 - see DBWR trace file
ORA-01110: data file 3: 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\DB\SYSAUX01.DBF'
ORA-27041: unable to open file
OSD-04002: غير قادر على فتح الملف
O/S-Error: (OS 3) The system cannot find the path specified.
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\DB\USERS01.DBF'
ORA-27041: unable to open file
OSD-04002: غير قادر على فتح الملف
O/S-Error: (OS 3) The system cannot find the path specified.
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file
ORA-01110: data file 5: 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\DB\EXAMPLE01.DBF'
ORA-27041: unable to open file
OSD-04002: غير قادر على فتح الملف
O/S-Error: (OS 3) The system cannot find the path specified.
*
Strange thing that it realises the primary database in drive F and it goes to it, but I don't understand what could be the reason of this, although I'm doing this command while primary database is shutdown!

Any help would be appreciated!

Hello Experts,

I new to data guard concept. And are facing some problems...

I am using oracle 10g with data guard configured, I have primary ( A ) and standby database ( B ). But because of some unavoidable conditions the primary database ( A ) got shutdown and was not starting. We shifted the standby database ( B )
at new location and changed it to primary with following command:

statup mount;

alter database recover managed standby database finish;

alter database commit to switchover to physical primary;

shutdown;

startup;

This new primary ( B ) was open for end users for 2 days during which old primary ( A ) was shutdown.

I took the backup of ( B ) and restored it on A AND shutdown the B. Now A is acting as Primary database. Server B is shutdown.

I want to change server B to standby database with A running as Primary. Is it possible?

Thanks,
Rushi123

Hi experts,

I'm using you instruction on Oracle 11GR1. All configuration is OK on both servers.
The archive log files automatically generate at flash_recovery_area\PRIM\ARCHIVELOG folder.

ON PRIM server: "select sequence#, first_time, next_time from v$archived_log" query result is 10 rows, but ON STAN server, no results!

What is wrong I do?

It is a good article. But an important step is missing. There is no where it is mentioned about the standby database's standby redo log files.
It must be noted that the standby redolog created in the primary must be copied and shipped to appropriate location in the standby database.