前言

任何数据库在长期使用过程中,都会存在一定的安全隐患。对于数据库管理员来说不能仅寄希望于计算机操作系统的安全运行,而是要建立一整套的数据库备份与恢复机制。
当数据库发生故障后,希望能重新建立一个完整的数据库,该处理称为数据库恢复。恢复子系统是数据库管理系统的一个重要组成部分。恢复处理随所发生的故障类型所影响的结构而变化。怎样才能对Oracle数据库进行备份?如何才能对删除的数据再进行恢复?这是本篇文章主要讲的内容。

ORACLE数据库有两类备份方法。

第一类为物理备份:

该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库;

第二类为逻辑备份:

业务数据库采用此种方式,此方法不需要数据库运行在归挡模式下,不但备份简单,而且可以不需要外部存储设备。

数据库逻辑备份方法:

ORACLE数据库的逻辑备份分为三种模式:表备份、用户备份和完全备份。

表模式

备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。

  • 若备份到本地文件,使用如下命令:
[root@ip-172-31-6-71 ~]# exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=exp_icdmain_csd_yyyymmdd.dmp log=exp_icdmain_csd_yyyymmdd.log tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
  • 若直接备份到磁带设备,使用如下命令:
[root@ip-172-31-6-71 ~]# exp icdmain/icdrows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=/dev/rmt0 log=exp_icdmain_csd_yyyymmdd.log tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo   

注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。出于速度方面的考虑,尽量不要直接备份到磁带设备。

用户模式

备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式。

  • 若备份到本地文件,使用如下命令:
[root@ip-172-31-6-71 ~]# exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=exp_icdmain_yyyymmdd.dmp log=exp_icdmain_yyyymmdd.log   
  • 若直接备份到磁带设备,使用如下命令:
[root@ip-172-31-6-71 ~]# exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=/dev/rmt0 log=exp_icdmain_yyyymmdd.log 

注:如果磁盘有空间,建议备份到磁盘,然后再拷贝到磁带。如果数据库数据量较小,可采用这种办法备份。

完全模式

备份完整的数据库,业务数据库不采用这种备份方式。

  • 完全备份:
[root@ip-172-31-6-71 ~]# exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 full=y file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0) log=exp_fulldb_yyyymmdd.log 

注:对于数据库备份,建议采用增量备份,即只备份上一次备份以来更改的数据。

  • 增量备份:
[root@ip-172-31-6-71 ~]# exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 full=y inctype=incremental file=exp_fulldb_yyyymmdd.dmp log=exp_fulldb_yyyymmdd.log   (磁带设备则为file=/dev/rmt0)

注:关于增量备份必须满足下列条件:

  1. 只对完整数据库备份有效,且第一次需要full=y参数,以后需要inctype=incremental参数。
  2. 用户必须有EXP_FULL_DATABASE的系统角色。
  3. 话务量较小时方可采用数据库备份。
  4. 如果磁盘有空间,建议备份到磁盘,然后再备份到磁带。

业务数据库备份方法及周期

用EXP进行备份前,先在SYS用户下运行CATEXP.SQL文件(如果以前已运行该文件,则不要执行这个脚本),没有特殊说明,不允许在客户端执行备份命令。

日结表数据备份,每月备份一次。

要备份的表为:

ALLSTAFFWORK_DAY_LOG
ALLSTAFFWORK_DAYLOG
AUTOCALLLOG_DAYLOG
LOCALZONE_DAYLOG
SERVICEINFO_DAYLOG
TELFEELOG_DAYLOG
TSHANDLEREPLY_DAYLOG 

备份命令参照表模式下的备份命令。

业务相关表数据备份

每周一、四备份。要备份的表为:

Commoninformation
ServiceInfo
DealInfo
AutoCallLog
AutoFaxLog
ServiceInfoAdd
TelFeeLog 

备份命令参照表模式下的备份命令。

从磁盘文件备份到磁带

如果首先备份到本地磁盘文件,则需要转储到磁带设备上。

  • 若需查看主机上配置的磁带设备,使用如下命令:
[root@ip-172-31-6-71 ~]# lsdev -Cc tape 

显示的结果如下例所示:

rmt0 Available 30-58-00-2,0 SCSI 4mm Tape Drive
rmt1 Defined 30-58-00-0,0 SCSI 4mm Tape Drive   

标明Available的设备是可用的磁带设备。

  • 若需查看磁带存储的内容,使用如下命令:
