[Oracle datagard]从库恢复之 ORA-16032: parameter ORA-07286:问题

来源:互联网 发布:同轴和网络监控哪个好 编辑:程序博客网 时间:2024/05/16 08:55

机房断电,所以oracle的datagard的从库需要重新启动:


1 登录sqlplus启动,出现报错信息:

SQL> STARTUP MOUNT;

ORA-16032: parameter LOG_ARCHIVE_DEST_3 destination string cannot be translated
ORA-07286: sksagdi: cannot obtain device information.
Linux-x86_64 Error: 2: No such file or directory


2 去查看找下LOG_ARCHIVE_DEST_3 的具体路径

[root@localhost ~]# su - oracle 
[oracle@localhost ~]$ echo $ORACLE_HOME
/oracle/app/oracle/product/11.2.0/dbhome_1
[oracle@localhost ~]$ cd /oracle/app/oracle/product/11.2.0/dbhome_1
[oracle@localhost dbhome_1]$ 
[oracle@localhost dbhome_1]$ cd dbs
[oracle@localhost dbs]$ ll
总用量 13160
-rw-rw----. 1 oracle dba          1544 5月   4 14:49 hc_powerdes.dat
-rw-r--r--. 1 oracle dba          2851 5月  15 2009 init.ora
-rw-r-----. 1 oracle dba            24 8月  27 2013 lkPDDGUNQ
-rw-r-----. 1 oracle oinstall     1536 8月  27 2013 orapwpowerdes
-rw-r-----. 1 oracle dba      13451264 4月  27 05:00 snapcf_powerdes.f

-rw-r-----. 1 oracle dba          5632 8月  30 2013 spfilepowerdes.ora


3 # 找到了路径

[oracle@localhost dbs]$ strings spfile*.ora|grep dest_3
*.log_archive_dest_3='LOCATION=/data/oracle/oradgdata/standby_archive VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=pddgunq'



4  check路径,排查问题
[root@localhost data]# ls -l /data/oracle/oradgdata/standby_archive
ls: 无法访问/data/oracle/oradgdata/standby_archive: 没有那个文件或目录

[oracle@localhost dbs]$ mkdir -p /data/oracle/oradgdata/standby_archive
mkdir: 无法创建目录"/data/oracle": 只读文件系统

[oracle@localhost dbhome_1]$ df -h
文件系统      容量  已用  可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root
                       50G   28G   19G  60% /
tmpfs                 8.9G  3.0G  5.9G  34% /dev/shm
/dev/sda2             485M   76M  384M  17% /boot
/dev/sda1             200M  260K  200M   1% /boot/efi
/dev/mapper/VolGroup-lv_home
                       76G   37G   36G  51% /home
/dev/sdb1            1008G  221G  737G  24% /data


5 解决问题

/data已经存在了,只是无法使用,google,看到2种解决方案
mkdir: 无法创建目录‘XX’: 只读文件系统
touch: 无法触碰 “XX”: 只读文件系统,
建立文件和目录都提示错误,
       解决方法如下:
                      第一,重起服务器
                         我的这样就好了。
                   第二,
               如果第一不好使的话,
                          就得进行修复硬盘了,
                    开机进入修复模式,
                    看你是在哪个目录下能建立文件,然后用 fsck.ext3 -y ..挂载分区...进行修复就ok了。
参考: http://hi.baidu.com/lijunyi0198/item/2558f8c613618f61f6c95d04
reboot试试看


6 再次登录sqlplus start从库

SQL>  STARTUP MOUNT;ORACLE instance started.Total System Global Area 5344731136 bytesFixed Size    2213136 bytesVariable Size 3489663728 bytesDatabase Buffers 1811939328 bytesRedo Buffers   40914944 bytesDatabase mounted.SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;Database altered.SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE*ERROR at line 1:ORA-01153: an incompatible media recovery is activeSQL> alter database open;alter database open*ERROR at line 1:ORA-10456: cannot open standby database; media recovery session may be inprogress



# 有报错信息,看到这里,需要暂时中止media recovery了。

SQL> recover managed standby database cancel;Media recovery complete.

7 试图再自动 recover下,不过还是fail,只要再次中止

