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工具。

参考http://linux.net527.cn/fuwuqiyingyong/Oracle/2011/0504/41876.html

下面的方法是直接复制当前控制文件,方法是利用rman的restore命令.

1)查看现有的控制文件

export ORACLE_SID=+ASM1 asmcmd cd +DATA/JSCN/CONTROLFILE ASMCMD> ls Current.278.7232002912)复制控制文件

先关闭两个节点.

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/controlfile/control02.ctl' from '+DATA/JSCN/controlfile/Current.263.768517111'; restore controlfile to '+DATA/JSCN/controlfile/control03.ctl' from '+DATA/JSCN/controlfile/Current.263.768517111';用oracle自身的控制文件作为源恢复即可,相当于复制.
注意:restore后你自己命名的控制文件名如果是asm自动管理,可能名字不会按你命的名字来,在asmcmd中确认下正确的控制文件名,再更新到pfile中.

3)修改spfile文件,是新加的控制文件生效

sqlplus / as sysdba create pfile='/home/oracle/init.ora' from spfile; 修改/home/oracle/init.ora 将controlfile修改为 *.control_files='+DATA/jscn/controlfile/current.260.768151761','+DATA/JSCN/controlfile/control02.ctl','+DATA/JSCN/controlfile/control03.ctl'

4)关闭数据库,以pfile启动,无需恢复

sqlplus / as sysdba shutdown immediate; startup pfile='/home/oracle/init.ora' create spfile from pfile='/home/oracle/init.ora'; 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/oracle/init.ora' from spfile; shutdown immediate; --修改pfile startup pfile='/home/oracle/init.ora' ; create spfile from pfile='/home/oracle/init.ora' 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_file_transfer.copy_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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值