暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

存储故障DG丢失,利用NBU恢复

原创 潇湘秦 2023-07-27
399

存储故障,修复后

Arch_dg无法mount

尝试手动启动时候报错

SQL> alter diskgroup NHCPDB_ARCH mount; 
alter diskgroup NHCPDB_ARCH mount 

ERROR at line 1: 
ORA-15032: not all alterations performed 
ORA-15096: lost disk write detected 

开sr,oracle 也未能解决,是磁盘故障,

解决办法如下,

  1. Startup nomount
  2. 将参数中存在于arch dg的控制文档拿掉

alter system set control_files='xxx' scope=spfile;

  1. 在本机查找最近的控制文件备份记录

Netbackup/bin/ ./bplist –C nhcprac1 –t 4 –l –R /

2. 恢复控制文件并启动到mount

RUN {

allocate channel D1 type 'sbt_tape' parms 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';

send 'NB_ORA_SERV=nbuserver,NB_ORA_CLIENT=nhcprac1';

restore controlfile from '/cntrl_6308_1_1031792559';---最新的控制文件备份

RELEASE CHANNEL D1;

}

3. 恢复成功后,启动到mount,将涉及到archdg 路径的参数都改道data dg

alter system set log_archive_dest_1="Location=+NHCPDB_DATA" scope=spfile;

alter system set db_recovery_file_dest='' scope=spfile;

alter database rename file '+NHCPDB_ARCH/nhcpdb/onlinelog/group_2.258.938775465'

to '+NHCPDB_DATA/nhcpdb/onlinelog/group_2.258.938775465';

alter database rename file '+NHCPDB_ARCH/nhcpdb/onlinelog/group_1.257.938775463'

to '+NHCPDB_DATA/nhcpdb/onlinelog/group_1.257.938775463';

alter database rename file '+NHCPDB_ARCH/nhcpdb/onlinelog/group_3.259.938775599'

to '+NHCPDB_DATA/nhcpdb/onlinelog/group_3.259.938775599';

alter database rename file '+NHCPDB_ARCH/nhcpdb/onlinelog/group_4.260.938775601'

to '+NHCPDB_DATA/nhcpdb/onlinelog/group_4.260.938775601';

4.Restore database

RUN {

allocate channel D1 type 'sbt_tape' parms 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';

allocate channel D2 type 'sbt_tape' parms 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';

send 'NB_ORA_SERV=nbuserver,NB_ORA_CLIENT=nhcprac1';

restore database; ##无需指定备份片,会自动找最新的备份恢复

RELEASE CHANNEL D1;

RELEASE CHANNEL D2;

}

Recover database

次报错是因为选的时间太短,until time 尽可能选择为最近备份之后的时间

RMAN> RUN {

2> allocate channel D1 type 'sbt_tape' parms 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';

3> allocate channel D2 type 'sbt_tape' parms 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';

4> send 'NB_ORA_SERV=nbuserver,NB_ORA_CLIENT=nhcprac1';

5> sql 'alter session set nls_date_format= "YYYY-MM-DD HH24:MI:SS"';

6> set until time '2020-02-08 01:05:00';

7> recover database;

8> RELEASE CHANNEL D1;

9> RELEASE CHANNEL D2;

10> }

using target database control file instead of recovery catalog

allocated channel: D1

channel D1: SID=34 instance=nhcpdb1 device type=SBT_TAPE

channel D1: Veritas NetBackup for Oracle - Release 8.1 (2017091017)

allocated channel: D2

channel D2: SID=50 instance=nhcpdb1 device type=SBT_TAPE

channel D2: Veritas NetBackup for Oracle - Release 8.1 (2017091017)

sent command to channel: D1

sent command to channel: D2

sql statement: alter session set nls_date_format= "YYYY-MM-DD HH24:MI:SS"

executing command: SET until clause

Starting recover at 16-FEB-2020 23:35:56

starting media recovery

channel D1: starting archived log restore to default destination

channel D1: restoring archived log

archived log thread=2 sequence=25286

channel D1: restoring archived log

archived log thread=1 sequence=23821

channel D1: restoring archived log

