rhel4+oracle10g ASM配制及ASM与文件系统之间迁移
测试环境:rhel4/oel4 + oracle10g r2 + vmware9
注:虽然说官网都的提供那些包,可根据自己的系统版本(`uname -r`)下载,可是官网提供的rpm包可能不是精确的(比如我的版本是2.6.9-89.0.0.0.1.EL,可是官网提供和我相匹配的是2.6.9-89.EL),这样可能的后果就是安装好了包,却oracleasm configure 时出错,所以,只要下载oracle yum 中没有的包(oracleasmlib),其他的都用oracle yum安装 (yum install oracleasm-`uname -r`*)这种方法最保险
下面两个oracle rhel4的yum中好像没有
rpm -ivh oracleasm-2.6.9-89.EL-debuginfo.x86_64 --->(可不安装)
rpm -ivh oracleasmlib-2.0.4-1.el4.x86_64.rpm --->(须要在上面网址下载)
[root@oracle10g /]# uname -r
2.6.9-89.0.0.0.1.EL
yum install oracleasm-support
yum install oracleasm-`uname -r`*
including :
oracleasm-2.6.9-89.0.0.0.1.EL.x86_64
oracleasm-2.6.9-89.0.0.0.1.ELlargesmp.x86_64
oracleasm-2.6.9-89.0.0.0.1.ELsmp.x86_64
oracleasm-2.6.9-89.0.0.0.1.ELxenU.x86_64
创建一个新分区
[root@oracle10g ~]#fdisk /dev/sdc
配置ASM
#[root@oracle10g ~]# /etc/init.d/oracleasm configure
创建ASM磁盘(asm磁盘组是在dbca中创建,这里创建的是asm磁盘而不是组)
[root@oracle10g ~]# /etc/init.d/oracleasm createdisk vol /dev/sdc1
其中vol中asm磁盘名 把/dev/sdc1这个区作为asm磁盘
以root执行:($ORACLE_HOME/bin/localconfig add)
[root@oracle10g ~]#/u01/app/oracle/oracle/product/10.2.0/db_1/bin/localconfig add
[root@oracle10g ~]#export DISPLAY=:0.0
[root@oracle10g ~]#xhost +
[root@oracle10g ~]#su - oracle
[oracle@oracle10g ~]$dbca
图形界面配制略。
ASM实例:export ORACLE_SID=+ASM
查看ASM磁盘信息(v$asm_disk)
select name,failgroup 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+ASM.ora
+ASM.asm_diskgroups='DB1','DB2'#Manual Mount
*.asm_diskgroups='DB1','DB2'
*.background_dump_dest='/u01/app/oracle/admin/+ASM/bdump'
*.core_dump_dest='/u01/app/oracle/admin/+ASM/cdump'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='SHARED'
*.user_dump_dest='/u01/app/oracle/admin/+ASM/udump'
访问asm磁盘上的数据
[oracle@oracle10g ~]$export ORACLE_SID=+ASM
[oracle@oracle10g ~]$asmcmd
要asm上创建表空间
create smallfile tablespace user2 datafile '+DB1' size 100m autoextend on;
sys@DNDN> select name from v$datafile;
NAME
----------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/dndn/system.dbf
+DB1/dndn/datafile/user2.256.829002129
/u01/app/oracle/oradata/dndn/sysaux.dbf
/u01/app/oracle/oradata/dndn/users01.dbf
/u01/app/oracle/oradata/dndn/undotbs.dbf
ASM文件迁移
使用rman 的方式(若不能脱机的表空间,则在mount下操作)
1,users表空间的迁移(从文件系统到asm)
rman>backup tablespace users;
rman>run{
sql 'alter tablespace users offline immediate';
set newname for datafile 4 to '+DB1';
restore tablespace users;
switch datafile 4;
recover tablespace users;
sql 'alter tablespace users online';
}
下面写法和上面一样(但一个表空间可能有多个数据文件):
rman>run{
sql 'alter database datafile 4 offline';
set newname for datafile 4 to '+DB1';
restore datafile 4;
switch datafile 4;
recover datafile 4;
sql 'alter database datafile 4 online';
}
2,users表空间的迁移(从asm到文件系统)
rman>backup tablespace users;
rman>run{
sql 'alter tablespace users offline immediate';
set newname for datafile 4 to '/u01/app/oracle/oradata/dndn/users01.dbf';
restore tablespace users;
switch datafile 4;
recover tablespace users;
sql 'alter tablespace users online';
}