2010-01-05 53 views
2

我在一台PC上有一个Oracle数据库。我必须将它迁移到我的其他PC上。两者都使用单独的Oracle安装。现在我怎样才能从我的一台PC导出它,然后将它导入到其他PC?导出oracle数据库(创建数据的.sql文件)

导出然后导入它的命令是什么?

我想要结构以及要导出然后导入的数据。我正在使用Oracle数据库。

回答

6

您可以从源数据库导出数据并将其导入到新数据库中。

一个很好的链接展示这些命令的用法,可以发现here

它归结为类似以下的输出完整的数据库:

%> exp USERID=<username>/<password> FULL=Y FILE=dbExport.dmp 
%> imp USERID=<username>/<password> FILE=dbExport.dmp FULL=Y 

还有的两个选项众多命令来定制它以满足您的需求。例如,可以将导入命令限制为仅通过TABLES参数导入某些表,或者可以使用TOUSER,FROMUSER参数在用户之间移动数据库对象。也有对是否导出或导入约束,索引等,您可以通过执行找到所有两个命令的有效参数选项之一:

%> exp help=Y 
%> imp help=Y 
3

你不说你正在使用的数据库的版本。这是重要的信息,因为每个版本都会将新功能添加到Oracle。例如,在Oracle 10g中引入了一个新的实用程序DataPump,该实用程序替代了较旧的IMP和EXP(这些实用程序仍包含在安装中,它们只是被弃用)。

关于DataPump的一个很好的事情是我们可以从数据库内部以及从OS命令行执行。我最近在this SO thread上发布了一个使用PL/SQL中的DataPump的例子。 `Oracle提供comprehensive documentation

编辑

无论是老式的IMP/EXP也不数据泵生成的SQL文件(*)。如果这真的是你想要的(而不是简单地将模式和数据移植到),那么事情会变得有点棘手。 Oracle有一个包DBMS_METADATA,我们可以使用它来生成DDL脚本,但不会处理数据。要生成实际的INSERT语句,最好的办法是使用IDE; Quest的TOAD将像Oracle(免费)SQL Developer tool一样执行此操作。这两个IDE都会为我们生成DDL脚本。

(*)数据泵导入可以使用SQLFILE=参数从以前的数据泵导出文件中派生DDL语句。但这只是结构而非数据。

+1

Oracle的SQL开发工具在“工具” - >“数据库导出”下具有一项功能,听起来像它将执行OP所需的功能。 – 2010-01-06 22:43:31