平台:redhat linux as5,oracle10g
Oracle提供了许多方法来备份数据库。包括用户管理,恢复管理器(RMAN),Oracle数据泵等。用户管理允许用户通过操作系统命令手动备份数据库。本文主要介绍如何手动备份整个数据库,以及如何手动单独备份表空间,控制文件,spfile文件等.

备份数据库

1.备份内容
    备份数据库是指备份数据库的所有数据文件,控制文件,参数文件和口今文件。下面先找到这些内容
    数据文件
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/oradata/denver/system01.dbf
/u01/oradata/denver/undotbs01.dbf
/u01/oradata/denver/cwmlite01.dbf
/u01/oradata/denver/drsys01.dbf
/u01/oradata/denver/example01.dbf
/u01/oradata/denver/indx01.dbf
/u01/oradata/denver/odm01.dbf
/u01/oradata/denver/tools01.dbf
/u01/oradata/denver/users01.dbf
/u01/oradata/denver/xdb01.dbf

    控制文件
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/u01/oradata/denver/control01.ctl
/u01/oradata/denver/control02.ctl
/u01/oradata/denver/control03.ctl

    可见数据文件和控制文件都在/u01/oradata/denver/下,但这个目录下还有redo*.log,在归档模式下一般重做日志不需要备份
SQL> ! ls /u01/oradata/denver
archive        control03.ctl  example01.dbf  redo01.log  system01.dbf  undotbs01.dbf
control01.ctl  cwmlite01.dbf  indx01.dbf     redo02.log  temp01.dbf    users01.dbf
control02.ctl  drsys01.dbf    odm01.dbf      redo03.log  tools01.dbf   xdb01.dbf

    参数文件和口今文件
SQL> show parameter spfile;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      ?/dbs/spfile@.ora
SQL> ! ls $ORACLE_HOME/dbs
initdenver.ora  init.ora  lkDENVER     spfiledenver.ora
initdw.ora      lkAAA     orapwdenver  spfiledenver.ora.bak

    现在我们找到了要备份的所有内容,即
