DG搭建、RAC搭建、RMAN恢复、EX/IMPDP中遇到的问题及解决方法
- 前言
- 一、DG搭建(主要是duplicate)
- 1.duplicate报错ORA-17629、ORA-17627、ORA-17629
- 2.duplicate报错ORA-19505、ORA-27037
- 3.DG不同步ORA-16191: Primary log shipping client not logged on standby
- 4.配置DG环境,主备库tnsping不通
- 5.duplicate报RMAN-05001路径冲突错误
- 6.duplicate成功但是复制到备库的文件名不对
- 7.duplicate数据文件复制结束,但是有报错RMAN-06136: ORACLE error from auxiliary database: ORA-03113: end-of-file on communication channel
- 8.duplicate数据文件复制结束后无法open数据库,提示需要恢复。
- 9.RMAN连接从库报错ORA-01031
- 10.RMAN连接从库报错ORA-01017用户名口令无效登录被拒绝
- 二、RMAN
- 三、DG
前言
实际操作过程中会遇到很多问题,在解决问题的过程中会发现有些问题是自己的操作方法有误,有的可能是oracle本身的问题,有些还无法求证是什么原因,在这里把目前出现的问题和解决方法记录一下。
一、DG搭建(主要是duplicate)
1.duplicate报错ORA-17629、ORA-17627、ORA-17629
问题描述:主库是RAC双节点,我是在节点一上操作的,一切配置都在节点一上。配置完成后主库和备库可以联通rman target auxiliary成功后,执行duplicate报错。
解决方法:如果主库环境是RAC,在配置主库tns的时候两个节点都要做相同tns配置,可以在节点一上配置成功,主备互相tnsping通之后,再把节点一的tns配置复制到节点二,节点二与备库tnsping通即可。
问题原因:未知
2.duplicate报错ORA-19505、ORA-27037
问题描述:主库是RAC双节点,我是在节点一上操作的,一切配置都在节点一上。配置完成后主库和备库可以联通rman target auxiliary成功后,执行duplicate报错。报错提示$ORACLE_HOME/dbs路径下没有节点二orapehis432密码文件,我是从节点一duplicate的,为什么会要节点二的密码文件。
解决方法:将节点一的orapwhis43一复制一份重命名成orapehis432后,重新开始duplicate即可。
问题原因:未知
3.DG不同步ORA-16191: Primary log shipping client not logged on standby
问题描述:duplicate备库数据复制完成,配置备库与主库同步的时候,主库v$archive_dest报错
解决方法:
问题原因:
1.主备库log_archive_dest_2参数配置问题。
2.主备库fal_server和fal_client参数配置问题。
2.看一下主备库密码文件的用户和权限。如果rman连不上备库就用orapwd重置一下密码文件
4.配置DG环境,主备库tnsping不通
问题描述:
解决方法:
问题原因:
1.主备库防火墙没关。
2.主要会出问题的一般是主备库的tns和监听,配置的时候一定要仔细,备库配置完记得重启监听。
5.duplicate报RMAN-05001路径冲突错误
问题描述:
解决方法:duplicate加上nofilenamecheck参数。
问题原因:主备库的文件目录相同,导致文件名冲突。
6.duplicate成功但是复制到备库的文件名不对
问题描述:例如:复制到备库后正确的文件名应该是/u01/oradata/oracle/KYEECIS.DBF 但实际却变成了/u01/oradata/oracleKYEECIS.DBF
解决方法:db_file_name_convert参数备库数据文件路径oracle后面要加/
问题原因:db_file_name_convert参数文件路径要写完整D:\APP\ADMINISTRATOR\ORADATA\ORACLE, /u01/oradata/oracle/ 不能写成D:\APP\ADMINISTRATOR\ORADATA\ORACLE, /u01/oradata/oracle
提示:不管是windows还是linux,数据文件路径要从v$datafile里面去看,不要想当然。
7.duplicate数据文件复制结束,但是有报错RMAN-06136: ORACLE error from auxiliary database: ORA-03113: end-of-file on communication channel
问题描述:RAC到单节点duplicate复制数据库
解决方法:修改log_file_name_convert参数路径。
问题原因:log_file_name_convert参数配置有误,主库是RAC环境,所以主库的redolog是在asm中,修改log_file_name_convert参数路径。
8.duplicate数据文件复制结束后无法open数据库,提示需要恢复。
问题描述:这个问题完全就是因为我操作有误造成的,用户只是要一个测试库,不用搭建DG,然而我是用duplicate的时候使用了duplicate target database for standby from active database;命令,把测试库做成了一个备库。所以在上面的图中,我在将主库的归档拷贝过来的情况下,不能直接recover。还是只能用备库的应用日志命令,并且在这之前还要加一个standby redolog。
解决方法:使用duplicate target database to dbcs from active database;命令搭建测试库。
问题原因:我是大**
9.RMAN连接从库报错ORA-01031
问题描述:从主库连接从库报错,连接之前已经将主库的密码文件复制到从库了,但是还是报错。
解决方法:然后从库用orapwd重写一个密码文件就可以了
问题原因:未知
10.RMAN连接从库报错ORA-01017用户名口令无效登录被拒绝
问题描述:主库rman连接从库,提示从库用户名密码错误,各种找原因,主库复制密码文件到从库、orapwd修改从库密码都无效
解决方法:尝试在从库上就行主库和从库的rman连接,虽然rman可以连接主库和从库,但是执行duplicate的时候提示找不到从库的密码文件,这就很奇怪。
问题原因:原来是因为主库是linux备库是windows,密码文件复制到从库改过密码文件名后要加上.ora的文件后缀名。。。。。
问题描述:windows 11.2.0.1主库duplicate到linux 11.2.0.4报错
解决方法:备库只能使用rman备份恢复搭建,不能使用duplicate
问题原因:RMAN Duplicate Database from Active Primary fails with Ora-17627: Ora-12577: Message 12577 Not Found; Product=Rdbms; Facility=Ora (文档 ID 1344615.1)可能是不一致的word size导致的:
问题描述:
解决方法:
问题原因:
问题描述:
解决方法:
问题原因:
问题描述:
解决方法:
问题原因:
二、RMAN
1.catalog备份集报找不到文件
问题描述:备份集在根目录下的/backup中,备份集我也确实从主库拷贝过来了,backup文件夹和里面的备份文件都给了oracle:oinstall权限,我甚至给了777权限,还是没用。
解决方法:然而我把backup中的文件全都移动到/u01/bak目录下就可以注册了。
问题原因:未知,可能是权限问题吧。
2.rman恢复结束报ORA-01511、ORA-01516
ORA-00392、ORA-00312
问题描述:源库是windows系统,目标库是linux系统,open resetlogs目标库报错
解决方法:恢复之前提前设置log_file_name_convert参数,或者恢复之后重新rename一下redolog name
问题原因:
问题描述:接上一个报错,rename之后open resetlogs还是打不开
解决方法:alter database clear logfile group 3;载重新尝试open resetlogs
问题原因:
注:如果源库是RAC环境,redolog在asm中路径是+data的话,尝试上面的方法都不可行的话,可以尝试一下重建控制文件,在控制文件中重新写redolog。
ORA-00349
问题描述:这个报错出现在linux rac到linux单机的恢复过程中,在执行过recover database using backup controlfile until cancel;后resetlogs打不开数据库,发现日志组路径不对。
解决方法:重建控制文件
问题原因:可能是recover的时候有问题,具体原因还不知道。
ORA-38856
问题描述:rac到单节点恢复,重建控制文件后,无法resetlogs
解决方法:alter system set “_no_recovery_through_resetlogs”=true scope=spfile; 重新resetlogs
问题原因:
问题描述:
解决方法:
问题原因:
问题描述:
解决方法:
问题原因:
三、DG
1.主库归档无法传输到备库,但是主备库connect又可以连接,主库查归档传输报错ORA-01033
问题描述:linux,11.2.0.3,DG备库可以打开,但是主库归档无法传输到备库
解决方法:密码文件,一开始用的是节点一的密码文件报错,然后换了节点二的密码文件就好了,很神奇
问题原因:未知,有时候密码的问题就是很神奇,替换了密码文件不行,orapwd就行,
2.ORA-16057、ORA-12514
先报错:
SQL> select error from v$archive_dest where dest_id=3;
ERROR
-----------------------------------------------------------------
ORA-16057: server not in Data Guard configuration
后报错:
ORA-12514: TNS:listener does not currently know of service
requested in connect descriptor
问题描述:原环境是一个RAC主库带两个单机DG备库,后将RAC主库用DG切到其中一台单节点备库上运行,切换完成后需要将原RAC主库和另外一台单机DG转换成新主库的DG。因为RAC在切换之前就做好配置了所以很顺利的转成了备库数据同步也正常。但是另外一台单机DG转换成新单机主库的第二台备库时出现了以上报错。
解决方法:第一个报错一开始以为是log_archive_config的配置问题但是三个库的配置都是一样的,单机备库实例也重启过也没用,然后重置一下log_archive_dest_state_3='enable’就行了。第二个报错reload 一下dg监听就行了。
问题原因:
2.ORA-12528:主库是RAC备库是单机做了主备库切换后,新rac备库无法与新单机主库同步数据
SQL> select error from v$archive_dest where dest_id=2;
error
-----------------------------------------------------------------
ORA-12528: TNS:listener: all appropriate instances are blocking new connections
问题描述:rac切换到单机备库后,新rac备库无法与新单机主库同步数据tnsping互相都通。
解决方法:新rac备库两个节点用oracle加个本地监听,配置静态监听
问题原因:
3.ORA-19563: header validation failed for file
问题描述:用duplicate从linux到windows复制数据库,文件复制结束报错
解决方法:修改主库数据文件名,防止传输到windows后出现同名文件
问题原因:linux到windows数据文件名会从小写转换为大写,导致数据文件传输到windows后出现同名数据文件。