ASM基本配置问题(r5笔记第89天)

ASM自10g开始作为Grid的一部分,对于存储管理层的一个重大变革。重要性和丰富的功能就不多说了,主要的一点,是完全免费的。所以对于高端存储望而却步,而且不希望投入很多的投入在存储上,可以考虑ASM来很实惠的完成存储管理。 10g,11g的asm还是存在一定的差别,在10g中通过dbca可以直接在里面配置asm,到了11g,把asm的功能从dbca里分离开来,单独有一个asmca来配置ASM,而且需要在安装grid包的场景下才可以使用。 问题1: 启用ASM出错。 ASM的配置,如果希望启用,首先需要使用root运行一个脚本,来完成CSS的注册。这个过程和rac中配置CRS的有些类似。

但是使用 localconfig add来注册的时候,日志内容如下:

[root@oel1 bin]# ./localconfig add
Successfully accumulated necessary OCR  keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation  successful.
Configuration for local CSS has been initialized

Adding to inittab 
Startup will be queued to init within 30  seconds.
Checking the status of new Oracle init process...
Expecting the  CRS daemons to be up within 600 seconds.
Giving up: Oracle CSS stack appears NOT to be  running.
Oracle CSS service would not start as installed
Automatic  Storage Management(ASM) cannot be used until Oracle CSS service is  started

可以看到CSS服务最终没有起来,如果这个时候还是在dbca里面尝试创建ASM实例,就会抛出错误 ORA-29701: unable to connect to Cluster Manager 这个时候分析这个问题,还是需要从CSS相关的配置来考虑,可能是某些文件丢失或者出现了不一致之类的问题。 可以尝试使用localconfig delete删除注册信息,然后使用localconfig reset来重新配置。

 ./localconfig delete
Stopping CSSD.
Unable to communicate with the CSS  daemon.
Shutdown has begun. The daemons should exit  soon.

在重新配置的时候,就会很i清楚的看到,其实是有一些文件找不到了,在这套机器上,之前安装过rac的crs软件,可能是有一些文件可能产生冲突。比如/etc/oracle/ocr.loc这个文件,这个文件是在最近使用dbca打开图形界面的时候报出了错误,最后发现是因为ocr.loc这个文件影响的,把这个文件删了之后就没有问题了。没想到在配置ASM的时候也会有一定的影响,不过最终重新配置CSS的时候,会重新去创建ocr.loc这个文件

