Oracle ASM安装指引

1、安装Oracle ASMLib

需要的安装包

asmlib

asm-support

asm-kernel

asm-smp-kernel(多process版本)

下载地址:[img]http://unix-cd.com/unixcd12/skin/skin_1/small/url.gif[/img] [url=http://www.oracle.com/technology/software/tech/linux/asmlib/rhel4.html]http://www.oracle.com/technology/software/tech/linux/asmlib/rhel4.html[/url]

安装3个软件包:

# rpm -Uvh oracleasm-support-2.0.3-1.i386.rpm

# rpm -Uvh oracleasm-2.6.9-34.EL-2.0.3-1.i686.rpm

# rpm -Uvh oracleasmlib-2.0.2-1.i386.rpm

1, Linux创建裸设备:(这个无用)

用fdisk 创建了一个分区 /dev/sdb1

然后用raw绑定, raw /dev/raw/raw1 /dev/sdb1

绑定后生成一个文件/dev/raw/raw1 记录绑定的信息.如果不想要直接删除这个文件就行了.

但是这个文件在os reboot之后就没有了.所以要把raw的信息记录到 /etc/sysconfig/rawdevices 文件中,这样重启之后就能保留住raw的信息了.

格式:/dev/raw/raw1 /dev/sdb1

修改权限:

[root@rs2600-2 root]#  chown oracle:dba /dev/raw/raw1
[root@rs2600-2 root]#  chown oracle:dba /dev/raw/raw2

[root@rs2600-2 root]# /sbin/service rawdevices restart

2,配置oracleasm (这部不能少,否则不能找到磁盘)

以root用户登陆,执行
# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.

Default user to own the driver interface [oracle]:
Default group to own the driver interface [dba]:
Start Oracle ASM library driver on boot (y/n) [y]:
Fix permissions of Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration: [ OK ]
Loading module "oracleasm": [ OK ]
Mounting ASMlib driver filesystem: [ OK ]
Scanning system for ASM disks:
[ OK ]


# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
Marking disk "/dev/sdb1" as an ASM disk: [ OK ]
#
[root@server oracleasmlib]# /etc/init.d/oracleasm listdisks
VOL1
[root@server oracleasmlib]# /etc/init.d/oracleasm scandisks
Scanning system for ASM disks:
[ OK ]

#/etc/init.d/oracleasm listdisks //列出ASM磁盘

VOL1

VOL2

VOL3

VOL4

如果要删除ASM磁盘通过以下命令

#/etc/init.d/oracleasm deletedisk VOL4

以上操作将加载oracleasm.o驱动,并且mount上ASM文件系统,同时我们可以通过以下命令来手工的卸载和加载ASMLib

#/etc/init.d/oracleasm disable //出错检查/var/log/messages文件,确认需要更新的内核版本

#/etc/init.d/oracleasm enable

添加init文件使系统启动时自动加载ASMLib

$su -

#cd /etc/rc3.d

#ln -s ../init.d/oracleasm S99oracleasm

#ln -s ../init.d/oracleasm K01oracleasm

注意:如果系统启动是自动进入图形界面,也就是系统的init level是5,那么上面生成链接的命令应该在/etc/rc5.d目录中操作

重新启动系统,确认ASMLib已经可以自动加载

#lsmod |grep oracleasm

#dmesg |grep oracleasm

如果ASM已经被配置了

View the contents of the oratab file to determine whether an ASM instance i
configured on the system:
# more /etc/oratab
If an ASM instance is configured on the system, then the oratab file should
contain a line similar to the following:
+ASM:oracle_home_path:N
In this example, +ASM is the system identifier (SID) of the ASM instance and
oracle_home_path is the Oracle home directory where it is installed. By
convention, the SID for an ASM instance begins with a plus sign.

3,利用dbca建库时,需要运行脚本,注意是root用户,但环境变量是oracle

[root@dbsvr bin]# localconfig add
/etc/oracle does not exist. Creating it now.
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 90 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.
dbsvr
CSS is active on all nodes.
Oracle CSS service is installed and running under init(1M)

建库时报ora-12547错误,需要安装如下包:

[root@dbsvr tmp]# rpm -qa|grep libaio
libaio-0.3.105-2
libaio-0.3.105-2
libaio-devel-0.3.105-2

4,dbca全过程


以 oracle 身份登录并启动 DBCA:

$ dbca

1).欢迎

单击 Next。

2).操作

选择 Create a Database。

3).数据库模板

选择 General Purpose。

4).数据库标识

输入全局数据库名称。

5).管理选项

选择 Configure the Database with Enterprise Manager。

选择 Use Database Control for Database Management。

6).数据库证书

选择 Use Same Password for All Accounts。

输入口令并确认。

7).存储选项

选择 Automatic Storage Management (ASM)。

8).创建 ASM 实例

输入 ASM 实例的口令并确认。

9).弹出一个窗口,提示 DBCA 将立即创建并启动 ASM 实例。

单击 OK。

