oracle表空间、用户、导入导出dmp文件与oracle11g导出表不全问题

创建表空间:
create tablespace TABLESPACE_NAME logging datafile '/u01/app/oracle/data/hap/LSLB.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local;
解释:
TABLESPACE_NAME ——表空间名称
/u01/app/oracle/data/hap/LSLB.dbf ——表空间存储文件

创建用户:
create user 用户名 identified by 密码 default tablespace 表空间名称 ;
例如(create user zsqysl identified by zsqysl default tablespace LSLB ; )
分配用户权限:
grant connect,resource,dba to 用户名;
例如(grant connect,resource,dba to zsqysl; )

查询当前用户所有表
select * from user_tables;

imp命令导入数据:
imp username/password@SID file=xxx.dmp full=y ignore=y
备注: username数据库登录用户名 password登录密码
file值为dmp物理路径 ignore忽略错误

exp命令导出数据
exp username/password@SID file=xxx.dmp owner=(username1,username2)
备注:owner的值为导出表的用户

Oracle11G 命令行导出表不全解决
因为Oracle11G有一个新特性,命令行exp只会导出有分配过segment的表,如果数据库中的表数据条数是0时不分配segment。
解决方法:
修改deferred_segment_creation 为false 来禁用这个功能,但是对已经存在的table不受影响,该修改保证只对以后创建的table 生效
alter system set deferred_segment_creation=true; 
通过select 来生成Alter语句
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 
这句话的作用,是生成一些语句,帮助我们把上面的空表分配segment。

你可能感兴趣的:(oracle表空间、用户、导入导出dmp文件与oracle11g导出表不全问题)