首页 >数据库 >mysql教程 >duplicate 数据库 from active database [oracle 11.2.0.3 asm

duplicate 数据库 from active database [oracle 11.2.0.3 asm

WBOY
WBOY原创
2016-06-07 14:51:032066浏览

参考自己博客的这个安装http://blog.csdn.net/ctypyb2002/article/details/51251217安装好另一台机器的rhel6.4,gi software,rdbms software。 创建一个 ASM 实例 用过asmca 创建了一个可用的磁盘组。 不要用DBCA创建数据库,因为要duplicate 数据库。只要安

参考自己博客的这个安装 http://blog.csdn.net/ctypyb2002/article/details/51251217 安装好另一台机器的rhel6.4,gi software,rdbms software。

创建一个 +ASM 实例 用过asmca 创建了一个可用的磁盘组。

不要用DBCA创建数据库,因为要duplicate 数据库。只要安装好 rdbms software 就OK了。



vi /etc/hosts 
10.1.1.35 asmnode
10.1.1.36 asmnodedup

在asmnode 节点 查看initdbasm.ora 文件 
[oracle@asmnode dbs]$ pwd
/u01/app/oracle/product/11.2.0/db_1/dbs
[oracle@asmnode dbs]$ ls -l
total 28
-rw-rw---- 1 oracle asmadmin 1544 Apr 25 21:49 hc_dbasm.dat
-rw-r----- 1 oracle oinstall   40 Apr 25 21:49 initdbasm.ora
-rw-r--r-- 1 oracle oinstall 2851 May 15  2009 init.ora
-rw-r----- 1 oracle asmadmin   24 Apr 25 21:06 lkDBASM

-rw-r----- 1 oracle oinstall 1536 Apr 25 21:06 orapwdbasm

[oracle@asmnode dbs]$ cat initdbasm.ora
SPFILE='+DG_DATA/dbasm/spfiledbasm.ora'


在asmnode 节点使用oracle用户创建参数文件abc.ora文件

[oracle@asmnode dbs]$ sqlplus / as sysdba;
sql>从内存中创建 pfile='?/dbs/abc.ora';

在 asmnodedup 节点创建 pfile 参数文件
导出 ORACLE_SID = dbasmd
[grid@asmnodedup dbs]$ vi /u01/app/grid/product/11.2.0/grid_1/dbs/initdbasmd.ora

audit_file_dest='/u01/app/oracle/admin/dbasmd/adump'
audit_trail='DB'
#background_dump_dest='/u01/app/oracle/diag/rdbms/dbasmd/dbasmd/trace' #弃用参数
#core_dump_dest='/u01/app/oracle/diag/rdbms/dbasmd/dbasmd/cdump'
#user_dump_dest='/u01/app/oracle/diag/rdbms/dbasmd/dbasmd/trace' #弃用参数
#control_files='+DG_DATA/DBASMD/CONTROLFILE/'
兼容='11.2.0.0.0'
db_block_size=8192
db_create_file_dest='+DG_DATA'
db_domain=''
db_name='dbasmd'
Diagnostic_dest='/u01/app/oracle'
调度程序='(协议= TCP)(服务= dbasmdXDB)'
log_buffer=7020544 # 日志缓冲区更新
内存_目标=1536M
open_cursors=300
Optimizer_dynamic_sampling=2
Optimizer_mode='ALL_ROWS'
plsql_warnings='DISABLE:ALL' # init.ora
处的 PL/SQL 警告 进程=300
会话=472
query_rewrite_enabled='TRUE'
Remote_login_passwordfile='独家'
resources_manager_plan=''
result_cache_max_size=3936K
Skip_unusable_indexes=TRUE
undo_tablespace='UNDOTBS1'
#db_file_name_convert=('+dg_data/dbasm/datafile/','+dg_data/dbasmd/datafile/')
#log_file_name_convert=('+dg_data/dbasm/onlinelog/','+dg_data/dbasmd/onlinelog/')


如果辅助是asm,只需要修改db_create_file_dest,不需要修改db_file_name_convert,log_file_name_convert

在 asmnodedup 节点创建需要的目录
mkdir -p /u01/app/oracle/admin/dbasmd/adump
mkdir -p /u01/app/oracle/diag/rdbms/dbasmd/dbasmd/trace
mkdir -p /u01/app/oracle/diag/rdbms/dbasmd/dbasmd/cdump

需要保证目标和辅助库的sys用户口令相同。
从asmnode拷贝原数据库的密码文件到asmnodedup节点oracle用户$ORACLE_HOME/dbs目录下,然后重命名

[oracle@asmnode dbs]$ scp /u01/app/oracle/product/11.2.0/db_1/dbs/orapwdbasm oracle@10.1.1.36:/u01/app/oracle/product/11.2.0/db_1/数据库
[oracle@asmnodedup dbs]$ mv orapwdbasm orapwdbasmd

或者在 asmnodedup 使用 orapw 创建一个和目标数据库的 sys 一样密码的密码文件。

在 asmnodedup 节点 grid 用户 用asmcd 查看一下
[grid@asmnodedup bin]$ ./asmcmd
ASMCMD> ls -l
State    Type    Rebal  Name
MOUNTED  EXTERN  N      DG_DATA/

静态监听,两个节点都要添加
asmnode 节点  grid 用户下添加静态监听
[grid@asmnodedup admin]$ vi /u01/app/grid/product/11.2.0/grid_1/network/admin/listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
       (SID_DESC =
          (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
          (SID_NAME =dbasm)
        )
  )

asmnodedup 节点  grid 用户下添加静态监听
[grid@asmnodedup admin]$ vi /u01/app/grid/product/11.2.0/grid_1/network/admin/listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
        (SID_DESC =
           (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
           (SID_NAME =dbasmd)
         )
  )

在 asmnode, asmnodedup 节点 重启监听,看如输出状态为 UNKNOWN 就表示静态监听已添加成功  
[grid@asmnodedup admin]$ lsnrctl stop
[grid@asmnodedup admin]$ lsnrctl start
Services Summary...
Service "dbasmd" has 1 instance(s).
  Instance "dbasmd", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

在 asmnode,asmnodedup 节点, oracle 用户下 添加 tnsnames.ora 文件
tns_dbasm =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = asmnode)(PORT = 1521))
    (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = dbasm)
    )
   )

