相信大家在使用oracle的时候,经常需要备份或者还原数据库,下面是个人在使用时遇到的一些问题及相应的解决办法,有不正确地方的还望大家指出
oracle在导入导出文件时,一般分为普通的exp/imp和数据泵导入导出文件,两种方法在导入导出文件时存在日志文件内容以及语句上的差异。普通的exp/imp导入导出对于偶尔的小型文件比较省时省力,数据泵则更加完善,对于大型的数据文件也是游刃有余。下面介绍下数据泵导入文件(导出文件跟导入文件的步骤基本一致)
首先,我们需要登录数据库,这里一般在dos下登录dba权限的账户。(如果没有可用账户的话,我们需要先创建账户并授予相应的权限)
1.sqlplus / as sysdba ---以sys管理员账户登录
2.创建新用户并指定表空间:
CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE (默认表空间名字) TEMPORARY TABLESPACE temp(临时表空间); ---(这里需要弄清楚表空间的名字,不然会报表空间不存在的错误。create tablespace lxspace datafile 'e:\data.dbf'size 100m autoextend on next 10m;这是我当时自己创建的临时表的语句)
3.给予相应的用户权限
GRANT connect,dba to 用户名;---给予dba权限
grant read,write on directory impdp_dir to 用户名;---给予导入权限
grant read,write on directory expdp_dir to 用户名;---给予导出权限
4.创建目录(很重要)
create or replace directory impdp_dir as 'E:\data'(dmp存放路径)---创建目录并将导入文件放到此目录下(这里在导入时不仅仅要语句上创建虚拟目录,还需要将导出文件放到手动创建的路径下)
5.导入语句(非常容易错的地方)
导入的语句一定要在dos下直接执行,不要登录数据库,这个很容易记错
impdp 用户名/密码@orcl DIRECTORY=expdp_dir DUMPFILE=文件名.DMP(导入dmp文件名) logfile=日志名.log (导出日志名,随便定义)remap_schema=导出备份文件时使用的
用户名:导入文件时导入的用户名;
如果在实践中遇到问题,可随时提问,有错误的地方或者有更好的方法也请大家多评论留言。也可收藏日后学习,欢迎关注,日后会多更新电脑应用上的软件及硬件的知识,来提供大家参考,谢谢~