一、导出数据到dxp文件中
exp 用户名/密码@实例名 file=导出的dmp文件存放路径 log=导出日志存放路径 例如:
exp account/password@127.0.0.1:1521/xinyong file=d:\xinyong_2016_04_22.dmp
二、导入数据
创建临时表空间
create temporary tablespace TEMP_XYPT
tempfile 'F:\app\Administrator\oradata\orcl\temp_xypt.dbf'
size 50m
autoextend ON;
创建表空间
create tablespace TBS_XYPT
logging
datafile 'F:\app\Administrator\oradata\orcl\tbss_xypt.dbf'
size 50m
autoextend ON;
创建GXXYPTZXK 用户,密码是gxxyptzxk
-- Create the user
create user GXXYPTZXK IDENTIFIED BY gxxyptzxk
default tablespace TBS_XYPT
temporary tablespace TEMP_XYPT;
授权
-- Grant/Revoke role privileges
grant connect to GXXYPTZXK;
grant exp_full_database to GXXYPTZXK;
grant imp_full_database to GXXYPTZXK;
grant resource to GXXYPTZXK;
-- Grant/Revoke system privileges
grant debug any procedure to GXXYPTZXK;
grant debug connect session to GXXYPTZXK;
grant unlimited tablespace to GXXYPTZXK;
grant create session to GXXYPTZXK;
grant create table,create view,create trigger, create sequence,create procedure to GXXYPTZXK;
开始导入
imp utest/upassword@localhost/orcl file=D:\20140227.dmp full=y ignore=y
utest是用户名
upassword是密码
localhost数据库所在机器,可替换成ip地址
orcl是实例的名称
file后面是导出的dmp文件路径
full=y表示全部导入
ignore=y 忽略创建错误
为什么创建临时表空间。
最好在创建用户时为用户指定临时表空间。不过在Oracle数据库中这个不是强制的。但是建议这么做。因为如果没有为用户指定默认临时表 空间的话,那么当这个用户因为排序等操作需要使用到临时表空间的话,数据库系统就会利用系统表空间SYSTEM来创建临时段。这是一个系统表空间。因为在这个表空间中存放着系统运行相关的数据,建议用户的数据不能够保存在这个表空间中。那么如果将用户的临时表空间放置在系统表空间之内,会产生负面影响:因为临时表空间中的数据是临时的。为此数据库系统需要频繁的分配和释放临时 段。这些频繁的操作会在系统表空间中产生大量的存储碎片。当这些存储碎片比较多时,就会影响系统读取硬盘的效率,从而影响数据库的功能。其次系统表空间的 大小往往是有限制的。此时临时段也来插一脚,就会占用系统表空间的大小。为此建议各位读者与数据库管理员,在创 建用户的时候同时为用户指定一个默认的表空间,以减少临时段对系统表空间的占用。
注意:
很多时候我们用拥有DBA权限的用户 从oracle数据库导出数据,那么再导入新的数据库时就还得需要DBA权限的用户,下面是如何创建一个新用户并授予DBA权限命令。
1.用有dba权限的用户登录:sys用户
2.创建一个新用户:create user abc(用户名) identified by 123456(密码);
3.授予DBA权限: grant connect,resource,dba to abc;
ok,创建好了,就可以用abc这个用户登录了,abc用户拥有dba权限。
注意事项:导出dmp数据时需要有导出表的权限的用户,否则不能导出。