tns_dbasmd =                 
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = asmnodedup)(PORT = 1521))
    (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = dbasmd)
    )

)  

在 asmnodedup 节点 oracle 用户  
[oracle@asmnodedup dbs]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.3.0 Production on Fri May 6 15:52:22 2016
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
SQL> conn / as sysdba;
Connected to an idle instance.
SQL> startup nomount pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initdbasmd.ora';
ORA-32006: BACKGROUND_DUMP_DEST initialization parameter has been deprecated
ORA-32006: USER_DUMP_DEST initialization parameter has been deprecated
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size    2228784 bytes
Variable Size  956304848 bytes
Database Buffers  637534208 bytes
Redo Buffers    7344128 bytes

前期没有屏蔽掉,就把 BACKGROUND_DUMP_DEST,USER_DUMP_DEST 这两个参数屏蔽掉,重新启动实例到 nomount 状态下
在 asmnodedup 节点 需要创建spfile,否则后面会报错 ORA-32001: write to SPFILE requested but no SPFILE is in use

SQL> create spfile from  pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initdbasmd.ora';

在 asmnodedup 节点 开始复制, auxiliary 需要启动到 nomount状态, 否则duplicate时就会报错
MAN-04006: error from auxiliary database: ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist


[oracle@asmnodedup dbs]$ rman target sys/oracle@tns_dbasm auxiliary sys/oracle@tns_dbasmd
Recovery Manager: Release 11.2.0.3.0 - Production on Fri May 6 16:12:29 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: DBASM (DBID=2252470157)
connected to auxiliary database: DBASMD (not mounted)
RMAN> duplicate target database to dbasmd from active database ;
Starting Duplicate Db at 06-MAY-16
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=10 device type=DISK

