设为首页 收藏本站
查看: 900|回复: 0

[经验分享] Oracle——20数据库恢复与备份

[复制链接]

尚未签到

发表于 2016-7-27 02:41:18 | 显示全部楼层 |阅读模式
  备份是将数据库中的数据信息保存起来,而恢复则是将已经备份的数据库信息还原到数据库系统中。
 
 一、数据库的备份类型
 Oracle数据库的备份有3种标准形式:导出、脱机备份和联机备份。
 导出方式是数据库的逻辑备份,脱机备份和联机备份都是物理备份。
 1、逻辑备份
 导出有以下3种模式:
  (1)用户(user)模式:导出用户所有对象以及对象中的数据。
  (2)表(table)模式:导出用户的所有表或者用户指定的表。
  (3)全局(full)模式:导出数据库中的所有对象,包括数据、数据定义和用于重建数据库的存储对象。
 在导出期间,可以选择是否导出与表相关的数据字典的信息,如权限、索引和约束条件等。导出备份有3种类型:
  (1)完全型(complete export):对所有表执行全数据库导出,或仅对上次导出后修改过的表执行全数据库导出。
  (2)积累型(cumulative):备份上一次积累型备份所改变的数据。
  (3)增量型(incremental):备份上一次备份后改变的数据。
 2、物理备份
 物理备份是复制数据库文件而不是其逻辑内容。
 (1)脱机备份。脱机备份是在数据库正常关闭的情况下进行。数据库正常关闭后会提供给用户一个完整的数据库。当数据库处于脱机备份状态时,备份的文件包括所有数据文件、控制文件、联机重做日志和服务器参数文件。
 (2)联机备份。联机备份可以在数据库打开的情况下进行。进行联机备份时要求数据库必须在归档方式下操作,在数据库不使用或者使用率低的情况下,同时要有大量的存储空间。数据库可从一个联机备份中完全恢复,并且可以通过归档的重做日志,前滚到任一时刻。联机备份的主要文件包括所有数据文件、归档的重做日志文件和一个控制文件。
  
 二、导入和导出
 导入是数据库的逻辑恢复,导出是数据库的逻辑备份。
 1、导出
 导出是通过在命令提示符窗口输入exp命令来实现的,可以通过输入exp help=y来调用exp命令的帮助信息。
 导出有3种模式:
  交互模式:在输入exp命令后,更加提示来输入导出参数完成导出。
  命令行模式:把参数和参数值传递给导出命令。
  参数文件模式:参数文件模式的关键参数是parfile。parfile的对象是一个包含激活控制导出对话的参数和参数值的文件名。
  
 下面以交互模式为例导出用户andy下的几个表:
 Microsoft Windows [版本 6.1.7601]
 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
  C:\Users\andy>exp /*在命令提示符下输入exp命令,接下来按提示操作*/
  Export: Release 11.1.0.6.0 - Production on 星期五 6月 1 10:48:19 2012
  Copyright (c) 1982, 2007, Oracle.  All rights reserved.
  
 用户名: andy /*输入登录数据库的用户名*/
 口令:    /*输入登录口令*/
  连接到: Oracle Database 11g Release 11.1.0.6.0 - Production
 输入数组提取缓冲区大小: 4096 > /*这里选择默认值,直接回车*/
  导出文件: EXPDAT.DMP > D:\andy.dmp /*输入导出文件的位置*/
  (1)E(完整的数据库), (2)U(用户) 或 (3)T(表): (2)U > t /*选择导出类型,这里选表(t)*/
  导出表数据 (yes/no): yes > /*这里选择默认值,直接回车*/
  压缩区 (yes/no): yes > /*这里选择默认值,直接回车*/
  已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
  即将导出指定的表通过常规路径...
 要导出的表 (T) 或分区 (T: P): (按 RETURN 退出) > t_module /*输入要导出的表名*/
  . . 正在导出表                        T_MODULE导出了          47 行
 要导出的表 (T) 或分区 (T: P): (按 RETURN 退出) > t_employee /*输入要导出的表名*/
  . . 正在导出表                      T_EMPLOYEE导出了           1 行
 要导出的表 (T) 或分区 (T: P): (按 RETURN 退出) > t_sysauthority /*输入要导出的表名*/
  . . 正在导出表                  T_SYSAUTHORITY导出了         137 行
 要导出的表 (T) 或分区 (T: P): (按 RETURN 退出) > /*导完之后可以直接按回车退出*/
  
  
  命令行模式:
  

exp username/password@host:port/service file=exportFilePath
  


  • username:导出的用户名称
  • password:导出的用户的密码
  • host:导出数据库所在主机的ip
  • port:导出数据库所在主机使用的端口
  • service:导出数据库的实例名
  • file:指定导出文件存放的路径
  
  当导出数据库是本地数据库,或者在本地的NETWORK中配置了对应的别名后可以讲host和port省略,如:

