`
clq9761
  • 浏览: 587938 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

Oracle的导入导出

阅读更多

 一. 导入/导出命令参数(imp/exp)


  1.userid 指定执行导入导出操作的数据库用户,这个参数名称可以省略。例:userid=scott/tiger


  2.file 指定导出所产生的文件,导入时要读这个文件。例:(file= d:/myoracle/dept.exp)


  3.tables 指定要导入导出的表 例:tables=(dept,emp)


  4.owner 指定要导出的用户 例:owner=(system,sys)


  5.full 指定是否要对整个数据库进行导入导出。例:full=y


  6.grants 指定是否导出表上的权限。例:grants=y


  7.rows 指定是否只导入导出表的结构和表上的对象,而不导入导出表中的数据。例:rows=y


  8.log 导入导出时日志要写入的文件的名字


  9.indexes 是否要导入导出表上的索引 例:indexes=y


  10.compress
        导出是否应该压缩有碎片的段成一个范围,这将会影响storage子句.导入大表(大于80m)时,  存储分配失败,

    默认的exp时,compress = y,也就是把所有的数据压缩在一个数据块上.导入时, 如果不存在连续一个大数据块,

    则会导入失败.导出80m以上的大表时, 记得compress= n, 则不会引起这种错误.
  
  以下为imp命令自有的参数


  1.show 规定文件内容是否被显示,而不是被执行,可以查看文件中包含的sql语句 例:show=y


  2.ignore 标明在执行‘create’命令时,是否忽略遇到的错误。如果正在导入的对象已经存在时,
     应使用这个参数 例:ignore=y


  3.fromuser
        在full=n的情况下,才有参数。它是一系列的数据库帐号,其对象应从导出转储文件中读取。
    例:fromuser=system


  4.touser 一系列数据库帐号,导出转储文件中的对象将要导入这些帐号 例:touser=system


  5.注意点:imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件

 

 二. 用户表的导入导出
  
  1.导出表(多个表加上括号用逗号隔开)
    exp clq/clq file=d:/myoracle/dept.exp tables=dept
  
  2.导入表(从自己导出中导入)
    imp clq/clq file=d:/myoracle/dept.exp tables=dept
  
  3.导入表(从其它用户导出的进行导入)
    imp system/manage file=d:/myoracle/dept.exp tables=dept fromuser=clq

 

  三.用户模式的导入导出(含所有对象,表,索引,存储过程)
  
  1.导出用户
   exp system/manager@orcl  file=d:/myoracle/clq.exp owner=clq grants=y rows=y
  
  2.导入用户
   imp system/manager@orcl file=d:/myoracle/clq.exp fromuser=clq touser=clq

 

  四、数据库的导入导出
  
  1.数据库的导出,将除sys用户所拥有的对象之外的其他数据库对象全部导出
   exp system/manage@orcl  full=y file=d:/myoracle/database.exp grants=y rows=y
  
  2.数据库的导入(主要用于不同版本,不同操作系统下的数据库之间移植数据)
   imp system/manage@orcl  full=y file=d:/myoracle/database.exp ignore=y

 

  五.表空间的导入导出
  
  1表空间的导出
  (1)将表空间置为只读
        alter tablespace myspace read only;
  (2)利用exp导出表空间的结构信息到元数据文件中,不导出表数据,
           transport_tablespace参数设置是否导出表空间的元数据
     exp 'system/manage as sysdba' file=d:/myoracle/tablespace.exp
            transport_tablespace=y tablespaces=myspace
  (3)将表空间置为可写
        alter tablespace myspace read write;
  (4)将表空间的数据文件和元数据文件复制到目标数据库所在的系统中。

 

  2.表空间的导入,导入时要求数据库具有相同的字符集,在目标数据库中不能有同名的表空间

  (1)利用imp命令将表空间导入到目标数据库(datafiles 指定表空间的数据文件)
  imp 'system/manage as sysdba' file=d:/myoracle/tablespace.exp
   transport_tablespace=y datafiles=(/home/oracle/mytablespace.dbf)

 

 六.表空间的创建与删除
  
  1.表空间的创建
   create tablespace myspace
   datafile  'c:\app\clq\oradata\orcl\myspace.dbf' size 100 m
   autoextend on next 10 m maxsize unlimited
   minimum extent 512 k
   default storage(
    initial 512 k
    next 512 k
    minextents 1
    maxextents unlimited
    pctincrease 0
    )
   online
   permanent;  
  (1)tablespace 指出表空间的名称
  (2)datafile: 表空间数据文件存放路径
  (3)size: 起初设置为100m
  (4)autoextend表明是否自动扩展. off | on 表示自动扩展是否被关闭.
          next 表示数据文件满了以后,扩展的大小.
  (5)mininum extent integer [k|m]
         指出在表空间中范围的最小值。这个参数可以减小空间碎片,保证在表空间的范围是这个数值的整数倍。
  (6)default storage_clause
         声明缺省的存储子句。
  (7)online|offline
         改变表空间的状态。online使表空间创建后立即有效.这是缺省值.
         offline使表空间创建后无效,这个值,可以从dba_tablespace中得到。
  (8)permanent|temporary
         指出表空间的属性,是永久表空间还是临时表空间。永久表空间存放的是永久对象,
        临时表空间存放的是session生命期中存在的临时对象
  
  2.临时表空间的创建
       临时表空间用于存储临时数据,当用户执行排序,创建索引这样的操作时,将产生大量的中间结果,
  这些临时数据首先存储在pga的排序区中。当排序区的大小不足以容纳这些数据时,将用到临时表空间。
  如果没有为用户指定临时表空间,那么用户在执行排序操作时将把
  system表空间作为临时表空间,并在system表空间中创建临时段,以存储临时数据。
  这样在system表空间中将产生大量的存储空间碎片,从而降低数据库性能。  
     create  temporary  tablespace  mytempspace
   tempfile 'c:\app\clq\oradata\orcl \mytempspace.dbf'
   size 200m
   autoextend on
   next 50m maxsize 1024m
   extent management local;
  
  3.表空间的删除
    drop tablespace mysapce including contents and datafiles

 

 七.用户的创建与删除
  
  1.用户的创建
      create user clq identified by clq
        default tablespace myspace
        temporary tablespace mytempspace
        quota  unlimited  on myspace;

  (1)user指定用户名,identified by指定口令。
  (2)default tablespace,为用户指定默认表空间
  (3)temporary tablespace为用户指定默认临时表空间
  (4)quota为用户在表空间上指定空间配额,unlimited 为无限制。
  
  2.为用户赋予权限,用户刚创建完没有任何权限,需给用户赋于相关权限
    grant connect to clq;
    grant exp_full_database to clq;
    grant imp_full_database to clq;
    grant resource to clq;

 

 3.撤消权限,基本语法同grant,关键字为revoke

 

 4.查看权限

  select * from user_sys_privs;//查看当前用户所有权限

  select * from user_tab_privs;//查看所用用户对表的权限
  
   5.删除用户,如果一个用户的模式中包含一些数据库对象,那么这个用户不能被直接删除,

    如果要强制删除该用户,可以在命令中加上cascade选项。
    drop user clq;
    drop user clq cascade;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics