oracle-将.dmp文件导入linux服务器下的oracle数据库中-方式二&&利用Windows自带的命令行导入(推荐)实例-亲测有效

一、利用Windows自带的命令行导入(推荐)


注意:这种方式需要用到oracle客户端,在cmd窗口执行代码,如果没有配置环境变量,需要进入oracle客户端的安装目录中执行,下面会介绍详细方式

1、以管理员方式登录plSQL
     注意:oracle数据库的管理员账户一般为sys,忘记登录密码,不知道如何登录,的请查看下面这个链接有详细服务器端修改密码方式: https://blog.csdn.net/weixin_47055922/article/details/109047419

2、在管理员模式下新建“SQL窗口”用于执行sql语句

3、利用代码创建表空间及分配用户
     注意:第一句是创建用户名和密码都是test01_200的数据库,test01_200可以自定义,下面的语句是对该数据库创建表空间以及给用户,进行赋权处理

     Create user test01_200 identified by test01_200   
     Default tablespace users
     Temporary tablespace temp
     password expire;
     grant dba  to test01_200;
     grant resource to test01_200;
     grant alter any procedure to test01_200;
     grant create any procedure to test01_200;
     grant create procedure to test01_200;
     grant create session to test01_200;
     grant create table to test01_200;
     grant create view to test01_200;
     grant debug any procedure to test01_200;
     grant debug connect session to test01_200;
     grant execute any procedure to test01_200;
     grant unlimited tablespace to test01_200;

4、找到oracle客户端中的imp.exe执行文件
     实例:D:\app\Admin\product\11.2.0\client_1\BIN\
5、进入cmd窗口
     执行:windows+R ,输入 cmd 点击回车,输入 d: 回车,然后  cd app\Admin\product\11.2.0\client_1\BIN

     C:\Users\Admin>D:

     D:\>cd app\Admin\product\11.2.0\client_1\BIN

6、输入命令导入dmp文件,
     命令格式:imp 用户名/密码@oracle服务器ip/数据库 fromuser=原来的用户名 touser=现在的用户名 file=存储文件目录.dmp full=y ignore=y statistics=none
     实例:

imp test01_200/[email protected]/HELOWIN fromuser=bda_elect_js touser=test01_200  file=D:\ bda_test111.dmp full=y ignore=y statistics=none

7、提示导入报错

     IMP-00002: 无法打开 D:\.DMP 进行读取
     导入文件: EXPDAT.DMP>

      解决办法:网上查找资料发现,这个错误一般是路径错误,路径中存在中文居多,我这里检查了好久,“file=D:\”后面有个空格, 删除后,继续运行命令导入
8、再次导入
    输入实例:

imp test01_200/[email protected]/HELOWIN fromuser=bda_elect_js touser=test01_200  file=D:\bda_test111.dmp full=y ignore=y statistics=none

9、导入报错:    

     经由常规路径由 EXPORT:V11.02.00 创建的导出文件
     IMP-00013: 只有 DBA 才能导入由其他 DBA 导出的文件
     IMP-00000: 未成功终止导入

      解决办法:该错误表示导出数据的用户拥有DBA权限,而我要导入的用户没有这个权限。要解决这个问题解决的办法有两个,一个是把导出的用户DBA权限去掉,重新导出;另一个就是给要导入的用户加上DBA权限啊。这里用第二种方

10、给要导入的用户加上dba权限
       实例:我这里是给test01_200这个用户加dba权限,以管理员身份登录,新建sql窗口执行语句,

       执行代码:grant dba  to test01_200;
       注意:这个问题是我后面发现的,我将这句命令添加到了步骤3的代码中,如果未出现步骤9这个错误,可以忽略这个问题。

11、导入报错

       警告: 这些对象由 BDA_ELECT_JS 导出, 而不是当前用户
       已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
       导入服务器使用 AL32UTF8 字符集 (可能的字符集转换)
       IMP-00024: 只能指定一种模式 (TABLES, FROMUSER 或 FULL)
       IMP-00000: 未成功终止导入 

       解决方式:查阅资料发现,选择了fromuser 就不能选择full,我在代码中已经定义了fromuser=bda_elect_js,所以需要删除full=y

12、删除full=y之后再次输入命令导入
       最终的导入命令:

imp test01_200/[email protected]/HELOWIN fromuser=bda_elect_js touser=test01_200  file=D:\bda_test111.dmp ignore=y statistics=none

13、导入成功
       提示:成功终止导入, 没有出现警告。
       登录test01_200用户查看表中存在数据。

猜你喜欢

转载自blog.csdn.net/weixin_47055922/article/details/109097267
今日推荐