oracle备份策略

ops/2024/10/20 3:42:36/

一、RMAN热备份
1、查看是否开启归档

archive log list;

归档未开启

归档开启方法
– 关闭数据库,重启至mount模式

shutdown immediate
startup mount

– 开启归档模式

alter database archivelog;

– 打开数据库

alter database open;

– 检查归档模式是否打开

archive log list

如上图,数据库打开归档模式之后,接下来就可以开始部署 RMAN 脚本进行在线备份了。

2、定期删除归档
由于打开归档模式后会源源不断的产生归档日志,所以建议部署一个定期删除归档的任务:

oracle__39">oracle 用户下执行

mkdir -p /home/oracle/scriptscat << EOF > "/home/oracle/scripts/del_arch.sh"
#!/bin/bash
source ~/.bash_profile
deltime=\$(date +"20%y%m%d%H%M%S")
rman target / nocatalog msglog /home/oracle/scripts/del_arch_\${deltime}.log <<RMAN_EOF
crosscheck archivelog all;
delete noprompt archivelog until time 'sysdate-7';
delete noprompt force archivelog until time 'SYSDATE-10';
RMAN_EOF
EOFchmod +x /home/oracle/scripts/del_arch.sh

root 用户下执行

cat <<EOF >> /var/spool/cron/oracle
00 02 * * * /home/oracle/scripts/del_arch.sh
EOF

3、建立本地备份
新建本地备份脚本,该脚本为增量备份脚本,分为 0 级和 1 级,周日 0 级全备,周一至周六 1 级备份。
首先需要在本地磁盘创建一个备份目录,需要有足够的磁盘空间:

oracle__69">oracle 用户下执行

mkdir -p /home/oracle/backup
chmod -R 775 /home/oracle/backup

周日为0级备份脚本:

cat << EOF > "/home/oracle/scripts/dbbackup_lv0.sh"
#!/bin/bash
source ~/.bash_profile
backtime=\$(date +"20%y%m%d%H%M%S")
rman target / log=/home/oracle/backup/level0_backup_\${backtime}.log<<RMAN_EOF
run {
allocate channel c1 device type disk;
allocate channel c2 device type disk;
crosscheck backup;
crosscheck archivelog all;
sql"alter system archive log current";
delete noprompt expired backup;
delete noprompt obsolete device type disk;
backup incremental level 0 database include current controlfile format '/home/oracle/backup/backlv0_%d_%T_%t_%s_%p';
backup archivelog all DELETE INPUT format '/home/oracle/backup/arch_%d_%T_%t_%s_%p';
release channel c1;
release channel c2;
}
RMAN_EOF
EOF

周一至周六为 1 级备份脚本:

cat << EOF > "/home/oracle/scripts/dbbackup_lv1.sh"
#!/bin/bash
source ~/.bash_profile
backtime=\$(date +"20%y%m%d%H%M%S")
rman target / log=/home/oracle/backup/level1_backup_\${backtime}.log<<RMAN_EOF
run {
allocate channel c1 device type disk;
allocate channel c2 device type disk;
crosscheck backup;
crosscheck archivelog all;
sql"alter system archive log current";
delete noprompt expired backup;
delete noprompt obsolete device type disk;
backup incremental level 1 database include current controlfile format '/home/oracle/backup/backlv1_%d_%T_%t_%s_%p';
backup archivelog all DELETE INPUT format '/home/oracle/backup/arch_%d_%T_%t_%s_%p';
release channel c1;
release channel c2;
}
RMAN_EOF
EOF
cd /home/oracle/scripts
chmod +x dbbackup_lv0.sh
chmod +x dbbackup_lv1.sh

添加到定时任务

在 root 用户下执行

su - root
echo "00 00 * * 0 /home/oracle/scripts/dbbackup_lv0.sh" >> /var/spool/cron/oracle
echo "00 00 * * 1,2,3,4,5,6 /home/oracle/scripts/dbbackup_lv1.sh" >> /var/spool/cron/oracle

连接到 RMAN 查看备份详细情况

rman target /
list backup;

验证备份集

restore validate database;
restore validate spfile;
restore validate controlfile;