contents of Memory Script:
{
   sql clone "create spfile from memory";
}
executing Memory Script
sql statement: create spfile from memory
contents of Memory Script:
{
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script
Oracle instance shut down
connected to auxiliary database (not started)
Oracle instance started
Total System Global Area    1603411968 bytes
Fixed Size                     2228784 bytes
Variable Size                956304848 bytes
Database Buffers             637534208 bytes
Redo Buffers                   7344128 bytes
contents of Memory Script:
{
   sql clone "alter system set  control_files = 
  ''+DG_DATA/dbasmd/controlfile/current.271.911150235'' comment=
 ''Set by RMAN'' scope=spfile";
   sql clone "alter system set  db_name = 
 ''DBASM'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
   sql clone "alter system set  db_unique_name = 
 ''DBASMD'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
   shutdown clone immediate;
   startup clone force nomount
   backup as copy current controlfile auxiliary format  '+DG_DATA/dbasmd/controlfile/current.270.911150235';
   sql clone "alter system set  control_files = 
  ''+DG_DATA/dbasmd/controlfile/current.270.911150235'' comment=
 ''Set by RMAN'' scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
   alter clone database mount;
}
执行内存脚本
sql语句:alter system set control_files = ''+DG_DATA/dbasmd/controlfile/current.271.911150235'' comment= ''由RMAN设置''scope=spfile
sql 语句:alter system set db_name = ''DBASM'' comment= ''由 RMAN 重复修改''scope=spfile
sql 语句:alter system set db_unique_name = ''DBASMD'' comment= ''由 RMAN 重复修改''scope=spfile
Oracle 实例关闭
Oracle 实例已启动
系统全局区域总计 1603411968 字节
固定大小                     2228784 字节
可变大小                956304848 字节
数据库缓冲区             637534208 字节
重做缓冲区                   7344128 字节
2016 年 5 月 6 日开始备份
分配的通道:ORA_DISK_1
通道 ORA_DISK_1: SID=255 设备类型=DISK
通道 ORA_DISK_1:开始数据文件复制
复制当前控制文件
输出文件名=/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_dbasm.f tag=TAG20160506T171250 RECID=4 STAMP=911149970
通道 ORA_DISK_1:数据文件复制完成,已用时间:00:00:03
于 2016 年 5 月 6 日完成备份
sql语句:alter system set control_files = ''+DG_DATA/dbasmd/controlfile/current.270.911150235'' comment= ''RMAN设置''scope=spfile
Oracle 实例关闭
连接到辅助数据库(未启动)
Oracle 实例已启动
系统全局区域总计 1603411968 字节
固定大小                     2228784 字节
可变大小                956304848 字节
数据库缓冲区             637534208 字节
重做缓冲区                   7344128 字节
数据库已安装
内存脚本的内容:
{
   将克隆数据文件 1 的新名称设置为新;
   将克隆数据文件 2 的新名称设置为 new;
   将克隆数据文件 3 的新名称设置为新;
   将克隆数据文件 4 的新名称设置为 new;
   备份作为副本重用
   数据文件 1 个辅助格式新
   数据文件 2 辅助格式新
   数据文件 3 辅助格式新
   数据文件 4 辅助格式新
   ;
   sql '改变系统归档日志当前';
}
执行内存脚本
执行命令:SET NEWNAME
执行命令:SET NEWNAME
执行命令:SET NEWNAME
执行命令:SET NEWNAME
2016 年 5 月 6 日开始备份
使用通道 ORA_DISK_1
通道 ORA_DISK_1:开始数据文件复制
输入数据文件文件编号=00003名称=+DG_DATA/dbasm/datafile/undotbs1.262.910127191
输出文件名=+DG_DATA/dbasmd/datafile/undotbs1.269.911150263 标签=TAG20160506T171309
通道 ORA_DISK_1:数据文件复制完成,已用时间:00:00:15
通道 ORA_DISK_1:开始数据文件复制
输入数据文件文件编号=00001名称=+DG_DATA/dbasm/datafile/system.260.910127185
输出文件名=+DG_DATA/dbasmd/datafile/system.268.911150279 标签=TAG20160506T171309
通道 ORA_DISK_1:数据文件复制完成,已用时间:00:00:07
通道 ORA_DISK_1:开始数据文件复制
输入数据文件文件编号=00002名称=+DG_DATA/dbasm/datafile/sysaux.261.910127189
输出文件名=+DG_DATA/dbasmd/datafile/sysaux.267.911150285 标签=TAG20160506T171309
通道 ORA_DISK_1:数据文件复制完成,已用时间:00:00:07
通道 ORA_DISK_1:开始数据文件复制
输入数据文件文件编号=00004名称=+DG_DATA/dbasm/datafile/users.264.910127201
输出文件名=+DG_DATA/dbasmd/datafile/users.266.911150293 标签=TAG20160506T171309
通道 ORA_DISK_1:数据文件复制完成,已用时间:00:00:02
于 2016 年 5 月 6 日完成备份
sql语句:alter system archive log current
内存脚本的内容:
{
   备份作为副本重用
   归档日志如“+DG_DATA/dbasm_archivelog/1_83_910127181.dbf”辅助格式
 “/u01/app/oracle/product/11.2.0/db_1/dbs/arch1_83_910127181.dbf” ;
   目录克隆归档日志“/u01/app/oracle/product/11.2.0/db_1/dbs/arch1_83_910127181.dbf”;
   切换全部克隆数据文件;
}
执行内存脚本
2016 年 5 月 6 日开始备份
使用通道 ORA_DISK_1
通道 ORA_DISK_1:开始归档日志副本
输入归档日志线程=1 序列=83 RECID=2 STAMP=911150020
输出文件名=/u01/app/oracle/product/11.2.0/db_1/dbs/arch1_83_910127181.dbf RECID=0 STAMP=0
通道 ORA_DISK_1:归档日志复制完成,已用时间:00:00:01
于 2016 年 5 月 6 日完成备份
编目存档日志
归档日志文件名=/u01/app/oracle/product/11.2.0/db_1/dbs/arch1_83_910127181.dbf RECID=2 STAMP=911150294
数据文件 1 切换到数据文件副本
输入数据文件副本 RECID=4 STAMP=911150294 文件名=+DG_DATA/dbasmd/datafile/system.268.911150279
数据文件 2 切换到数据文件副本
输入数据文件副本 RECID=5 STAMP=911150294 文件名=+DG_DATA/dbasmd/datafile/sysaux.267.911150285
数据文件 3 切换到数据文件副本
输入数据文件副本 RECID=6 STAMP=911150294 文件名=+DG_DATA/dbasmd/datafile/undotbs1.269.911150263
数据文件 4 切换到数据文件副本
输入数据文件副本 RECID=7 STAMP=911150294 文件名=+DG_DATA/dbasmd/datafile/users.266.911150293
内存脚本的内容:
{
   设置直到 scn 1436619;
   恢复
   克隆数据库
    删除存档日志
   ;
}
执行内存脚本
执行命令:SET Until 子句
2016 年 5 月 6 日开始恢复
分配的通道:ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=13 设备类型=DISK
开始媒体恢复
序列号为 83 的线程 1 的归档日志已作为文件 /u01/app/oracle/product/11.2.0/db_1/dbs/arch1_83_910127181.dbf
存储在磁盘上 归档日志文件名=/u01/app/oracle/product/11.2.0/db_1/dbs/arch1_83_910127181.dbf thread=1 sequence=83
媒体恢复完成,已用时间:00:00:00
于 2016 年 5 月 6 日完成恢复
Oracle 实例已启动
系统全局区域总计 1603411968 字节
固定大小                     2228784 字节
可变大小                956304848 字节
数据库缓冲区             637534208 字节
重做缓冲区                   7344128 字节
内存脚本的内容:
{
   sql 克隆“更改系统集 db_name =
 ''DBASMD'' 评论=
 ''通过 RMAN 重置为原始值''scope=spfile";
   sql克隆“改变系统重置db_unique_name范围= spfile”;
   立即关闭克隆;
   启动克隆 nomount;
}
执行内存脚本
sql 语句: alter system set db_name = ''DBASMD'' comment= ''通过 RMAN 重置为原始值''scope=spfile
sql语句:alter system reset db_unique_namescope=spfile
Oracle 实例关闭
连接到辅助数据库(未启动)
Oracle 实例已启动
系统全局区域总计 1603411968 字节
固定大小                     2228784 字节
可变大小                956304848 字节
数据库缓冲区             637534208 字节
重做缓冲区                   7344128 字节
sql 语句:CREATE CONTROLFILE REUSE SET DATABASE "DBASMD" RESETLOGS ARCHIVELOG
  最大日志文件数     16
  最大日志成员      3
  最大数据文件数      100
  最大实例数     8
  最大日志历史      292
 日志文件
  第 1 组大小 50 M,
  第 2 组,大小 50 M,
  第 3 组,大小 50 M
 数据文件
  '+DG_DATA/dbasmd/datafile/system.268.911150279'
 字符集ZHS16GBK

内存脚本的内容:
{
   将克隆临时文件 1 的新名称设置为新;
   切换全部克隆临时文件;
   目录克隆数据文件复制“+DG_DATA/dbasmd/datafile/sysaux.267.911150285”,
 “+DG_DATA/dbasmd/datafile/undotbs1.269.911150263”,
 “+DG_DATA/dbasmd/datafile/users.266.911150293”;
   切换全部克隆数据文件;
}
执行内存脚本
执行命令:SET NEWNAME
在控制文件中将临时文件 1 重命名为 +DG_DATA
编目数据文件副本
数据文件复制文件名=+DG_DATA/dbasmd/datafile/sysaux.267.911150285 RECID=1 STAMP=911150313
编目数据文件副本
数据文件复制文件名=+DG_DATA/dbasmd/datafile/undotbs1.269.911150263 RECID=2 STAMP=911150313
编目数据文件副本
数据文件复制文件名=+DG_DATA/dbasmd/datafile/users.266.911150293 RECID=3 STAMP=911150313
数据文件 2 切换到数据文件副本
输入数据文件副本 RECID=1 STAMP=911150313 文件名=+DG_DATA/dbasmd/datafile/sysaux.267.911150285
数据文件 3 切换到数据文件副本
输入数据文件副本 RECID=2 STAMP=911150313 文件名=+DG_DATA/dbasmd/datafile/undotbs1.269.911150263
数据文件 4 切换到数据文件副本
输入数据文件副本 RECID=3 STAMP=911150313 文件名=+DG_DATA/dbasmd/datafile/users.266.911150293
内存脚本的内容:
{
   更改克隆数据库打开重置日志;
}
执行内存脚本
数据库已打开
于 2016 年 5 月 6 日完成重复数据库


至此,复制完成,用sqlplus登陆
[oracle@asmnodedup bin]$ sqlplus / as sysdba;
SQL*Plus:2016 年 5 月 9 日星期一 16:55:37 发布 11.2.0.3.0 产品
版权所有 (c) 1982、2011,Oracle。  保留所有权利。
连接到:
Oracle Database 11g 企业版版本 11.2.0.3.0 - 64 位生产
具有分区、自动存储管理、OLAP、数据挖掘
和真实应用程序测试选项

SQL> 从 Dual 中选择 sysdate;

系统日期
------------
2016 年 5 月 9 日


至此重复数据库完成

本质上重复还可以有一些灵活的格式,但是从活动数据库只需是辅助数据库在nomount状态。

RMAN> 将目标数据库从活动数据库复制到 dbasmd ;

RMAN>奔跑{   
 将目标数据库复制到 dbasmd
PFILE ?/dbs/initdbasmd.ora
来自活动数据库;

}

/****************************************************** *****************************/

下面记录的是一些错误及处理方法
第一次duplicate 完成后用sqlplus 验证
[oracle@asmnodedup ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.3.0 Production on Mon May 9 16:00:18 2016
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
SQL> conn / as sysdba;
ERROR:
ORA-01075: you are currently logged on
SQL> 

查看alert 日志

ORA-01565: Unable to open Spfile /u01/app/oracle/product/11.2.0/db_1/dbs/spfiledbasmd.ora.
Errors in file /u01/app/oracle/diag/rdbms/dbasmd/dbasmd/trace/dbasmd_mmon_13799.trc:
ORA-01565: error in identifying file '/u01/app/oracle/product/11.2.0/db_1/dbs/spfiledbasmd.ora'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-01565: Unable to open Spfile /u01/app/oracle/product/11.2.0/db_1/dbs/spfiledbasmd.ora.
Errors in file /u01/app/oracle/diag/rdbms/dbasmd/dbasmd/trace/dbasmd_mmon_13799.trc:
ORA-01565: error in identifying file '/u01/app/oracle/product/11.2.0/db_1/dbs/spfiledbasmd.ora'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

查看 dbasmd_mmon_13799.trc 文件
[oracle@asmnodedup trace]$ cat /u01/app/oracle/diag/rdbms/dbasmd/dbasmd/trace/dbasmd_mmon_13799.trc

*** 2016-05-09 12:39:03.508
dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x0, level=0, mask=0x0)
----- Error Stack Dump -----
ORA-01565: error in identifying file '/u01/app/oracle/product/11.2.0/db_1/dbs/spfiledbasmd.ora'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Info for error 1565 while doing parameter updates.

貌似是 $ORACLE_HOME/dbs/spfiledbasmd.ora 文件不存在,参考这个哥们的文章删掉实例 http://blog.itpub.net/519536/viewspace-669393/ 
启动实例到nomount状态

[oracle@asmnodedup dbs]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.3.0 Production on Mon May 9 16:19:00 2016
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
SQL> conn / as sysdba;
Connected to an idle instance.
SQL> startup nomount pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initdbasmd.ora';
ORACLE instance started.
Total System Global Area 1603411968 bytes
Fixed Size    2228784 bytes
Variable Size  956304848 bytes
Database Buffers  637534208 bytes
Redo Buffers    7344128 bytes
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 16035
Session ID: 246 Serial number: 1

查看 alert 日志
Mon May 09 16:19:51 2016
alter database mount
Mon May 09 16:19:51 2016
NOTE: Loaded library: System 
ORA-15025: could not open disk "/dev/asm-diskb1"
ORA-27041: unable to open file
Linux-x86_64 Error: 13: Permission denied
Additional information: 9
ORA-15025: could not open disk "/dev/asm-diskb3"
ORA-27041: unable to open file
Linux-x86_64 Error: 13: Permission denied
Additional information: 9
Mon May 09 16:19:51 2016
SUCCESS: diskgroup DG_DATA was mounted
Mon May 09 16:19:51 2016
ERROR: failed to establish dependency between database dbasmd and diskgroup resource ora.DG_DATA.dg
Errors in file /u01/app/oracle/diag/rdbms/dbasmd/dbasmd/trace/dbasmd_ckpt_16011.trc  (incident=144111):
ORA-00600: internal error code, arguments: [kfioTranslateIO03], [], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/app/oracle/diag/rdbms/dbasmd/dbasmd/incident/incdir_144111/dbasmd_ckpt_16011_i144111.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Errors in file /u01/app/oracle/diag/rdbms/dbasmd/dbasmd/trace/dbasmd_ckpt_16011.trc  (incident=144112):
ORA-00600: internal error code, arguments: [17090], [], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/app/oracle/diag/rdbms/dbasmd/dbasmd/incident/incdir_144112/dbasmd_ckpt_16011_i144112.trc
2016 年 5 月 9 日星期一 16:19:53
正在将诊断数据转储到目录=[cdmp_20160509161953]中,请求者为(instance=1,osid=16011 (CKPT)),summary=[incident=144111]。
使用 ADRCI 或支持工作台打包事件。
有关错误和打包详细信息,请参阅 My Oracle Support 中的注释 411.1。
错误:ASM I/O 路径中引发不可恢复的错误 ORA-600;终止进程 16011
正在将诊断数据转储到目录=[cdmp_20160509161954]中,请求者为(instance=1,osid=16011 (CKPT)),summary=[incident=144112]。
2016 年 5 月 9 日星期一 16:19:54
PMON(ospid:15989):由于错误469而终止实例
(instance=1, osid=15989 (PMON)) 请求的系统状态转储,summary=[异常实例终止]。
系统状态转储到跟踪文件 /u01/app/oracle/diag/rdbms/dbasmd/dbasmd/trace/dbasmd_diag_15999.trc
正在将诊断数据转储到目录=[cdmp_20160509161955]中,请求者为(instance=1, osid=15989 (PMON)),summary=[实例异常终止]。
实例被 PMON 终止,pid = 15989


关键错误
ORA-15025: 无法打开磁盘“/dev/asm-diskb1”
ORA-27041: 无法打开文件
Linux-x86_64 错误:13:权限被拒绝

在网上搜索说是oracle用户下的这个文件$ORACLE_HOME/bin/oracle的权限导致的

[oracle@asmnodedup bin]$ ls -l
-rwxr-x--x 1 oracle oinstall 232399123 4 月 25 日 18:37 oracle
oracle 用户 $ORACLE_HOME/bin/oracle 这个文件的权限应该是这样
[oracle@asmnodedup bin]$ ls -l | grep -i asmadmin

-rwsr-s--x 1 oracle asmadmin 232399123 4 月 25 日 18:37 oracle
在root用户下修改相应的权限。

语法:chmod [who] [+ | - | =] [模式] 文件名
命令中各选项的含义为:

操作对象但是注意到字母中的任一个或者它们的组合:
  u 表示“用户(user)”,即文件或目录的所有者。
  g 表示“同组(组)用户”,即与文件属主有相同组ID的所有用户。
  o 表示“其他(others)用户”。
  a 表示“所有(all)用户”。它是系统默认值。
操作符号可以是:
  + 添加某个权限。
  - 取消某个权限。
  = 赋予给定权限并取消其他所有权限(如果有的话)。
设置 mode 所表示的权限可用下述字母的任意组合:
  r 可读。
  w 可写。
   x 可执行。
  X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
  s 在文件执行时把进程的属主或组ID置为该文件的文件属主。
      方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
  t 保存程序的文本到交换设备上。
  u 与文件属主拥有一样的权限。
  g 与和文件属主同组的用户拥有一样的权限。
  o 与其他用户拥有一样的权限。
文件名:以空格分开的要改变权限的文件列表,支持通配符。

/****************************************************** *****************************/
把duplicate 数据库删除,想重新操作一遍时又碰到如下这些错误

1) 
[oracle@asmnodedup dbs]$ rman target sys/oracle@tns_dbasm auxiliary sys/oracle@tns_dbasmd
Recovery Manager: Release 11.2.0.3.0 - Production on Sat May 7 11:13:32 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: DBASM (DBID=2252470157)
connected to auxiliary database: DBASMD (not mounted)
RMAN> duplicate target database to dbasmd from active database ;
Starting Duplicate Db at 07-MAY-16
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=12 device type=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 05/07/2016 11:13:52
RMAN-05501: aborting duplication of target database
RMAN-06136: ORACLE error from auxiliary database: ORA-03113: end-of-file on communication channel
Process ID: 30689
Session ID: 10 Serial number: 15

