1 数据库用户的导出前需注意
Oracle 11G在用export导出时,空表不能导出,11G R2中有个新特性,当表无数据时,不分配segment,以节省空间。
设置deferred_segment_creation参数,该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。
1.修改默认设置语句:alter system set deferred_segment_creation=false scope=both;
需注意的是:该值设置后对以前导入的空表不产生作
2. 如需导出之前的空表,只能用以下方法,可以构建针对空表分配空间的命令语句:
select 'alter table'||table_name||' allocate extent;' from user_tables where num_rows=0;(注意此处只是查询出执行的SQL并不是修改属性,需要把查询的SQL重新执行才会改变属性)
把查询结果导出,执行导出的语句,强行修改segment值,然后再导出即可导出空表。
2 数据库用户的导出
1.linux下的导出
oracle数据库导出命令:
exp username/password@sid file=d:\exp.dmp
exp V8_bank/V8_bank@192.168.70.189:1521/sp1000 file =/home/jysp/sp8000.dmp
或者
exp V8_bank/V8_bank@sp1000 file =/home/jysp/sp8000.dmp
2.Windows下的导出
oracle数据库导出命令(windows下使用cmd)
exp username/password@sid file=d:\exp.dmp
例如导出170数据库的数据为以下命令:
exp sp1000/dbajydw1234@192.168.79.170:1521/sp1000 file=E:\sp1000.dmp INDEXES=n STATISTICS=none TRIGGERS=n
或者
exp sp1000/dbajydw1234@sp1000_192.168.79.170:1521 file=E:\sp1000.dmp INDEXES=n STATISTICS=none TRIGGERS=n
注:出现错误ora-1455时,在以上命令的后面加上INDEXES=n STATISTICS=none TRIGGERS=n三个参数。
3 数据库用户的导入
如果需要新建用户按照以下步骤即可
(1) 在终端下输入sqlplus /nolog
(2) conn system/dbajydw1234
(3) create user 用户名identified by 密码(create user sp1000 identified by dbajydw123)
(4) 给新建的用户授权(如果不授权则会出现错误必须授权dba、resource、connect)
(5) 授权指令 grant dba to sp1000;grant resource,connectto sp1000;
(6) 导库
1.linux下的导入指令
此处设新用户为sp2000,密码是dba1234
imp username/password@sid file =/home/jysp/sp8000.dmp
imp sp2000/dba1234@192.168.70.189:1521/sp1000 file =/home/jysp/sp8000.dmp
或者
imp sp2000/dba1234@sp1000file =/home/jysp/sp8000.dmp
2. windows下的导入
1) oracle数据库导入命令
imp username/password@sid file=d:\exp.dmp full=y
例如导入170数据库的数据为以下命令:
imp sp1000/dbajydw1234@192.168.79.170:1521/sp1000 file=E:\sp1000.dmp full=y
或者
imp sp1000/dbajydw1234@sp1000_192.168.79.170:1521/ file=E:\sp1000.dmp full=y
注:也可以使用sqlplus导库,只需在导库命令前加上!即可。
2) 删除用户(关闭监听)
Sqlplus /nolog
Conn /as sysdba
Drop user sp1000 cascade;(有数据表此处必须加上cascade)