Oracle 12c的备份和恢复策略(RMAN备份[开启归档/控制文件/数据文件/归档日志]):
备份策略:
* 每半年做一个数据库的全备份(包括所有的数据和只读表空间)
* 每周做一次零级备份
* 每天做一次一级备份
*备份前设置rman的参数:configure controlfile autobackup on;(RMAN> show all;查看参数)
--crontab定时任务:
0 1 1 1,7 * oracle /bin/bash /data/oracle/backup/rman_bak_full.sh >>/tmp/rman_backup.log 2>&1
0 1 * * 0 oracle /bin/bash /data/oracle/backup/rman_bak_0.sh >>/tmp/rman_backup.log 2>&1
0 1 * * 1-6 oracle /bin/bash /data/oracle/backup/rman_bak_1.sh >>/tmp/rman_backup.log 2>&1
开启归档模式:
  1.查询归档目录:
  sql>show parameter db_recovery;
  2.查看归档是否打开:
  sql>archive log list;
  或
  sql>select log_mode from v$database;
  3.开启归档模式:
  sql>shutdown immediate;
  sql>startup mount;
  sql>alter database archivelog;
  sql>alter database open;
  4.更改归档路径:
  sql>alter system set log_archive_dest='/data/oracle/app/oracle/fast_recovery_area' scope=spfile;;
  sql>shutdown immediate;
  sql>startup;
================================================================================================================
一、备份:
1)数据库全备份的脚本:
#cat /data/oracle/backup/rman_bak_full.sh
#!/bin/bash export ORACLE_SID=bieeocrl
export ORACLE_BASE=/data/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS' curr_t=`date +%Y%m%d%H%M%S`
echo '-------------------------------------------' | tee >> /data/oracle/backup/bieeocrl/rman_bak_${curr_t}.log
echo 'Start FULL Backup at '`date +%Y-%m-%d:%H:%M:%S` | tee >> /data/oracle/backup/bieeocrl/rman_bak_${curr_t}.log
echo '-------------------------------------------' | tee >> /data/oracle/backup/bieeocrl/rman_bak_${curr_t}.log rman target / nocatalog log /data/oracle/backup/bieeocrl/rman_bak_${curr_t}.log append<<EOF_RMAN
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup full tag 'dbfull' format '/data/oracle/backup/bieeocrl/full_bak_%U_%s_%T' as compressed backupset database include current controlfile;
sql 'alter system archive log current';
backup archivelog all delete input tag='arch_bak' format '/data/oracle/backup/bieeocrl/arch_%U_%s_%T';
backup current controlfile tag='ctl_bak'format '/data/oracle/backup/bieeocrl/full_control_%U_%s_%T';
backup spfile tag='spfile_bak' format '/data/oracle/backup/bieeocrl/spfile_%U_%s_%T';#参数文件备份可选
release channel c1;
release channel c2;
release channel c3;
}
EOF_RMAN
2)零级备份的脚本:
#cat /data/oracle/backup/rman_bak_0.sh
#!/bin/bash export ORACLE_SID=bieeocrl
export ORACLE_BASE=/data/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS' curr_t=`date +%Y%m%d%H%M%S`
echo '-------------------------------------------' | tee >> /data/oracle/backup/bieeocrl/rman_bak_${curr_t}.log
echo 'Start level 0 Backup at '`date +%Y-%m-%d:%H:%M:%S` | tee >> /data/oracle/backup/bieeocrl/rman_bak_${curr_t}.log
echo '-------------------------------------------' | tee >> /data/oracle/backup/bieeocrl/rman_bak_${curr_t}.log rman target / nocatalog log "/data/oracle/backup/bieeocrl/rman_bak_${curr_t}.log" append<<EOF_RMAN
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 0 tag 'db0' format '/data/oracle/backup/bieeocrl/db0_%U_%s_%T' as compressed backupset database;
sql 'alter system archive log current';
backup archivelog all delete input tag='arch_bak' format '/data/oracle/backup/bieeocrl/arch0_%U_%s_%T';
backup current controlfile tag='ctl_bak'format '/data/oracle/backup/bieeocrl/db0_control_%U_%s_%T';
backup spfile tag='spfile_bak' format '/data/oracle/backup/bieeocrl/spfile0_%U_%s_%T';#参数文件备份可选
release channel c1;
release channel c2;
release channel c3;
}
EOF_RMAN
3)一级备份的脚本:
#cat /data/oracle/backup/rman_bak_1.sh
#!/bin/bash export ORACLE_SID=bieeocrl
export ORACLE_BASE=/data/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS' curr_t=`date +%Y%m%d%H%M%S`
echo '-------------------------------------------' | tee >> /data/oracle/backup/bieeocrl/rman_bak_${curr_t}.log
echo 'Start level 1 Backup at '`date +%Y-%m-%d:%H:%M:%S` | tee >> /data/oracle/backup/bieeocrl/rman_bak_${curr_t}.log
echo '-------------------------------------------' | tee >> /data/oracle/backup/bieeocrl/rman_bak_${curr_t}.log rman target / nocatalog log /data/oracle/backup/bieeocrl/rman_bak_${curr_t}.log append<<EOF_RMAN
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 1 tag 'db1' format '/data/oracle/backup/bieeocrl/db1_%U_%s_%T' as compressed backupset database;
sql 'alter system archive log current';
backup archivelog all delete input tag='arch_bak' format '/data/oracle/backup/bieeocrl/arch1_%U_%s_%T';
backup current controlfile tag='ctl_bak'format '/data/oracle/backup/bieeocrl/db1_control_%U_%s_%T';
backup spfile tag='spfile_bak' format '/data/oracle/backup/bieeocrl/spfile1_%U_%s_%T';#参数文件备份可选
release channel c1;
release channel c2;
release channel c3;
}
EOF_RMAN
如果按照以上oracle备份策略,则每天的所需要备份的数据量只有一天的改变量。而做恢复时最多要恢复一个零级备份+六个一级备份。
================================================================================================================
二、恢复数据库的过程:
1)rman target / nocatalog
2)RMAN> startup nomount;
3)RMAN> restore spfile from '/data/oracle/backup/bieeocrl/db0_%U_%s_%T';
4)RMAN> shutdown immediate;
5)RMAN> startup nomount;
6)RMAN> restore controlfile from '/data/oracle/backup/bieeocrl/db0_control_%U_%s_%T';
7)RMAN> alter database mount;
8)RMAN> catalog start with '/data/oracle/backup/bieeocrl/arch0_%U_%s_%T';
9)RMAN> run{
allocate channel ch1 type disk;
restore database;
recover database;
release channel ch1;
}
10)RMAN> alter database open resetlogs;
11)RMAN> shutdown immediate;
12)RMAN> startup;
================================================================================================================

  

