测试环境:rhel/oel + oracleg r + vmware
注虽然说官网都的提供那些包可根据自己的系统版本(`uname r`)下载可是官网提供的rpm包可能不是精确的(比如我的版本是EL可是官网提供和我相匹配的是EL)这样可能的后果就是安装好了包却oracleasm configure 时出错所以只要下载oracle yum 中没有的包(oracleasmlib)其他的都用oracle yum安装 (yum install oracleasm`uname r`*)这种方法最保险
下面两个oracle rhel的yum中好像没有
rpm ivh oracleasmELdebuginfox_ >(可不安装)
rpm ivh oracleasmlibelx_rpm >(须要在上面网址下载)
[root@oracleg /]# uname r
EL
yum install oracleasmsupport
yum install oracleasm`uname r`*
including :
oracleasmELx_
oracleasmELlargesmpx_
oracleasmELsmpx_
oracleasmELxenUx_
创建一个新分区
[root@oracleg ~]#fdisk /dev/sdc
配置ASM
#[root@oracleg ~]# /etc/initd/oracleasm configure
创建ASM磁盘(asm磁盘组是在dbca中创建这里创建的是asm磁盘而不是组)
[root@oracleg ~]# /etc/initd/oracleasm createdisk vol /dev/sdc
其中vol中asm磁盘名 把/dev/sdc这个区作为asm磁盘
以root执行:($ORACLE_HOME/bin/localconfig add)
[root@oracleg ~]#/u/app/oracle/oracle/product//db_/bin/localconfig add
[root@oracleg ~]#export DISPLAY=:
[root@oracleg ~]#xhost +
[root@oracleg ~]#su oracle
[oracle@oracleg ~]$dbca
图形界面配制略
ASM实例export ORACLE_SID=+ASM
查看ASM磁盘信息(v$asm_disk)
select namefailgroup from v$asm_disk;
查看ASM磁盘组信息(v$asm_diskgroup)
select name type from v$asm_diskgroup;
在oracle实例中若查看到asm磁盘组的名字则oracle实例可以访问并使用asm磁盘组
select name from v$asm_diskgroup;
创建完之后asm实例的pfile
init+ASMora
+ASMasm_diskgroups=DBDB#Manual Mount
*asm_diskgroups=DBDB
*background_dump_dest=/u/app/oracle/admin/+ASM/bdump
re_dump_dest=/u/app/oracle/admin/+ASM/cdump
*instance_type=asm
*large_pool_size=M
*remote_login_passwordfile=SHARED
*user_dump_dest=/u/app/oracle/admin/+ASM/udump
访问asm磁盘上的数据
[oracle@oracleg ~]$export ORACLE_SID=+ASM
[oracle@oracleg ~]$asmcmd
要asm上创建表空间
create smallfile tablespace user datafile +DB size m autoextend on;
sys@DNDN> select name from v$datafile;
NAME
/u/app/oracle/oradata/dndn/systemdbf
+DB/dndn/datafile/user
/u/app/oracle/oradata/dndn/sysauxdbf
/u/app/oracle/oradata/dndn/usersdbf
/u/app/oracle/oradata/dndn/undotbsdbf
ASM文件迁移
使用rman 的方式(若不能脱机的表空间则在mount下操作)
users表空间的迁移(从文件系统到asm)
rman>backup tablespace users;
rman>run{
sql alter tablespace users offline immediate;
set newname for datafile to +DB;
restore tablespace users;
switch datafile ;
recover tablespace users;
sql alter tablespace users online;
}
下面写法和上面一样(但一个表空间可能有多个数据文件):
rman>run{
sql alter database datafile offline;
set newname for datafile to +DB;
restore datafile ;
switch datafile ;
recover datafile ;
sql alter database datafile online;
}
users表空间的迁移(从asm到文件系统)
rman>backup tablespace users;
rman>run{
sql alter tablespace users offline immediate;
set newname for datafile to /u/app/oracle/oradata/dndn/usersdbf;
restore tablespace users;
switch datafile ;
recover tablespace users;
sql alter tablespace users online;
}