从 cmets 来看,听起来您已经从 pendrive 上的数据库中获得了一个数据库转储文件 (.dmp),您需要弄清楚如何将该文件放入数据库,对吗?
首先,让我们回顾一下背景。什么是转储文件 (.dmp)?来自Oracle:
转储文件集由一个或多个磁盘文件组成,其中包含
表数据、数据库对象元数据和控制信息。这
文件以专有的二进制格式编写。在导入期间
操作,数据泵导入实用程序使用这些文件来定位
转储文件集中的每个数据库对象。
在较高级别上,.dmp 文件是 DDL 和 DML 语句的集合,它们将重新创建导出的任何数据和对象。 .dmp 文件使使用 Data Pump 在数据库之间传输和移动大量数据变得更加容易。但是Data Pump 是什么?同样,来自 Oracle:
Oracle 数据泵技术支持将数据和元数据从一个数据库高速移动到另一个数据库。
基本上,Data Pump 是一组实用程序 (EXPDP & IMPDP),用于在数据库之间移动数据。您拥有的.dmp 文件可能是使用EXPDP 创建的。您需要使用IMPDP 将该.dmp 文件导入数据库。
这里变得有趣了——你说你已经有一个 11g 的数据库,对吗?如果您愿意,您应该能够将 10g 转储文件直接导入您的 11g 数据库,而不会出现任何问题。原因是 Oracle 倾向于向后兼容,通常说,您对某个 Oracle 版本所做的任何事情都将与紧接其后的版本兼容。从 Oracle 8i 之类的东西跳到 11g 是行不通的,但你总是可以从 8i 跳到 9i,从 9i 跳到 10g,等等。
如果您想将该转储文件导入您的 11g 数据库,您需要执行以下操作:
- 创建一个 DBA 帐户,或拥有一个已明确授予数据泵权限的帐户。
- 将 .dmp 文件移动到 11g 数据库所在的服务器。如果您想让自己更轻松,可以将 .dmp 文件移动到数据库的数据泵目录。如果您不知道它在哪里,请在您的数据库上执行以下查询:
select * from all_directories where directory_name = 'DATA_PUMP_DIR'; 此查询将返回一个目录。您不必使用此目录,它只会让事情变得更简单。
-
准备好转储文件并拥有所有必要的数据库和操作系统权限后,您就可以导入 dmp 文件了。打开一个新的命令行窗口,设置您的 Oracle 主目录(如果尚未设置),然后导航到您放置 .dmp 文件的目录。您的导入命令将如下所示:
impdp [USERNAME]/[PASSWORD]@[DATABASE] directory=[DIRECTORY] dumpfile=[FILENAME].dmp logfile=[LOGFILE].log
[USERNAME]/[PASSWORD] 是您的凭据,[DATABASE] 是您要将转储文件导入到的数据库的名称,[DIRECTORY] 是您放置转储文件的任何目录,[FILENAME] 是.dmp 文件的名称,[LOGFILE] 是您为日志文件选择的任何名称。
假设您的数据库具有 .dmp 文件所需的一切,导入应该开始并且您将开始看到类似于此的状态更新:
Starting [USERNAME]."SYS_IMPORT_FULL_01": [USERNAME]/******** directory=DATA_PUMP_DIR dumpfile=[FILENAME].dmp logfile=[LOGFILE].log
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/TABLE/TABLE
请注意,这只是一个示例,您的结果可能会有所不同。假设一切顺利,你会在最后看到这样的消息:
Job [USERNAME]."SYS_IMPORT_FULL_01" completed
如果您不想将其导入现有的 11g 数据库,您可以随时启动一个新数据库并使用这些相同的指南将 .dmp 文件导入该数据库。
这应该足以让您走上正确的道路,希望这会有所帮助并祝您好运!
附:以下是有关数据泵实用程序的一个很好的常见问题解答:http://www.orafaq.com/wiki/Import_Export_FAQ