10).创建 ASM 实例时弹出一个带齿轮箱窗口。

11).ASM 磁盘组

由于这是新 ASM 实例且您尚未创建任何 ASM 实例,因此该窗口未显示可用磁盘组。

单击 Create New。

12).创建磁盘组

磁盘组名称

输入磁盘组名称,如 DATA1。

冗余

- High 镜像数据两次。

- Normal 镜像数据一次。

- External 不镜像 ASM 中的数据。如果外部 RAID 阵列提供冗余,则通常使用此选项。

选择成员磁盘

必须手动指示 ASM 到什么地方查找 ASMLib 磁盘,因此,单击 Change Disk Discovery Path
-
弹出一个窗口,提示输入磁盘发现路径。如下所示将磁盘发现路径更改为“ORCL:*”。如果还找不到使用绝对路径 '/dev/oracleasm/disks/*'
- 单击 OK 继续。

  • 您将返回到 Select Member Disks 窗口。您的所有 ASMLib 磁盘现在应显示在此窗口中。
    单击该行开头的框,选择加入磁盘组的磁盘。完成后单击 OK


您将返回到 Select Member Disks 窗口。您的所有 ASMLib 磁盘现在应显示在此窗口中。

单击该行开头的框,选择加入磁盘组的磁盘。完成后单击 OK。

这个时候如果还发现不了 硬盘,可以使用RAW

Add Disks: Enter /dev/raw as the disk recovery path. You can also clisk
Disk Recovery Path and enter the required disk recovery path in the dialog
box and clisk OK.

13).ASM 磁盘组

您将返回到 ASM Disk Groups 窗口。此时,出现在上一步中创建的磁盘组。

单击该行开头的框选择此磁盘组。(在此实例中使用单个磁盘组。)

单击 Next。

14).数据库文件位置

选择 Use Oracle-Managed Files。

确保已将 Database Area 设置为您创建的磁盘组。它包含一个前导加号 — 例如,+DATA1。

15).恢复配置

选择 Specify Flash Recovery Area。

- 快速恢复区 — 输入要用于快速恢复的 ASM 磁盘组。

- 快速恢复区大小 — 接受默认值 2048。

如果要使用归档日志模式,则选中 Enable Archiving。对于评估数据库,可以不选该项。

16).数据库内容

选择 Sample Schemas。

我们不使用定制脚本,因此单击 Next。

17).初始化参数

接受默认值,然后单击 Next。

18).数据库存储

接受默认值,然后单击 Next。

19).创建选项

选择 Create Database(默认值)并单击 Finish。

20).确认

检查完数据库详细信息后单击 OK。

21).DBCA 显示一个操作列表和一个进度条。根据硬件的不同,数据库创建可能需要几分钟到几小时的时间。

22).当数据库创建完成时,将显示一个显示摘要窗口。记下 Enterprise Manager URL,然后单击 Exit。

5、ASM database简单管理
启动ASM请参考 http://hi.baidu.com/danghj/blog/item/d666ce88e037ce9fa4c27252.html
开机启动:

[oracle@asm dbs]$ lsnrctl start

[oracle@asm dbs]$ export ORACLE_SID=+ASM

[oracle@asm dbs]$ echo $ORACLE_SID

+ASM

[oracle@asm dbs]$ sqlplus / as sysdba

SQL>startup

[oracle@asm dbs]$ export ORACLE_SID=eagle

[oracle@asm dbs]$ echo $ORACLE_SID

eagle

SQL>startup

关机停止:

[oracle@asm dbs]$ export ORACLE_SID=+ASM

[oracle@asm dbs]$ echo $ORACLE_SID

+ASM

[oracle@asm dbs]$ sqlplus / as sysdba

SQL>shutdown immediate

[oracle@asm dbs]$ export ORACLE_SID=eagle

[oracle@asm dbs]$ echo $ORACLE_SID

eagle

SQL>shutdown immediate


附录:手工建asm(没成功)

1,创建asm参数 

到 oracle 的 dbs目录下
[oracle@rs2600-2 dbs]$ vi spfile+ASM.ora

SM.asm_diskgroups='ASMDISK'#Manual Mount
*.asm_diskgroups='ASMDISK'
*.background_dump_dest='/opt/app/oracle/admin/+ASM/bdump'
*.core_dump_dest='/opt/app/oracle/admin/+ASM/cdump'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='SHARED'
*.user_dump_dest='/opt/app/oracle/admin/+ASM/udump'  


2.创建密码文件

$ su – oracle
$ cd $ORACLE_HOME/dbs
$ orapwd file=orapw+ASM password=dba      

3. 创建目录结构
$ su – oracle
$ cd $ORACLE_HOME/dbs
$ mkdir –p $ORALCE_BASE/admin/+ASM/udump
$ mkdir –p $ORALCE_BASE/admin/+ASM/bdump
$ mkdir –p $ORALCE_BASE/admin/+ASM/cdum     

