如何在Oracle数据库中添加磁盘组 (oracle数据库添加磁盘组)

Oracle数据库是一个非常强大和广泛应用的关系型数据库管理系统。在使用Oracle数据库的过程中,添加磁盘组是一项非常重要的任务,因为它可以帮助你更好地管理数据库的存储空间。在这篇文章中,我们将介绍。

磁盘组是指一组物理磁盘,它们联合在一起并作系统看作单个设备。可以通过这种方式来扩展或管理Oracle数据库中的存储空间。请注意,如果你在Oracle数据库中创建了一个磁盘组,则必须将其分配给至少一个A实例。

下面是如何添加磁盘组到Oracle数据库的具体步骤。

步骤1:创建一个新的磁盘组

要创建一个新的磁盘组,请使用ALTER DISKGROUP命令。该命令包括以下选项:

– CREATE:将创建一个新的磁盘组。

– DISKGROUP:此选项后面需要指定新创建的磁盘组的名称。

– DISK:此选项用于指定将被添加到新建立的磁盘组中的磁盘的路径。

以下是一个CREATE DISKGROUP的样例命令:

ALTER DISKGROUP exampleDG

ADD DISK ‘ORCL:exampleDisk1’,

‘ORCL:exampleDisk2’,

‘ORCL:exampleDisk3’

必须确保所添加的磁盘是空的,并且只格式化为A兼容的文件系统。如果发现所添加的磁盘中的数据没有备份,则必须要考虑备份数据。

步骤2:配置A INSTANCE

你需要运行A实例以访问和管理磁盘组。A实例快速处理IO请求,在划分和管理磁盘组时广泛使用。

你可以使用ACA(A Configuration Assistant)或ACMD(A Command Line Interface)来配置和管理A实例、磁盘组和存储密钥。

以下是ACA的简要步骤:

– 使用命令行运行aca命令以启动ACA。

– 单击“创建实例”。

– 在ACA中,单击“新建”以创建一个新实例。

– 选择要使用的Oracle Home。如果需要,请提供标题、A实例名称和口令。

– 点击“下一步”,然后选择“磁盘”。

– 在新窗口中,选择“创建新磁盘组”以为实例创建一个新的磁盘组。

– 设置新的磁盘组的名称和磁盘。在此处单击“添加”以将磁盘添加到磁盘组中。

– 点击“下一步”,然后按照向导提示完成安装和配置。

步骤3:分配磁盘组

在分配磁盘组时,必须指定应将此磁盘组分配到哪个A实例中。你可以使用ACA或ACMD来完成此任务。

ACA的步骤如下:

– 单击“实例”选项卡。

– 选择所有可用的A实例。

– 单击“磁盘组”。 如果出现一个警告,说明已经电离了A实例,因此它不能自动配置计算机。在这种情况下,确保添加正确的环境变量。

– 输入新创建的磁盘组的名称。

– 选择要添加到磁盘组中的磁盘,并单击“下一步”。

– 输入其他选项和信息。

ACMD可以使用以下命令:

> acmd

[orcl|] >

添加磁盘组:

ACMD> mkdg diskgroup_name disk_path

其中,‘diskgroup_name’是新创建的磁盘组的名称,‘disk_path’是磁盘路径的列表,用逗号分隔。

分配磁盘组:

ACMD> srvctl add diskgroup -diskgroup diskgroup_name-attribute “compatible.a:11.2” -e name=instance_name,pool=all,acid=false -f

其中,‘diskgroup_name’是新创建的磁盘组的名称,‘instance_name’是将磁盘组分配给的A实例的名称。

结论:

添加磁盘组对于管理Oracle数据库的存储空间是一项非常重要的任务。通过正确配置A实例和正确添加磁盘,数据库管理员将能够更好地管理和优化存储资源。在Oracle数据库中添加磁盘组并不是很困难,只需要按照上面的步骤就可以轻松地完成任务。

相关问题拓展阅读:

Oracle数据库自动存储管理(A)