[root@oel1  bin]# ./localconfig reset
./localconfig: line 529: /etc/oracle/ocr.loc:  No such file or directory
./localconfig: line 551: [: too many  arguments
Successfully accumulated necessary OCR keys.
Creating OCR keys  for user 'root', privgrp 'root'..
Operation successful.
Configuration for  local CSS has been initialized

Adding to inittab 
Startup will be queued to init within 30  seconds.
Checking the status of new Oracle init process...
Expecting the  CRS daemons to be up within 600 seconds.
CSS is active on these  nodes.
        oel1
CSS is active on all nodes.
Oracle CSS service is  installed and running under init(1M)

重新配置成功后,我们查看CSS的服务,可以看到已经起来了

[root@oel1 bin]# ps -ef|grep css
oracle    26370     1  0 21:30 ?        00:00:00  /u01/app/oracle/product/10.2.0/db_1/bin/ocssd.bin
root     26637 24953  0  21:30 pts/1    00:00:00 grep css

问题2:配置裸设备/取消裸设备配置 接下来,我们需要配置一些裸设备在ASM中使用。 配置裸设备,可以使用如下的脚本,会批量生成多个裸设备 基本思路就是使用dd创建出模拟的文件,然后使用losetup来将文件虚拟为块设备。 然后使用raw来绑定即可。 比如我们创建6个裸设备,脚本如下:

for  i in {1..6}
do
dd if=/dev/zero of=asm_disk$i bs=1M count=500
chmod 777  asm_disk$i
losetup /dev/loop$i asm_disk$i
raw /dev/raw/raw$i  /dev/loop$i
chown oracle:dba /dev/raw/raw$i
done

运行脚本的时候会发现

[root@oel1 asmdisks]# ksh create_asmdisk.sh
500+0 records in
500+0  records out
524288000 bytes (524 MB) copied, 1.41319 seconds, 371  MB/s
/dev/raw/raw1:  bound to major 7, minor 1
500+0 records in
500+0  records out
524288000 bytes (524 MB) copied, 1.85704 seconds, 282  MB/s
/dev/raw/raw2:  bound to major 7, minor 2
500+0 records in
500+0  records out
524288000 bytes (524 MB) copied, 4.13632 seconds, 127  MB/s
/dev/raw/raw3:  bound to major 7, minor 3
500+0 records in
500+0  records out
524288000 bytes (524 MB) copied, 2.29498 seconds, 228  MB/s
/dev/raw/raw4:  bound to major 7, minor 4
500+0 records in
500+0  records out
524288000 bytes (524 MB) copied, 1.36017 seconds, 385  MB/s
/dev/raw/raw5:  bound to major 7, minor 5
500+0 records in
500+0  records out
524288000 bytes (524 MB) copied, 2.30878 seconds, 227  MB/s
/dev/raw/raw6:  bound to major 7, minor 6
[root@oel1  asmdisks]#

运行完成之后查看裸设备的情况,可以看到6个裸设备都创建好了。

[root@oel1 asmdisks]# raw -qa
/dev/raw/raw1:  bound to major 7, minor  1
/dev/raw/raw2:  bound to major 7, minor 2
/dev/raw/raw3:  bound to major  7, minor 3
/dev/raw/raw4:  bound to major 7, minor 4
/dev/raw/raw5:  bound  to major 7, minor 5
/dev/raw/raw6:  bound to major 7, minor 6
[root@oel1  asmdisks]#

当然我们能够创建裸设备,绑定,也可以撤销绑定,删除这些裸设备, 可以使用如下的脚本来完成回滚的操作

>cat rollback*.sh
for i in {1..6}
do
dd if=/dev/zero  of=asm_disk$i bs=1M count=200
raw /dev/raw/raw$i 0 0  
losetup  -d  /dev/loop$i
rm asm_disk$i
done

运行脚本的日志如下:

[root@oel1 asmdisks]# ksh rollback.sh
200+0 records in
200+0 records  out
209715200 bytes (210 MB) copied, 0.464948 seconds, 451  MB/s
/dev/raw/raw1:  bound to major 0, minor 0
200+0 records in
200+0  records out
209715200 bytes (210 MB) copied, 0.423312 seconds, 495  MB/s
/dev/raw/raw2:  bound to major 0, minor 0
200+0 records in
200+0  records out
209715200 bytes (210 MB) copied, 0.39266 seconds, 534  MB/s
/dev/raw/raw3:  bound to major 0, minor 0
200+0 records in
200+0  records out
209715200 bytes (210 MB) copied, 0.419405 seconds, 500  MB/s
/dev/raw/raw4:  bound to major 0, minor 0
200+0 records in
200+0  records out
209715200 bytes (210 MB) copied, 0.552266 seconds, 380  MB/s
/dev/raw/raw5:  bound to major 0, minor 0
200+0 records in
200+0  records out
209715200 bytes (210 MB) copied, 0.568867 seconds, 369  MB/s
/dev/raw/raw6:  bound to major 0, minor  0

再次查看裸设备的情况,可以看到裸设备都不存在了。

[root@oel1 asmdisks]# raw -qa
[root@oel1  asmdisks]#

问题3:创建磁盘组错误 基本条件都准备好了,我们来尝试创建对应的磁盘组,把这些裸设备都加进来。但是创建磁盘组的时候报出了下面的错误。

对于ORA-15018的问题,其实还是和之前安装过rac有一定的影响。 这个时候查看ASM的实例情况,会发现启动了一个+ASM1的实例,而且属主是orarac这个用户,

[root@oel1  asmdisks]# ps -ef|grep smon
oracle    5848     1  0 20:16 ?        00:00:00  ora_smon_TEST10G
oracle   27195     1  0 21:40 ?        00:00:00  asm_smon_+ASM
orarac   29473     1  0  22:11 ?        00:00:00 asm_smon_+ASM1
root     29608 27674  0 22:14  pts/1    00:00:00 grep  smon

因为这套rac已经完全不用了,也没有做卸载,所以有些配置信息还是会有一定的影响,对于这个问题,最后发现是在/etc/oratab的地方已经配置了+ASM1,所以使用dbca的时候会把之前的这个ASM实例启用,但是添加磁盘组的时候又用不了了。 对于这个问题的处理,就是删除/etc/oratab中不需要的ASM配置信息,因为这些配置是之前创建的时候生成的记录,因为一些配置的原因,现在已经完全不使用这个环境,甚至可以完全删除这个用户。 [root@oel1 etc] cat /etc/oratab

+ASM1:/u02/rac/db:N 删除这个配置信息之后,重新运行dbca创建就诶有问题了。一会就把磁盘组创建好了。如下图所示。

然后我们尝试重启一下ASM实例,可以看到都没有问题。

SQL> shutdown immediate
ASM diskgroups dismounted
ASM instance  shutdown
SQL> startup
ASM instance started


Total System Global Area   83886080 bytes
Fixed Size                   1260216 bytes
Variable Size              57460040 bytes
ASM  Cache                  25165824 bytes
ASM diskgroups  mounted

ASM的简单配置就告一段落。 

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2015-07-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏电光石火

eclipse SWT Designer 插件

 先下swt zip包,地址:http://www.eclipse.org/windowbuilder/download.php 1、选择自己eclips...

44760
来自专栏跟着阿笨一起玩NET

MySql可视化工具MySQL Workbench使用教程

MySQL Workbench 为数据库管理员、程序开发者和系统规划师提供可视化的Sql开发、数据库建模、以及数据库管理功能。

1.4K00
来自专栏腾讯NEXT学位

JavaScript全栈开发-工具篇(下)

? 文章目录 ? 四、测试工具 1. 单元测试 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。常见的单元测试工具有: * ...

14720
来自专栏性能与架构

linux查看CPU和内存的使用情况

image.png CPU使用情况 通常使用top命令查看CPU的当前状态,如果是多核CPU,也可以看到每核的信息 # top 执行后按数字1,可以显示多个CP...

42070
来自专栏农夫安全

Bwapp漏洞平台答案全解-A3(第一篇)

A3 - Cross-Site Scripting (XSS) *****************跨站脚本****************** 跨站的终极思路...

70070
来自专栏Felix的技术分享

在macOS 10.12 上编译 Android 5.1

28140
来自专栏落影的专栏

真机的代码覆盖率测试

代码覆盖率测试 以前虽然写过单元测试,但很少监测测试的完整程度,测试用例也经常存在重复的情况。这次在测试的要求下开始接入代码覆盖率测试。什么是代码覆盖率?就是测...

45150
来自专栏全栈之路

vue.js安装心得

npm是nodejs的包管理器,所以之前只想找npm,而不想下载nodejs,最后闹了笑话。

17720
来自专栏中国白客联盟

Mac os提高效率的几款工具

Android studio/intellij idea:android动态调试。

15530
来自专栏一只程序汪的自我修养

VS快捷键

32250

扫码关注云+社区

领取腾讯云代金券