exp abc/abc@orcl file=d:\oracle\abc.dmp
  
  
 
 2、导入
 导入跟导出类似,用法也类似,只是导出用的是exp命令,而导入用的是imp命令。
 以下是通过在命令提示符窗口输入imp help=y得到的帮助信息:
  Microsoft Windows [版本 6.1.7601]
  版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
  C:\Users\andy>imp help=y
  Import: Release 11.1.0.6.0 - Production on 星期五 6月 1 11:16:52 2012
  Copyright (c) 1982, 2007, Oracle.  All rights reserved.
  通过输入 IMP 命令和您的用户名/口令, 导入
  操作将提示您输入参数:
    例如: IMP SCOTT/TIGER
  或者, 可以通过输入 IMP 命令和各种参数来控制导入
  的运行方式。要指定参数, 您可以使用关键字:
    格式:  IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
    例如: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
        或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表
  USERID 必须是命令行中的第一个参数。
  关键字   说明 (默认值)        关键字      说明 (默认值)
  --------------------------------------------------------------------------
  USERID   用户名/口令           FULL       导入整个文件 (N)
  BUFFER   数据缓冲区大小        FROMUSER    所有者用户名列表
  FILE     输入文件 (EXPDAT.DMP)  TOUSER     用户名列表
  SHOW     只列出文件内容 (N)     TABLES      表名列表
  IGNORE   忽略创建错误 (N)    RECORDLENGTH  IO 记录的长度
  GRANTS   导入权限 (Y)          INCTYPE     增量导入类型
  INDEXES   导入索引 (Y)         COMMIT       提交数组插入 (N)
  ROWS     导入数据行 (Y)        PARFILE      参数文件名
  LOG     屏幕输出的日志文件    CONSTRAINTS    导入限制 (Y)
  DESTROY                覆盖表空间数据文件 (N)
  INDEXFILE              将表/索引信息写入指定的文件
  SKIP_UNUSABLE_INDEXES  跳过不可用索引的维护 (N)
  FEEDBACK               每 x 行显示进度 (0)
  TOID_NOVALIDATE        跳过指定类型 ID 的验证
  FILESIZE               每个转储文件的最大大小
  STATISTICS             始终导入预计算的统计信息
  RESUMABLE              在遇到有关空间的错误时挂起 (N)
  RESUMABLE_NAME         用来标识可恢复语句的文本字符串
  RESUMABLE_TIMEOUT      RESUMABLE 的等待时间
  COMPILE                编译过程, 程序包和函数 (Y)
  STREAMS_CONFIGURATION  导入流的一般元数据 (Y)
  STREAMS_INSTANTIATION  导入流实例化元数据 (N)
  下列关键字仅用于可传输的表空间
  TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
  TABLESPACES 将要传输到数据库的表空间
  DATAFILES 将要传输到数据库的数据文件
  TTS_OWNERS 拥有可传输表空间集中数据的用户
  
  导入常用如下指令:

imp username/password@host:port/service fromuser=fromuser touser=touser file=importFilePath

  • username:导入用户名
  • password:导入用户的密码
  • host:导入的数据库所在主机的ip
  • port:导入数据库使用的端口号
  • service:导入数据库使用的实例名
  • fromuser:导出文件对应的用户
  • touser:导入到哪个用户
  • file:将用来进行导入的文件所在的路径
  
  当导入数据库是本地数据库,或者在本地的NETWORK中配置了对应的别名后可以讲host和port省略,如:

imp abc/abc@orcl fromuser=def touser=abc file=D:\oracle\def.dmp
  
  
  
  
 三、脱机备份
 脱机备份是一种物理备份,通常在数据库通过一个shutdown normal或shutdown immediate命令正常关闭后进行。当数据库关闭时,其使用的各个文件都可以
进行备份。脱机备份一般在SQL/PLUS中进行。步骤如下:
 (1)正常关闭要备份的实例,在登录数据库后,使用shutdown normal命令关闭数据库
 (2)备份数据库。关闭数据库后可以使用各种备份工具备份所有的数据文件、重做日志文件、控制文件和参数文件。
 (3)启动数据库。备份完成后可以使用startup mount命令启动数据库。
 
 
 四、联机备份
 联机备份又称为archivelog备份,它要求数据库运行在archivelog方式下。
 1、以archivelog方式运行数据库
 步骤如下:
  (1)首先以管理员身份连接数据库
  (2)在sql/plus中运行如下语句:
   shutdown immediate;
   startup mount;
   alter database archivelog;
   alter database open;
   注:利用archive log list语句可以查看数据库的archive log状态。
 2、执行数据库备份
  一旦数据库在archivelog方式下打开并对用户可用时就可以进行备份。尽管联机备份可以在工作期间进行,但最好安排在用户活动比较少的时间进行。
  数据库的备份可以方便的通过企业管理器进行,打开企业管理器,选择调度备份开始备份操作。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-249796-1-1.html 上篇帖子: c#操作oracle的通用类 下篇帖子: Oracle
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表