asm增加控制⽂件,使⽤控制⽂件多路复⽤(附带如何从asm
⾥⾯拷出⽂件)
⾸先,要知道怎么进⼊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⼯具。
下⾯的⽅法是直接复制当前控制⽂件,⽅法是利⽤rman的restore命令.
1)查看现有的控制⽂件
安装oracle10g
export ORACLE_SID=+ASM1
asmcmd
cd +DATA/JSCN/CONTROLFILE
ASMCMD> ls
Current.278.723200291
2)复制控制⽂件
先关闭两个节点.
export ORACLE_SID=jscn2
sqlplus / as sysdba
shutdown immediate;
--再到另外⼀个节点上.
export ORACLE_SID=jscn1
shutdown immediate
startup nomount;
exit
rman target /
restore controlfile to '+DATA/JSCN/l'  from  '+DATA/JSCN/controlfile/Current.263.768517111';
restore controlfile to '+DATA/JSCN/l'  from  '+DATA/JSCN/controlfile/Current.263.768517111';
⽤oracle⾃⾝的控制⽂件作为源恢复即可,相当于复制.
注意:restore后你⾃⼰命名的控制⽂件名如果是asm⾃动管理,可能名字不会按你命的名字来,在asmcmd中确认下正确的控制⽂件名,再更新到pfile中.
3)修改spfile⽂件,是新加的控制⽂件⽣效
sqlplus / as sysdba
create pfile='/home/a' from spfile;
修改/home/a
将controlfile修改为
*.control_files='+DATA/jscn/controlfile/current.260.768151761','+DATA/JSCN/l','+DATA/JSCN/l'
4)关闭数据库,以pfile启动,⽆需恢复
sqlplus / as sysdba
shutdown immediate;
startup pfile='/home/a'
create spfile from pfile='/home/a';
startup
5)由于更新操作只进⾏了⼀个节点,所以需要在另外节点上也更新spfile;否则报
ORA-01105: mount is incompatible with mounts by other instances
ORA-01104: number of control files (1) does not equal 3
export ORACLE_SID=jscn2
sqlplus / as sysdba
startup nomount;
create pfile='/home/a' from spfile;
shutdown immediate;
--修改pfile
startup pfile='/home/a' ;
create spfile from pfile='/home/a'
startup force;
如何从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.
4、执⾏存储过程,拷贝数据
BEGIN
dbms_py_file(source_directory_object      => 'SOURCE_DIR',                              source_file_name            => 'group_1.261.768151765',
destination_directory_object => 'ORACLE_DEST',
destination_file_name        => 'redo_1.log');
END;
/
5、验证⼀下
[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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。