Oracle 数据库的备份与恢复

Oracle 数据库的备份与恢复 
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 
一、 导出/导入(Export/Import) 
利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 
1、 简单导出数据(Export)和导入数据(Import) 
Oracle支持三种方式类型的输出: 
(1)、表方式(T方式),将指定表的数据导出。 
(2)、用户方式(U方式),将指定用户的所有对象及数据导出。 
(3)、全库方式(Full方式),瘵数据库中的所有对象导出。 
数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。 
2、 增量导出/导入 
增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。 
增量导出包括三种类型: 
(1)、“完全”增量导出(Complete) 
即备份三个数据库,比如: 
exp system/manager inctype=complete file=040731.dmp 
(2)、“增量型”增量导出 
备份上一次备份后改变的数据,比如: 
exp system/manager inctype=incremental file=040731.dmp 
(3)、“累积型”增量导出 
累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如: 
exp system/manager inctype=cumulative file=040731.dmp 
数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。 
比如数据库的被封任务可以做如下安排: 
星期一:完全备份(A) 
星期二:增量导出(B) 
星期三:增量导出(C) 
星期四:增量导出(D) 
星期五:累计导出(E) 
星期六:增量导出(F) 
星期日:增量导出(G) 
如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库: 
第一步:用命令CREATE DATABASE重新生成数据库结构; 
第二步:创建一个足够大的附加回滚。 
第三步:完全增量导入A: 
imp system/manager inctype=RESTORE FULL=y FILE=A 
第四步:累计增量导入E: 
 imp system/manager inctype=RESTORE FULL=Y FILE=E 
第五步:最近增量导入F: 
imp system/manager inctype=RESTORE FULL=Y FILE=F 
二、 冷备份 
冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是: 
1、 是非常快速的备份方法(只需拷文件) 
2、 容易归档(简单拷贝即可) 
3、 容易恢复到某个时间点上(只需将文件再拷贝回去) 
4、 能与归档方法相结合,做数据库“最佳状态”的恢复。 
5、 低度维护,高度安全。 
但冷备份也有如下不足: 
1、 单独使用时,只能提供到“某一时间点上”的恢复。 
2、 再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。 
3、 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。 
4、 不能按表或按用户恢复。 
如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括: 
1、 所有数据文件 
2、 所有控制文件 
3、 所有联机REDO LOG文件 
4、 Init.ora文件(可选) 
值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。 
下面是作冷备份的完整例子。 
(1) 关闭数据库 
 sqlplus /nolog 
sql>;connect /as sysdba 
sql>;shutdown normal; 
(2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件 
sql>;cp <file>; <backup directory>; 
(3) 重启Oracle数据库 
sql>;startup 
三、 热备份 
热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成: 
1. 数据文件一个表空间一个表空间的备份。 
(1) 设置表空间为备份状态 
(2) 备份表空间的数据文件 
(3) 回复表空间为正常状态 
2. 备份归档log文件 
(1) 临时停止归档进程 
(2) log下那些在archive rede log目标目录中的文件 
(3) 重新启动archive进程 
(4) 备份归档的redo log文件 
3. 用alter database bachup controlfile命令来备份控制文件 
热备份的优点是: 
1. 可在表空间或数据库文件级备份,备份的时间短。 
2. 备份时数据库仍可使用。 
3. 可达到秒级恢复(恢复到某一时间点上)。 
4. 可对几乎所有数据库实体做恢复 
5. 恢复是快速的,在大多数情况下爱数据库仍工作时恢复。 
热备份的不足是: 
1. 不能出错,否则后果严重 
2. 若热备份不成功,所得结果不可用于时间点的恢复 
3. 因难于维护,所以要特别仔细小心,不允许“以失败告终”。

 

 

 

 

 

 

Oracle数据库导入导出(1)

 

Oracle导入导出官方定义

 

如何查看Imp和Exp命令?

前提:安装Oracle数据库或者客户端。

一、             IMP命令

1.         打开命令提示符。例如,(Windows XP)运行->cmd。

2.         在DOS中输入:imp help=y,回车。

3.         DOS总会出现一下关于Imp命令的定义和说明:

通过输入 IMP 命令和您的用户名/口令, 导入

操作将提示您输入参数:

 

     例如: IMPSCOTT/TIGER

 

或者, 可以通过输入 IMP 命令和各种参数来控制导入

的运行方式。要指定参数, 您可以使用关键字:

 

     格式:  IMPKEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

     例如: IMPSCOTT/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 拥有可传输表空间集中数据的用户

二、             Exp命令

1.         打开命令提示符。例如,(Windows XP)运行->cmd。

2.         在DOS中输入:exp help=y,回车。

3.         DOS总会出现一下关于Imp命令的定义和说明:

通过输入 EXP 命令和您的用户名/口令, 导出

操作将提示您输入参数:

 

     例如: EXPSCOTT/TIGER

 

或者, 您也可以通过输入跟有各种参数的 EXP 命令来控制导出

的运行方式。要指定参数, 您可以使用关键字:

 

     格式:  EXPKEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

     例如: EXPSCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)

               或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

 

