首页 > 数据库 > 国内数据库 > 如何主库进行闪回,而备库不需要重新搭建?
一、容灾状态检查
1、检查空间是否充足
|
1
2
3
4
5 |
#查看本地空闲磁盘空间df -h#查看ASM磁盘空间su - gridasmcmd lsdg |
若磁盘组冗余度为Normal剩余空间需除以2,High 则除以3.
2、容灾同步状态检查
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 |
--主库执行切换日志命令,观察seq是否变化且无应用延迟alter
system archive log
current
;--主备库均可执行,SEQ需一致SELECT
AL.THRD
"Thread"
,
ALMAX
"Last Seq Received"
,
LHMAX
"Last Seq Applied"
FROM
(
SELECT
THREAD# THRD,
MAX
(
SEQUENCE
#) ALMAX
FROM
V$ARCHIVED_LOG
WHERE
RESETLOGS_CHANGE# =
(
SELECT
RESETLOGS_CHANGE#
FROM
V$
DATABASE
)
GROUP
BY
THREAD#) AL,
(
SELECT
THREAD# THRD,
MAX
(
SEQUENCE
#) LHMAX
FROM
V$LOG_HISTORY
WHERE
RESETLOGS_CHANGE# =
(
SELECT
RESETLOGS_CHANGE#
FROM
V$
DATABASE
)
GROUP
BY
THREAD#) LH
WHERE
AL.THRD = LH.THRD; --备库执行,查看是否有同步延迟select
value
from
v$dataguard_stats
where
name
=
'apply lag'
; |
3、断开容灾
|
1
2
3
4
5 |
确认日志容灾已应用且无延迟后,关闭日志传输。--主库执行,找到容灾对应的dest_idshow parameter log_archive_dest--根据上一步的dest_id 关闭日志传输alter
system
set
log_archive_dest_state_xx=defer; ## xx根据实际dest_id修改 |
二、闪回点创建
2.1 检查闪回状态(主库)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
若需要开启闪回,目录与大小根据情况配置。注意!开启闪回需要重启数据库--查看是否开启闪回select
flashback_on
from
v$
database
;--未开启,则开启闪回alter
system
set
db_recovery_file_dest=
'/archlog/fast_recovery_area'
;闪回路径放在ASM盘的时候,路径只能写第一层,比如+DATA,不然会报错无法启动实例。alter
system
set
db_recovery_file_dest_size=200G scope=both;###开启闪回步骤,需要关闭数据库。--双节点关闭shutdown immediate;--单节点mountstartup mount;--开启闪回alter
database
flashback
on
;select
flashback_on
from
v$
database
; |
2.2 备库操作
2.2.1 备库创建闪回区大小
|
1
2 |
alter
system
set
db_recovery_file_size = 4096m;
--根据实际空间情况调整alter
system
set
db_recovery_file_dest=
'/u01/flash_standby'
; |
2.2.2 停止mrp进程
|
1 |
alter
database
recover managed standby
database
cancel; |
2.2.3 切换备库状态
|
1
2
3
4
5 |
shutdown immediatestartup mountalter
database
convert
to
snapshot standby;确认状态select
open_mode,datbase_role
from
v$
database
; |
2.2 创建闪回点(主库)
|
1
2
3
4
5
6 |
--创建闪回点create
restore point upgrade_point guarantee flashback
database
; --查看创建的闪回点SELECT
NAME
,SCN,
TIME
,DATABASE_INCARNATION#,GUARANTEE_FLASHBACK_DATABASE,STORAGE_SIZE FROM
V$RESTORE_POINT
WHERE
GUARANTEE_FLASHBACK_DATABASE=
'YES'
; |
2.3 闪回至闪回点(主库)
|
1
2
3
4
5 |
--启动数据库至mount状态下执行flashback
database
to
restore point upgrade_point;alter
database
open
resetlogs;alter
system
set
log_archive_dest_state_2 = enable;select
dest_name,status,error
from
v$archive_dest
where
dest_id=2; |
2.4 备库重新关闭打开即可恢复应用
|
1
2
3
4
5
6
7
8 |
SQL > shutdown immediateSQL> startup mountSQL>
alter
database
convert
to
physical standby;SQL> shutdown immediate;SQL> startup nomountSQl>
alter
database
mount standby
database
;SQL>
alter
database
open
;SQL>
alter
database
recover managed standby
database
disconnect
from
session; |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70041510/viewspace-3093627/ ,如需转载,请注明出处,否则将追究法律责任。