[Ocfs-users] cp --o_direct
David Sharples
davidsharples at gmail.com
Wed Dec 1 12:02:29 CST 2004
Thanks,
all im using to open the database is Oracle itself (9iR2)
Now these files were created on normal ext 3 filesystems and then
manually copied to the ocfs filesystems using straight copy
I repeated your test and here are the results
[oracle at LNCSTRTLDB03 LPTE3]$ dd if=/dev/zero of=testfile bs=1024000 count=256
256+0 records in
256+0 records out
[oracle at LNCSTRTLDB03 LPTE3]$ ls -ltr testfile
-rw-r--r-- 1 oracle dba 262144000 Dec 1 17:48 testfile
[oracle at LNCSTRTLDB03 LPTE3]$ cp --o_direct testfile /ocfs4/oradata/LPTE3/
(worked)
[oracle at LNCSTRTLDB03 LPTE3]$ md5sum --o_direct testfile /ocfs4/oradata/LPTE3/
md5sum: unrecognised option `--o_direct'
(--o_direct didnt work)
[oracle at LNCSTRTLDB03 LPTE3]$ md5sum testfile /ocfs4/oradata/LPTE3/testfile
ab3248888d6f10ef30a084fac6a1e2fd testfile
ab3248888d6f10ef30a084fac6a1e2fd /ocfs4/oradata/LPTE3/testfile
(so they are the same)
[oracle at LNCSTRTLDB03 LPTE3]$ cp --o_direct testfile /tmp
[oracle at LNCSTRTLDB03 LPTE3]$ cp testfile /ocfs4/oradata/LPTE3/testfile
[oracle at LNCSTRTLDB03 LPTE3]$
both those copy command succeeded and the md5sum is the same.
I'm kinda stuck in my thinking now - do I have a problem or not.? Or
is oracle not opening my files without the o_direct support. I didnt
change any db parameters after I moved the files onto ocfs.
Thanks for the effort
Confused
Dave
On Wed, 01 Dec 2004 17:28:54 +0000, Bryce <philip.copeland at oracle.com> wrote:
> I've two ocfs FS's mounted
> [root at localhost root]# df
> Filesystem 1k-blocks Used Available Use% Mounted on
> /dev/hda5 986080 564320 421760 58% /mnt
> /dev/hda6 985984 836896 149088 85% /mnt2
>
> [root at localhost root]# mount | grep ocfs
> /dev/hda5 on /mnt type ocfs (rw)
> /dev/hda6 on /mnt2 type ocfs (rw)
>
> Ok lets crate a 256Mb test file on /mnt
> [root at localhost root]# dd if=/dev/zero of=/mnt/testfile bs=1024
> count=256
> 256+0 records in
> 256+0 records out
>
> Now then lets copy it to another ocfs FS
> [root at localhost root]# cp --o_direct /mnt/testfile /mnt2/testfile
>
> Did it copy it correctly?
> [root at localhost root]# md5sum --o_direct /mnt/testfile /mnt2/testfile
> ec87a838931d4d5d2e94a04644788a55 /mnt/testfile
> ec87a838931d4d5d2e94a04644788a55 /mnt2/testfile
>
> Good. Now can we just drop it on /tmp?
> [root at localhost root]# cp --o_direct /mnt/testfile /tmp
>
> Hummmmm
>
> One possibility is that the database file is not FS block sized aligned
> but cp should have spotted that and bailed with an error if that was the
> case.
>
> Another possibility is that some other program has opened the database
> WITHOUT O_DIRECT support. When this happens, O_DIRECT will not be
> provided with a lock and it will bail out, at least until such time as
> the non O_DIRECT program closes it's access to the database.
>
> If all programs accessing/opening/modifying the file are using O_DIRECT
> file access then you won't see this problem.
>
>
>
> Phil
> =--=
>
> On Wed, 2004-12-01 at 17:04, David Sharples wrote:
> > Thanks,
> >
> > When doing that command it works and the file gets copied.
> >
> > and yes I am using AS2.1. and /tmp is ext3
> >
> > However I get the same error(?) when I try to copy between two ocfs filesystems
> >
> > [oracle at LNCSTRTLDB03 tmp]$ cp /ocfs/oradata/LPTE3/odm01.dbf
> > /ocfs4/oradata/LPTE3/
> > cp: cannot stat `/ocfs/oradata/LPTE3/odm01.dbf': No such file or directory
> > [oracle at LNCSTRTLDB03 tmp]$ cp /ocfs1/oradata/LPTE3/odm01.dbf
> > /ocfs4/oradata/LPTE3/
> > cp: cannot open `/ocfs1/oradata/LPTE3/odm01.dbf' for reading: Permission denied
> > [oracle at LNCSTRTLDB03 tmp]$ cp --o_direct
> > /ocfs1/oradata/LPTE3/odm01.dbf /ocfs4/oradata/LPTE3/
> > cp: cannot open `/ocfs1/oradata/LPTE3/odm01.dbf' for reading: Permission denied
> > [oracle at LNCSTRTLDB03 tmp]$ cp --o_direct=131072,0
> > /ocfs1/oradata/LPTE3/odm01.dbf /ocfs4/oradata/LPTE3/
> > [oracle at LNCSTRTLDB03 tmp]$
> >
> > just to prove that they are really ocfs :-)
> >
> > [root at LNCSTRTLDB03 root]# debugocfs -h /dev/sda1
> > debugocfs 1.1.2-PROD1 Fri Apr 2 13:59:11 PST 2004 (build
> > fcb0206676afe0fcac47a99c90de0e7b)
> > diskheader:
> > version = 1.2
> > signature = OracleCFS
> > mount_point = /ocfs1
> >
> > and
> >
> > [root at LNCSTRTLDB03 root]# debugocfs -h /dev/sda4
> > debugocfs 1.1.2-PROD1 Fri Apr 2 13:59:11 PST 2004 (build
> > fcb0206676afe0fcac47a99c90de0e7b)
> > diskheader:
> > version = 1.2
> > signature = OracleCFS
> > mount_point = /ocfs4
> >
> > Am i missing something here?
> >
> >
> >
> > On Wed, 01 Dec 2004 16:48:08 +0000, Bryce <philip.copeland at oracle.com> wrote:
> > > *scratch*
> > > lets see
> > > try
> > > cp --o_direct=131072,0 xdb01.dbf /tmp
> > >
> > > which basically says 'try to copy in the file using o_direct blocks of
> > > 128Mb and copy out to /tmp without o_direct'
> > >
> > > --o_direct just by itself will assume that the src and destination FS's
> > > are o_direct capable
> > >
> > > In your case, I'm assuming that /tmp isn't and is a ext2 or ext3 FS.
> > > The use of fileutils suggests that you're using AS2.1 which did not
> > > silently ignore o_direct on ext3 like EL3 does.
> > >
> > > Phil
> > > =--=
> > >
> > >
> > >
> > > On Wed, 2004-12-01 at 15:43, David Sharples wrote:
> > > > I have these versions.
> > > >
> > > > [root at LNCSTRTLDB03 LPTE3]# rpm -qa | grep tar
> > > > tar-1.13.25-9
> > > > [root at LNCSTRTLDB03 LPTE3]# rpm -qa | grep fileutils
> > > > fileutils-4.1-10.23
> > > > [root at LNCSTRTLDB03 LPTE3]#
> > > >
> > > > They were got from the coreutils page on oss today
> > > >
> > > > Thanks
> > > >
> > > >
> > > > On Wed, 1 Dec 2004 07:37:31 -0800, Wim Coekaerts
> > > > <wim.coekaerts at oracle.com> wrote:
> > > > > that's odd. if you use odirect it should actually work maybe you ran
> > > > > into another fileutils bug are you on the latest version ?
> > > > > we need to be doing a better qa job on the fileutils
> > > > >
> > > > >
> > > > >
> > > > > On Wed, Dec 01, 2004 at 02:59:15PM +0000, David Sharples wrote:
> > > > > > Another question.
> > > > > >
> > > > > > When my database is running, I do
> > > > > >
> > > > > > [oracle at LNCSTRTLDB03 LPTE3]$ cp --o_direct xdb01.dbf /tmp
> > > > > > cp: cannot open `xdb01.dbf' for reading: Permission denied
> > > > > > [oracle at LNCSTRTLDB03 LPTE3]$
> > > > > >
> > > > > > When the database is shudown it works.
> > > > > >
> > > > > > Is this normal for ocfs because with any other filesystem I can just
> > > > > > copy a file at any time (Its only a testing, I know I cant copy
> > > > > > datafiles and have them consistent)
> > > > > >
> > > > > > Thanks
> > > > > > _______________________________________________
> > > > > > Ocfs-users mailing list
> > > > > > Ocfs-users at oss.oracle.com
> > > > > > http://oss.oracle.com/mailman/listinfo/ocfs-users
> > > > >
> > > > _______________________________________________
> > >
> > >
> > > > Ocfs-users mailing list
> > > > Ocfs-users at oss.oracle.com
> > > > http://oss.oracle.com/mailman/listinfo/ocfs-users
> > >
> > >
>
>
More information about the Ocfs-users
mailing list