关于A的讨论很多 但是到底什么是A?A是一个有效的抽象层 使你的Oracle数据库可以与叫做diskgroups的抽象空间一起使用 而不是直接使用datafiles 这带来了很多好处 但是也要求学习一些新的概念 命令 使用和管理任务 所以在投入你的生产系统之前 看看它解决什么 管理什么 以及对它的正反面评价

  为什么创建它?

  回答这个问题的更好方式是直接追溯源头 Bill Bridge——自动存储管理的最初架构师 在Oracle Press标题中的Oracle A Bill提供了一个链接 他在那里讨论了使用供应商特定操作系统的文件系统来管理Oracle数据文件放置所遇到的问题

   对于归档日志和备份 操作系统供应商不提供共享磁盘文件系统

   逻辑卷管理器隐藏了文件的位置 使得很难管理磁盘I/O和提供良好的碧蠢纤统计

   当磁盘数超过 时 现有的lvm不能工作得很好

   当数据库有 以上的数据文件时 操作系统和Oracle不能很好地处理数据库

   当有大量数据文件时命名就变得很困难了

   特性和文件系统限制随操作系统的不同而不同

   操作系统级的用户可以通过标准使用接触到Oracle文件 而Oracle并不知道

  所以 他通过建立Oracle自己的文件系统开始解决这些问题 他的目标是提供这些特性

   与Oracle紧密集成 并与集群一起使用(并行服务器)

   自动使用新的存储 作为磁盘单元或磁盘组来管理

   支持成千上万的磁盘

   文件不会名字 并会在操作系统中隐藏起来

  谁需要它?

  现在快速浏览一下上面那些问题和解决方案会帮助你确定谁需要A 起初 它是用来处理现在很大型的联机悔仿数据库 所以如果它包括你的商店 那么你档滚可能已经在关注它了 或者开始执行A 如果你的数据库较小 数据文件也不多 那么你可能需要再一些理由使你考虑采用它

   你将要熟悉一些新技术 并且应该从在你的开发环境中建立它开始 并测试几个月

   如果你想从你现有的磁盘子系统中获得更高的性能 并获得更好的统计用于预测磁盘I/O

   如果你正在使用RAC 那么就需要考虑A了

  开始

  A是由一个实例管理 非常类似于Oracle数据库 但是初始参数是非常有限的 而且启动过程也简单得多

  a 将你的ORACLE_SID设置为+A

  b 编辑init ora

  # as opposed to RDBMS for a normal Oracle instance

  INSTANCE_TYPE=A

  # these names will be used in place of datafile names when you create tablespaces

  A_DISKGROUPS=SEAN AARON

  processes=

  # this parameter is platform specific and is the path to the raw disk device

  A_DISKSTRING= /dev/cciss/c d p ′

  # on g you should use diagnostic_dest instead of these

  background_dump_dest=/opt/oracle/admin/+A/bdump

  core_dump_dest=/opt/oracle/admin/+A/cdump

  user_dump_dest=/opt/oracle/admin/+A/udump

  c 启动A实例

  $ sqlplus / as sysdba

  SQL> startup

  d 创建磁盘组

  SQL> create diskgroup SEAN disk /dev/cciss/c d p ′;

  e 检查表空间的创建

  你可能会猜测 创建一个表空间会有轻微的改变 默认方法如下所示

  SQL> create tablespace sean_space datafile +SEAN size GB;

  不过想一下这个很好的特性 如果在你的数据库中init ora文件你设置参数为

  db_create_file_dest=+SEAN

  那么你可以这样做

  SQL> create tablespace sean_space;

  然后让Oracle做其余的工作 在这两种情形下 你将发现在v$datafile中列出的文件路径是和抽象的+SEAN 磁盘组有关 而不是与一个实际的操作系统数据文件

  f 更多的

  当然简化文件名称和表空间的创建只是A可以为你做的工作的冰山一角 它还可以提供一个冗余级别

  在数据库方面 外部冗余能力主要是当你在硬件级别(RAID)上或Oracle可以看到的其它外部方法中具有冗余 换句话说 如果a_diskstring设备是它们自己的逻辑 隐藏物理磁盘于一些冗余的硬件层后面 那么你就会有外部冗余能力

  但是 如果你没有这个冗余能力 那么A可以提供 你可以指定冗余 失败组和一组其它的选项来防止损失一个或多个磁盘 控制器或甚至是整个SAM失效 A还提供了在磁盘组中均匀分布的I/O 因为A很好的了解背后发生了什么 所以Oracle可以自动的为你提供I/O到磁盘的一个更好的平衡

  使用A遇到的挑战

  A当然是一个具有很大潜能的强大技术 但是对于每一个技术解决方案 都会有很多的挑战 对于A 它潜在地破坏了Unix系统管理组和数据库/数据库管理员组间力量的普通平衡 以前的组管理磁盘 硬件和操作系统级别 使数据库管理员与它们协作获取新的资源 这将在某种程度上挑战这个平衡 而这会引起一些来自于这个组的阻力

  最后 应该是业务需求促使了它的采用 还要注意到A仍然是处于企业计算认识阶段 相对还比较新 有一些供应商他们的核心业务已经放在逻辑空间管理器/文件系统空间中很多年了 一般来说 对于软件系统和可靠性来说成熟是很重要的

  总结