附:ASM实例可以手工创建,也可以通过dbca创建,如手工创建
1、创建asm参数
[oracle@dbsvr dbs]$ more spfile+ASM.ora


+ASM.asm_diskgroups='ASMDISK'#Manual Mount
*.asm_diskgroups='ASMDISK'
*.background_dump_dest='/oracle/app/admin/+ASM/bdump'
*.core_dump_dest='/oracle/app/admin/+ASM/cdump'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='SHARED'
*.user_dump_dest='/oracle/app/admin/+ASM/udump'


2、创建diskgroup组
SQL> ALTER DISKGROUP ALL MOUNT
Sun Aug 23 18:26:49 2009
Loaded ASM Library - Generic Linux, version 2.0.4 (KABI_V2) library for asmlib interface
Sun Aug 23 18:29:24 2009
SQL> CREATE DISKGROUP asmdisk External REDUNDANCY  DISK '/dev/sdb2' SIZE 674M ,'/dev/sdb3' SIZE 290M ,'/dev/sdb4' SIZE 235M ,'/dev/sdc1' SIZE 1913M;            

二、创建ASM实例

1.创建初始化文件

$ su – oracle
$ cd $ORACLE_HOME/dbs
$ vi init+ASM.ora

*.asm_diskstring='ORCL:VOL*'
*.background_dump_dest='/oracle/admin/+ASM/bdump'
*.core_dump_dest='/oracle/admin/+ASM/cdump'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='SHARED'
*.user_dump_dest='/oracle/admin/+ASM/udump'

如果找不到磁盘还 改成绝对路径


#+ASM.asm_diskgroups='ASMDISK'#Manual Mount
#*.asm_diskstring='ORCL:VOL*'
#*.asm_diskgroups='ASMDISK'
*. asm_diskstring='/dev/oracleasm/disks/*'
*.background_dump_dest='/opt/app/oracle/admin/+ASM/bdump'
*.core_dump_dest='/opt/app/oracle/admin/+ASM/cdump'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='SHARED'
*.user_dump_dest='/opt/app/oracle/admin/+ASM/udump'

解决方法二

修改$ORACLE_HOME/dbs/init+ASM.ora文件
添加一行:asm_diskstring='ORCL:VOL*'

启动实例
报错,ORA-29701: unable to connect to Cluster Manager
查google,查不到
再查metalink,原来是因为安装完10g以后,就直接把/etc/inittab中的
h1:35:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1   这句注释了
原来这就是10g内置的cluster manager

取消注释
重新启动系统
再次启动实例,OK

2.创建密码文件

$ su – oracle
$ cd $ORACLE_HOME/dbs
$ orapwd file=orapw+ASM password=dba

3. 创建目录结构
$ su – oracle
$ cd $ORACLE_HOME/dbs
$ mkdir –p $ORALCE_BASE/admin/+ASM/udump
$ mkdir –p $ORALCE_BASE/admin/+ASM/bdump
$ mkdir –p $ORALCE_BASE/admin/+ASM/cdump

4. 启动实例
$ export ORACLE_SID=+ASM
$ sqlplus / as sysdba
SQL> startup
ASM instance started

Total System Global Area   100663296 bytes
Fixed Size                   777616 bytes
Variable Size              99885680 bytes
Database Buffers                  0 bytes
Redo Buffers                      0 bytes
ORA-15110: no diskgroups mounted

因为我们是首次启动asm实例,还没有创建diskgroup,所以显示15110错误是正常的。

如果启动实例的时候碰到如下报错:
ORA-29701: unable to connect to Cluster Manager
那么请检查/etc/inittab 文件,看看是否有下面这行
h1:35:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 </dev/null
如果没有请添加,如果被注释了请取消注释。

5. 创建 spfile,重新启动
SQL> create spfile from pfile;
SQL> shutdown immediate;
SQL> startup;

6. 创建 diskgroup
SQL> create diskgroup dgroup1 external redundancy
2 failgroup fgroup1 disk 'ORCL:VOL1';

Diskgroup created.

SQL> col name for a10
SQL> select name,state from v$asm_diskgroup;

NAME       STATE
---------- ----------------------
DGROUP1    MOUNTED

如果上述命令返回的 state是 DISMOUNTED,那么我们需要手工将挂载 diskgroup
SQL> ALTER DISKGROUP dgroup1 MOUNT;

Diskgroup altered.

SQL> show parameter asm_diskgroups

NAME                                 TYPE       VALUE
------------------------------------ ---------- ------------------------------
asm_diskgroups                       string     DGROUP1

三、创建ASM数据库

接下来,创建ASM数据库的工作就非常的简单了。执行dbca实用程序,在第六步“storage options”部分选择“Automatic Storage Management ”,在接下来的“ASM Disk Groups”步骤中,选择之前创建的“DGROUP1”,再按照普通建库的方式完成数据库的创建就OK了。                   

posted on 2010-01-06 15:36  dhj  阅读(413)  评论(0编辑  收藏  举报

导航