1. 介绍
如果要创建正式库的备份,一般不建议用非归档模式备份,也不建议用很简单的命令来完成。
而是更多的采用脚本实现归档模式备份,这样将可通过 backup+archive log+redo 有效的将数据恢复到最近一次改变的状态, 可以达到数据的丢失最小化。
2. 操作
2.1. 先打开归档模式
startup mount force
alter database archivelog;
alter database open
2.2. 执行备份
(执行备份命令实际上是跟非归档模式备份是一样的)
rman target /
backup tag hfzcdb_fullbak02 database format '/backup/full/hfzcdb_fullbak02_%s_%p_%t'
current controlfile format '/backup/full/hfzcdb_ctl02_%s_%p_%t'
plus archivelog format '/backup/full/hfzcdb_arch02_%s_%p_%t';
2.3. 故障模拟
删除数据库的所有文件,仅保留 redo 日志和 archivelog 文件
-- 删除控制文件、数据文件:
[oracle@hfzcdb56:/oradata/hfzcdb]$rm control0*
[oracle@hfzcdb56:/oradata/hfzcdb]$rm *.dbf
[oracle@hfzcdb56:/oradata/hfzcdb]$ls
redo01.log redo02.log redo03.log
-- 删除参数文件:
cd $ORACLE_HOME/dbs
mv spfilehfzcdb.ora spfilehfzcdb.ora.bak
-- 数据库关闭
shutdown abort;
2.4. 恢复过程
(开启归档,切以下日志,进rman备份数据文件,控制文件,归档日志文件,删除数据文件、控制文件、spfile文件,保留redo日志文件,关闭数据库,进rman,用startup force nomount强制启动到nomount,恢复spfile文件,进入sql,启动到startup nomount force;再到rman,恢复控制文件,恢复数据 restore database; recover database,再进入sqlplus,启动数据库alter database open resetlogs;)
备份数据
SYS@hfzcdb> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 6
Next log sequence to archive 8
Current log sequence 8
SYS@hfzcdb> show parameter recovery
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /archive
db_recovery_file_dest_size big integer 100G
recovery_parallelism integer 0
remote_recovery_file_dest string
SYS@hfzcdb> alter system switch logfile;
System altered.
SYS@hfzcdb> /
System altered.
SYS@hfzcdb> .
SYS@hfzcdb> /
System altered.
SYS@hfzcdb> alter system switch logfile;
System altered.
SYS@hfzcdb> alter system switch logfile;
System altered.
SYS@hfzcdb> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
[oracle@hfzcdb91:/home/oracle]$rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on Fri Mar 31 19:31:02 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: HFZCDB (DBID=797496974)
backup tag hfzcdb_fullbak02 database format '/backup/full/hfzcdb_fullbak02_%s_%p_%t'
current controlfile format '/backup/full/hfzcdb_ctl02_%s_%p_%t'
3> plus archivelog format '/backup/full/hfzcdb_arch02_%s_%p_%t';
Starting backup at 2023-03-31 19:31:15
current log archived
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1152 device type=DISK
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=8 RECID=1 STAMP=1132947040
input archived log thread=1 sequence=9 RECID=2 STAMP=1132947042
input archived log thread=1 sequence=10 R