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

数据库备份

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

什么时候必须用冷备?
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. 在Web Api中快速实现JSonp

    本文翻译自:http://www.codeproject.com/Tips/631685/JSONP-in-ASP-NET-Web-API-Quick-Get-Started Concept: 同源策 ...

  2. Java基础06 组合

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经尝试去定义类.定义类,就是新建了一种类型(type).有了类,我们接着构造 ...

  3. Windows 和 Linux下使用socket下载网页页面内容(可设置接收/发送超时)的代码

    主要难点在于设置recv()与send()的超时时间,具体要注意的事项,请看代码注释部分,下面是代码: #include <stdio.h> #include <sys/types. ...

  4. boost::asio async_write也不能保证一次发完所有数据 一

    你要是看过basic_stream_socket的文档,里面提到async_write_some不能保证将所有要发送的数据都发出去.并且提到如果想这样做,需要使用boost asio的async_wr ...

  5. paip.php 配置ZEND DEBUGGER 断点调试for cli..

    paip.php  配置ZENDDEBUGGER 断点调试for cli.. 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http:/ ...

  6. JavaScript编程:javaScript核心基础语法

    1.javaScript核心基础语法: javaScript技术体系包含了5个内容:          1.核心语言定义:          2.原生对象和雷子对象:          3.浏览器对象 ...

  7. python 站点爬虫 下载在线盗墓笔记小说到本地的脚本

    近期闲着没事想看小说,找到一个全是南派三叔的小说的站点,决定都下载下来看看,于是动手,在非常多QQ群里高手的帮助下(本人正則表達式非常烂.程序复杂的正则都是一些高手指导的),花了三四天写了一个脚本 须 ...

  8. Sencha Touch 2 在MAC下详细的开发流程

    在不久的将来我相信Web App会流行的非常广, 能看到未来才能主宰未来.对于我们开发人员来说我觉得想成就一件伟大的事情,需要过硬的技术和好的想法,再加上决不放弃的精神,一定可以成功的. 以下在Mac ...

  9. ios-王云鹤 调用ios系统功能---------------打电话、发短信、发邮件

    --------------------------------------菜鸟总结,欢迎读者雅正------------------------------------------------- 先 ...

  10. poj 2786 - Keep the Customer Satisfied

    Description   Simon and Garfunkel Corporation (SG Corp.) is a large steel-making company with thousa ...