对exp full 和 imp full的认识



前段时间听同事说。Toad 工具可以打开 oracle数据库的 .dmp 文件。今天抽空试了试,果然可以!
Oracle 执行 export 操作 会把 表的定义导出、表的数据导出。


其实 .dmp 文件 就是 Oracle导出操作的 反操作,类似于 反编译!

之前,一直以为 对 数据库A 执行全库导出之后,可以 把A库的导出文件 导入 数据库B,从而在数据库B上实现数据库A的重演。(后来才知道,如果实现数据库的重演,必须事先在数据库B 创建数据库A里的全部用户、表空间)


看到 .dmp 文件才知道 以上认识 是错误的

事实上 .dmp 文件并不包含表空间的创建命令。原理很简单,例如从WINDOWS 平台导出一个数据库,然后导入 LINUX 平台。WINDOWS平台的表空间的数据文件路径分隔符 是 '\',而 LINUX 平台的表空间的数据文件路径分隔符是 '/',这一点 ORACLE 并不能预知。因此  .dmp 中绝对不会包含表空间的创建指令的。


当然 .dmp 文件中也不包括用户的创建 命令

因此需要我们事先创建用户、创建表空间

 

下面附带 两个sql语句予辅助

 


使用 oracle数据库提供的 拼字符 ‘||’ 批量创建 表空间


SQL> select 'create tablespace '||tablespace_name||' datafile '||''''||file_name||''''||' size '||bytes/1024/1024||'M;' ct_tbs from dba_data_files;

CT_TBS
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
create tablespace USERS datafile '/ora_data/oradata/orcl/users01.dbf' size 112.5M;
create tablespace UNDOTBS1 datafile '/ora_data/oradata/orcl/undotbs01.dbf' size 80M;
create tablespace SYSAUX datafile '/ora_data/oradata/orcl/sysaux01.dbf' size 540M;
create tablespace SYSTEM datafile '/ora_data/oradata/orcl/system01.dbf' size 730M;
create tablespace LVSKSK_T_JS datafile '/u01/app/oracle/oradata/prod/lvsksk_t_js01.dbf' size 200M;
create tablespace MY_TBS datafile '/u01/app/oracle/product/11.2.0/db_1/dbs/E:APPORACLEORADATADZFPMXMY_TBS01.DBF' size 10M;
create tablespace TEST datafile '/u01/app/oracle/product/11.2.0/db_1/dbs/E:APPORACLEORADATADZFPMXTEST01.DBF' size 10M;
create tablespace TBS datafile '/u01/app/oracle/product/11.2.0/db_1/dbs/E:APPORACLEORADATADZFPMXTBS01.DBF' size 10M;


批量创建用户
SQL> select ' create user '||username||' identified by xxx '||' default tablespace '||default_tablespace ct_user from dba_users where account_status='OPEN' order by created desc;

CT_USER
----------------------------------------------------------------------------------------------------------------
 create user DEV123 identified by xxx  default tablespace USERS
 create user DEV identified by xxx  default tablespace USERS
 create user TEST123 identified by xxx  default tablespace USERS
 create user TEST identified by xxx  default tablespace USERS
 create user SCOTT identified by xxx  default tablespace USERS
 create user SYSMAN identified by xxx  default tablespace SYSAUX
 create user DBSNMP identified by xxx  default tablespace SYSAUX
 create user ORACLE_OCM identified by xxx  default tablespace USERS
 create user SYS identified by xxx  default tablespace SYSTEM
 create user SYSTEM identified by xxx  default tablespace SYSTEM

有了这些sql语句 就放到sqlplus 直接执行吧

转载于:https://www.cnblogs.com/iyoume2008/p/4722289.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值