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. 如何用vue实现树形菜单?

    在公司培训了2周,布置的作业是从树形,grid分页以及echarts中选一个.由于都不是很熟,就挑了第一个.本来想在网上找找参考,然后模仿着做一个,但是网上的代码多少参差不齐,写到一半没了,所以只要自 ...

  2. vue中什么样的数据可以是在视图中显示

    1. Vue中不可以添加不存在的属性,因为不存在的属性是没有getter和setter的. <div id="app"> {{msg.a}} {{msg.b}} < ...

  3. 策略模式--List排序

    需求:根据姓名进行排序,升序或者降序,如果名字一样,就按照id升序排序,用策略模式 步骤一: 定义一个Person对象 public class Person { private Integer id ...

  4. npm install安装时忘记--save解决方法

    title: npm install安装时忘记--save解决方法 date: 2017-05-07 20:17:54 tags: npm categories: --- 网上还有一个解决方案就是: ...

  5. Java多线程之线程的创建

    好久没有更博客了,最近一直在忙工作的事情.现在终于空下来了,这2天会抓紧时间整理多线程和socket,把JavaSE结束掉. 关于多线程,首先会涉及到哪些东西呢?首先要了解线程,为什么要使用线程,线程 ...

  6. android dialog弹出的情况下监听返回键

    view = LayoutInflater.from(getActivity()).inflate( R.layout.dialog_tips, null); title2 = (TextView) ...

  7. python异步加协程获取比特币市场信息

    目标 选取几个比特币交易量大的几个交易平台,查看对应的API,获取该市场下货币对的ticker和depth信息.我们从网站上选取4个交易平台:bitfinex.okex.binance.gdax.对应 ...

  8. Git分支高级管理[四]

    标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 切换分支 git checkout 撤销对文件的修改 git checkout -- ...

  9. python并发编程之多进程(实现)

    一.multipricessing模块的介绍 python中的多线程无法利用多核优势,如果想要充分的使用多核CPU资源,在python中大部分情况下需要用多线程,python提供了multiproce ...

  10. MySQL--当查询遇到隐藏字符

    事件起因: 在将一些EXCEL维护的数据导入MySQL中维护过程中发现漏了一些数据,检查时发现看着相同的SQL返回的结果完全不同: 在SQLyog中看到的截图如: 两个SQL执行返回结果不同,其中一条 ...