查看数据库的alert 日志,发下如下错误
Sat May 07 11:30:05 2016
Sweep [inc][98572]: completed
Sweep [inc][98571]: completed
Sweep [inc2][98572]: completed
Sweep [inc2][98571]: completed
Sat May 07 11:30:10 2016
SUCCESS: diskgroup DG_DATA was dismounted
Sat May 07 11:33:05 2016
ORA-15025: could not open disk "/dev/asm-diskb1"
ORA-27041: unable to open file
Linux-x86_64 Error: 13: Permission denied
Additional information: 9
ORA-15025: could not open disk "/dev/asm-diskb3"
ORA-27041: unable to open file
Linux-x86_64 Error: 13: Permission denied
Additional information: 9
Sat May 07 11:33:05 2016
SUCCESS: diskgroup DG_DATA was mounted
Errors in file /u01/app/oracle/diag/rdbms/dbasmd/dbasmd/trace/dbasmd_ora_4735.trc  (incident=98573):
ORA-00600: internal error code, arguments: [kfioTranslateIO03], [], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/app/oracle/diag/rdbms/dbasmd/dbasmd/incident/incdir_98573/dbasmd_ora_4735_i98573.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Errors in file /u01/app/oracle/diag/rdbms/dbasmd/dbasmd/trace/dbasmd_ora_4735.trc  (incident=98574):
ORA-00600: internal error code, arguments: [17090], [], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/app/oracle/diag/rdbms/dbasmd/dbasmd/incident/incdir_98574/dbasmd_ora_4735_i98574.trc
Sat May 07 11:33:07 2016
Dumping diagnostic data in directory=[cdmp_20160507113307], requested by (instance=1, osid=4735), summary=[incident=98573].
Sat May 07 11:33:08 2016
Sweep [inc][98574]: completed
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Dumping diagnostic data in directory=[cdmp_20160507113308], requested by (instance=1, osid=4735), summary=[incident=98574].
Sweep [inc][98573]: completed
Sweep [inc2][98574]: completed
Sweep [inc2][98573]: completed
ERROR: unrecoverable error ORA-600 raised in ASM I/O path; terminating process 4735 
Sat May 07 11:33:19 2016
SUCCESS: diskgroup DG_DATA was dismounted

