Hi, We currently use rsync to create an Oracle standby on a target box from an existing standby by copying all the datafiles while the source standby is in recovery status. We are occasionally running into datafile corruptions being reported by oracle when it is recovering the new standby. Oracle support says they don't recommend copying files while the changes being applied to them unless the database is put in backup mode (which is not possible for us). We are using "rsync -av --password-file=pass.secret source_data_file_name oracle at target::ORCL/" We are planning to use "rsync -av --password-file=pass.secret --block-size=8192 source_data_file_name oracle at target::ORCL/" This is because, we are using 8k block size for Oracle and hence the blocks will be copied in full by rsync to avoid fractured block copies. Am I correct in this assumption by using "--block-size" option? Also, is there are option is rsync to keep checking the checksum's at block level, i.e., copy block 1 from host A to host B, calculate checksum at host B and verify that the checksum of same block at host A is also same? Appreciate any help on this. Thanks, Sai.
On Thu, 2009-09-03 at 10:25 -0700, Saibabu Devabhaktuni wrote:> We currently use rsync to create an Oracle standby on a target box > from an existing standby by copying all the datafiles while the source > standby is in recovery status. We are occasionally running into > datafile corruptions being reported by oracle when it is recovering > the new standby. Oracle support says they don't recommend copying > files while the changes being applied to them unless the database is > put in backup mode (which is not possible for us). > > We are using "rsync -av --password-file=pass.secret > source_data_file_name oracle at target::ORCL/" > > We are planning to use "rsync -av --password-file=pass.secret > --block-size=8192 source_data_file_name oracle at target::ORCL/" > > This is because, we are using 8k block size for Oracle and hence the > blocks will be copied in full by rsync to avoid fractured block > copies. Am I correct in this assumption by using "--block-size" > option?No. --block-size sets the block size for the delta-transfer algorithm; rsync does not provide a way to set the size of its read(2) calls. And even if it did, it would appear from the following message that read(2) calls are not atomic on Linux: http://marc.info/?l=linux-kernel&m=107375454908544 I would recommend looking into a block-device-level snapshot facility such as LVM snapshots. (Note: a similar issue was discussed in this thread: http://lists.samba.org/archive/rsync/2009-May/023270.html but the non-atomicity of read(2) calls was not considered.) -- Matt
Apparently Analagous Threads
- mysql gem not buidling on OSX 10.4.6
- Buidling R on Linux (Itanium) fails (PR#7897)
- Oracle CLusterware fails while runing root.sh
- ZFS rollback, ORA-00322: log 1 of thread 1 is not current copy (???)
- Unable to mount node2 mount.ocfs2: Transport endpoint is not connected while mounting /dev/sdb1 on /u02/oradata/orcl