用 PLSQL 创建新用户及导入 dmp

时间:2024-01-22 17:30:45

一、创建表空间


在导入 dmp 文件之前,你要在数据库里面给它分配一片存储它的地方(表空间)。

如果我们知道需要导入的数据库的表空间直接创建就可以,如果不不知道,也没有关系,我们可以用 txt 打开 dmp 文件,使用快捷键 Ctrl+F,查找 tablespace,就可以找到这个 dmp 文件所对应数据库的表空间,然后创建我们找到的表空间就可以。

create tablespace "表空间名"
datafile \'D:\app\*****\oradata\orcl\表空间名.dbf\' size 50M
default storage (initial 500K 
                 Next 500K
                 minextents 1 
                 maxextents unlimited
                 pctincrease 0); 

注意:datafile 路径为 oracle 数据库安装对应的目录,为方便查看将表空间的文件设置为表空间的名字。

二、创建用户


使用数据库 dba 用户创建用户并赋予相应的导入导出等权限。

第一步:选择New。

第二步:选择User。

第三步:点选General标签。选择第一步创建的表空间,并填写用户名密码。

第四步:点选Role Privileges标签。Role选择connect,勾选“Default”。

第五步:点选System Privileges标签。选择“create any table”、“create any type”、“create any sequence”,右侧不勾选。

第六步:点选Quotas标签。tablespace中选择“users”表空间,勾选“Unlimited”(无限权限)。

第七步:“Apply” 之后,即可用此用户以普通用户(Normal)的身份登录了。

三、导入dmp


建议使用命令行进行导入,避免使用PLSQL,会产生各种灵异问题。比如:1)导入的时候一闪而过,显示导入成功,但数据库里找不到任何数据。2)选择From User、To User时显示“Not logged on”问题。所以,在最后附上命令行的导入方式。可以跳过使用PLSQL导入,直接看命令行导入方式

第一步:使用创建的用户登录

可以看到新创建的用户有表空间 CDP

第三步:选择tools(工具)菜单下的import tables..(导入表);
第四步:在oracle import选项卡界面勾选相应的选项;
第五步:选择buffer size(缓冲池大小);
第六步:填写from user导出dmp文件的用户;
第七步:填写to user导入dmp文件的用户,即当前登录的用户;
第八步:import executable选择默认;
第九步:选择dmp文件;
第十步:import(导入)。

附:命令行导入方式


注意:1、导入前同样需要创建表空间。2、设置表空间的自动增长(否则导入数据大于表空间的存储量会导入失败)。

1、设置表空间自动增长(其中路径为表空间的路径)

ALTER DATABASE DATAFILE \'D:\app\1234\oradata\orcl\CDP.DBF\' AUTOEXTEND ON;//打开自动增长

ALTER DATABASE DATAFILE \'D:\app\1234\oradata\orcl\CDP.DBF\' AUTOEXTEND ON NEXT 200M ;//每次自动增长200m

ALTER DATABASE DATAFILE \'D:\app\1234\oradata\orcl\CDP.DBF\' AUTOEXTEND ON NEXT 200M MAXSIZE 1024M;//每次自动增长200m,数据表最大不超过1G

2、导入dmp文件

注意:此语句要使用Windows自带的命令行,不要使用oracle的SQL Plus

imp root/root@orcl file=E:\CDP\cdpnew_20160706\backup\oracle11g_dmp\cdp\cdpnew_20160706.dmp full=y