如何从dmp文件和日志文件导入Oracle数据库?
我将如何去从一个dmp文件创build一个数据库? 我的系统中没有与现有数据库相同的结构,因此必须完成作业,事件和表格等。
我把dmp和日志文件放在E盘里
我已经尝试了导入工具
E:/>impdp system/tiger@oratest FILE=WB_PROD_FULL_20MAY11.dmp
但是我得到了错误
invalid argument value bad dump file specification unable to open dump file "E:\app\Vensi\admin\oratest\dpdump\WB_PROD_F ULL_20MAY11.dmp" for read unable to open file unable to open file (OS 2) The system cannot find the file specified.
而当我在Windows资源pipe理器中看到dmp文件(取自Linux服务器)显示为崩溃转储文件
我不明白如何解决这个问题。 请帮我解决这个问题。
我是一个在Oracle上的完全新手…
数据库是如何输出的?
-
如果使用
exp
导出并导出完整的模式,那么-
创build用户:
create user <username> identified by <password> default tablespace <tablespacename> quota unlimited on <tablespacename>;
-
授予权利:
grant connect, create session, imp_full_database to <username>;
-
用
imp
开始导入:imp <username>/<password>@<hostname> file=<filename>.dmp log=<filename>.log full=y;
-
-
如果使用
expdp
导出,则使用impdp
开始导入:impdp <username>/<password> directory=<directoryname> dumpfile=<filename>.dmp logfile=<filename>.log full=y;
查看错误日志,似乎你没有指定目录,所以Oracle试图在默认目录(即E:\app\Vensi\admin\oratest\dpdump\
)中finddmp
文件。
将导出文件移动到上面的path,或者创build一个目录对象,指向dmp
文件所在的path,并将对象名称传递给上面的impdp
命令。
所有这些和平的代码放入* .bat文件并一次运行:
我在oracle中创build用户的代码。 crate_drop_user.sql文件
drop user "USER" cascade; DROP TABLESPACE "USER"; CREATE TABLESPACE USER DATAFILE 'D:\ORA_DATA\ORA10\USER.ORA' SIZE 10M REUSE AUTOEXTEND ON NEXT 5M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO / CREATE TEMPORARY TABLESPACE "USER_TEMP" TEMPFILE 'D:\ORA_DATA\ORA10\USER_TEMP.ORA' SIZE 10M REUSE AUTOEXTEND ON NEXT 5M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M / CREATE USER "USER" PROFILE "DEFAULT" IDENTIFIED BY "user_password" DEFAULT TABLESPACE "USER" TEMPORARY TABLESPACE "USER_TEMP" / alter user USER quota unlimited on "USER"; GRANT CREATE PROCEDURE TO "USER"; GRANT CREATE PUBLIC SYNONYM TO "USER"; GRANT CREATE SEQUENCE TO "USER"; GRANT CREATE SNAPSHOT TO "USER"; GRANT CREATE SYNONYM TO "USER"; GRANT CREATE TABLE TO "USER"; GRANT CREATE TRIGGER TO "USER"; GRANT CREATE VIEW TO "USER"; GRANT "CONNECT" TO "USER"; GRANT SELECT ANY DICTIONARY to "USER"; GRANT CREATE TYPE TO "USER";
创build文件import.bat并把它放在这里:
SQLPLUS SYSTEM/systempassword@ORA_alias @"crate_drop_user.SQL" IMP SYSTEM/systempassword@ORA_alias FILE=user.DMP FROMUSER=user TOUSER=user GRANTS=Y log =user.log
要小心,如果你将从一个用户导入到另一个。 例如,如果您有名为user1的用户,并且您将导入到user2,则可能会失去所有的权限,因此您必须重新创build该用户。
祝你好运,伊万