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

数据库备份

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

什么时候必须用冷备?
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. attachEvent与addEventlistener兼容性

    关于原生事件绑定中attachEvent与addEventlistener中兼容性以及attachEvent函数中this指代window有关问题   请点击下面回答中的"采纳为答案&quo ...

  2. SQL窗体函數一例

    需求: MSSQL,列出服務實例中全部數據庫的例如以下信息: 數據庫ID.數據庫名.創建日期.數據文件類型.數據文件大小.數據庫總大小.文件所在路徑. 寫法(後面的百分比為所花時間占比): -- 连接 ...

  3. 基于visual Studio2013解决C语言竞赛题之1063分橘子

       题目 解决代码及点评 /* 功能:某桔农家共有2520只桔子, 父亲要将它们分给六个儿子,其分法如下: 父亲先将2520只桔子分给六个儿子, 然后说:"老大,把你分到的桔子 ...

  4. 从零开始学C++之异常(一):C语言错误处理方法、C++异常处理方法(throw, try, catch)简介

    一.C语言错误处理方法 1.返回值(if … else语句判断错误) 2.errno(linux 系统调用) 3.goto语句(函数内局部跳转) 4.setjmp.longjmp(Do not use ...

  5. 使用JDBC进行数据库的事务操作(1)

    本篇讲述数据库中非常重要的事务概念和如何使用MySQL命令行窗口来进行数据库的事务操作.下一篇会讲述如何使用JDBC进行数据库的事务操作. 事务是指数据库中的一组逻辑操作,这个操作的特点就是在该组逻辑 ...

  6. Spring拦截器中通过request获取到该请求对应Controller中的method对象

    背景:项目使用Spring 3.1.0.RELEASE,从dao到Controller层全部是基于注解配置.我的需求是想在自定义的Spring拦截器中通过request获取到该请求对应于Control ...

  7. HEVC码率控制浅析——HM代码阅读之四

    继续分析第一篇提到的compressSlice中对LCU的RC参数初始化: #if RATE_CONTROL_LAMBDA_DOMAIN Double oldLambda = m_pcRdCost-& ...

  8. Swift - 计算次方(2的N次方,2的随机次方)

    1,使用<<计算2的N次方 1 2 var value = 1<<4  //2的4次方 var value = 1<<Int(arc4random_uniform( ...

  9. 如何获取本地html文件的标题

    本文用于提取本地网页的标签元素如<TITLE></TITLE>,<IMG>,<A></A>...的内容,非常实用于批量文件的操作,这是按一般 ...

  10. gap锁 对于unique index 和Ununique index

    Session 1: mysql> select * from s100; +-----+------+------+ | sn | id | info | +-----+------+---- ...