首先,要知道怎么进入asm目录,进入asm目录,一般只能通过oracle用户执行asmcmd目录,但是直接执行是不行的。会报如下的错误
[oracle@rac1 ~]$ asmcmd
asmcmd: command disallowed by current instance type
这个是什么原因呢,想了一下,asm目录是通过asm实例来进行管理的,是不是要先修改ORACLE_SID呢,试试看吧。
[oracle@rac1 ~]$ export ORACLE_SID=+ASM1
[oracle@rac1 ~]$ asmcmd
ASMCMD>
果然是这个原因,现在我们继续吧
下面进入正题,增加控制文件
1、增加控制文件了
增加啊控制文件是不能直接复制的,要用oracle提供的rman restore工具。
参考http://linux.net527.cn/fuwuqiyingyong/Oracle/2011/0504/41876.html
下面的方法是直接复制当前控制文件,方法是利用rman的restore命令.
1)查看现有的控制文件
先关闭两个节点.
注意:restore后你自己命名的控制文件名如果是asm自动管理,可能名字不会按你命的名字来,在asmcmd中确认下正确的控制文件名,再更新到pfile中.
3)修改spfile文件,是新加的控制文件生效
4)关闭数据库,以pfile启动,无需恢复
5)由于更新操作只进行了一个节点,所以需要在另外节点上也更新spfile;否则报
ORA-01105: mount is incompatible with mounts by other instances
ORA-01104: number of control files (1) does not equal 3
如何从asm里面拷出文件
最具安装了数据库里,由于采用的是rac方式,共享文件采用asm方式(裸设备以后可能被淘汰),对于oracle10g来说是不能直接从asm设备里面把文件拷出来的,如果我要把redo.log日志拷出来,应该怎么办呢,google了一下。发现可以采用如下方式
现在我们想要把的ondo.log拷贝出来,先进入目录
ASMCMD> cd +DATA/JSCN/ONLINELOG ASMCMD> pwd +DATA/JSCN/ONLINELOG ASMCMD> ls group_1.261.768151765 group_2.262.768151769 group_3.265.768151819 group_4.266.768151825 我想把group_1.261.768151765文件拷贝到/tmp/oralog/dest目录下2、创建/tmp/oralog/dest目录
3、创建源和目的字典
SQL> create or replace directory SOURCE_DIR as '+DATA/JSCN/ONLINELOG'; Directory created. SQL> create or replace directory ORACLE_DEST as '/tmp/oralog/dest'; Directory created.[oracle@rac1 ~]$ cd /tmp/oralog/dest
[oracle@rac1 dest]$ ll redo_1.log
-rw-r----- 1 oracle oinstall 52429312 Nov 28 12:00 redo_1.log