archived log thread=1 sequence=23822

channel D1: restoring archived log

archived log thread=2 sequence=25287

channel D1: reading from backup piece al_6307_1_1031792542

channel D1: piece handle=al_6307_1_1031792542 tag=TAG20200208T010110

channel D1: restored backup piece 1

channel D1: restore complete, elapsed time: 00:00:15

archived log file name=+NHCPDB_DATA/nhcpdb/archivelog/2020_02_16/thread_1_seq_23821.275.1032564965 thread=1 sequence=23821

archived log file name=+NHCPDB_DATA/nhcpdb/archivelog/2020_02_16/thread_2_seq_25286.276.1032564965 thread=2 sequence=25286

archived log file name=+NHCPDB_DATA/nhcpdb/archivelog/2020_02_16/thread_1_seq_23822.277.1032564967 thread=1 sequence=23822

archived log file name=+NHCPDB_DATA/nhcpdb/archivelog/2020_02_16/thread_2_seq_25287.278.1032564967 thread=2 sequence=25287

unable to find archived log

archived log thread=2 sequence=25288

released channel: D1

released channel: D2

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 02/16/2020 23:36:15

RMAN-06054: media recovery requesting unknown archived log for thread 2 with sequence 25288 and starting SCN of 639257332959

###因为选择的时候过新,需要最新的log 只能修复到提示的scn,所以按scn恢复

RMAN> RUN {

2> allocate channel D1 type 'sbt_tape' parms 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';

3> allocate channel D2 type 'sbt_tape' parms 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64';

4> send 'NB_ORA_SERV=nbuserver,NB_ORA_CLIENT=nhcprac1';

5> recover database until scn 639257332959;

6> RELEASE CHANNEL D1;

7> RELEASE CHANNEL D2;

8> }

allocated channel: D1

channel D1: SID=34 instance=nhcpdb1 device type=SBT_TAPE

channel D1: Veritas NetBackup for Oracle - Release 8.1 (2017091017)

allocated channel: D2

channel D2: SID=50 instance=nhcpdb1 device type=SBT_TAPE

channel D2: Veritas NetBackup for Oracle - Release 8.1 (2017091017)

sent command to channel: D1

sent command to channel: D2

Starting recover at 16-FEB-2020 23:41:54

starting media recovery

media recovery complete, elapsed time: 00:00:00

Finished recover at 16-FEB-2020 23:41:55

released channel: D1

released channel: D2

RMAN> alter database open resetlogs;

database opened

RMAN>

  1. Open resetlog
  2. 另外一个节点启动时, 也需要先修改这些参数才能启动

SQL> startup

ORACLE instance started.

Total System Global Area 6547296256 bytes

Fixed Size 2265544 bytes

Variable Size 3405778488 bytes

Database Buffers 3120562176 bytes

Redo Buffers 18690048 bytes

ORA-01105: mount is incompatible with mounts by other instances

ORA-19808: recovery destination parameter mismatch

SQL> startup mount;

ORA-01081: cannot start already-running ORACLE - shut it down first

SQL> shutdown immediate;

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.

Total System Global Area 6547296256 bytes

Fixed Size 2265544 bytes

Variable Size 3456110136 bytes

Database Buffers 3070230528 bytes

Redo Buffers 18690048 bytes

ORA-01105: mount is incompatible with mounts by other instances

ORA-19808: recovery destination parameter mismatch

SQL> show parameter log

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

_use_adaptive_log_file_sync string FALSE

audit_syslog_level string

commit_logging string

db_create_online_log_dest_1 string

db_create_online_log_dest_2 string

db_create_online_log_dest_3 string

db_create_online_log_dest_4 string

db_create_online_log_dest_5 string

enable_ddl_logging boolean FALSE

log_archive_config string

log_archive_dest string

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

log_archive_dest_1 string LOCATION=+NHCPDB_ARCH

log_archive_dest_10 string

log_archive_dest_11 string

log_archive_dest_12 string

log_archive_dest_13 string

log_archive_dest_14 string

log_archive_dest_15 string

log_archive_dest_16 string