/u01/oradata/denver/*dbf(数据文件)
/u01/oradata/denver/*.ctl(控制文件)
$ORACLE_HOME/dbs/spfiledenver.ora(参数文件)
$ORACLE_HOME/dbs/orapwdenver(密码文件)

2.备份方法
    备份数据库分为冷备和热备,冷备也叫数据一致性备份,是指关闭了数据库之后,把需要备份的内容CP出来,比较简单,只要能找到这些文件就能备份出来,热备也叫数据库非一致性备份,是指在数据库open状态下备份数据文件和控制文件的方法,
    冷备要关闭数据库会中断业务,也比较简单,在此不做讨论,下面使用热备来备份数据库,注意热备份一定要在归档模式下备份
SQL> archive log list
Database log mode              Archive Mode
Automatic archival              Enabled
Archive destination              /u01/oradata/denver/archive

    由于在第一步已找到了要备份的文件,现在开始备份
开始备份
SQL> alter database begin backup;
Database altered.
SQL>! cp /u01/oradata/denver/*.dbf /u01/backup/
SQL>alter database backup controlfile to '/u01/backup/backup.ctl'
SQL>! cp $ORACLE_HOME/dbs/spfiledenver.ora /u01/backup/
SQL>! cp $ORACLE_HOME/dbs/orapwdenver /u01/backup/
SQL>! alter database end backup;
SQL>alter system archive log current;

     这样整个数据库就备份完了,备份完后应做测试是不是有效备份,只要是有效备份,那么就可以高枕无忧了。下面介绍如何单独备份表空间,控制文件,spfile等

2.备份表空间

    表空间在oracle中只是个逻辑概念,备份表空间其实是备份表空间下的数据文件,我们要找到表空间下对应的数据文件,把数据文件备出来
    注意表空间备份只适用于archivelog模式,备份表空间分为在表空间online备份和表空间offline备份,
表空间脱机备份
SQL> select file_name from dba_data_files where tablespace_name='TEST1';
FILE_NAME
--------------------------------------------------------------------------------
/u01/test1.dbf
SQL> alter tablespace test1 offline;
Tablespace altered.
SQL> ! cp /u01/test1.dbf /u01/backup
SQL> alter tablespace test1 online;
Tablespace altered.

    这样表空间test1就备份完了,因为表空间offline后就不能访问数据文件了,而且system表空间和正在使用的undo表空间不能脱机,所以这种方法很少用。
表空间联机备份
SQL> alter tablespace test1 begin backup;
Tablespace altered.
SQL> ! cp /u01/test1.dbf /u01/backup/
SQL> alter tablespace test1 end backup;
Tablespace altered.

备份完备。别外如果要备份只读表空间直接把数据文件拷贝出来就可以了,不用区分脱机和联机

3.备份控制文件

    控制文件用于记录和维护数据库,当恢复数据库时,服务器进程和后台进程需要从控制文件中读取各种与备份相关的信息,如果控制文件损坏,则会导致备份信的丢失,当数据库配置发生改变时,一定要再单独备份控制文件
备份方法:
1.使用多元控制文件
2.备份到跟踪文件
3.建立控制文件副本
其中前两各方法,在以前的文章”控制文件及归档日志管理”已阐述
第3种方法其实我们在上面备份数据库时用过
SQL> alter database begin backup;
Database altered.
SQL>alter database backup controlfile to '/u01/backup/backup.ctl'
#如果第二次使用这个命令,在最后加参数reuse(覆盖前一个)
SQL>alter database backup controlfile to '/u01/backup/backup.ctl' reuse;
SQL>! alter database end backup;

4.备份参数文件,口今文件

#参数文件
SQL>create pfile from spfile
SQL>! cp $ORACLE_HOME/dbs/spfiledenver.ora /u01/backup/
#口今文件
SQL>! cp $ORACLE_HOME/dbs/orapwdenver /u01/backup/

5.备份归档日志

    在归档模式下,对数据库的所有操作都存到了归档日志里,因些物理恢复要用到归档日志,为了确保恢复可以顺利进行,还应该备份归档日志.备份归档日志很简单,找到文件CP出来就可以了.
#备份过去一天的归档日志
SQL> select name from v$archived_log where dest_id=1 and first_time>=sysdate-1;
NAME
--------------------------------------------------------------------------------
/u01/oradata/denver/archive/1_12.dbf
/u01/oradata/denver/archive/1_13.dbf
/u01/oradata/denver/archive/1_14.dbf
SQL>! cp /u01/oradata/denver/archive/1_12.dbf /u01/backup/
SQL>! cp /u01/oradata/denver/archive/1_13.dbf /u01/backup/
SQL>! cp /u01/oradata/denver/archive/1_14.dbf /u01/backup/

本文转自 vfast_chenxy 51CTO博客,原文链接:http://blog.51cto.com/chenxy/170534,如需转载请自行联系原作者

Oracle备份恢复一(手动备份)相关推荐

  1. oracle日志备份少数据库,oracle 账号锁定日志Oracle数据库全量备份恢复和部分备份恢复...

    Oracle数据库全量备份恢复和部分备份恢复 今天又遇到了Oracle数据库序列的问题,索性来个全库的备份和恢复.如下 imp/exp 方式 表模式备份: ­ oracle@sencloudServe ...

  2. MySQL-日志、完全备份恢复和增量备份恢复

    MySQL-日志.完全备份恢复和增量备份恢复 一.MySQL日志管理 1.MySQL日志文件 错误日志 二进制日志 中继日志 慢查询日志 二.查看日志状态命令 三.备份的重要性 1.造成数据丢失的原因 ...

  3. mysql gtid 备份恢复_MYSQL数据库备份恢复

    在实例存活的情况,可以在实例状态中查询ALL_GTID. 在实例崩溃的情况,无法在实例状态中查询ALL_GTID.可以通过查询BINLOG中的Previous-GTIDs计算来获得ALL_GTID. ...

  4. mysql的备份恢复原理_MySQL备份恢复-mysqldump原理

    +++++++++++++++++++++++++++++++++++++++++++ 标题:mysqldump对MySQL数据库备份恢复原理 时间:2019年2月23日 内容:mysqldump工具 ...

  5. 数据库MySQL备份命令,手动备份MySQL数据库

    数据库MySQL进行备份 MySQL数据库进行手动备份时,不通过工具进行备份则需要输入以下的命令进行手动备份 示例 代码块语法遵循标准markdown代码,例如: mysqldump -h 数据库所在 ...

  6. mysql备份恢复项目_mysql备份恢复之xtrabackup (XBK、Xbackup)

    10.1安装 10.1.1 安装依赖包: wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo y ...

  7. Mysql 备份恢复与xtrabackup备份

    2017年即将过去,新年的钟声即将敲响.在这辞旧迎新的美好时刻,我向全国各族人民,向香港特别行政区同胞.澳门特别行政区同胞,向台湾同胞和海外侨胞,向工作在一线的运维工程师们,向为开源事业做出贡献的朋友 ...

  8. 怎么全量备份oracle数据库,Oracle 数据库全量备份恢复和部分备份恢复 | 学步园...

    今天又遇到了Oracle数据库序列的问题,索性来个全库的备份和恢复.如下 imp/exp 方式 表模式备份: ­ oracle@sencloudServer: exp dhoffice/dhoffic ...

  9. android备份程序数据库文件夹,Android备份/恢复:如何备份内部数据库?

    我实现了一个BackupAgentHelper使用提供的FileBackupHelper来备份和恢复我有本机数据库.这是通常与ContentProviders一起使用的数据库,位于/ data / d ...

最新文章

  1. HTML5 行内元素有哪些,块级元素有哪些, 空元素有哪些?
  2. ios tableview 滑动到底部
  3. Android移动开发之【Android实战项目】DAY3-滑动侧边栏SlidingMenu
  4. laravel的redis配置,一直报错Class 'Predis\Client' not found
  5. Android SoundPool.play方法的音量与系统音量的关系
  6. boost::lambda模块实现右值测试
  7. html文字超链接不让变色,css不让超链接变色怎么设置?
  8. 在电脑搭建oracle服务器端,oracle 服务器端搭建(C#开发环境)
  9. c语言如何输出一维数组字母,C语言一维数组初步学习笔记
  10. [Python] L1-031. 到底是不是太胖了-PAT团体程序设计天梯赛GPLT
  11. mysql获取ddl的语句,获取数据库或SHEME的DDL语句
  12. android换手机通讯录,技巧:要换新手机了 通讯录如何搬家?
  13. layui 富文本编辑器和textarea值的相互传递
  14. 什么是Mirai僵尸网络
  15. My Sixtieth Page - N皇后 - By Nicolas
  16. doors需求管理导入HTML,Telelogic Doors 需求管理工具使用手记
  17. Win32计算器:输入出生年月日,输出周岁,星座以及距离下一次生日的天数
  18. 直角三角形(rigtri)
  19. php实现电子签名,php实现往pdf中加数字签名操作示例【附源码下载】
  20. Linux下的搜狗拼音输入法-fcitx sougopinyin

热门文章

  1. java --级联操作(查询/更新)
  2. SOA之(2)——SOA架构基础概念与设计框架
  3. Linux下SSH命令使用方法详解
  4. 9、ctemplate文档,简记(2)
  5. 批处理实现从Excel导入Oracle
  6. 个人推广网站不花钱的一些方法
  7. VB.Net实现Web Service的基础
  8. 发现一个很好的工具——VNN
  9. Java绘制基本图形
  10. 我进公司当Android开发实习生时,初中最差的同学成了我的领导