4、恢复
①全量恢复:

数据启动到mount状态

sqlplus / as sysdba
startup mount
exit

启动 RMAN

rman target /

恢复数据库

RESTORE DATABASE;

应用归档日志(如果你的数据库是使用归档日志模式运行的,你需要应用归档日志以确保恢复到最新状态:)

RECOVER DATABASE;

退出RMAN

exit

打开数据库

sqlplus / as sysdba
ALTER DATABASE OPEN;

②恢复指定的数据文件(以system01.dbf为例)

确认损坏的数据文件(非必须)

sqlplus / as sysdba
SELECT * FROM DBA_DATA_FILES WHERE FILE_NAME = '/u01/app/oracle/oradata/wjz/system01.dbf';
exit

数据启动到mount状态

sqlplus / as sysdba
startup mount
exit

备份当前状态(非必须)

rman target /
BACKUP DATABASE;

恢复损坏的数据文件

 RESTORE DATAFILE '/u01/app/oracle/oradata/wjz/system01.dbf';

应用归档日志

 RECOVER DATAFILE '/u01/app/oracle/oradata/wjz/system01.dbf';

退出RMAN

exit

打开数据库

sqlplus / as sysdba
ALTER DATABASE OPEN;

http://www.ppmy.cn/ops/98730.html

相关文章

韩国云主机玩游戏性能怎么样

韩国云主机玩游戏性能怎么样&#xff1f;韩国云主机作为高性能的计算服务&#xff0c;为全球游戏玩家提供了一种新的游戏体验方式。用户所关注的韩国云主机在游戏性能方面的表现&#xff0c;可以从多个维度进行详细评估。下面将具体分析韩国云主机用于玩游戏的性能特点&#xf…

在Mac电脑安装Homebrew并且配置环境变量

问题&#xff1a;如何在Mac电脑安装Home brew&#xff1f; 解决&#xff1a;国外的链接容易下载安装失败&#xff0c;国内的镜像速度快&#xff0c;成功率高&#xff0c;进入终端输入以下你所需的链接命令即可&#xff1a; 国外链接&#xff1a;/bin/bash -c "$(curl -fsS…

计算机毕业设计 在线问诊系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

什么是网络安全?网络安全防范技术包括哪些?

一、引言 在当今数字化的时代&#xff0c;网络已经成为人们生活和工作中不可或缺的一部分。然而&#xff0c;随着网络的普及和应用的广泛&#xff0c;网络安全问题也日益凸显。从个人隐私泄露到企业关键信息被盗&#xff0c;从网络欺诈到大规模的网络攻击&#xff0c;网络安全…

openssl—心脏出血漏洞

openssl—心脏出血漏洞&#xff08;CVE-2014-0160&#xff09; Heartbleed漏洞 Heartbleed&#xff08;心脏出血&#xff09;漏洞&#xff0c;是一个出现在加密程序库OpenSSL的安全漏洞&#xff0c;该程序库广泛用于实现互联网的传输层安全&#xff08;TLS&#xff09;协议。…

基于多群体的变异策略集成的差分进化

题目与关键词 英文题目&#xff1a;Differential evolution with multi-population based ensemble of mutation strategies 英文关键词&#xff1a;Evolutionary algorithm, Differential evolution, Multi-population, Ensemble of mutation strategies, Numerical optimiza…

笔试算法-编程练习-01-J-24

d这套题&#xff0c;第一题数学找规律、第二题也是掺杂一些数学的模拟、第三题是动态规划。整体题目代码量不大&#xff0c;但是比较灵活&#xff0c;考验思维的敏捷度。 一、下雪 题目描述 村子里有一些桩子&#xff0c;从左到右高度依次为1,12,123,…&#xff0c;每两颗桩子…

计算机网络-PIM-SM组播实验

一、概述 目前为止我们学习了组播转发网络中的PIM协议&#xff0c;PIM模型有两种&#xff1a; PIM-DM主要使用在网络规模较小&#xff0c;用户集中的组播网络中。 PIM-SM主要使用在网络规模较大&#xff0c;用户较为分散的组播网络中。PIM-SM基于组播模型又可以分为PIM-SM&…