[root@ip-172-31-6-71 ~]# tar -tvf /dev/rmt0   

显示的结果如下例所示:

-rw-r--r-- 300 400 8089600 Jan 11 14:33:57 2001 exp_icdmain_20010111.dmp

注:如果显示类似如下内容,则表示该磁带存储的备份数据是从数据库直接备份到磁带上,而非从本地磁盘转储到磁带的备份文件,因此操作系统无法识别。

tar: 0511-193 An error occurred while reading from the media.   There is an input or output error.   或
tar: 0511-169 A directory checksum error on media; -267331077 not equal to 25626. 
  • 对于新磁带或无需保留现存数据的磁带,使用如下命令:
[root@ip-172-31-6-71 ~]# tar -cvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp 

注:
1. 该命令将无条件覆盖磁带上的现存数据。
2. 文件名不允许包含路径信息,如:/backup/exp_icdmain_yyyymmdd.dmp。

  • 对于需要保留现存数据的磁带,使用如下命令:
[root@ip-172-31-6-71 ~]# tar -rvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp 

注:该命令将文件exp_icdmain_yyyymmdd.dmp追加到磁带的末端,不会覆盖现存的数据。

特别强调: 如果备份时是从数据库直接备份到磁带上,则不可再向该磁带上追加复制任何其他文件,否则该备份数据失效。

若需将转储到磁带上的备份文件复制到本地硬盘,使用如下命令:

A. 将磁带上的全部文件复制到本地硬盘的当前目录

[root@ip-172-31-6-71 ~]# tar -xvf /dev/rmt0 

B. 将磁带上的指定文件复制到本地硬盘的当前目录

[root@ip-172-31-6-71 ~]# tar -xvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp    

备份时间安排

由于备份时对系统I/O有较大影响,所以,建议在晚上11点以后进行备份工作。

业务数据库Oracle版本的恢复

恢复方案需根据备份方案确定。由于业务数据库采用表备份和用户备份相结合的方案,所以业务数据库的恢复需根据实际情况采用表恢复和用户恢复相结合的方案。

恢复方案

数据库的逻辑恢复分为表恢复、用户恢复、完全恢复三种模式。

表模式

此方式将根据按照表模式备份的数据进行恢复。

恢复备份数据的全部内容
若从本地文件恢复,使用如下命令:

[root@ip-172-31-6-71 ~]# imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=exp_icdmain_csd_yyyymmdd.dmp log=imp_icdmain_csd_yyyymmdd.log 

若从磁带设备恢复,使用如下命令:

[root@ip-172-31-6-71 ~]# imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0file=/dev/rmt0 log=imp_icdmain_csd_yyyymmdd.log  

B. 恢复备份数据中的指定表
若从本地文件恢复,使用如下命令:

[root@ip-172-31-6-71 ~]# imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=exp_icdmain_csd_yyyymmdd.dmp log=imp_icdmain_csd_yyyymmdd.log tables=commoninformation,serviceinfo   

若从磁带设备恢复,使用如下命令:

[root@ip-172-31-6-71 ~]# imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0 log=imp_icdmain_csd_yyyymmdd.log tables=commoninformation,serviceinfo

用户模式

此方式将根据按照用户模式备份的数据进行恢复

  • 恢复备份数据的全部内容

若从本地文件恢复,使用如下命令:

[root@ip-172-31-6-71 ~]# imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=exp_icdmain_yyyymmdd.dmp log=imp_icdmain_yyyymmdd.log   

若从磁带设备恢复,使用如下命令:

[root@ip-172-31-6-71 ~]# imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0 log=imp_icdmain_yyyymmdd.log  
  • 恢复备份数据中的指定表

若从本地文件恢复,使用如下命令:

[root@ip-172-31-6-71 ~]# imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=exp_icdmain_yyyymmdd.dmp log=imp_icdmain_yyyymmdd.log tables=commoninformation,serviceinfo   

若从磁带设备恢复,使用如下命令:

[root@ip-172-31-6-71 ~]# imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0 log=imp_icdmain_yyyymmdd.log tables=commoninformation,serviceinfo 

完全模式

如果备份方式为完全模式,采用下列恢复方法:

若从本地文件恢复,使用如下命令:

[root@ip-172-31-6-71 ~]# imp system/manager rows=y indexes=n commit=y buffer=65536 feedback=100000

END