也是 oracle 用户下$ORACLE_HOME/bin/oracle  的授权问题。

[root@asmnodedup ~]# chown oracle:asmadmin /u01/app/oracle/product/11.2.0/db_1/bin/oracle
[root@asmnodedup ~]# chown u+s /u01/app/oracle/product/11.2.0/db_1/bin/oracle
[root@asmnodedup ~]# chown g+s /u01/app/oracle/product/11.2.0/db_1/bin/oracle

2)
[oracle@asmnodedup ~]$ rman 目标 sys/oracle@tns_dbasm 辅助 sys/oracle@tns_dbasmd
恢复管理器:版本 11.2.0.3.0 - 2016 年 5 月 7 日星期六 12:14:23 发布
版权所有 (c) 1982、2011,Oracle 和/或其附属公司。  保留所有权利。
连接到目标数据库:DBASM (DBID=2252470157)
RMAN-00571:================================================== =============
RMAN-00569: =============== 错误消息堆栈如下 ===============
RMAN-00571:================================================== =============
RMAN-00554:内部恢复管理器包初始化失败
RMAN-04006:辅助数据库错误:ORA-12537:TNS:连接已关闭

看错误提示应该是辅助数据库的问题,检查了静态监听和tns,没发现什么问题
使用rman的debug看看是哪个错误了。
rman 目标 sys/oracle@tns_dbasm 辅助 sys/oracle@tns_dbasmd 调试

