Document Type | Issue Resolution
Category | Backup/Recovery
Applicable Product Version | 7FS02PS
Document Number | TBATS013
Issue
In Veritas Infoscale 8.0 or later shared file systems, some block contents of Archive Logs are abnormally zeroed, which causes recovery failure due to corrupted Archive Logs.
--Partial Hexdump of Archive Log created on Vxfs $ tblogdump log-t0-r0-s185.arc > arc_log_dump.log $ vi arc_log_dump.log … 0020400 0000 0000 0000 0000 0000 0000 0000 0000 ← Blocks 258 to 512 are all zeroed out * *Hex 0020400 corresponds to block 258 0040200 0060 0000 0201 0000 0cbf 0c04 0000 0000 0040210 7c78 1a0b 070c 0034 0000 0000 0105 0000 0040220 c000 c516 3b01 0101 c102 0381 dfc2 06ba --When running tblogdump, Archive Log is abnormal and cannot be dumped. $ tblogdump log-t0-r0-s185.arc Tblogdump (Redo log dump) LOG FILE SEQ# 33 DUMP START WAIT_LOG - scan_rba(33.256.32) WAIT_LOG - scan_rba(33.257.32) WAIT_LOG - scan_rba(33.258.32) WAIT_LOG - scan_rba(33.259.32)
Cause
1. Starting from Veritas Infoscale 8.0, the vx_parallel_dio parameter is enabled (1) by default,
and when used together with Tibero's archivelog creation logic involving the _INIT_ARCHIVELOG_WITH_FALLOCATE=Y (default) feature,
this issue occurs.
2. When vx_parallel_dio is disabled (0) and _INIT_ARCHIVELOG_WITH_FALLOCATE=Y ,
normal Archive Logs are created.
3. When vx_parallel_dio is enabled (1) and _INIT_ARCHIVELOG_WITH_FALLOCATE=N ,
normal Archive Logs are created.
4. When Archive Logs are created on a regular filesystem instead of Vxfs, _INIT_ARCHIVELOG_WITH_FALLOCATE=Y also generates normal archivelogs.
NoteExplanation of _INIT_ARCHIVELOG_WITH_FALLOCATE Parameter_INIT_ARCHIVELOG_WITH_FALLOCATE=Y (default) operates using fallocate for the file to be archived.If set to N, it operates using ftruncate instead.The ftruncate operation adjusts the file to the requested length in bytes. If the file is shorter than requested, data at the end is lost. If the file is smaller than the requested size, the extended part is zeroed out.On the other hand, fallocate only allocates space without zeroing it out.Since the space is left uninitialized, no I/O occurs, making it faster than ftruncate.Therefore, disabling this feature may slightly degrade performance when creating archive files.
Solutions
1) After vendor review, disable the vx_parallel_dio parameter in Veritas Infoscale, or
2) Disable the following two parameters in Tibero to use the ftruncate method instead of fallocate, which is used by default.
--Parameter setting method (can be changed dynamically)
1. Connect to tbsql as SYS
SQL> ALTER SYSTEM SET _INIT_ARCHIVELOG_WITH_FALLOCATE=N;
System altered.
SQL> ALTER SYSTEM SET _INIT_DATAFILE_WITH_FALLOCATE=N;
System altered.
2. To apply on restart, add to initialization parameter file
$ vi $TB_HOME/config/$TB_SID.tip
_INIT_ARCHIVELOG_WITH_FALLOCATE=N
_INIT_DATAFILE_WITH_FALLOCATE=N