背景:小明在一家IT公司就职,通过查看项目,公司使用的是oracle,几天后,经理要求他从服务器导入数据库到公司服务器,聪明的小明就开始干了起来,整理如下教程。
说明:此次演示环境oracle11g,oracle12c同理
步骤1: 以管理员登录,创建目录
命令如下: sqlplus as / sysdba
show user;
create directory DIR as '存放的目录';
select * from dba_directories;
步骤2: 把导入的dmp文件放置该目录
步骤3: 创建表空间
create tablespace HNZHZS_DATA datafile 'F:\DIR\HNZHZS_DATA.ORA' size 800M autoextend on next 5M maxsize unlimited;
命令说明:表空间名尽量和dmp文件名一致,datafile即表空间文件存放位置,建议与创建的目录同级,大小自定义即可(eg:管理员执行该操作)
步骤4: 创建临时表空间
create smallfile temporary tablespace HNZHZS_TEMP tempfile 'F:\DIR\HNZHZS_TEMP.dbf' size 800M autoextend on next 5M maxsize unlimited;
步骤5: 创建用户
create user hnzhzs identified by hnzhzs default tablespace HNZHZS_DATA temporary tablespace HNZHZS_TEMP;
命令说明:user之后紧跟用户名,by后面即为用户密码,两个tablespace即为上步骤创建的表空间。
步骤6: 为用户授权(登陆、操作权限)
grant connect,resource,dba to 用户名;
步骤7: 为用户赋权(执行目录的权限)
grant read,write on directory DIR to 用户名;
步骤8: 验证是否创建成功
conn 用户名/密码;
步骤9: 导入dmp文件,记得先退出!
impdp hnzhzs/hnzhzs DIRECTORY=DIR dumpfile=HNZHZS.DMP remap_schema=hnzhzs:hnzhzs remap_tablespace=HNZHZS_DATA:HNZHZS_DATA
命令说明:该操作不需加逗号!remap_schema=之前导入dmp文件的用户名:现有的用户名,remap_tablespace=之前导入dmp文件的表空间:现有的表空间。一般用户名都是知道的,表空间如果不知道没关系,控制台会打印之前的表空间名称,复制其名称重新执行即可。
步骤10: 检验
sqlplus
select count(*) from user_tables;
至此,oracle用户创建以及导入dmp操作已完成。
本人正在打造技术交流群,欢迎志同道合的朋友一起探讨,一起努力,通过自己的努力,在技术岗位这条道路上走的更远。QQ群号:914683950 备注:技术交流 即可通过!