- 浏览: 960089 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
孤星119:
好熟悉的数据库字段啊, 上家公司做的项目每天都跟这些字段打招呼 ...
Oracle exp compress参数引起的空间浪费 -
itspace:
quxiaoyong 写道遇到个问题,网上一搜,全他妈这篇文章 ...
数据库连接错误ORA-28547 -
quxiaoyong:
遇到个问题,网上一搜,全他妈这篇文章。你转来转去的有意思吗?
数据库连接错误ORA-28547 -
hctech:
关于version count过高的问题,不知博主是否看过ey ...
某客户数据库性能诊断报告 -
itspace:
invalid 写道写的不错,我根据这个来安装,有点理解错误了 ...
AIX 配置vncserver
前几天在客户数据库做巡检的时候,在警告日志中发现有如下警告:
如果在AIX环境创建lv,如果创建带有4k偏移量的lv,Oracle 10g将做如上提示,使用参数-T O,AIX对-T 0有如下解释
我们对AIX解释做进一步延伸:
AIX在创建vg时有3中vg类型可选,分别是 Original Volume Group,Big Volume Group和Scalable Volume Group
对于普通的VG(Original Volume Group),不管你使用什么命令创建lv,都是普通的DS_LV类型的LV。
对于Big VG,是唯一允许同时存在这两种LV类型的VG,如果我们指定-T O(注意,这里是大写的字母O),则创建DS_LVZ类型的LV,否则,创建普通类型的LV。如
/usr/sbin/mklv -y LVname -T O -w n -s n -r n VGname NumPPs。
对于Scalable-type VG类型的VG,不管你使用什么方式的命令创建lv,都是扩展的DS_LVZ类型的LV。
由Oracle的警告日志可以看出,Oracle 使用raw设备时,建议设置不带4k的lv。那我们不禁有3个疑问:
(1)这4k偏移量有什么用处?
(2)怎么样查看LV是否带有4K偏移量呢?
(3)设置这4k偏移量有什么坏处?
AIX将这4k偏移量称之为lvcb(logical volume control block),它将占用4k的前512个字节,它类似于Oracle数据文件头,保留有lv的创建时间,镜像拷贝信息,文件系统挂载点等。
可以通过getlvcb命令查看lvcb信息:
从2个方面可以查看lv是否有4k偏移量
1、主机层面
没有4k偏移量:
有4k偏移量:
(2)Oracle层面:
Oracle提供了一小工具dbfsize(在$ORACLE_HOME/bin下)用于观察lv是否有4k偏移量
无4k偏移量:
有4k偏移量:
如果数据库使用block size为16k,创建跨pv带有4k偏移的lv,条带块大小为64k。这样将导致第4个block横跨2个pv(条带化操作,把lvcb也计算进条带块中)。这样会导致
条带块的第4个Oracle block跨磁盘,撇开性能方面考虑,如果系统异常宕机,或者存储异常宕机,极易引起数据库块损坏,引起ora-01578错误。(metalink ID 261460.1)
那是不是不做条带化,lv保留4k,就没问题了呢?
答案还是否定的。如果lv横跨pv,pp size 为64m,那么(64m-4k)/16k,还是除不尽,那问题还是依旧。
Oracle从 9.2.0.3开始可以识别无4k偏移量的lv,那是不是创建无4k偏移量的lv就万事大吉了呢?可惜不是,bug如期而至:
https://www-304.ibm.com/support/docview.wss?uid=isg1IY94343
也就是说当系统重启或者执行chlv之类命令,DS_LVZ标记将会消失,也就意味着Oracle认为此lv有4k偏移量,那也就存在着Oracle block横跨pv的可能性,
如果运气不好的话,ora-01578又不期而至,噩梦由此开始。
如果没有这个bug,即没有4k的offset,如果db_block_size比strip size大,问题还是存在的,即也会存在跨pv,这是我们建条带化所需要注意的,事实上,我也没看到过条带化大小比block size小的环境。但是这里又引申出一个问题,如果存储底层硬盘全部打散,且已做条带化,并虚拟出硬盘,那讨论应该复杂的多,可能操作系统需要跨磁盘的block,真正在物理并没有跨磁盘。
引用
WARNING: You are creating datafile /dev/rtbs_data01.
WARNING: Oracle recommends creating new datafiles on devices with zero offset. The command "/usr/sbin/mklv -y LVname -T O -w n -s n -r n VGname NumPPs" can be used. Please contact Oracle customer support for more details.
WARNING: Oracle recommends creating new datafiles on devices with zero offset. The command "/usr/sbin/mklv -y LVname -T O -w n -s n -r n VGname NumPPs" can be used. Please contact Oracle customer support for more details.
如果在AIX环境创建lv,如果创建带有4k偏移量的lv,Oracle 10g将做如上提示,使用参数-T O,AIX对-T 0有如下解释
引用
-T O
For big vg format volume groups, the -T O option indicates that the logical volume control block will not occupy the first block of the logical volume.
Therefore, the space is available for application data. Applications can identify this type of logical volume with the IOC INFO ioctl. The logical volume
has a device subtype of DS_LVZ. A logical volume created without this option has a device subtype of DS_LV. This option is ignored for old and scalable
vg format volume groups.
For big vg format volume groups, the -T O option indicates that the logical volume control block will not occupy the first block of the logical volume.
Therefore, the space is available for application data. Applications can identify this type of logical volume with the IOC INFO ioctl. The logical volume
has a device subtype of DS_LVZ. A logical volume created without this option has a device subtype of DS_LV. This option is ignored for old and scalable
vg format volume groups.
我们对AIX解释做进一步延伸:
AIX在创建vg时有3中vg类型可选,分别是 Original Volume Group,Big Volume Group和Scalable Volume Group
对于普通的VG(Original Volume Group),不管你使用什么命令创建lv,都是普通的DS_LV类型的LV。
对于Big VG,是唯一允许同时存在这两种LV类型的VG,如果我们指定-T O(注意,这里是大写的字母O),则创建DS_LVZ类型的LV,否则,创建普通类型的LV。如
/usr/sbin/mklv -y LVname -T O -w n -s n -r n VGname NumPPs。
对于Scalable-type VG类型的VG,不管你使用什么方式的命令创建lv,都是扩展的DS_LVZ类型的LV。
由Oracle的警告日志可以看出,Oracle 使用raw设备时,建议设置不带4k的lv。那我们不禁有3个疑问:
(1)这4k偏移量有什么用处?
(2)怎么样查看LV是否带有4K偏移量呢?
(3)设置这4k偏移量有什么坏处?
AIX将这4k偏移量称之为lvcb(logical volume control block),它将占用4k的前512个字节,它类似于Oracle数据文件头,保留有lv的创建时间,镜像拷贝信息,文件系统挂载点等。
可以通过getlvcb命令查看lvcb信息:
引用
# getlvcb -AT fslv02
AIX LVCB
intrapolicy = m
copies = 1
interpolicy = m
lvid = 000b56cc00004c000000012d264b87e5.14
lvname = fslv02
label = /ora10g
machine id = B56CC4C00
number lps = 112
relocatable = y
strict = y
stripe width = 0
stripe size in exponent = 0
type = jfs2
upperbound = 32
fs = vfs=jfs2:log=/dev/loglv00:mount=true:options=rw:account=false
time created = Mon Apr 18 09:52:50 2011
time modified = Mon Apr 18 09:52:56 2011
AIX LVCB
intrapolicy = m
copies = 1
interpolicy = m
lvid = 000b56cc00004c000000012d264b87e5.14
lvname = fslv02
label = /ora10g
machine id = B56CC4C00
number lps = 112
relocatable = y
strict = y
stripe width = 0
stripe size in exponent = 0
type = jfs2
upperbound = 32
fs = vfs=jfs2:log=/dev/loglv00:mount=true:options=rw:account=false
time created = Mon Apr 18 09:52:50 2011
time modified = Mon Apr 18 09:52:56 2011
从2个方面可以查看lv是否有4k偏移量
1、主机层面
没有4k偏移量:
引用
#lslv jfkdb_2G_044
LOGICAL VOLUME: jfkdb_2G_044 VOLUME GROUP: jfk_dbvg_01
LV IDENTIFIER: 00c3dff400004c00000001217a9d839e.84 PERMISSION: read/write
VG STATE: active/complete LV STATE: closed/syncd
TYPE: raw WRITE VERIFY: off
MAX LPs: 1024 PP SIZE: 32 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 64 PPs: 64
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: maximum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 1024
MOUNT POINT: N/A LABEL: None
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
DEVICESUBTYPE : DS_LVZ
LOGICAL VOLUME: jfkdb_2G_044 VOLUME GROUP: jfk_dbvg_01
LV IDENTIFIER: 00c3dff400004c00000001217a9d839e.84 PERMISSION: read/write
VG STATE: active/complete LV STATE: closed/syncd
TYPE: raw WRITE VERIFY: off
MAX LPs: 1024 PP SIZE: 32 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 64 PPs: 64
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: maximum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 1024
MOUNT POINT: N/A LABEL: None
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
DEVICESUBTYPE : DS_LVZ
有4k偏移量:
引用
[root@jfk_p560q /]# lslv jfkdb_2G_044
LOGICAL VOLUME: jfkdb_2G_044 VOLUME GROUP: jfk_db_vg01
LV IDENTIFIER: 00ce76de00004c00000001134ee6bc51.84 PERMISSION: read/write
VG STATE: active/complete LV STATE: opened/syncd
TYPE: raw WRITE VERIFY: off
MAX LPs: 1024 PP SIZE: 32 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 64 PPs: 64
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: maximum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 16
MOUNT POINT: N/A LABEL: None
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
LOGICAL VOLUME: jfkdb_2G_044 VOLUME GROUP: jfk_db_vg01
LV IDENTIFIER: 00ce76de00004c00000001134ee6bc51.84 PERMISSION: read/write
VG STATE: active/complete LV STATE: opened/syncd
TYPE: raw WRITE VERIFY: off
MAX LPs: 1024 PP SIZE: 32 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 64 PPs: 64
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: maximum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 16
MOUNT POINT: N/A LABEL: None
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
(2)Oracle层面:
Oracle提供了一小工具dbfsize(在$ORACLE_HOME/bin下)用于观察lv是否有4k偏移量
无4k偏移量:
引用
$ dbfsize /dev/rlvsysaux_1g
Database file: /dev/rlvsysaux_1g
Database file type: raw device without 4K starting offset
Database file size: 40960 8192 byte blocks
Database file: /dev/rlvsysaux_1g
Database file type: raw device without 4K starting offset
Database file size: 40960 8192 byte blocks
有4k偏移量:
引用
[oracle@jfk_p560q /dev]$ dbfsize /dev/rjfkdb_2G_054
Database file: /dev/rjfkdb_2G_054
Database file type: raw device
Database file size: 262016 8192 byte blocks
Database file: /dev/rjfkdb_2G_054
Database file type: raw device
Database file size: 262016 8192 byte blocks
如果数据库使用block size为16k,创建跨pv带有4k偏移的lv,条带块大小为64k。这样将导致第4个block横跨2个pv(条带化操作,把lvcb也计算进条带块中)。这样会导致
条带块的第4个Oracle block跨磁盘,撇开性能方面考虑,如果系统异常宕机,或者存储异常宕机,极易引起数据库块损坏,引起ora-01578错误。(metalink ID 261460.1)
引用
$ oerr ora 01578
01578, 00000, "ORACLE data block corrupted (file # %s, block # %s)"
// *Cause: The data block indicated was corrupted, mostly due to software
// errors.
// *Action: Try to restore the segment containing the block indicated. This
// may involve dropping the segment and recreating it. If there
// is a trace file, report the errors in it to your ORACLE
// representative.
01578, 00000, "ORACLE data block corrupted (file # %s, block # %s)"
// *Cause: The data block indicated was corrupted, mostly due to software
// errors.
// *Action: Try to restore the segment containing the block indicated. This
// may involve dropping the segment and recreating it. If there
// is a trace file, report the errors in it to your ORACLE
// representative.
那是不是不做条带化,lv保留4k,就没问题了呢?
答案还是否定的。如果lv横跨pv,pp size 为64m,那么(64m-4k)/16k,还是除不尽,那问题还是依旧。
Oracle从 9.2.0.3开始可以识别无4k偏移量的lv,那是不是创建无4k偏移量的lv就万事大吉了呢?可惜不是,bug如期而至:
https://www-304.ibm.com/support/docview.wss?uid=isg1IY94343
也就是说当系统重启或者执行chlv之类命令,DS_LVZ标记将会消失,也就意味着Oracle认为此lv有4k偏移量,那也就存在着Oracle block横跨pv的可能性,
如果运气不好的话,ora-01578又不期而至,噩梦由此开始。
引用
IY94343: MKLV -TO ON BIG VOLUME GROUPS FAILS TO PUT SOME LV INFORMATION APPLIES TO AIX 5300-07
****************************************************************
* USERS AFFECTED:
* Users of BIG volume groups with the bos.rte.lvm fileset at
* the 5.3.0.53 or 5.3.0.54 level.
****************************************************************
* PROBLEM DESCRIPTION:
* When creating a logical volume with a device type of DS_LVZ
* using the '-TO' flag, lslv reports a DEVICESUBTYPE of DS_LV
* rather than DS_LVZ. The problem shows up only after a reboot
* or any subsequent chlv or other LVM command that can update
* the VGDA on disk.
* This problem can cause some applications, such as Oracle, to
* fail to start, and could result in database corruption.
****************************************************************
* USERS AFFECTED:
* Users of BIG volume groups with the bos.rte.lvm fileset at
* the 5.3.0.53 or 5.3.0.54 level.
****************************************************************
* PROBLEM DESCRIPTION:
* When creating a logical volume with a device type of DS_LVZ
* using the '-TO' flag, lslv reports a DEVICESUBTYPE of DS_LV
* rather than DS_LVZ. The problem shows up only after a reboot
* or any subsequent chlv or other LVM command that can update
* the VGDA on disk.
* This problem can cause some applications, such as Oracle, to
* fail to start, and could result in database corruption.
如果没有这个bug,即没有4k的offset,如果db_block_size比strip size大,问题还是存在的,即也会存在跨pv,这是我们建条带化所需要注意的,事实上,我也没看到过条带化大小比block size小的环境。但是这里又引申出一个问题,如果存储底层硬盘全部打散,且已做条带化,并虚拟出硬盘,那讨论应该复杂的多,可能操作系统需要跨磁盘的block,真正在物理并没有跨磁盘。
发表评论
-
buffer cache 的内部结构
2020-03-18 14:21 518BUFFER CACHE作为数据块的 ... -
Oracle OMC介绍
2020-03-18 13:19 441Oracle管理云服务(OMC)的大数据平台,自动收集的企业 ... -
参加Oracle勒索病毒防范专题培训会议
2019-09-27 17:15 4232019年7月22日,受邀参加Oracle勒索病毒防范专题培训 ... -
记一次内存换IO的Oracle优化
2019-09-27 16:50 786某客户数据库从P595物理 ... -
如何定位Oracle SQL执行计划变化的原因
2019-07-03 14:49 1362性能优化最难的是能够 ... -
如何定位Oracle SQL执行计划变化的原因
2018-10-30 09:24 1185性能优化最难的是能够 ... -
数据库性能优化目标
2018-10-08 10:59 471从数据库性能优化的场 ... -
数据库无法打开的原因及解决办法
2018-10-05 20:45 1916数据库的启动是一个相当复杂的过程。比如,Oracle在启动之前 ... -
怎么样彻底删除数据库?
2018-09-18 11:10 555Oracle提供了drop database命令用来删除数据库 ... -
Oracle减少日志量的方法
2018-09-10 10:17 811LGWR进程将LOG BUFFER中的 ... -
如何快速关闭数据库
2018-09-09 13:14 1196“一朝被蛇咬,十年怕井绳”。在没被“蛇”咬之前,很多DBA喜欢 ... -
关于《如何落地智能化运维》PPT
2018-05-17 10:19 1088在DTCC 2018发表《如何落地智能化运维》演讲,主要内容如 ... -
记录在redhat5.8平台安装oracle11.2容易忽视的几个问题
2018-05-11 19:58 530问题一:ping不通问题 在虚拟机上安装好linux系统后, ... -
《Oracle DBA实战攻略》第一章
2018-05-11 10:42 893即日起,不定期更新《OracleDBA实战攻略》一书电子版,请 ... -
Oracle 12c新特性
2018-05-11 10:33 854查询所有pdb [oracle@gj4 ~]$ sqlplu ... -
关于修改memory_target的值后数据库无法启动的问题
2017-02-28 12:24 3924操作系统:RHEL6.5 数据库版本:11.2.0.4 ... -
10g rac安装error while loading shared libraries libpthread.so.0 问题
2017-02-28 12:22 63311g rac安装在二节点跑脚本一般会报此错误: 解决这个问 ... -
记一次Oracle会话共享模式故障处理过程
2017-02-27 19:16 757故障简述 XXX第八人民医院HIS数据库7月13日11点左右从 ... -
RESMGR:cpu quantum等待事件处理过程
2017-02-27 18:23 2479由于数据库上线过程中出现大量的RESMGR:cpu quant ... -
谈谈log file sync
2014-03-19 14:18 1679数据库中的log file sync等待事件指的是,当user ...
相关推荐
AIX LV迁移: 一、在同一卷组中操作,迁移L V 二、在不同一卷组中操作,迁移L V 建议在实施前做好数据备份,在业务不繁忙时停止应用操作
在aix上创建裸设备,lsvg查看卷组,创建好裸设备要记住最重要的一点是,如果是双机热备,一定要修改裸设备的权限(一般的生产环境都是双机热备的)
此资源为AIX7.2版本 cd1和cd2,已经上传度盘 aix_7200-04-02-2027_1of2_072020.iso aix_7200-04-02-2027_2of2_072020.iso 通过qemu-system-ppc程序能在X86平台安装运行 此资源为AIX7.1版本 cd1和cd2 AIX_7.1_Base_...
LV-AIX镜像迁移.pdf
AIX命令AIX命令AIX命令AIX命令AIX命令AIX命令
AIX资料AIX资料AIX资料AIX资料AIX资料
aix 文档aix 文档 aix 文档 aix 文档 aix 文档 aix 文档aix 文档aix 文档aix 文档aix 文档aix 文档aix 文档aix 文档
aix vi command aix vi command aix vi command aix vi command
AIX 学习笔记之 存储管理 LV PV VG PP.doc
AIX_7.1_Base_Operating_System_TL_7100-00-01_DVD_1_of_2_102010.iso AIX_7.1_Base_Operating_System_TL_7100-00-01_DVD_2_of_2_102010.iso AIX_Enterprise_Edition_V7.1_Expansion_Pack_092010.tar.gz AIX_Express...
看看大家经常使用到AIX,其中会遇到空间不够问题,可以参照进行扩充磁盘空间。
AIX_7.1_Base_Operating_System_TL_7100-00-01_DVD_1_of_2_102010 AIX_7.1_Base_Operating_System_TL_7100-00-01_DVD_2_of_2_102010 AIX_Enterprise_Edition_V7.1_Expansion_Pack_092010.tar AIX_Express_Standard_...
AIX 2009 AIX 2009 AIX 2009
1.1 AIX 5L 内存性能优化之AIX Version 5.3 中内存的概述以及内存参数的优化 3 1.2 AIX 5L 内存性能优化之使用 ps、sar、svmon 和 vmstat 监视内存的使用 7 1.3 AIX 5L 内存性能优化之配置和管理交换空间,优化(VMM) ...
aix 优化及维护案例--来自aixchina.net 1 系统优化篇 3 1.1 AIX 5L 内存性能优化之AIX Version 5.3 中内存的概述以及内存参数的优化 3 1.2 AIX 5L 内存性能优化之使用 ps、sar、svmon 和 vmstat 监视内存的使用 7 ...
第 1 楼:AIX系统日常管理 第 2 楼:AIX的版本号代表什么意思? 第 3 楼:AIX资源监控与调制工具 第 4 楼:AIX常用命令 第 5 楼:常用AIX论坛地址、资料下载地址、FTP地址 第 6 楼:AIX操作系统使用心得 第 7 楼:AIX...
AIX 技术资料-AIX 技术资料-AIX 技术资料-AIX 技术资料-AIX 技术资料-AIX 技术资料-AIX 技术资料-AIX 技术资料-AIX 技术资料-AIX 技术资料-AIX 技术资料-AIX 技术资料-
AIX 学习教材AIX 学习教材AIX 学习教材AIX 学习教材AIX 学习教材AIX 学习教材
bash-3.0-1.aix5.1.ppc.rpm, git-1.7.0.6-1.aix5.1.ppc.rpm, git-svn-1.6.6.2-1.aix5.1.ppc.rpm, mysql-5.1.56-1.aix5.1.ppc.rpm, sudo-1.6.7p5-3.aix5.1.ppc.rpm, unzip-5.51-1.aix5.1.ppc.rpm, vim-common-...
aix下rsync安装包,可用于AIX平台下与linux平台下的数据同步