系统环境:RedHat EL6
Oracle: Oracle 11gR2
在Oracle 11gR2,做文件系统向ASM磁盘组迁移的项目中,Oracle用户无法访问ASM磁盘组,在Oracle 11gR2中grid用户管理ASM instance,经检查发现以下错误:
SQL> select name,state from v$asm_diskgroup;
NAME STATE
------------------------------ -----------
DATA MOUNTED
FRA MOUNTED
SQL> show parameter control
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string +FRA
control_management_pack_access string DIAGNOSTIC+TUNING
SQL>
控制文件迁移,Oracle用户无法访问FRA磁盘组:
RMAN> restore controlfile from '/u01/app/oracle/oradata/prod/control01.ctl';
Starting restore at 15-MAR-16
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=21 device type=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 03/15/2016 17:48:57
ORA-19504: failed to create file "+FRA"
ORA-17502: ksfdcre:4 Failed to create file +FRA
ORA-15001: diskgroup "FRA" does not exist or is not mounted
ORA-15055: unable to connect to ASM instance
ORA-12547: TNS:lost contact
ORA-19600: input file is control file (/u01/app/oracle/oradata/prod/control01.ctl)
ORA-19601: output file is control file (+FRA)
RMAN> restore controlfile from '/u01/app/oracle/oradata/prod/control01.ctl';
Starting restore at 15-MAR-16
using channel ORA_DISK_1
channel ORA_DISK_1: copied control file copy
output file name=+FRA/prod/controlfile/current.256.906573439
Finished restore at 15-MAR-16
解决方案:
1、查看$ORACLE_HOME/bin/oracle
[oracle@node1 ~]$ ls -l /u01/app/oracle/product/11.2.0/db_1/bin/oracle
-rwxr-x--x 1 oracle asmadmin 173515991 Mar 15 14:14 /u01/app/oracle/product/11.2.0/db_1/bin/oracle
---- 对于$ORACLE_HOME/bin/oracle的可执行文件,grid用户应该有权限访问,修改权限:
[root@node1 ~]# chmod 6751 /u01/app/oracle/product/11.2.0/db_1/bin/oracle
[oracle@node1 ~]$ ls -l /u01/app/oracle/product/11.2.0/db_1/bin/oracle
-rwsr-s--x 1 oracle asmadmin 173515991 Mar 15 14:14 /u01/app/oracle/product/11.2.0/db_1/bin/oracle
2、查看$GRID_HOME/bin/oracle
[root@node1 ~]# ls -l /u01/11.2.0/grid/bin/oracle
-rwxrwxr-x 1 grid oinstall 152462814 Mar 15 14:00 /u01/11.2.0/grid/bin/oracle
修改权限:
[root@node1 ~]# chmod +s /u01/11.2.0/grid/bin/oracle
[root@node1 ~]# ls -l /u01/11.2.0/grid/bin/oracle
-rwsrwsr-x 1 grid oinstall 152462814 Mar 15 14:00 /u01/11.2.0/grid/bin/oracle
[root@node1 ~]#
------ 至此,问题解决,Oracle用户可以正常访问ASM diskgroup !