Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: 9i RAC and LOG_ARCHIVE_TARGET_n on OCFS

Re: 9i RAC and LOG_ARCHIVE_TARGET_n on OCFS

From: Howard J. Rogers <hjr_at_dizwell.com>
Date: Thu, 02 Sep 2004 08:09:46 +1000
Message-ID: <413648c9$0$10615$afc38c87@news.optusnet.com.au>


Steffen Roegner wrote:

> Howdy,
>
> here is a little nut we tried to crack these days.
> We have a 4-node 9.2.0.4 RAC on Red Hat EL 3.0 running, utilizing a SAN
> with ocfs. Following Wim Coekaerts recommendations found on oss
>

(http://oss.oracle.com/projects/ocfs/dist/documentation/ocfs_oracleworld.ppt)
> we were trying to separate archive directories for the archlog threads
> from each other - we used to have them in one partition alltogether in
> the beginning. ("Separate archive log files from datafiles, If possible
> separate out in separate directories"). This is apparently to prevent
> ocfs from fragmentation ...
>
> Anyway - the only way I know for doing that is setting the
> LOG_ARCHIVE_DEST_n instance specific, like so:
>
> node1.thread=1
> node1.log_archive_dest_1=/u01/archive/rac/thread1
> node2.thread=2
> node2.log_archive_dest_1=/u01/archive/rac/thread2
>
> We now use this configuration on a test RAC and it works. On the other
> hand, ORACLE Doc says explicitly:
>
> "Parameters That Must Be Identical Across All Instances
>
> Certain initialization parameters that are critical at database creation
> or that affect certain database operations must have the same value for
> every instance in Real Application Clusters. Specify these parameter
> values in the common parameter file, or within each init_dbname.ora file
> on each instance. The following list shows the parameters that must be
> identical on every instance.
>
> * CONTROL_FILES
> ...
> * LOG_ARCHIVE_DEST_n (Optional)"
>

(http://download-west.oracle.com/docs/cd/B10501_01/rac.920/a96596/params.htm#21706)
>
> I cannot put this together - is there another (maybe more explicit) way,
> to assign a certain Archive Log Destination to an Archive thread?
>
> tia,
> Steffen
>

Notice that the documentation says L_A_D_n is optional for being identical!

I realise the documentation also says in the immediately preceding sentence 'parameters [which] must be identical on every instance'. How you can have an 'optional' 'must' is one of life's (and Oracle's documentation's) little mysteries.

What they are getting at is simply that during a RAC recovery, you will be connected to a specific instance (and of course you don't know which one it will be in advance). But that instance is going to try to recover the entire *database*. Which means re-performing transactions which occurred on *any* of the instances -which, in its turn, means applying archives generated by any of the instances.

Therefore, every instance needs to be able to see the archives generated by itself and all other instances.

Now, one way of doing that is to get all instances to archive to a common destination (hence, L_A_D_n would be the same for all instances). But there are other ways of achieving the same thing, such as an NFS mount -which, incidentally, you *have* to use if you find yourself RAC'ing with raw partitions, because you can't write archives to raw devices, and hence you can't store them on the shared disk if raw is all you've got.

Now, Oracle itself publishes information about the NFS share technique... and it is another sign of temporary madness in their documentation department that they would do that AND simultaneously say the LADn "must" be the same on all instances... because the two are essentially mutually contradictory.

So... ignore the stuff about the parameter needing to be identical. That's just tosh.

On the other hand, I'd also ignore the stuff about fragmenting the OCFS. As I understood that presentation you mentioned, he was saying to keep archives away from datafiles and that one of the weaknesses of OCFS was that there was no defragmentation toolset for it.

Well, the first bit is obviously true. Archive writing is I/O intensive stuff, and you don't want that I/O anywhere near your data files. But the lack of defragmentation tools for OCFS doesn't (IMO) mean that OCFS will inevitably fragment just because all instances decide to write to the same archiving location.

Unless you're getting obviously archiving-related waits, I'd suggest all archives *should* be written to one OCFS directory, actually (obviously there's an I/O conflict concern there, but that's what striping is for).

But if you want to keep them separated... different LADn's are just fine.

Regards
HJR Received on Wed Sep 01 2004 - 17:09:46 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US