DBGRCV:     已退出 krmkgetdb,状态为 1
RMAN-06005:连接到目标数据库:DBASM (DBID=2252470157)
DBGRPC:     krmxt - 终止 krmx 层
DBGRPC:    krmxt - 销毁通道默认上下文
DBGRPC:    krmxcd - 删除通道默认上下文,keep=0
DBGRPC:     krmxcd - 关闭目标默认连接
DBGMISC:已输入 krmkmrsr [12:32:54.731]
DBGSQL:      已输入 krmkosqlerr

分开测试连接,发现辅助的数据库连不上
[oracle@asmnodedup dbs]$ rman 目标 sys/oracle@tns_dbasm
恢复管理器:版本 11.2.0.3.0 - 2016 年 5 月 7 日星期六 13:05:32 发布
版权所有 (c) 1982、2011,Oracle 和/或其附属公司。  保留所有权利。
连接到目标数据库:DBASM (DBID=2252470157)
RMAN>退出
恢复管理器已完成。
[oracle@asmnodedup dbs]$ rman 目标 sys/oracle@tns_dbasmd
恢复管理器:版本 11.2.0.3.0 - 于 2016 年 5 月 7 日星期六 13:05:40 发布
版权所有 (c) 1982、2011,Oracle 和/或其附属公司。  保留所有权利。
RMAN-00571:================================================== =============
RMAN-00569: =============== 错误消息堆栈如下 ===============
RMAN-00571:================================================== =============
RMAN-00554:内部恢复管理器包初始化失败
RMAN-04005:来自目标数据库的错误:
ORA-12537:TNS:连接已关闭