SQL> recover automatic standby database ;ORA-00279: change 10386441904 generated at 04/18/2014 17:56:46 needed forthread 1ORA-00289: suggestion :/data/oracle/oradgdata/standby_archive/1_7368_821708334.dbfORA-00280: change 10386441904 for thread 1 is in sequence #7368ORA-00278: log file'/data/oracle/oradgdata/standby_archive/1_7368_821708334.dbf' no longer neededfor this recoveryORA-00308: cannot open archived log'/data/oracle/oradgdata/standby_archive/1_7368_821708334.dbf'ORA-27037: unable to obtain file statusLinux-x86_64 Error: 2: No such file or directoryAdditional information: 3Specify log: {<RET>=suggested | filename | AUTO | CANCEL}ORA-00308: cannot open archived log'/data/oracle/oradgdata/standby_archive/1_7368_821708334.dbf'ORA-27037: unable to obtain file statusLinux-x86_64 Error: 2: No such file or directoryAdditional information: 3SQL> RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;Media recovery complete.


8,查看下当前datagard的状态

SQL> SELECT MESSAGE FROM V$DATAGUARD_STATUS;MESSAGE--------------------------------------------------------------------------------ARC0: Archival startedARC1: Archival startedARC2: Archival startedARC3: Archival startedARC4: Archival startedARC5: Archival startedARC6: Archival startedARC7: Archival startedARC8: Archival startedARC9: Archival startedARCa: Archival startedMESSAGE--------------------------------------------------------------------------------ARCb: Archival startedARCc: Archival startedARCd: Archival startedARCe: Archival startedARCf: Archival startedARCg: Archival startedARCh: Archival startedARCi: Archival startedARC1: Becoming the 'no FAL' ARCHARC2: Becoming the heartbeat ARCHARCj: Archival startedMESSAGE--------------------------------------------------------------------------------Media Recovery Start: Managed Standby RecoveryManaged Standby Recovery not using Real Time ApplyMedia Recovery Waiting for thread 1 sequence 7368Fetching gap sequence in thread 1, gap sequence 7368-7392FAL[client]: Failed to request gap sequence GAP - thread 1 sequence 7368-7392 DBID 3391761643 branch 821708334FAL[client]: All defined FAL servers have been attempted.Attempt to start background Managed Standby Recovery processMRP0: Background Managed Standby Recovery process startedManaged Standby Recovery not using Real Time ApplyMESSAGE--------------------------------------------------------------------------------Media Recovery Waiting for thread 1 sequence 7368Fetching gap sequence in thread 1, gap sequence 7368-7392FAL[client]: Failed to request gap sequence GAP - thread 1 sequence 7368-7392 DBID 3391761643 branch 821708334FAL[client]: All defined FAL servers have been attempted.MRP0: Background Media Recovery cancelled with status 16037MRP0: Background Media Recovery process shutdownManaged Standby Recovery CanceledManaged Standby Recovery not using Real Time ApplyAttempt to start background Managed Standby Recovery processMESSAGE--------------------------------------------------------------------------------MRP0: Background Managed Standby Recovery process startedManaged Standby Recovery not using Real Time ApplyMedia Recovery Waiting for thread 1 sequence 7368Fetching gap sequence in thread 1, gap sequence 7368-7392FAL[client]: Failed to request gap sequence GAP - thread 1 sequence 7368-7392 DBID 3391761643 branch 821708334FAL[client]: All defined FAL servers have been attempted.52 rows selected.




9 再试试直接修改状态到open吧
# 打开standary从库
SQL> alter database open;Database altered.SQL>  select open_mode from v$database;OPEN_MODE--------------------READ ONLY# 将备库置于自动恢复状态SQL> recover managed standby database disconnect from session;Media recovery complete.



10 # check,检查主从的归档日志情况
# 主库状态:
SQL> archive log list;                                                                                                                                                                         Database log mode       Archive ModeAutomatic archival       EnabledArchive destination       /oracle/app/oracle/flash_recovery_area/archivelogOldest online log sequence     7777Next log sequence to archive   7779Current log sequence       7779SQL>   

#从库状态:
SQL>  archive log list;                                                                                                                                                                        Database log mode       Archive ModeAutomatic archival       EnabledArchive destination       /data/oracle/oradgdata/standby_archiveOldest online log sequence     7778Next log sequence to archive   0Current log sequence       7779SQL> 
最后问猫猫,怎么样才能彻底check下datagard主从数据一致,结果被猫猫美女一顿狂批,多看点datagard官方文档,别老问她,得自己去专研去总结。
哈哈,看来是得抽功夫去恶补下oracle datagard了。
7 0
原创粉丝点击