lishixinzhi/Article/program/Oracle/202311/16542

alter disk”>为什么我的Oracle A磁盘组DATA mount不成功 SQL> alter disk

您这种情况,一般是中芹空a 磁盘组中少了磁盘,比如有磁盘头损坏,或者权限异常,或者磁盘丢失等会引起这类问题

关于a的异常,可以参考卖瞎这些文章:

a磁盘dd破坏恢复

a disk被加首答入vg恢复

再一起a disk被格式化成ext3文件系统故障恢复

又一例a格式化文件系统恢复

一次完美的a disk被格式化ntfs恢复

oracle a disk格式化恢复—格式化为ext4

oracle a disk格式化恢复—格式化为ntfs

概述

A disk header是A disk的之一个块,即AU#0 BLOCK#0,disk header中记录了A disk的重要信息,比早销如A disk名字,diskgroup名字,failgroup名字,AU size等等早埋

1. 通过视图v$a_diskgroup和v$a_disk查看:

select group_number,disk_number,mount_status,header_status,name,path from v$a_disk;

GROUP_NUMBER DISK_NUMBER MOUNT_S HEADER_STATUS NAME PATH

CACHED MEMBERADISK1 ORCL:ADISK1

select GROUP_NUMBER,name,state,type from v$a_diskgroup;

GROUP_NUMBER NAME STATE TYPE

1 DGDATA MOUNTED EXTERN

2. 通过Kfed 查看A disk 信息:

kfed read /dev/oraclea/disks/ADISK1

kfbh.endian:; 0x000: 0x01

kfbh.hard:0 ; 0x001: 0x82

kfbh.type:1 ; 0x002: KFYP_DISKHEAD

kfbh.datfmt:; 0x003: 0x01

kfbh.block.blk:; 0x004: blk=0

kfbh.block.obj:; 0x008: disk=0

kfbh.check: ; 0x00c: 0x8f3707cc

kfbh.fcn.base:; 0x010: 0x00000dfc

kfbh.fcn.wrap:; 0x014: 0x

kfbh.spare1:; 0x018: 0x

kfbh.spare2:; 0x01c: 0x

kfdhdb.driver.provstr: ORCLDISKADISK1 ; 0x000: length=16

kfdhdb.grptyp:; 0x026: KFDGTP_EXTERNAL

kfdhdb.hdrsts:; 0x027: KFDHDR_MEMBER

kfdhdb.dskname: ADISK1 ; 0x028: length=8

kfdhdb.grpname: DGDATA ; 0x048: length=6

kfdhdb.fgname: ADISK1 ; 0x068: length=8

kfdhdb.blksize:; 0x0ba: 0x1000

kfdhdb.ausize:; 0x0bc: 0x

如果自己搞不定可以找诗檀软件专业陆睁游ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

oracle数据库添加磁盘组的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oracle数据库添加磁盘组,如何在Oracle数据库中添加磁盘组,Oracle数据库自动存储管理(A),为什么我的Oracle A磁盘组DATA mount不成功 SQL> alter disk的信息别忘了在本站进行查找喔。


数据运维技术 » 如何在Oracle数据库中添加磁盘组 (oracle数据库添加磁盘组)