log_archive_dest_17 string

log_archive_dest_18 string

log_archive_dest_19 string

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

log_archive_dest_2 string

log_archive_dest_20 string

log_archive_dest_21 string

log_archive_dest_22 string

log_archive_dest_23 string

log_archive_dest_24 string

log_archive_dest_25 string

log_archive_dest_26 string

log_archive_dest_27 string

log_archive_dest_28 string

log_archive_dest_29 string

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

log_archive_dest_3 string

log_archive_dest_30 string

log_archive_dest_31 string

log_archive_dest_4 string

log_archive_dest_5 string

log_archive_dest_6 string

log_archive_dest_7 string

log_archive_dest_8 string

log_archive_dest_9 string

log_archive_dest_state_1 string enable

log_archive_dest_state_10 string enable

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

log_archive_dest_state_11 string enable

log_archive_dest_state_12 string enable

log_archive_dest_state_13 string enable

log_archive_dest_state_14 string enable

log_archive_dest_state_15 string enable

log_archive_dest_state_16 string enable

log_archive_dest_state_17 string enable

log_archive_dest_state_18 string enable

log_archive_dest_state_19 string enable

log_archive_dest_state_2 string enable

log_archive_dest_state_20 string enable

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

log_archive_dest_state_21 string enable

log_archive_dest_state_22 string enable

log_archive_dest_state_23 string enable

log_archive_dest_state_24 string enable

log_archive_dest_state_25 string enable

log_archive_dest_state_26 string enable

log_archive_dest_state_27 string enable

log_archive_dest_state_28 string enable

log_archive_dest_state_29 string enable

log_archive_dest_state_3 string enable

log_archive_dest_state_30 string enable

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

log_archive_dest_state_31 string enable

log_archive_dest_state_4 string enable

log_archive_dest_state_5 string enable

log_archive_dest_state_6 string enable

log_archive_dest_state_7 string enable

log_archive_dest_state_8 string enable

log_archive_dest_state_9 string enable

log_archive_duplex_dest string

log_archive_format string %t_%s_%r.dbf

log_archive_local_first boolean TRUE

log_archive_max_processes integer 4

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

log_archive_min_succeed_dest integer 1

log_archive_start boolean FALSE

log_archive_trace integer 0

log_buffer integer 18022400

log_checkpoint_interval integer 0

log_checkpoint_timeout integer 1800

log_checkpoints_to_alert boolean FALSE

log_file_name_convert string

remote_login_passwordfile string EXCLUSIVE

sec_case_sensitive_logon boolean FALSE

sec_max_failed_login_attempts integer 10

SQL>

SQL> alter system set log_archive_dest_1="Location=+NHCPDB_DATA" scope=spfile; --修改归档路径 删掉故障DG

System altered.

SQL>

SQL> shutdown immediate;

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.

Total System Global Area 6547296256 bytes

Fixed Size 2265544 bytes

Variable Size 3456110136 bytes

Database Buffers 3070230528 bytes

Redo Buffers 18690048 bytes

ORA-01105: mount is incompatible with mounts by other instances

ORA-19808: recovery destination parameter mismatch

SQL>

SQL> show parameter control_file

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

control_file_record_keep_time integer 7

control_files string +NHCPDB_DATA/nhcpdb/controlfil

e/current.260.938775459

SQL>

SQL> show recover

SP2-0158: unknown SHOW option "recover"

SQL> show parameter recover

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest string +NHCPDB_ARCH

db_recovery_file_dest_size big integer 4407M

db_unrecoverable_scn_tracking boolean TRUE

recovery_parallelism integer 0

SQL>

SQL> alter system set db_recovery_file_dest='' scope=spfile;

System altered.

SQL> shutdown immediate;

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.

Total System Global Area 6547296256 bytes

Fixed Size 2265544 bytes

Variable Size 3456110136 bytes

Database Buffers 3070230528 bytes

Redo Buffers 18690048 bytes

Database mounted.

SQL> alter database open;

Database altered.

SQL>

SQL>

SQL>


附录:NBU 异机恢复需要满足一下条件

同平台同数据库版本

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论