最近在做ORACLE 11.2.0.4 rac for rhel6.9 到ORACLE 19.11.1 rac for rhel7.8的升级测试,过程中需要将ORACLE 11.2.0.3 rac for rhel6.8的数据库试用rman恢复到ORACLE 11.2.0.4 rac for rhel6.9集群中,在做create spfile的过程中遭遇报错:
SQL> Create spfile='+datadg/orcl/spfileorcl.ora' from pfile ='/tmp/orcl.ora';
Create spfile='+datadg/orcl/spfileorcl.ora' from pfile ='/tmp/orcl.ora'
*
ERROR at line 1:
ORA-17502: ksfdcre:4 Failed to create file +datadg/orcl/spfileorcl.ora
ORA-15001: diskgroup "DATADG" does not exist or is not mounted
ORA-15040: diskgroup is incomplete
SQL>
看到这种报错,第一直觉看了下裸设备的权限,是按照oracle官方设置的:
[root@rl69url78n1 ~]# ls -l /dev/raw/*
crw-rw---- 1 grid asmadmin 162, 1 Aug 19 07:32 /dev/raw/raw1
crw-rw---- 1 grid asmadmin 162, 2 Aug 19 06:36 /dev/raw/raw2
crw-rw---- 1 grid asmadmin 162, 3 Aug 19 06:36 /dev/raw/raw3
crw-rw---- 1 grid asmadmin 162, 0 Aug 18 20:44 /dev/raw/rawctl
[root@rl69url78n1 ~]#
再看集群状态都是正常的,grid查看磁盘组正常:
[root@rl69url78n1 ~]# /u01/app/11.2.0/grid/bin/crsctl status res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATADG.dg
ONLINE ONLINE rl69url78n1
ONLINE ONLINE rl69url78n2
ora.FRADG.dg
ONLINE ONLINE rl69url78n1
ONLINE ONLINE rl69url78n2
ora.LISTENER.lsnr
ONLINE ONLINE rl69url78n1
ONLINE ONLINE rl69url78n2
ora.OCRDG.dg
ONLINE ONLINE rl69url78n1
ONLINE ONLINE rl69url78n2
ora.asm
ONLINE ONLINE rl69url78n1 Started
ONLINE ONLINE rl69url78n2 Started
ora.gsd
OFFLINE OFFLINE rl69url78n1
OFFLINE OFFLINE rl69url78n2
ora.net1.network
ONLINE ONLINE rl69url78n1
ONLINE ONLINE rl69url78n2
ora.ons
ONLINE ONLINE rl69url78n1
ONLINE ONLINE rl69url78n2
ora.registry.acfs
ONLINE ONLINE rl69url78n1
ONLINE ONLINE rl69url78n2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rl69url78n2
ora.cvu
1 ONLINE ONLINE rl69url78n2
ora.oc4j
1 ONLINE ONLINE rl69url78n2
ora.rl69url78n1.vip
1 ONLINE ONLINE rl69url78n1
ora.rl69url78n2.vip
1 ONLINE ONLINE rl69url78n2
ora.scan1.vip
1 ONLINE ONLINE rl69url78n2
[root@rl69url78n1 ~]# su - grid
[grid@rl69url78n1 ~]$ asmcmd lsdg
State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 4096 1048576 40939 40844 0 40844 0 N DATADG/
MOUNTED EXTERN N 512 4096 1048576 15366 15271 0 15271 0 N FRADG/
MOUNTED EXTERN N 512 4096 1048576 5130 4734 0 4734 0 Y OCRDG/
[grid@rl69url78n1 ~]$
oracle直接登陆使用dbca建库,能看到ASM磁盘组FRADG和DATADG。由于刚做过一个ORACLE 19.11.1 GI+11.2.0.4DB的
数据库升级,也是使用RAM恢复的,并且能正常恢复数据库,对比下两次的grid和oracle用户,发现本次的oracle用户少了
asmadmin组:
[oracle@rl69url78n1 rman]$ id
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54327(asmdba),54330(racdba)
[oracle@rl69url78n1 rman]$
使用root修改oracle用户的组:
[root@rl69url78n1 ~]# id grid
uid=54322(grid) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54327(asmdba),54328(asmoper),54329(asmadmin)
[root@rl69url78n1 ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54327(asmdba),54330(racdba)
[root@rl69url78n1 ~]#
oracle用户退出重新登陆,重新启动实例后可以正常使用rman做数据库恢复:
[oracle@rl69url78n1 ~]$ id
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54327(asmdba),54329(asmadmin),54330(racdba)
[oracle@rl69url78n1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Thu Aug 19 07:32:57 2021
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup nomount pfile='/tmp/orcl_2.ora';
ORACLE instance started.
Total System Global Area 1235959808 bytes
Fixed Size 2252784 bytes
Variable Size 503316496 bytes
Database Buffers 721420288 bytes
Redo Buffers 8970240 bytes
SQL> Create spfile='+datadg/orcl/spfileorcl.ora' from pfile ='/tmp/orcl.ora';
File created.
SQL>