我在一台PC上有一个Oracle数据库。我必须将它迁移到我的其他PC。两者都使用单独的oracle安装。现在我如何从我的PC上导出它然后将其导入到其他PC?
导出然后导入它的命令是什么?
我想要导出结构以及数据然后导入。我正在使用Oracle db。
答案 0 :(得分:6)
您可以从源数据库导出数据并将其导入新数据库。
可以找到演示这些命令用法的良好链接here
归结为以下类似导出完整数据库的内容:
%> exp USERID=<username>/<password> FULL=Y FILE=dbExport.dmp
%> imp USERID=<username>/<password> FILE=dbExport.dmp FULL=Y
这两个命令有多种选项可根据您的需要进行定制。例如,您可以将import命令限制为仅通过TABLES参数导入某些表,或者可以使用TOUSER,FROMUSER参数在用户之间移动数据库对象。还有关于是否导出或导入约束,索引等的选项。您可以通过执行以下任一操作找到这两个命令的所有有效参数:
%> exp help=Y
%> imp help=Y
答案 1 :(得分:3)
您没有说明您使用的是哪个版本的数据库。这是重要信息,因为每个版本都会向Oracle添加新功能。例如,在10g中,Oracle引入了一个新的实用程序DataPump,它取代了旧的IMP和EXP(这些实用程序仍然包含在安装中,它们刚刚被弃用)。
DataPump的一个优点是我们可以从数据库内部以及OS命令行执行。我最近发布了一个在this SO thread中使用PL / SQL中的DataPump的示例。 `Oracle提供comprehensive documentation。
修改强>
旧式IMP / EXP和DataPump都不会生成SQL文件(*)。如果这真的是你想要的(而不是仅仅移植模式和数据某种程度上),那么事情会变得有点棘手。 Oracle有一个包DBMS_METADATA,我们可以使用它来生成DDL脚本,但这不会处理数据。要生成实际的INSERT语句,最好的办法是使用IDE; Quest的TOAD将像甲骨文(免费)SQL Developer tool那样执行此操作。这两个IDE也将为我们生成DDL脚本。
(*)Datapump导入可以使用SQLFILE=
参数从先前的Datapump导出文件派生DDL语句。但这只是结构而不是数据。