- 收集备份与恢复策略需求
a)需求提问:
i.数据库发生故障时,丢失多少数据是可承受的?
ii.恢复数据库时能忍受的最长时间是多少?
iii.为确保数据能够恢复,愿意投入的成本是多少?
iv.备份期间是否可停机?
v.受损硬件设备的替换需要多长时间?
b)可承受的数据丢失量
c)恢复数据库时允许的最长时间:HA或DR
d)恢复所花的成本:RPO、RTO与成本之间存在直接联系。
e)备份期间是否可以关闭系统。
f)更换受损硬件需要多长时间:
g)成长和扩展考虑事项
2. 设计备份与恢复计划
a)脱机or联机备份
b)联机备份多久备份一次归档重做日志?如何确保在备份会话期间确保归档日志不丢失?
c)关于可恢复性的策略和标准是什么?
d)灾难事件中如何确保系统是可恢复的?
e)是否需要制定体系结构方面的决策?
3. 基本原则:如果环境稳定,要慎重对待更改。如果有人提出更改,则要站在自己的立场上看改变是否清晰,是否可靠地说明预期回报,并证明值得承担因生产系统更改造成的风险。
4. 最佳备份与恢复计划:体系结构设计得当,管理有方,从来没必要使用它们进行恢复!
5. 除Oracle数据库之外其他需要备份的内容:
a)Oracle RDBMS软件(oracle 主目录和Oracle目录清单)
b)网络参数文件(names.ora, INI文件)
c)系统oratab文件和其他与Oracle相关的系统文件(例如:Oracle所有的rc启动脚本)
保护级别 | 备份类型 | 保留期 | 数据丢失期限 | 数据恢复时长 | 代价 |
---|---|---|---|---|---|
1 | 每周全备 | 四周 | 1个工作日 | 一周 | 0 |
2 | 周全备+日归档 | 四周 | 1个工作日 | 48小时 | 00 |
3 | 周全备+6小时归档 | 四周 | 6小时 | 48 | 000 |
4 | 周全备+日增备+ 6小时归档 |
八周 | 1分钟 | 每200G一小时 | 0000 |
- 当前及协商后的备份和恢复SLA(正式或非正式)
2. 现有DB的大小
3. 这些DB当前的备份时间
4. 现有DB预期的成长情况
5. 现有DB预期的备份时间延长情况
6. 将要创建的新数据库
7. 新数据库的初始大小和预期成长情况
8. 在开发、测试和QA等不同周期创建、删除和刷新数据库
9. 数据库和数据库备份的保留标准
1.预估FRA所需空间(一个月,周末全备,每日增备)
2.2T ×(4+1)= 10T × 60% = 6T
3.(31-4)+(31-4)÷ 4 = 33.75 × 2T × 10% × 60% = 4148G
4.2T × 2% ×(31-4) = 1106G
5.100M × 6 = 600M ≈ 1G
6.1024 × 6 + 4148 + 1106 + 1≈ 10T
经验公式: 2T ×(天数 + 1)÷ 6
1. 确定FRA位置,并创建FRA
a)各节点挂载远程NFS
mkdir /nfs mount -o rw,bg,hard,intr,proto=tcp,vers=3,rsize=65536,wsize=65536,timeo=600192.168.56.12:/NFS /nfs |
---|
b)配置权限
chown oracle:dba /FRA |
---|
- 登陆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’; |
---|
- 确认数据库归档设置
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 |
---|
- 备份数据库
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; |
---|
- 还原数据库
su - oracle export ORACLE_SID=XXX rman target / restore database recover database; alter database open; |
---|
- 配置RMAN
su - oracle export ORACLESID=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; |
---|
- 新建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; |
---|
- 建立备份脚本
su - oracle export ORACLE_SID=XXX rman target / Crete script backup_full_script { Backup database plus archivelog; } Run { execute script backup_full_script;} |
---|
- d