1、升级SLES9内核、安装asm相关包,注重版本要一致。
2、/etc/init.d/Oracleasm configure 配置asm driver 使用者为oracle dba组,并且自动启动。
3、预备好裸磁盘(用fdisk 分区了,没有格式化成任何文件系统,有的话可以dd初始化之)
4、创建asm 磁盘
例如:/etc/init.d/oracleasm createdisk d1 /dev/sdb1
5、删除asm 磁盘
/etc/init.d/oracleasm deletedisk d1 (千万不要将使用的磁盘都删掉,否则数据库将崩溃)
6、 利用dbca 创建数据库
选用asm , 创建diskgroup ,选上disk ,磁盘开始状态是Candidate ,加入磁盘组后变为Provisioned ,假如是 Member状态说明曾是某个磁盘组的成员,要使用之则先要用dd命令清掉磁盘上存在的旧ASM信息,语法:dd if=/dev/zero of= /dev/sdd1 bs=8192 count=100
可以设置参数:power limit (1-11),越小,则Asm 利用来rebalance (asm 配置改变时)的i/o带宽越小,当然越慢,对系统的性能影响越小。Redundancy 一般选external 就是也就是不考虑冗余,假如选normal 则是mirror, 至少要一个FailGroup选High 就是triple mirror,3倍镜像,需要三个FailGroup ,这里的FailGroup其实就是将磁盘组的磁盘划分成几个组,彼此镜像。还有就是discoverString 一般就是ORCL:* 。
接下来dbca 将会创建ASM实例和数据库实例
7、修改 /etc/oratab 将ASM 和数据库实例的N改为Y
关于启动的BUG
Bug: 3458327 - Automatic Startup On Reboot Fails When Database Uses ASM
ORA--29701: unable to connect to Cluster Manager
目前的版本10.1.0.3.0 的一个Bug.
解决办法:
(1)修改/etc/inittab 文件将
h1:35:respawn:/etc/init.d/init.Cssd run /dev/null 2&1
剪切到l3:3:wait:/etc/init.d/rc 3 之前
(2)修改 /etc/init.d/oracle 文件,在启动数据库+ Starting Database(s)...前增加如下脚本
echo "Waiting css daemon start for 300 seconds!"
let count=0
while [ $count -lt 30 ]; do
sleep 10
let count=count+1
let flag=count%5
let seconds=$count*10
if [ fag –eq 0 ] ; then
echo -n $seconds
else
echo -n "."
fi
done
300秒的依据是系统INIT会将init.cssd阻塞5分钟。
“INIT: Id "h1" respawning too fast: disabled for 5 minutes”
(3)在rc3.d 和rc5.d 里将S21init.cssd -S13init.cssd
S13oracle S21oracle
8、治理ASM 磁盘组
(1)web 方式
在数据库服务器上先检查ORACLE_SID , eXPortgrep ORACLE_SID 看是否为要治理的数据库不是则 export ORACLE_SID=”xxx”
然后emctl start dbconsole
记下url , 在客户端使用浏览器治理. 用sys dba 身份登入, 选择administration
选择Storage 的Disk Groups ,然后以sys 的身份登入(密码在创建数据库时选择asm时设置的)然后就可以实现对asm的治理了:创建/删除/挂载/卸载磁盘组,增加/删除磁盘,修改配置Disk Discovery Path,Rebalance Power, Auto Mount Disk Groups 。
(2)sqlplus 命令行方式
在数据库服务器先要 export ORACLE_SID=+ASM , 然后sqlplus sys/passwd as sysdba 登入执行创建磁盘组 ,增删磁盘组的磁盘等操作。
Alter diskgroup dgName drop disk diskname;
ALTER DISKGROUP DG1 ADD DISK 'ORCL:D4' ; //可能比较耗时,因为要将数据转移
CREATE DISKGROUP dg4 EXTERNAL REDUNDANCY DISK 'ORCL:D1' //创建磁盘组
ALTER SYSTEM SET ASM_DISKGROUPS = 'DG1','DG2','DG3','dg4' //设置他自动mount