USERID 必须是命令行中的第一个参数。

 

关键字   说明 (默认值)         关键字      说明 (默认值)

--------------------------------------------------------------------------

USERID   用户名/口令           FULL        导出整个文件 (N)

BUFFER   数据缓冲区大小        OWNER        所有者用户名列表

FILE     输出文件 (EXPDAT.DMP)  TABLES     表名列表

COMPRESS  导入到一个区 (Y)   RECORDLENGTH   IO 记录的长度

GRANTS    导出权限 (Y)          INCTYPE     增量导出类型

INDEXES   导出索引 (Y)         RECORD       跟踪增量导出 (Y)

DIRECT    直接路径 (N)         TRIGGERS     导出触发器 (Y)

LOG      屏幕输出的日志文件    STATISTICS    分析对象 (ESTIMATE)

ROWS      导出数据行 (Y)        PARFILE      参数文件名

CONSISTENT 交叉表的一致性 (N)   CONSTRAINTS  导出的约束条件 (Y)

 

OBJECT_CONSISTENT    只在对象导出期间设置为只读的事务处理 (N)

FEEDBACK             每 x 行显示进度 (0)

FILESIZE             每个转储文件的最大大小

FLASHBACK_SCN        用于将会话快照设置回以前状态的 SCN

FLASHBACK_TIME       用于获取最接近指定时间的 SCN 的时间

QUERY                用于导出表的子集的 select 子句

RESUMABLE            遇到与空格相关的错误时挂起 (N)

RESUMABLE_NAME       用于标识可恢复语句的文本字符串

RESUMABLE_TIMEOUT    RESUMABLE 的等待时间

TTS_FULL_CHECK       对 TTS 执行完整或部分相关性检查

TABLESPACES          要导出的表空间列表

TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)

    TEMPLATE             调用 iAS 模式导出的模板名

关于ImpExp的使用请参考:Oracle数据导入导出(2)。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Oracle数据导入导出imp/exp(2)

u  
功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。
 
      大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。 Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接(通过NetConfiguration Assistant添加正确的服务命名,其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过来了)这样你可以把数据导出到本地,虽然可能服务器离你很远。你同样可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能你可以构建立两个相同的数据库:一个用来测试一个用来正式使用
 
      执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于 在oracle 8i 中安装目录/$ora10g/BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。
 
      下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。

n  数据导出:
 1、
将数据库TEST完全导出,用户名system 密码manager 导出到  D:/daochu.dmp中
   exp system/manager@TEST file=d:/daochu.dmp full=y
 2、将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:/daochu.dmp owner=(system,sys)
 3、将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:/daochu.dmp tables=(table1,table2) 
 4、将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:/daochu.dmp tables=(table1) query=/" wherefiled1 like  '00%'/"
  
上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。不过在上面命令后面 加上compress=y  就可以了。

n  数据的导入:
 1、
将D:/daochu.dmp 中的数据导入TEST数据库中。
imp system/manager@TEST  file=d:/daochu.dmp
 上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。在后面加上 ignore=y 就可以了。
 2、将d:/daochu.dmp中的表table1 导入
imp system/manager@TEST  file=d:/daochu.dmp  tables=(table1) 
 基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。
 
注意:
 
你要有足够的权限,权限不够它会提示你。
 
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

 

数据导出:
exp hkb/hkb@boss_14 full=y file=c:/orabackup/hkbfull.dmplog=c:/orabackup/hkbfull.log;

导出注意事项:导出的是当前用户的的数据,当前用户如果有DBA的权限,则导出所有数据!

同名用户之间的数据导入:
imp hkb/hkb@xe  file=c:/orabackup/hkbfull.dmp log=c:/orabackup/hkbimp.logfull=y

不同名之间的数据导入:
imp system/test@xe fromuser=hkb touser=hkb_new file=c:/orabackup/hkbfull.dmp

log=c:/orabackup/hkbimp.log;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源,毕业设计等各种技术项目的源码。包括C++、Java、python、web、C#、EDA等项目的源码。 【适用人群】:适用于希望学习不同技术领域的初学者或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。 【项目质量】:所有源码都经过测试,可以直接运行。功能在确认正常工作后才上传。 【项目资源】:包含前端、后端、移动开发、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源,毕业设计等各种技术项目的源码。包括C++、Java、python、web、C#、EDA等项目的源码。 【适用人群】:适用于希望学习不同技术领域的初学者或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。 【项目质量】:所有源码都经过测试,可以直接运行。功能在确认正常工作后才上传。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值