Oracle+Rman备份规划笔记

  1. 收集备份与恢复策略需求
    1. 需求提问:
      1. 数据库发生故障时,丢失多少数据是可承受的?
      2. 恢复数据库时能忍受的最长时间是多少?
      3. 为确保数据能够恢复,愿意投入的成本是多少?
      4. 备份期间是否可停机?
      5. 受损硬件设备的替换需要多长时间?
    2. 可承受的数据丢失量
    3. 恢复数据库时允许的最长时间:HA或DR
    4. 恢复所花的成本:RPO、RTO与成本之间存在直接联系。
    5. 备份期间是否可以关闭系统。
    6. 更换受损硬件需要多长时间:
    7. 成长和扩展考虑事项
  2. 设计备份与恢复计划
    1. 脱机or联机备份
    2. 联机备份多久备份一次归档重做日志?如何确保在备份会话期间确保归档日志不丢失?
    3. 关于可恢复性的策略和标准是什么?
    4. 灾难事件中如何确保系统是可恢复的?
    5. 是否需要制定体系结构方面的决策?
  3. 基本原则:如果环境稳定,要慎重对待更改。如果有人提出更改,则要站在自己的立场上看改变是否清晰,是否可靠地说明预期回报,并证明值得承担因生产系统更改造成的风险。
  4. 最佳备份与恢复计划:体系结构设计得当,管理有方,从来没必要使用它们进行恢复!
  5. 除Oracle数据库之外其他需要备份的内容:
    1. Oracle RDBMS软件(oracle 主目录和Oracle目录清单)
    2. 网络参数文件(names.ora, INI文件)
    3. 系统oratab文件和其他与Oracle相关的系统文件(例如:Oracle所有的rc启动脚本)

保护级别

备份类型

保留期

数据丢失期限

数据恢复时长

代价

1

每周全备

四周

1个工作日

一周

0

2

周全备+日归档

四周

1个工作日

48小时

00

3

周全备+6小时归档

四周

6小时

48

000

4

周全备+日增备+

6小时归档

八周

1分钟

每200G一小时

0000

  1. 当前及协商后的备份和恢复SLA(正式或非正式)
  2. 现有DB的大小
  3. 这些DB当前的备份时间
  4. 现有DB预期的成长情况
  5. 现有DB预期的备份时间延长情况
  6. 将要创建的新数据库
  7. 新数据库的初始大小和预期成长情况
  8. 在开发、测试和QA等不同周期创建、删除和刷新数据库
  9. 数据库和数据库备份的保留标准
  10. 预估FRA所需空间(一个月,周末全备,每日增备)
  11. 2T × (4+1)= 10T × 60% = 6T
  12. (31-4)+(31-4)÷ 4 = 33.75 × 2T × 10% × 60% = 4148G
  13. 2T × 2% × (31-4) = 1106G
  14. 100M × 6 = 600M ≈ 1G
  15. 1024 × 6 + 4148 + 1106 + 1≈ 10T

经验公式 : 2T × (天数 + 1)÷ 6

  1. 确定FRA位置,并创建FRA
    1. 各节点挂载远程NFS

mkdir /nfs

mount -o rw,bg,hard,intr,proto=tcp,vers=3,rsize=65536,wsize=65536,timeo=600 192.168.56.12:/NFS /nfs

    1. 配置权限

chown oracle:dba /FRA

  1. 登陆DB配置为使用FRA

su - oracle

export ORACLE_SID=XXX

sqlplus / as sysdba

alter system set db_recovery_file_dest_size=10T;

alter system set db_recovery_file_dest=’/FRA’;

  1. 确认数据库归档设置

su - oracle

export ORACLE_SID=XXX

sqlplus / as sysdba

archive log list

show parameter LOG_ARCHIVE_DEST

show parameter log_archive_state

show parameter log_archive_format

show parameter log_archive_min_succeed_dest

  1. 备份数据库

su - oracle

export ORACLE_SID=XXX

rman target /

backup database plus archivelog delete input;

list backup of database summary;

list backup of archivelog all summary;

  1. 还原数据库

su - oracle

export ORACLE_SID=XXX

rman target /

restore database

recover database;

alter database open;

  1. 配置RMAN

su - oracle

export ORACLE_SID=XXX

rman target /

configure controlfile autobackup on;

configure controlfile autobackup format for device type disk to ‘XXXX’;

configure defaule device type to disk;

configure device type disk backup type to compressed backupset parallelism 4;

configure channel 1 device type disk format ‘XXXX\back_%U’;

configure channel 2 device type disk format ‘XXXX\back_%U’;

configure channel 3 device type disk format ‘XXXX\back_%U’;

configure channel 4 device type disk format ‘XXXX\back_%U’;

configure channel device type disk maxpiecesize 2G;

configure rman output to keep for 30 days;

configure snapshot controlfile name to ‘XXXX’;

configure controlfile autobackup on;

configure controfile autobackup format for device type disk to ‘XXXXXX\XXX_%F’;

configure retention policy to recovery window of 30 days;

  1. 新建catalog数据库

su - oracle

export ORACLE_SID=XXX

sqlplus / as sysdba

Create user dbadmin identified by dbadmin

Default tablespace users;

Grant create session to dbadmin;

Grant create user to dbadmin;

Grant recovery_catalog_owner to dbadmin with admin option;

Create tablespace catalog datafile ‘/u01/app/oracle/oradata/bpctlg/catlogts.dbf’ size 300M;

Exit

Sqlplus dbadmin/dbadmin

Create user rcat_user identified by rcat_user

Default tablespace catalog;

Alter user rcat_user quota unlimited on catalog

Grant recovery_catalog_owner to rcat_user

Exit

Rman target / catalog=rcat_user/rcat_user@xxx

Register database;

Report schema;

  1. 建立备份脚本

su - oracle

export ORACLE_SID=XXX

rman target /

Crete script backup_full_script

{

Backup database plus archivelog;

}

Run { execute script backup_full_script;}

  1. d
posted @ 2023-02-03 10:46  LuckinAaron  阅读(47)  评论(0编辑  收藏  举报