当前位置:首页 » 操作系统 » 数据库asm

数据库asm

发布时间: 2023-07-14 19:26:20

‘壹’ 使用ASM 实例的情况下,需要修改哪些数据库

ASM 实例由参数文件控制,其方式与常规数据库实例相同。通常设置的参数包括:
? INSTANCE_TYPE应该设置且必须为ASM,表示ASM 实例,标识要启动的实例是ASM,而不是数据库实例。这是唯一一个必须定义的参数。对于数据库实例,该参数值设置为RDBMS。
? ASM_POWER_LIMIT:控制重新平衡操作的速度即指定磁盘rebalance的程度。值的范围从1 到11,11 表示最快。如果省略,该值默认为1。指定的级别越高,则rebalance的操作就会越快被完成,当然这也意味着这个时间段内将占用更多的资源,指定级别较低的话,随人rebalance操作会耗时更久,但对当前系统的IO及负载影响会更少,这需要根据实际情况衡量。另外,这个参数指定的只是一个默认值,在操作过程中,即可以随时动态更改,也可以在语句级命令行时指定power,覆盖该默认值。
修改ASM实例初始化参数文件的命令规则与数据库初始化参数完全相同,比如说:
sql> alter system set asm_power_limit=5;
System altered.
? ASM_DISKSTRING是一个与操作系统相关的值,ASM 使用它来限制搜索时考虑的磁盘集即是设置ASM启动时检查的磁盘,该选项可以同时指定多个值,并且支持通配符。比如只检查/DEV/SD*。默认值为空字符串,为空的话,表示ASM将查找系统中所有ASM拥有读写权限的设备。这在大多数情况下就足够了。如上所示的约束性更强的值可以减少ASM 执行搜索所需的时间,从而提高磁盘组装载次数。
? ASM_DISKGROUPS:是ASM 实例启动时或使用ALTER DISKGROUP ALL MOUNT命令时,ASM 实例要装载的磁盘组的名称列表。如果为空的话,那么实际就仅仅启动到nomount状态。如果使用SPFILE的话,该参数一般不需要手动修改,ASM能够自动更新该初始化参数中的值。
Oracle Restart 会装载列为相关磁盘组的磁盘组,即使这些磁盘组未与ASM_DISKGROUPS参数列在一起也是如此。该参数没有默认值。

‘贰’ oracle dbca创建数据库时找不到ASM实例

实验环境:
操作系统:RedHat Linux 6.4
数据库版本:Oracle 11.2.0.2.0

在使用DBCA创建Oracle数据库的时候,发现找不到ASM磁盘组:
错误排查:
1、执行:
/usr/sbin/oracleasm scandisks和/usr/sbin/oracleasm listdisks
查看执行结果, listdisk可以正常的将磁盘组可显示出来.

2、切换到 grid 用户下 ,查看ASM实例是否启动,并执行查询
sqlplus / as sysdba
select group_number,path,mount_status,state from v$asm_disk;
select group_number,offline_disks,state from v$asm_diskgroup;
查看磁盘以及磁盘组及其磁盘状态都正常(正常状态为mount);
3、用户组判断
id oracle 和id grid
查看oracle用户是否在admdba组里面

4、查看oracle用户和grid用户的$ORACLE_HOME/bin/oracle文件的权限
$ORACLE_HOME/bin/oracle该文件的默认权限为6751权限,有个s权限,如果s权限消失,这时通过OS认证将不能登录到数据库;

经过对问题的逐一排查,终于找到了问题的所在:
执行 chmod +s oracle 解决问题
总结:
DBCA建库找不到ASM磁盘的问题所在:
1. Incorrect permission setting for oracle user.
2. ASM instance was not started or diskgroups are not mounted.
3. The diskgroup resources are not online.
4. The permission setting for the asm devices are incorrect.
5. The oracle executable under /bin has incorrect permission settings.
6. the file system for grid home was mounted with option ’nosuid’.

‘叁’ Oracle数据库自动存储管理(ASM)

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

为什么创建它?

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

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

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

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

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

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

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

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

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

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

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

支持成千上万的磁盘

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

谁需要它?

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

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

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

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

开始

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

a 将你的ORACLE_SID设置为+ASM

b 编辑init ora

# as opposed to RDBMS for a normal Oracle instance

INSTANCE_TYPE=ASM

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

ASM_DISKGROUPS=SEAN AARON

processes=

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

ASM_DISKSTRING= /dev/cciss/c d p ′

# on g you should use diagnostic_dest instead of these

background_mp_dest=/opt/oracle/admin/+ASM/bmp

core_mp_dest=/opt/oracle/admin/+ASM/cmp

user_mp_dest=/opt/oracle/admin/+ASM/ump

c 启动ASM实例

$ 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 更多的

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

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

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

使用ASM遇到的挑战

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

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

总结

lishixin/Article/program/Oracle/201311/16542

‘肆’ ORACLE数据库 用了ASM存储,ASM实例老是挂掉,alert.log里有600报错: OR

ORA-00600: internal error code, arguments: [kfrValAcd30]可能是bug或者硬件故障导致.基于客户的情况,最大可能就是由于硬件故障导致asm 磁盘组的acd无法正常进行,从而无法mount成功.如果运气好,通过kfed相关修复可以正常mount成功,运气不好可以通过底层进行恢复数据文件,从而最大限度恢复数据.

参考类似文章:ORA-600 kfrValAcd30 恢复

热点内容
中国移动数据库 发布:2025-03-16 17:18:14 浏览:603
php二维数组函数 发布:2025-03-16 17:16:11 浏览:374
安卓系统在哪里换鸿蒙界面 发布:2025-03-16 17:15:38 浏览:864
重庆智慧存储柜厂家 发布:2025-03-16 17:10:30 浏览:588
企业的服务器满了如何备份 发布:2025-03-16 17:04:00 浏览:901
促销算法模型 发布:2025-03-16 16:56:55 浏览:93
线程异步java 发布:2025-03-16 16:51:52 浏览:260
软件编程有哪些 发布:2025-03-16 16:46:07 浏览:481
最近上传91 发布:2025-03-16 16:46:03 浏览:706
珍珠台编程 发布:2025-03-16 16:40:25 浏览:900