Oracle数据库的常用的备份方法就写这么多,对于无论哪一种类型的数据库,备份对数据库来说都是重中之重的事情,如果数据库没有备份,那么一旦数据库挂掉,那么将是灾难性的,所以说互联网中数据才是最重要的。

ORACLE数据库备份方法相关推荐

  1. oracle数据库备份方法主要有哪几种,Oracle数据库备份方法有哪三种?

    Oracle数据库的备份方法很多,无论使用那种备份方法,备份的目的都是为了在出现故障后能够以尽可能小的时间和代价恢复系统.比如使用export实用程序导出数据库对象.使用Oracle备份数据库.使用O ...

  2. ORACLE数据库备份

    ORACLE数据库备份 一.意义: 当我们使用一个数据库时,总希望数据库的内容是可靠的.正确的,但由于计算机系统的 故障(硬件故障.网络故障.进程故障和系统故障)影响数据库系统的操作,影响数据库中数 ...

  3. Oracle数据库备份报错12514,Oracle数据库备份导出时,出错:ORA-12514

    Oracle数据库备份导出时,报错:ORA-12514 连接Oracle 10g错误:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求 解决方法: 1. 打开/network/ad ...

  4. 记录——oracle数据库备份

    oracle数据库备份 Oracle数据库的三种标准的备份方法: 1.导出/导入(EXP/IMP). 2.热备份. 3.冷备份. 注释:导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一.导出/导 ...

  5. oracle数据备份 full,oracle数据库备份 full

    通过exp命令对Oracle数据库进行备份操作(提供两种情况的备份:备份本地,备份远程的数据库) 通过exp命令可以对Oracle数据库进行备份操作,其命令含义是:exp 用户名/密码@数据库所在ip ...

  6. oracle数据库故障处理,Oracle数据库故障处理方法

    1.启动数据库报错:ORA-01102:cannot mount database in EXCLUSIVE mode 给客户处理oracle故障,遇到如下报错: 以sys登录至数据库,执行shutd ...

  7. 误删除oracle目录,LINUX下误删除Oracle数据库恢复方法

    原标题:LINUX下误删除Oracle数据库恢复方法 在LINUX下的Ext3/Ext4文件系统下,如果误删除了数据,数据恢复难度很大.如果说删除的文件数量不大(一般在几百个文件以内),还能够通过.j ...

  8. 用ASP.Net(C#)连接Oracle数据库的方法

    今天看了一下asp.net连接oracle数据库的方法,得到了如下代码.这段代码打开了MyTable表,并把操作员的名字列出.字段类型是OracleString.读取的时候用的是字段编号,我不知道怎么 ...

  9. C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)

    官方下载地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html 官方下载地址(O ...

最新文章

  1. Loj #2036. 「SHOI2015」自动刷题机
  2. 数据结构与算法(3)——树(二叉、二叉搜索树)
  3. 小程序获取openid保存缓存吗_微信小程序把openid放到缓存里
  4. 第二章: 第二课 内容处理-插入图片
  5. 如何用50行代码构建情感分类器
  6. 智慧交通day01-算法库03:cv.dnn
  7. Objective-C的Runtime System
  8. 在线HTML5,CSS3,VueJS,jQuery运行测试练习工具
  9. 每天一道剑指offer-链表中环的入口节点
  10. php完美实现下载远程图片保存到本地
  11. 2pin接口耳机_让耳机“轻松一下”—— QDC BTX(耳机蓝牙线)
  12. c语言的pow函数运用
  13. SpringBoot学习感悟
  14. 计算机英语单词练习四
  15. ftp 工具 绿色,这6款ftp 工具 绿色是站长们不可或缺的必备工具
  16. vue数字递增的动画效果
  17. [bugku]-秋名山车神详解
  18. 数据集图片数据标记工具Labelimg
  19. Logger日志级别说明及设置方法、说明
  20. BSN武汉链对接说明

热门文章

  1. 【2021最新版】RabbitMQ面试题总结(32道题含答案解析)
  2. Solution for EPMA Server Service startup issue in EPM 11.1.2.4.0
  3. AskBot可以帮助零售门店员工做什么?
  4. xml文件中的resultMap
  5. visual studio 2010版本安装以及初步使用
  6. System.Diagnostics.Process.Start(‪C:\\Windows\\System32\\osk.exe);提示找不到文件
  7. 音诺恒人脸识别门禁闸机模组参数详解
  8. 丢弃法——dropout
  9. 【面经】数据开发一面-众安保险
  10. vue服务端渲染之nuxtjs