- 浏览: 978820 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
孤星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 579BUFFER CACHE作为数据块的 ... -
Oracle OMC介绍
2020-03-18 13:19 487Oracle管理云服务(OMC)的大数据平台,自动收集的企业 ... -
参加Oracle勒索病毒防范专题培训会议
2019-09-27 17:15 5132019年7月22日,受邀参加Oracle勒索病毒防范专题培训 ... -
记一次内存换IO的Oracle优化
2019-09-27 16:50 827某客户数据库从P595物理 ... -
如何定位Oracle SQL执行计划变化的原因
2019-07-03 14:49 1460性能优化最难的是能够 ... -
如何定位Oracle SQL执行计划变化的原因
2018-10-30 09:24 1185性能优化最难的是能够 ... -
数据库性能优化目标
2018-10-08 10:59 518从数据库性能优化的场 ... -
数据库无法打开的原因及解决办法
2018-10-05 20:45 2120数据库的启动是一个相当复杂的过程。比如,Oracle在启动之前 ... -
怎么样彻底删除数据库?
2018-09-18 11:10 599Oracle提供了drop database命令用来删除数据库 ... -
Oracle减少日志量的方法
2018-09-10 10:17 867LGWR进程将LOG BUFFER中的 ... -
如何快速关闭数据库
2018-09-09 13:14 1233“一朝被蛇咬,十年怕井绳”。在没被“蛇”咬之前,很多DBA喜欢 ... -
关于《如何落地智能化运维》PPT
2018-05-17 10:19 1129在DTCC 2018发表《如何落地智能化运维》演讲,主要内容如 ... -
记录在redhat5.8平台安装oracle11.2容易忽视的几个问题
2018-05-11 19:58 578问题一:ping不通问题 在虚拟机上安装好linux系统后, ... -
《Oracle DBA实战攻略》第一章
2018-05-11 10:42 947即日起,不定期更新《OracleDBA实战攻略》一书电子版,请 ... -
Oracle 12c新特性
2018-05-11 10:33 900查询所有pdb [oracle@gj4 ~]$ sqlplu ... -
关于修改memory_target的值后数据库无法启动的问题
2017-02-28 12:24 3983操作系统:RHEL6.5 数据库版本:11.2.0.4 ... -
10g rac安装error while loading shared libraries libpthread.so.0 问题
2017-02-28 12:22 69511g rac安装在二节点跑脚本一般会报此错误: 解决这个问 ... -
记一次Oracle会话共享模式故障处理过程
2017-02-27 19:16 799故障简述 XXX第八人民医院HIS数据库7月13日11点左右从 ... -
RESMGR:cpu quantum等待事件处理过程
2017-02-27 18:23 2615由于数据库上线过程中出现大量的RESMGR:cpu quant ... -
谈谈log file sync
2014-03-19 14:18 1759数据库中的log file sync等待事件指的是,当user ...
相关推荐
在AIX操作系统中,添加逻辑卷(Logical Volume, LV)是一项常见的存储管理任务,用于扩展系统或特定服务的可用磁盘空间。在这个场景中,我们看到一个针对名为`yuxscp3`的数据库服务器进行LV扩展的过程,目的是解决...
AIX LV迁移: 一、在同一卷组中操作,迁移L V 二、在不同一卷组中操作,迁移L V 建议在实施前做好数据备份,在业务不繁忙时停止应用操作
LV-AIX镜像迁移 LV 镜像和迁移是 AIX 操作系统中的一种技术,用于将逻辑卷(LV)从一个物理卷(PV)迁移到另一个物理卷上。该技术可以帮助管理员更好地管理存储资源,提高系统的可用性和性能。 LV 镜像和迁移的...
此资源为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_...
- 注意到AIX环境下的裸设备创建存在4K偏移量的问题,这可能导致Oracle在日志文件中记录警告信息。为了避免这一问题,应使用特定的方法创建LV。 ```shell [dbser1:root:/]#mklv -y 'lvgisdata03' -TO -w 'n' -s 'n...
AIX 存储管理之 LV PV VG PP AIX 操作系统中,存储管理是非常重要的一部分,它是指对存储设备的管理和配置。AIX 存储管理主要包括物理卷(PV)、卷组(VG)、物理分区(PP)、逻辑卷(LV)、逻辑分区(LP)和文件...
**IBM AIX 模拟器详解** IBM AIX(Advanced Interactive eXecutive)是一款由IBM开发的UNIX操作系统,主要用于IBM Power Systems服务器。这款操作系统以其稳定性、安全性以及高性能而受到企业的广泛青睐。为了方便...
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...
它在各种操作系统上广泛使用,包括Linux和Unix-like系统,如AIX。本篇文章将详细介绍在AIX环境下如何安装和使用`rsync`,以及它在跨平台数据同步中的重要性。 `rsync`是一款高效的数据同步软件,它能实现本地或远程...
在这个场景中,我们将聚焦于如何在AIX操作系统上安装sqluldr2。AIX(Advanced Interactive eXecutive)是IBM开发的一种强大的Unix变体,广泛应用于企业级服务器。 首先,让我们理解标题"AIX安装sqluldr2"。sqluldr2...
### AIX基础知识详解 #### 一、AIX简介 AIX(Advanced Interactive Executive)是由IBM开发的一款基于UNIX的操作系统。自1986年首次发布以来,AIX一直是IBM在服务器操作系统领域的旗舰产品之一,广泛应用于各种...
在 AIX 中,逻辑卷(Logical Volume, LV)是提供给用户和应用程序使用的存储单元。它不是直接由用户或应用程序访问的物理卷(Physical Volume, PV)或卷组(Volume Group, VG),而是通过逻辑卷管理器来创建和管理的。逻辑...
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是IBM的一种高级操作系统,属于UNIX家族,主要应用于IBM的Power Systems服务器。这个系统以其稳定性、安全性和性能而闻名,尤其在金融、电信和大型企业领域广泛应用。下面我们将深入探讨AIX 2009的相关知识...
### AIX 7.2 操作系统介绍 #### 概述 AIX 7.2 是IBM为Power Systems服务器推出的最新版本的UNIX操作系统。作为市场上备受瞩目的UNIX操作系统之一,AIX 7.2 在可靠性、安全性、性能及可扩展性方面进行了显著提升,...
在AIX 7操作系统环境下,安装和管理软件包与Linux或其他UNIX系统略有不同。本话题主要涉及如何在AIX上安装ZIP工具,以及如何使用`unzip`命令解压缩ZIP文件。AIX(Advanced Interactive eXecutive)是IBM开发的一种...
在早期版本如AIX5.3 TL07之前,AIX主要使用的是传统的`crypt`加密方法,这种加密方式基于DES算法,并且提供salt机制。但在AIX5.3 TL07之后,为了增强安全性,AIX引入了更为安全的加密方法,例如MD5、SHA-1和SHA-256...
### QEMU模拟器运行AIX 7.2系统的详细指南 #### AIX操作系统简介 AIX(Advanced Interactive Executive)是IBM公司开发的一款基于AT&T Unix System V的类UNIX操作系统,主要用于IBM Power架构的服务器和工作站上。...
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,全称为Advanced Interactive eXecutive,是IBM开发的一种UNIX操作系统,主要应用于IBM的Power Systems服务器。在AIX 5.3版本中,它提供了丰富的功能和强大的稳定性,适用于企业级应用和服务。这份"AIX原文官方...