[原创]Oracle 12c的备份和恢复策略的更多相关文章

  1. Oracle简单的备份和恢复-导出和导入(1)

    ylbtech-Oracle:Oracle简单的备份和恢复-导出和导入(1) Oracle简单的备份和恢复-导出和导入 1. 用户导出自己的表(emp,dept)返回顶部 1.1, 我们启动Oracl ...

  2. Oracle简单的备份和恢复-导出和导入(2)

    ylbtech-Oracle:Oracle简单的备份和恢复-导出和导入(2) 简单的备份和恢复-导出和导入(2) 1. 用户导入导出文件中的一张表(emp)返回顶部 0.1, 我们在sql plus中 ...

  3. Oracle简单的备份和恢复-导入和导出-目录

    ylbtech-Oracle:Oracle简单的备份和恢复-导入和导出-目录 Oracle安全运行离不开良好的备份和恢复机制,因为我们不是DBA.所以我们也就不过多的讲解DBA的备份和恢复.作为程序员 ...

  4. [原创]Oracle 12c 抢先安装手迹

    [前言] Oracle 12c 终于投放市场了,唉,等了很久了.据官方说这是一个为云计算平台量身定做的版本....且不管真的假的,先让我们把它装上再说. 注:笔者在安装的过程中发现12c的安装过程,较 ...

  5. Oracle基础 数据库备份和恢复

    一.为什么需要数据备份 造成数据丢失的主要原因: 1.介质故障. 2.用户的错误操作. 3.服务器的彻底崩溃. 4.计算机病毒. 5.不可预料的因素. Oracle中故障类型分为以下4种. 1.语句故 ...

  6. Oracle 12C 新特性之 恢复表

    RMAN的表级和表分区级恢复应用场景:1.You need to recover a very small number of tables to a particular point in time ...

  7. oracle 12c 多租户 pdb 恢复(单个pdb数据文件、非系统pdb表空间、整个pdb数据库)

    环境:数据库版本 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 实验准备:1.-- 数据库归 ...

  8. 180727-时序数据库InfluxDB之备份和恢复策略

    influxdb 备份与恢复 参考: influxdb backup and restore 环境: influxdb v1.6.0 使用influx自动的控制台进行 I. 备份 备份命令 influ ...

  9. oracle使用rman备份集恢复方式创建ADG

    一.背景 系统: 主库:rhel 6.4 64bit 备库:rhel 6.4 64bit   内存:2G [oracle@dgdb1 ~]$ free -m total used free share ...

随机推荐

  1. ajax和跨域

    一.简介 ajax是什么? AJAX(Asynchronous JavaScript and XML) 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX, (异步的JavaSc ...

  2. mybatis-枚举类型的typeHandler&自定义枚举类型typeHandler

    MyBatis内部提供了两个转化枚举类型的typeHandler给我们使用. org.apache.ibatis.type.EnumTypeHandler 是使用枚举字符串名称作为参数传递的 org. ...

  3. python_如何去除字符串中不想要的字符?

    问题: 过滤用户输入中前后多余的空白字符 '    ++++abc123---    ' 过滤某windows下编辑文本中的'\r': 'hello world \r\n' 去掉文本中unicode组 ...

  4. 递归演示程序(swift)

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  5. 解决Flink输出日志中时间比当前时间晚8个小时的问题

    Flink安装在CentOS7上,默认时间是UTC时间,查看Flink日志,发现输出时间比当前时间晚8个小时. 通过如下命令,调整成北京时间 cp /usr/share/zoneinfo/Asia/S ...

  6. test for python socket

    server: #!/usr/bin/python import socket import threading import time def tcplink(sock, addr): print ...

  7. Django 部署到Nginx

    在网上搜了很多篇Django+uwsgi+Nginx的部署文章,忙了一下午头昏脑胀,最终完成了部署.部署文章流程讲解都很好,但在细节上或许缺乏一些注意力,导致我多篇文章来回切换在字里行间寻找蛛丝马迹. ...

  8. C#面向对象方式设置、读取应用配置

    关注点: 1.用面向对象方式的方式(get,set)访问和设置配置项 2.“CallerMemberName”在.net 4以下的变通方式 最后一周了,大伙都进入过年模式了.身还在,心已远.最近事情不 ...

  9. 关于scanf,gets

    1.用了gets后,假如你没有输入任何东西直接[enter],它将执行下一条命令 2.用了scanf后,直接按了[enter],它将换行并等待你的输入,直到你输入非[enter],再执行下一条命令. ...

  10. python之金融与量化分析

      一.金融 二.ipython 基础功能 ipython 快捷键