Chinaunix首页 | 论坛 | 博客
  • 博客访问: 327414
  • 博文数量: 15
  • 博客积分: 3015
  • 博客等级: 中校
  • 技术积分: 1360
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-07 16:01
文章分类

全部博文(15)

文章存档

2010年(1)

2009年(14)

我的朋友

分类: Oracle

2009-10-08 08:30:49

本例是基于ASMLib创建, 也可以基于裸设备创建.

 

1.1 安装ASMLib

# cd /orahome/wangnc/asmlib

# rpm -Uvh oracleasm-support-2.1.3-1.el4.i386.rpm oracleasm-2.6.9-55.ELsmp-2.0.3-1.i686.rpm oracleasmlib-2.0.4-1.el4.i386.rpm

 

1.2 配置ASMLib

# /etc/init.d/oracleasm configure

...

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) [n]: y

Scan for Oracle ASM disks on boot (y/n) [y]: y

...

# df -ha | grep oracleasm

oracleasmfs                          /dev/oracleasm

 

附启用或禁用oracleasm自动启动方法:

# /etc/init.d/oracleasm disable

# /etc/init.d/oracleasm enable

 

1.3 物理磁盘分区

对用来做ASM的硬进行分区(只分一个区, 此处采用硬盘sdb):

# fdisk -l | grep Disk

Disk /dev/sda: 250.0 GB, 250059350016 bytes

Disk /dev/sdb: 250.0 GB, 250059350016 bytes

 

# fdisk /dev/sdb

Command (m for help): n

p

Partition number (1-4): 1

First cylinder (1-30401, default 1):

Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401):

Command (m for help): w

 

# fdisk -l /dev/sdb

Disk /dev/sdb: 250.0 GB, 250059350016 bytes

255 heads, 63 sectors/track, 30401 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot       Start          End       Blocks    Id   System

/dev/sdb1                      30401    244196001    83   Linux

 

1.4 创建ASM磁盘

这些磁盘是不包含任何内容的空磁盘, 创建时物理磁盘要带分区号如sdb1.  

 

ASM磁盘名可以为大写字母,数字和下划线, 且以字母开始:

# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1

Marking disk "VOL1" as an ASM disk:                         OK   ]

 

如果提示Failed, 可以跟踪日志:

# tail -f /var/log/oracleasm

附删除磁盘语句:

# /etc/init.d/oracleasm deletedisk VOL1

 

检查配置情况:

# /etc/init.d/oracleasm querydisk VOL1

# /etc/init.d/oracleasm querydisk /dev/sdb1

# /etc/init.d/oracleasm listdisks

# ls -l /dev/oracleasm/disks/*

# /etc/init.d/oracleasm status

 

1.5 建初始化参数文件

注意asm_diskstring必需配置成'ORCL:'开头.

# su - oracle

$ export ORACLE_SID=+ASM

$ vi $ORACLE_HOME/dbs/init$ORACLE_SID.ora

asm_diskstring='ORCL:VOL*'

background_dump_dest='/u01/app/oracle/admin/+ASM/bdump'

core_dump_dest='/u01/app/oracle/admin/+ASM/cdump'

user_dump_dest='/u01/app/oracle/admin/+ASM/udump'

instance_type='asm'

large_pool_size=12M

remote_login_passwordfile='SHARED'

 

1.6 增加实例信息到/etc/oratab

$ vi /etc/oratab

+ASM:/u01/app/oracle/product/10.2.0/db_1:Y

 

1.7 建立密码文件

$ $ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password='iamENCY000' force=y

 

1.8 建立需要的目录

$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/bdump

mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/cdump

mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/udump

 

1.9 开启CSS服务

# su -

# /u01/app/oracle/product/10.2.0/db_1/bin/localconfig add

 

1.10 启动ASM实例

SQL> create spfile from pfile; (会自动读取pfile:$ORACLE_HOME/dbs/init$ORACLE_SID.ora)

SQL> shutdown immediate;

SQL> startup;

...

ORA-15110: no diskgroups mounted

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

 

1.11 创建磁盘组

如果ASM磁盘是基于已经做了RAID的阵列, 那么这里选择external方式即可.

SQL> create diskgroup DG1 external redundancy disk 'ORCL:VOL1';

SQL> select name,state from v$asm_diskgroup;

SQL> show parameter asm_diskgroups

 

至此ASM实例创建完毕.

 

1.12 基于ASM实例建库说明

$ dbca &

用 dbca 创建数据库, 一直到选择数据类型的画面以前都跟创建普通数据库没有区别. 到第6 步时, 普通的数据库我们通常选择File System, 而ASM类型的数据库我们则要选择"Automatic Storage Management"(会提示输入ASM实例的sys密码).

下 一步, oracle 将自动检查出已经加载的Diskgroup, 在这个界面我们可以通过Create New 按钮创建新的Diskgroup, 也可以通过Add Disks 按钮向当前的磁盘组中添加额外的磁盘, 当然这些磁盘必须是先用oracleasm createdisk 过的.

在数据文件的位置管理设定界面, 通常应该使用OMF, 由oracle 自己管理数据文件的命名,   这样才算是进一步解放了DBA 对于物理存储方面的繁琐工作.

继续往下的步骤, 跟创建普通数据库已经没有什么区别了.  

 

1.13 启动 ASM 数据库的步骤

由于启动 ASM 数据库必须要先启动ASM 实例, 所以基本上启动步骤如下.

1) 先启动ASM实例

$ export ORACLE_SID=+ASM

$ sqlplus / as sysdba

SQL> startup;

SQL> exit;

2) 再启动数据库

$ export ORACLE_SID=EUIS

$ sqlplus / as sysdba

SQL> startup;

SQL> exit;


--End--
阅读(1335) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~