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

数据库备份

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

什么时候必须用冷备?
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. NHibernate -- HQL

    使用NHibernate中的HQL来查询数据. 代码: /// <summary> /// 查找事件 /// </summary> private void btn_Selec ...

  2. 【linux驱动笔记】字符设备驱动相关数据结构与算法

    欢迎转载,转载时需保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http:// ...

  3. 总线接口与计算机通信(一)I2C总线

    1.  I2C总线的基本概念    1)发送器(Transmitter):发送数据到总线的器件    2)接收器(Receiver):从总线接收数据的器件    3)主机(Master):初始化发送. ...

  4. cocos2dx 在windows上实现键盘输入

    cocos2d主要面向的是触摸屏幕设备的,在WINDOWS下的定位感觉多多少少就是相当于一个模拟器,因此并没有太多的PC下重要的键盘支持.然而响应键盘消息对于调试来说可以提供不少方便.下边就通过更改c ...

  5. ssh安装过程

    1.在线安装[root@Asianux ~]# sudo apt-get install ssh   2.进行加密设置[root@Asianux ~]# ssh-keygen -t rsa3.启动SS ...

  6. vi/vim高级命令集粹

    vi/vim高级命令集粹 (ctrl +v过来 留着以后看) 1.交换两个字符位置 xp 2.上下两行调换 ddp 3.把文件内容反转 :g/^/m0/ (未通过) 4.上下两行合并 J 5.删除所有 ...

  7. VM中装Linux换ISO文件报错"该光盘无法被挂载"

    一.发现问题 利用VM安装Red Hat Linux的时候,第一个iso安装完毕,准备换第二个iso,报错“该光盘无法被挂载”. 二.解决办法 上面的菜单栏中“虚拟机”—>“设置”—>“硬 ...

  8. AngularJS之WebAPi上传

    AngularJS之WebAPi上传(十)   前言 前面一系列我们纯粹是讲AngularJS,在讲一门知识时我们应该结合之前所学综合起来来做一个小的例子,前面我们讲了在MVC中上传文件的例子,在本节 ...

  9. PHP学习之-1.7 注释

    注释 在PHP中也有注释语句:用双斜杠 "//" 来表示.其他语言中 HTML使用 "<!--  -->" ,CSS中使用 "/*     ...

  10. Duanxx的C++学习: 使用类没有被定义 原因及解决方法

    今天,随着C++写的神经网络算法.我发现了一个很令人费解的问题,下面的描述一般地描述,例如: 我有两个类ClassA和ClassB,它们分别有成员变量a.b; ClassA有一个函数是这种:Funct ...