物理备份 -- 数据文件,控制文件,日志文件,参数文件

数据库备份

冷备 -- 归档和非归档均可以

什么时候必须用冷备?
1. 数据库的模式为非归档的
2. 用于现场保护

冷备的过程:
1. 首先查看备份文件的位置:

数据文件、控制文件、日志文件
select '!cp -v '||name|| ' /u01/app/oracle/backup/coldbk' from v$datafile
union all
select '!cp -v '||name|| ' /u01/app/oracle/backup/coldbk' from v$controlfile
union all
select '!cp -v '||member|| ' /u01/app/oracle/backup/coldbk' from v$logfile;

参数文件:
show parameter spfile;
$ORACLE_HOME/dbs/spfileorcl.ora

口令文件:
$ORACLE_HOME/dbs/orapworcl

2. 创建备份目录
mkdir -p /u01/app/oracle/backup
mkdir -p /u01/app/oracle/backup/coldbk
mkdir -p /u01/app/oracle/backup/hotbk
mkdir -p /u01/app/oracle/backup/archivelog

3. 停止数据库:
shutdown immediate

4. 拷贝以上的文件到备份目录:

!cp -v /u01/app/oracle/oradata/orcl/*dbf /u01/app/oracle/backup/coldbk
!cp -v /u01/app/oracle/oradata/orcl/*log /u01/app/oracle/backup/coldbk
!cp -v /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/backup/coldbk
!cp -v /u01/app/oracle/fra/orcl/control02.ctl /u01/app/oracle/backup/coldbk
!cp -v /u01/app/oracle/product/11.2.0/db/dbs/spfileorcl.ora /u01/app/oracle/backup/coldbk
!cp -v /u01/app/oracle/product/11.2.0/db/dbs/orapworcl /u01/app/oracle/backup/coldbk

5. 启动数据库:
startup

在非归档模式下,如果从备份以来,数据库经历了日志切换,使用冷备份只能进行不完全恢复, 数据库只能恢复到备份点,从备份点以后的数据都会丢失

实验:非归档模式下的恢复

模拟损坏:
conn scott/tiger
create table e as select * frm emp;
将所有的数据文件删除:
cd $ORACLE_BASE/oradata/orcl
rm -rf *dbf

select * from e;---还可以访问,因为e表在内存中

清除内存:

conn /as sysdba
alter system flush buffer_cache;

conn scott/tiger--报错,杀掉dbw0进程

ps -ef | grep dbw

kill -9

执行恢复:

将数据文件、控制文件、日志文件的备份进行还原:
cd /u01/backup/coldbk
cp *dbf /u01/app/oracle/oradata/orcl
cp *ctl /u01/app/oracle/oradata/orcl
cp *log /u01/app/oracle/oradata/orcl

启动数据库

sqlplus / as sysdba
startup

conn scott/tiger
select * from tab;--发现e表丢失

热备 -- 只能归档

热备:是指数据库在打开的状态下进行的备份,只有数据库是归档模式时,才能使用

对整个数据库进行热备的过程

1. 查看数据文件位置

select '! cp -v '||name|| ' /u01/backp/hotbk' from v$datafile

! cp -v /u01/app/oracle/oradata/orcl/system01.dbf /u01/app/oracle/backup/hotbk
! cp -v /u01/app/oracle/oradata/orcl/undotbs01.dbf /u01/app/oracle/backup/hotbk
! cp -v /u01/app/oracle/oradata/orcl/sysaux01.dbf /u01/app/oracle/backup/hotbk
! cp -v /u01/app/oracle/oradata/orcl/users01.dbf /u01/app/oracle/backup/hotbk
! cp -v /u01/app/oracle/oradata/orcl/example01.dbf /u01/app/oracle/backup/hotbk

2. 对数据文件进行备份:

alter database begin backup;

! cp -v /u01/app/oracle/oradata/orcl/system01.dbf /u01/app/oracle/backup/hotbk
! cp -v /u01/app/oracle/oradata/orcl/undotbs01.dbf /u01/app/oracle/backup/hotbk
! cp -v /u01/app/oracle/oradata/orcl/sysaux01.dbf /u01/app/oracle/backup/hotbk
! cp -v /u01/app/oracle/oradata/orcl/users01.dbf /u01/app/oracle/backup/hotbk
! cp -v /u01/app/oracle/oradata/orcl/example01.dbf /u01/app/oracle/backup/hotbk

alter database end backup;

begin backup的时候:oracle将执行检查点,通知数据库写进程写脏块,然后更新数据文件的文件头和控制文件的检查点scn, 同时要冻结文件头的检查点scn,当发出end backup的时候才会改变

3. 对控制文件进行备份:

有两种方式:

alter database backup controlfile to '/u01/app/oracle/backup/hotbk/control.bak' reuse; -- 快照式备份
alter database backup controlfile to trace as '/u01/app/oracle/backup/hotbk/control.tra' reuse;

4. 对归档日志文件进行备份:

日志文件已经归档,不需要备份;
将当前日志归档后备份归档即可
alter system archive log current;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
select NAME from v$archived_log;
!cp /u01/app/oracle/archivelog/* /u01/app/oracle/backup/archivelog

5. 对参数文件进行备份:
create pfile='/u01/app/oracle/backup/hotbk/initorcl.ora' from spfile;

6. 对口令文件的备份:

!cp -v $ORACLE_HOME/dbs/orapworcl /u01/app/oracle/backup/hotbk

热备脚本:
vi /u01/userbak.sh写入以下内容:

sqlplus / as sysdba<<eof
alter database begin backup;
!cp -v /u01/app/oracle/oradata/orcl/*dbf /u01/app/oracle/backup/hotbk
alter database end backup;
alter database backup controlfile to trace as '/u01/app/oracle/backup/hotbk/control.trace' reuse;
alter database backup controlfile to '/u01/app/oracle/backup/hotbk/control.bak' reuse;
alter system archive log current;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
create pfile='/u01/app/oracle/backup/hotbk/initorcl.ora' from spfile;
!cp $ORACLE_HOME/dbs/orapworcl /u01/app/oracle/backup/hotbk
!cp /u01/app/oracle/archivelog/* /u01/app/oracle/backup/archivelog

exit
eof

echo "backup is ok"

保存退出

chmod +x /u01/userback.sh

cd /u01
./userbak.sh

备份表空间

对表空间实施热备:
select file_name from dba_data_files where tablespace_name='USERS';
alter tablespace users begin backup;
!cp /u01/app/oracle/oradata/orcl/users01.dbf /u01/app/oracle/backup/hotbk/
alter tablespace users end backup;

对表空间实施冷备:

alter tablespace users offline normal;
!cp /u01/app/oracle/oradata/orcl/users01.dbf /u01/app/oracle/backup/coldbk/
alter tablespace users online;

OCA读书笔记(15) - 执行数据库备份的更多相关文章

  1. OCA读书笔记(16) - 执行数据库恢复

    16. Performing Database Recovery 确定执行恢复的必要性访问不同接口(EM以及命令行)描述和使用可用选项,如RMAN和Data Recovery Advisor执行恢复- ...

  2. OCA读书笔记(4) - 管理数据库实例

    Objectives: •Start and stop the Oracle database and components •Use Oracle Enterprise Manager •Acces ...

  3. OCA读书笔记(7) - 管理数据库存储结构

    7.Managing Database Storage Structures 逻辑结构 数据库的存储结构有物理结构和逻辑结构组成的 物理结构:物理上,oracle是由一些操作系统文件组成的 SQL&g ...

  4. 《SQL Server企业级平台管理实践》读书笔记——当我们的备份都已经损坏的时候该怎么办

    作为数据库管理员最最痛苦的莫过于,当数据库宕机的时候需要找备份,但在这个时候突然发现备份文件也是坏的,这就意味着数据会丢失,为此可能会丢掉职位,饭碗不保,所以为此,我们一定要保证好备份的完整性,一般发 ...

  5. OCA读书笔记(18) - 使用Support工具

    调查和解决问题 问题:数据库中的任一严重的错误定义为一个问题,一般来说,这些错误包括大家熟悉的ORA-600错误和ORA-04031(共享池超出)错误,涉及数据库问题的所有元数据都存储在ADR中,每个 ...

  6. OCA读书笔记(1) - 浏览Oracle数据库架构

    Objectives: List the major architectural components of Oracle DatabaseExplain the memory structuresD ...

  7. OCA读书笔记(14) - 备份和恢复基本概念

    备份恢复概念 如何判断数据库的一致性 在mount状态下,oracle如何判断数据库的一致性 scn:system change number,它是数据库时钟 如何查询当前系统的scn: select ...

  8. OCP读书笔记(12) - 执行闪回数据库

    闪回数据库使用的是闪回日志,闪回日志存在于闪回目录(也就是快速闪回区中)闪回日志:就是数据块修改之前的镜像,简称前像 1.查看闪回目录的位置:show parameter recovery 如果闪回目 ...

  9. OCA读书笔记(11) - 实现Oracle数据库审计

    11 Implementing Oracle Database Auditing 描述DBA对于安全和审计的职责使能标准的数据库审计安全审计选项查看审计信息维护审计路径 最小权限原则只在计算机上安装所 ...

随机推荐

  1. 当装了两个tomcat后,如何修改tomcat端口

    链接地址:http://blog.csdn.net/alongwilliam/article/details/8199974 以前只知道当tomcat端口号冲突了如何修改tomcat默认的8080端口 ...

  2. 第1章 软件测试基本概念(Week1,3月3日)

    一.对软件的认识 1. 什么是软件 2. 软件的分类 3. 软件开发的生命周期模型 (1)瀑布模型 (2)Scrum 其实对用瀑布模型这种臃肿不堪.要求严格.而无法适应软件开发周期变化的开发模型,渐渐 ...

  3. 如何捕获Wince下form程序的全局异常

    前言 上两篇文章我们总结了在winform程序下如何捕获全局的异常.那么同样的问题,在wince下我们如何来处理呢?用相同的代码来处理可以吗? 答案是否定的,上面的方案1完全不能解决wince下的情况 ...

  4. C中嵌入SQL

    连接到SAMPLE数据库,查询LASTNAME为JOHNSON的FIRSTNAME信息. #include <stdio.h> #include <stdlib.h> #inc ...

  5. Lisp学习:这是本质与应用?

    The Common Lisp Programming Language "The programming language of choice for those who set out ...

  6. TraceView总结

    一.TraceView简单介绍 TraceView是AndroidSDK里面自带的工具,用于对Android的应用程序以及Framework层的代码进行性能分析. TraceView是图形化的工具,终 ...

  7. 重操JS旧业第十一弹:BOM对象

    BOM对象即浏览器内置对象,现今流行的浏览器内核有Safri,Firefox,Chrome,Opera,IE其中IE的兼容性是最蛋疼的在10及其过后还好点,但是现在IE基本上淘汰,而国内像360这种垃 ...

  8. css3 animation动画事件

    当使用css3时,会遇到利用@keyframes来定义动画事件,利用以下3个事件,能够捕捉当前元素的动画: AnimationEnd //动画结束时 AnimationStart  //动画開始 An ...

  9. EasyUI - 使用一般处理程序 HttpHandler (.ashx)

    以easyui中的panel中,使用url加载数据为列. 效果: html代码: <div id="p" style="padding: 10px;"&g ...

  10. list view Item 里面有ImageButton

    list view Item 里面有ImageButton listview 的item中有ImageButton, 或者 Button. 目的: ImageButton 和 Button的click ...