首页 > 代码库 > Oracle - 备份与恢复

Oracle - 备份与恢复

 


作者:张启卫
时间:2017年4月21号
功能: 理解oracle的备份与恢复机制


1. 归档模式与非归档模式

Oracle数据库需要至少两组联机日志,每当一组联机日志写满后会发生日志切换,继续向下一组联机日志写入。

如果是归档模式,日志切换会触发归档进程(ARCn)进行归档,生成归档日志,Oracle保证归档完成前,联机日志不会被覆盖。
如果是非归档模式,则不会触发归档动作。

非归档模式转为归档模式的操作步骤:

# 连接数据库
mkdir /backup/oracle_arc

# 连接oracle
sqlplus / as sysdba

#1. 关闭数据库
shutdown immediate;

#2. 启动数据库到mount状态
startup mount;

#3. 修改数据库归档模式
alter database archivelog;

#4. 启动数据库
alter database open;

#5. 定义归档位置的保存路径
alter syste set_log_archive_dest_1 = "location=:/backup/oracle_arc"

#6. 确认配置生效
archive log list;

SQL> archive    log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/app/oracle/arch_log
Oldest online log sequence     82
Next log sequence to archive   84
Current log sequence           84

# 7. 开启数据
alter database open;

2. Oracle备份

Oracle备份分成物理备份 与 逻辑备份。
物理备份: 把实际物理文件从一处拷贝到另一处(可能是原样拷贝,也可能经过压缩), 操作系统备份,使用RMAN的备份,冷备份,热备份。
逻辑备份: 利用SQL从数据库中提取数据,并将其保存到文件中,这些数据可以在以后需求时重新导入数据库,或者导入其他数据库。Oracle提供EXP, IMP, EXPDP, IMPDP工具。

2.1 物理备份

联机热备 与 冷备份 都属性物理备份
联机热血根据使用的工具不同,分成 用户管理备份(User-Managed Backup) 和 恢复管理器备份(RMAN, Recover Manager)。

2.1.1 冷备份

如果数据库处于非归档模式,则只能使用冷备份

# 1. 关闭数据库

# 2. 备份所需文件,控制文件,数据文件,日志文件

# 3. 启动数据库

2.1.2 热备份 - 用户管理备份

# 1. 使用SQL的ALTER TABLESPACE ... BEGIN BACKUP 命令把表空间置为备份模式;

# 2. 使用操作系统文件拷贝命令进行拷贝; 

# 3. 拷贝结束后,使用SQL的 ALTER TABLESPACE ... END BACKUP 结束备份

2.1.3 热备份 - 恢复管理器备份(RMAN备份)

RMAN, Recovery Manager 是一个对数据库执行备份与恢复任务的oracle应用工具。

技术分享

RMAN参考资料Oracle官方文档:
《Backup And Recovery Basics》
《Backup and Recovery Advanced User‘s Guide》
《Backup and Recovery Reference》

RMAN配置备份与恢复步骤:

#1. 连接到数据库
# RMAN可以连接到三种类型的数据库
# - 目标数据库
# - 目录数据库
# - 辅助数据库
# rman target user/password@yourdbname
rman target /
    Recovery Manager: Release 11.1.0.6.0 - Production on Sat Apr 29 09:57:29 2017

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: ORCL (DBID=1293792340)


# 2. 查看现有配置
SHOW ALL;

RMAN> show all;

using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON; # CONTROLFILE AUTOBAKUP 对控制文件自动备份
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/Quest_Backup/autobackup/autobackup_control_%F‘;
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT   ‘/Quest_Backup/autobackup/%U‘;
CONFIGURE MAXSETSIZE TO UNLIMITED;
CONFIGURE ENCRYPTION FOR DATABASE OFF;
CONFIGURE ENCRYPTION ALGORITHM ‘AES128‘;
CONFIGURE COMPRESSION ALGORITHM ‘BZIP2‘; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_orcl.f‘; # default




# 3. 修改配置
# - 启用控制文件备份
# - 启用自动备份,指定文件存储位置
# - 配置控制文件的快照存储位置
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to ‘/backup/autobackup/autobackup_control_%F‘;
configure snapshot controlfile name to ‘/backup/S%U‘;

Oracle - 备份与恢复