日期:2014-05-16  浏览次数:20522 次

如何用PL/SQL备份oracle数据库

? ? ? ? ? ? ? ? ? ? ? ? ? ??如何用PL/SQL备份oracle数据库

?

PL/SQL DeveloperOracle数据库中用于导入或导出数据库的主要工具,本文主要介绍了利用PL/SQL Developer导入和导出数据库的过程,并对导入或导出时的一些注意事项进行了说明,接下来我们就一一介绍。

导出步骤:

1 tools ->export user object 选择选项,导出.sql文件。

2 tools ->export tables-> Oracle Export 选择选项导出.dmp文件。

导入步骤:

注:导入之前最好把以前的表删除,当然导入另外数据库除外。

1 tools->import tables->SQL Inserts?导入.sql文件。

2 tools->import talbes->Oracle Import然后再导入dmp文件。

一些说明:

Tools->Export User Objects导出的是建表语句(包括存储结构)。PS:这种方式只能导出属于这个用户的表,其他用户的表不能导出,建议用命令行(exp,imp)导出。

Tools->Export Tables里面包含三种导出方式,三种方式都能导出表结构以及数据,如下:

  • Oracle Export
  • Sql Insert
  • pl/sql developer

第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广 。

第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段 (blob,clob,long),如果有,会提示不能导出(提示如下: table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead)。

第三种是导出为.pde格式的,.pde为Pl/sql developer自有的文件格式,只能用Pl/sql developer自己导入导出,不能用编辑器查看。

PS:只有"Oracle Export"方式导出再导入后,表结构和索引结构没有发生变化,另两种方式都改变了索引类型。

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

第1章??导入数据的苦恼

最近,一直再为搭建测试数据库的事情烦恼,主要碰到如下困难:?1、?使用oracle dump方式导出的数据在导入的时候不能随意选择一张表的数据进行导入;一般业务的表的数量都有1000左右,在出现由于某张表数据异常导致的故障时,用dump文件进行恢复基本不可行或者很费事;?2、?表存在外键约束和触发器,使用oracle dump import方式导入表的时候不能非常简单的禁止触发器和外键,导致大量错误产生,导入的表的数据不全,部分表数据没有导入;?3、?当修改了某些表的数据后需要将这些表的数据恢复到测试环境搭建时的数据,import不能将这些表的数据清空后重新导入。?4、?当修改了某些表的字段后需要将这些表的数据恢复到测试环境搭建时的数据,import不能将这些表重建后重新导入。?那么有没有一个工具能够解决上面我们这位工程师的苦恼呢?

?

第2章? PL/SQL Developer导入导出工具

PL/SQL Developer位于PLSQL DEV工具的“Tools”菜单下的“Export tables…”和“Import tables…”下,可以进行数据的导出和导入。

2.1??导出功能介绍?

?

基于PL/SQL的数据库备份方法 - 廖润明 - 异次元蓝客
?

Where clause:?使导出操作支持where条件,比如你只需要导出每张表的10000条记录,可以在输入框里输入“rownum < 10001”。

Compress file:?选中后支持导出文件的压缩,节省存储空间,但是压缩会占用多余的时间。

Include storage:?导出的文件中包含建表信息,如果需要在导入的时候能支持建表操作,需要选中该项。

2.2??导入功能介绍?

Drop tables:?支持在导入数据前先删除表,选择该项后,默认选择“Create tables”选项,并且“Truncate tables”和“Delete table”操作变成灰色不可用状态。?Create tables:?支持在导入数据前先创建表,比如我们已将建好了用户,这个时候需要导入表而之前又没有执行建表脚本的时候,可以选中此项。?Trunc