现在问题就定位到辅助数据库的ORA-12537: TNS:connection closeed


查看监听日志时发现
 type='未知' level='16' host_id='asmnodedup'
 host_addr='10.1.1.36'>
 2016 年 5 月 7 日 13:19:10 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=dbasmd)(CID=(PROGRAM=rman@asmnodedup)(HOST=asmnodedup)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.1.1.36)(PORT=54429)) * 建立 * dbasmd * 12518
 


 type='未知' level='16' host_id='asmnodedup'
 host_addr='10.1.1.36'>
 TNS-12518:TNS:侦听器无法切换​​客户端连接
 TNS-12547:TNS:失去联系
  TNS-12560:TNS:协议适配器错误
   TNS-00517:失去联系
    Linux 错误:32:管道损坏
 



同时看 lsnrctl servives
服务“dbasmd”有 2 个实例。
  实例“dbasmd”,状态未知,有 1 个用于此服务的处理程序...
    处理者:
      “DEDICATED”成立:0 拒绝:8
         本地服务器

尝试下删除监听,创建新监听,看看不行。

参考 MOS 的文章
'ORA-12537: TNS:connection closed' Errors Connecting To Oracle11g R1 on Linux via Oracle Net (文档 ID 733737.1)
ORA-12537 / ORA-12547 or TNS-12518 if Listener (including SCAN Listener) and Database are Owned by Different OS User (文档 ID 1069517.1)
Local SQL*Plus Connection and DBCA Fails With: ORA-12547: TNS:Lost Contact (文档 ID 422173.1)

