昨晚做数据切换,起来备系统, 数据库10.2.0.4 起不来, 错误提示,找不到spfile, 一时想不起来10g rac
如何使用asmcmd copy, 因为发现本该在dgsystem中的spfile, 不知道为何会跑到dgdata中, 同时
似乎多了个dgdata1sas; 同来兄弟也一时没想到, 度娘称可以rman copy, 事实上rman copy 只能控制文件
数据文件,唯独没有spfile参数文件, 于是想可以指定startup pfile=$ORACLE_HONE/dbs/init_SID.ora ;
起来实例后,可以再create spfile;
操作前 $ vi init_SID.ora, 修改原来+DGSYSTEM/... 为 +DGDATA/..... ;
sqlplus / as sysdba
sql> startup pfile='/oracle/app/oracle/product/10.2.0/db_1/dbs/initkhgldb1.ora' ;
create spfile= '+DGSYSTEM/khgldb/spfilekhgldb.ora' from pfile;
sql> shutdown immediate;
sql> startup
提示有DGDATA1SAS 没有,里面的数据文件没有找到,;
$export ORACLE_SID=+ASM1
$asmcmd
asmcmd>lsdg
可以看到,但显示没有mount. 退回使用sql mount (10g asm 没有cp, mount ,umount)
sqlplus / as sysdba
sql> select * from v$asm_diskgroup;
sql> alter diskgroup dgdata1sas mount ;
$vi $ORACLE_HOME/dbs/init+ASM1.ora
添加dgdata1sas 到 asm_diskgroups= ,才能保证重启后,改组能自动加载
如:
asm_diskgroups='DGSYSTEM','DGDATA2','DGDATA','DGRECOVER','DGDATA1SAS'
全部好了后,重启系统.检查ok
实例2起来时报错: 处理系统参数错误ora-00119 ora-00132, local_listener, khgldb2_listener 没有.
查查结果是:
$对比实例1 ,2 :$ORACLE_HOME/network/admin/tnsnames.ora
发现实例1 中文件确实有:
KHGLDB1_LOCAL =
(ADDRESS = (PROTOCOL = TCP)(HOST = khgldb1-vip)(PORT = 1521))
发现实例2中文件确实没有:
KHGLDB2_LOCAL =
(ADDRESS = (PROTOCOL = TCP)(HOST = khgldb2-vip)(PORT = 1521))
修改正确后, 再起来数据库,OK