时间:2021-07-01 10:21:17 帮助过:13人阅读
安装Oracle Linux的时候选上Oracle需要的那些rpm包,还有Oracle ASM那些rpm包。 1,修改/boot/grub/grub.conf文件,把default改成1 0对应ELhugemem内核 1对应ELsmp内核 (我这里的虚拟机是vbox,如果启动ELhugemem内核会报错,所以在此修改了grub.conf文件)
安装Oracle Linux的时候选上Oracle需要的那些rpm包,还有Oracle ASM那些rpm包。
如图:
用root用户创建css服务(这一步的目的是实现asm实例和database实例之间的同步)
/u01/app/oracle/product/10.2.0/db_1/bin/localconfig add
可以用root用户查看css服务是否成功
[root@asmnode ~]# ps -ef | grep css
oracle 5174 1 4 10:12 ? 00:00:06 /u01/app/oracle/product/10.2.0/db_1/bin/ocssd.bin
root 5429 3943 0 10:14 pts/0 00:00:00 grep css
也可以用oracle用户执行crsctl check css来查看
效果:
[oracle@asmnode ~]$ crsctl check css
CSS appears healthy
完成
16,用dbca创建基于ASM的数据库
这里除了第6,7,8步,其它跟普通的dbca创建数据库是一样的。我们选择的是ASM存储方式。
创建完数据库后
export ORACLE_SID=orcl
sqlplus / as sysdba
然后执行查询
select * from scott.dept;
select name from v$datafile;
select name from v$tempfile;
select member from v$logfile;
到此我们完成了基于Oracle ASM的数据库的创建。
还有就是记得用netca创建oracle监听程序
然后用sys用户执行alter system register;
最后来查看进程ps -ef | grep oracle
17,体验一下rebanlance
执行alter diskgroup dgroup1 drop disk asmvol2;
SELECT group_number, operation, state, est_work, sofar, est_rate,
est_minutes FROM v$asm_operation;
返回
GROUP_NUMBER OPERATION STATE EST_WORK SOFAR EST_RATE
------------ --------------- ------------ ---------- ---------- ----------
EST_MINUTES
-----------
1 REBAL RUN 1021 44 343
2
然后
GROUP_NUMBER OPERATION STATE EST_WORK SOFAR EST_RATE
------------ --------------- ------------ ---------- ---------- ----------
EST_MINUTES
-----------
1 REBAL RUN 1139 1063 322
0
然后
GROUP_NUMBER OPERATION STATE EST_WORK SOFAR EST_RATE
------------ --------------- ------------ ---------- ---------- ----------
EST_MINUTES
-----------
1 EXPEL RUN 0 0 0
0
然后
no rows selected
SQL> select STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP from v$asm_disk;
STATE REDUNDANCY TOTAL_MB FREE_MB NAME FAILGROUP
---------- --------------------- ---------- ---------- --------------- --------------------
NORMAL UNKNOWN 12284 0
NORMAL UNKNOWN 12284 11157 ASMVOL1 FGROUP1
NORMAL UNKNOWN 12284 11719 ASMVOL3 FGROUP2
NORMAL UNKNOWN 12284 11720 ASMVOL4 FGROUP2
[oracle@asmnode ~]$ ps -ef | grep arb0
oracle 7036 1 12 16:37 ? 00:00:26 asm_arb0_+ASM
oracle 7056 6942 0 16:41 pts/0 00:00:00 grep arb0
[oracle@asmnode ~]$ ps -ef | grep arb0
oracle 7069 6942 0 16:47 pts/0 00:00:00 grep arb0
由此可见当删除磁盘重新平衡的时候,会出现asm_arb0_+ASM进程,平衡结束后这个进程也就结束了
在asm实例中查询:
SQL> SELECT disk_number, label FROM V$asm_disk;
DISK_NUMBER LABEL
----------- ---------------------------------------------------------------------------------------------
0 VOL2
2 VOL1
0 VOL3
1 VOL4
而在数据库实例中查询:
SQL> SELECT disk_number, label FROM V$asm_disk;
DISK_NUMBER LABEL
----------- -------------------------------
0 VOL3
1 VOL4
2 VOL1
我们可以从上面的SQL 知道在ASM 实例中可以查询到所有可以用的磁盘,而在数据库实
例中只可以查询到让自己使用的磁盘
18,创建表空间和用户
连接asm实例:
export ORACLE_SID=+ASM
sqlplus / as sysdba
create diskgroup dgtest external redundancy
disk 'ORCL:VOL2' name testvol2;
连接数据库实例:
export ORACLE_SID=orcl
sqlplus / as sysdba
create tablespace testtblsp datafile '+dgtest';
create user lmc identified by lmc
temporary tablespace temp default tablespace testtblsp;
grant connect,resource to lmc;
conn lmc/lmc
create table tt(id int,name varchar2(20));
insert into tt values(1,'wilson');
insert into tt values(2,'scott');
commit;
conn / as sysdba
echo 3 > /proc/sys/vm/drop_caches
Oracle11g R2的ASM安装可以参考http://blog.csdn.net/liumengcheng/article/details/37565931