/*************************************/
The output should show the correct permission which is:
-rwsr-s--x 1 oracle asmadmin

If not, then please execute the following to correct the permissions:
$ cd $ORACLE_HOME/bin
# chmod 6751 oracle
$ ls -l oracle
/*************************************/
在root下执行了 chmod 6751 oracle 终于解决了 Linux Error: 32: Broken pipe 问题。

第二个问题是第一个问题的延续
正确的文件权限如下:
[grid@asmnodedup ~]$ ls -l $ORACLE_HOME/bin/oracle
-rwsr-s--x 1 grid oinstall 203972157 Apr 25 18:28 /u01/app/grid/product/11.2.0/grid_1/bin/oracle

[oracle@asmnodedup ~]$ ls -l $ORACLE_HOME/bin/oracle
-rwsr-s--x 1 oracle asmadmin 232399123 Apr 25 18:37 /u01/app/oracle/product/11.2.0/db_1/bin/oracle

期间又发现日志里有这个warning信息
 type='UNKNOWN' level='16' host_id='asmnodedup'
 host_addr='10.1.1.36'>
 WARNING: Subscription for node down event still pending
 



在listener.ora里关掉
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF

参考资料:
https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=185921272425489&parent=DOCUMENT&sourceId=1069517.1&id=422173.1&_afrWindowMode=0&_adf.ctrl-state=65f0ft0n8_159

http://blog.itpub.net/23135684/viewspace-675750
http://www.xifenfei.com/2012/11/subscription-for-node-down-event-still-pending.html
https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=125862473784830&parent=DOCUMENT&sourceId=557416.1&id=785742.1&_afrWindowMode=0&_adf.ctrl-state=14d5znhipy_267#SYMPTOM
https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=126099153728478&id=550859.1&_afrWindowMode=0&_adf.ctrl-state=14d5znhipy_329
https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=167079149612905&id=549932.1&_afrWindowMode=0&_adf.ctrl-state=yk1fw9zy0_134

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn