Thank you, This was very helpful and I got it. I did unset the db_create_file_dest on both databases. I found that the db_file_name_convert had not been set on the standby, so I set it and that worked. I appreciate the quick help!
Scott Canaan ‘88
Sr Database Administrator
Information & Technology Services
Finance & Administration
Rochester Institute of Technology
o: (585) 475-7886 | f: (585) 475-7520
srcdco_at_rit.edu<mailto:srcdco_at_rit.edu> | c: (585) 339-8659
CONFIDENTIALITY NOTE: The information transmitted, including attachments, is intended only for the person(s) or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and destroy any copies of this information.
From: Chris Taylor <christopherdtaylor1994_at_gmail.com>
Sent: Wednesday, July 28, 2021 11:59 AM
To: Scott Canaan <srcdco_at_rit.edu>
Cc: oracle-l_at_freelists.org
Subject: Re: Data Guard Question
CAUTION: This message came from outside RIT. If you are unsure about the source or content of this message, please contact the RIT Service Center at 585-475-5000 or help.rit.edu before clicking links, opening attachments or responding.
You need to UNSET db_create_file_dest on the standby as it overrides db_file_name_convert. DB_FILE_NAME_CONVERT will get ignored.
DB_CREATE_FILE_DEST will also create oracle managed file names (OMF filenames) as you see getting done in your example.
Then you need to make sure your DB_FILE_NAME_CONVERT parameter is set CORRECTLY to properly place the datafile in the right place.
So on db_file_name_convert should be something like:
IF primary location = /oracle/data/DGRDTSTD/DGRDTSTD/datafile
Then db_file_name_convert on standby should be:
db_file_name_convert=' DGRDTSTD/DGRDTSTD',' DGRDTSTC/DGRDTSTC' ;
Your db_file_name_convert must properly set the full string you want to replace with the string you want to use as the replacement value.
Chris
On Wed, Jul 28, 2021 at 11:45 AM Scott Canaan <srcdco_at_rit.edu<mailto:srcdco_at_rit.edu>> wrote:
We’ve set up data guard with a primary and a secondary. The primary is DGRDTSTD. The secondary is DGRDTSTC. We are running Oracle 19c on Linux Red Hat 7.
If I create a new data file on the primary, it creates it on the secondary, but in the wrong directory. It creates a new directory, called DGRDTSTD and puts the new file there, instead of putting it in the DGRDTSTC directory. I can move it and rename it, but I shouldn’t have to.
I tried to set the db_create_file_dest parameter on both databases:
on the standby:
alter system set db_create_file_dest='/oracle/data/DGRDTSTC';
on the primary:
alter system set db_create_file_dest='/oracle/data/DGRDTSTD';
All that did was to create the new file as:
/oracle/data/DGRDTSTC/DGRDTSTC/datafile/o1_mf_test_dat_jj2xgght_.dbf