首页 > 代码库 > Oracle的导出和导入
Oracle的导出和导入
(摘自:http://www.cnblogs.com/mchina/archive/2012/09/12/2678093.html)
数据库的备份操作是在整个项目运行中最重要的工作之一。
一、数据的导出和导入
数据的导出和导入是针对于一个用户的备份操作,可以按照如下的方式完成:
1、 数据的导出
- 在硬盘上建立一个文件夹:c:\backup;
- 输入exp指令;
- 输入用户名和密码;
- 设置导出文件的名称:导出文件: EXPDAT.DMP;
2、 数据的导入
- 先将表删除干净;
- 进入到导出文件所在的文件夹之中:c:\backup;
- 输入imp指令;
- 输入用户名和密码;
- 导入整个导出文件 (yes/no): no > yes
但是以上的操作只是做为一个演示,因为这种备份操作本身只适合数据量小的情况,如果数据量较大的话,这种操作是会损耗性能的,而且时间也会很长,要想解决大数据量的问题只能对数据分区操作。
二、数据表的冷备份
在数据操作之中,有可能有些用户不会进行事务的提交,那么在这种情况下很可能无法进行完整的备份操作,而所谓的冷备份指的就是在闭数据库实例的情况下进行数据库备份操作的实现。
如果要进行冷备份,则需要备份出数据库中的一些几个核心内容:
- 控制文件,指的是控制整个Oracle数据库的实例服务的核心文件,直接通过”v$controlfile”找到;
- 重做日志文件,可以进行数据的灾难恢复,直接通过”v$logfile”找到;
- 数据文件,表空间文件,通过”v$datafile”和”v$tablespace”找到;
- 核心操作的配置文件(pfile),通过”SHOW PARAMETER pfile”找到;
从实际的Oracle的部署来讲,所有的文件为了达到IO的平衡操作,要分别保存在不同的硬盘上。
确定了要备份的文件之后,下面按照如下的步骤查找:
1、 使用超级管理员登录
CONN sys/change_on_install AS SYSDBA;
2、 查找所有的控制文件目录
SELECT * FROM v$controlfile;
3、 备份重做日志文件
SELECT * FROM v$logfile;
4、 查找表空间文件
SELECT * FROM v$tablespace;SELECT * FROM v$datafile;
5、 找到pfile文件
SHOW PARAMETER pfile;
6、 关闭数据库实例
SHUTDOWN IMMEDIATE;
7、 将所有查找到的数据备份到磁盘上;
8、 启动数据库实例
STARTUP;
完全攻略
一、导出/导入(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、不能按表或按用户恢复。
Oracle的导出和导入