备份恢复学的这么差,试用期你都过不了
来源:开源Linux发布时间:2023-02-2486浏览
询问 AI
作者:IT邦德
来源:jeames.blog.csdn.net/article/details/122355707
前几天,有个读者找我吐槽,他刚入职一家公司,有一次老大和他说了一句话:就一个数据库的备份、恢复你都学的这么差,怕是连试用期也过不了!
确实,数据是企业的重要之中,这项技能是必须掌握的,搞的好,升职加薪,搞的不好,删库跑路的事不在少数。
数据库故障类型
- 1)user process failure 用户进程故障:pmon 自动处理
- 2)instance failure 实例故障: smon 自动处理
- 3)user errors 用户 错误:需要 dba 通过备份恢复解决
- 4)media failure 介质故障:必须通过备份和日志恢复
总结:备份恢复主要是用于保护数据(介质、用户、应用程序导致)、保留数据、传输数据
备份恢复分类


还原即Restore(重储),恢复即是Recover(恢复)
逻辑备份与恢复
- ①传统的导入导出:exp/imp:
- ②数据泵导入导出:expdp/impdp
- 面向 object,逻辑备份就是热备数据库对象某一时刻状态,
- 不能运用在 media failure 上,逻辑备份的恢复就是还原备份,没有 recover 的概念。
物理备份与恢复
- 面向 media failure
- ①手工备份与恢复,也叫用户管理的备份与恢复(UMAN),
- 通过 OS 的命令,完成备份与还原,然后再运用日志进行恢复。
- ②自动备份与恢复,利用 oracle 的备份恢复工具 RMAN,使还原与恢复过程自动完成。
- 物理备份从方式上可以有 一致性备份(冷备) 和 非一致性备份(热备)完整的备份策略应该以物理备份为主,逻辑备份为辅(用于备份一些重要的表)
闪回技术
- 一种利用 undo 数据或闪回日志的快速恢复技术。
- 可以针对不同层面问题进行逻辑恢复,
- 11g 支持七种 flashback 方式,
- 其中快速恢复区只和闪回数据库有关。
完全恢复与不完全恢复
1)完全恢复:
- 利用完整备份或部分备份,可以将 datafile
- 恢复到 failure 前得最后一次 commit,不会出
- 现数据丢失。
2)不完全恢复
- 需要运用完整备份和日志将 database
- 恢复到过去的某个时间点(或 SCN),有数据丢失。
备份策略

- 备份策略:每周日执行0级全备份,周一至周六每天执行1级增量备份
- 配置保留策略 reduncancy 2,
- 开启控制文件自动备份
RMAN>showall;
CONFIGURERETENTIONPOLICYTOREDUNDANCY2;
CONFIGURECONTROLFILEAUTOBACKUPON;
备份脚本
--创建存放脚本的目录
mkdir/home/oracle/scripts
--创建全备份脚本
vi/home/oracle/scripts/rman_level0.sh
#!/bin/bash
exportORACLE_BASE=/u01/app/oracle
exportORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
exportORACLE_SID=PROD
PATH=/usr/sbin:$PATH;exportPATH
PATH=$ORACLE_HOME/bin:$PATH;exportPATH
rmantarget/<<EOF
run{
crosscheckbackup;
allocatechannelc1devicetypedisk;
allocatechannelc2devicetypedisk;
backupincrementallevel0databaseformat'/u01/backup/rman/db_%U.bak'
plusarchivelogformat'/u01/backup/rman/ar_%U.bak';
backupcurrentcontrolfileformat'/u01/backup/rman/ctl_%U.bak';
reportobsoletedevicetypedisk;
deletenopromptobsoletedevicetypedisk;
deletenopromptexpiredbackupdevicetypedisk;
releasechannelc1;
releasechannelc2;
}
EOF
exit
CROSSCHECK命令:用于核对磁盘和磁带上的备份文件
状态为:AVALIABLE、UNAVALIABLE、EXPIRED
赋予权限
chmoda+x/home/oracle/scripts/rman_level0.sh
chmoda+x/home/oracle/scripts/rman_level1.sh
编写 crontab 计划任务
测试环境 整点进行全备份,每 15 分钟增量备份一次
0****/home/oracle/scripts/rman_level0.sh>>/u01/backup/rman/PROD_rman_L0_`date
+\%Y\%m\%d_\%H\%M\%S`.log2>1
15,30,45****/home/oracle/scripts/rman_level1.sh>>
/u01/backup/rman/PROD_rman_L1_`date+\%Y\%m\%d_\%H\%M\%S`.log2>1
查看备份情况是否正常,查看相关备份日志。
查看 obsolete 备份、归档是否删除正常。
selecta.TIME_TAKEN_DISPLAYas"用时",
a.INPUT_BYTES_DISPLAY"大小",
a.INPUT_BYTES_PER_SEC_DISPLAYas"速度",
a.INPUT_TYPE"备份类型",
to_char(start_time,'day')day1,
to_char(start_time,'yyyy-mm-ddhh24:mi:ss')as"开始时间",
to_char(end_time,'yyyy-mm-ddhh24:mi:ss')"结束时间",
output_device_type,
status,
input_type
fromV$RMAN_BACKUP_JOB_DETAILSa
新闻来源:开源Linux,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。


