您的位置:首页 > 数据库 > Oracle

Oracle 数据库导入导出(imp/exp)

2017-01-17 16:42 411 查看
大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。导入和导出分别使用imp和exp两种命令,这些命令可以在cmd窗口下运行。

导入命令:imp usename/password@SID full=y  file= d:\data\xxxx.dmp ignore=y。其中usename/password是你创建的用户名,@SID是你的数据库名称,比如使用的oracle 11g默认创建数据库名称是orcl,full=Y是指全部导入,ignore=y也是有用处的,假如你的数据库第一次没有导入成功,再没有完全删除它的情况下第二次导入会出现无法导入的错误,此时加入ignore=y这条语句后可以正常导入,正常情况下可以不用输入ignore=y这条命令。

示例:imp c##scott/tiger@orcl file=F:\智能配电网-大数据\SDCXFX_20161216.DMP full=y

'IMP HELP=Y' 获取帮助信息提示


导入\导出的基本语法和实例: 

    1、EXP: 

      有三种主要的方式(完全、用户、表) 

      1、完全: 

          EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y 

          如果要执行完全导出,必须具有特殊的权限 

      2、用户模式: 

          EXP SONIC/SONIC    BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC 

          这样用户SONIC的所有对象被输出到文件中。 

      3、表模式:

          EXP SONIC/SONIC    BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC) 

          这样用户SONIC的表SONIC就被导出 

    2、IMP: 

      具有三种模式(完全、用户、表) 

      1、完全: 

          IMP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y 

      2、用户模式: 

          IMP SONIC/SONIC    BUFFER=64000 FILE=C:\SONIC.DMP FROMUSER=SONIC TOUSER=SONIC 

          这样用户SONIC的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。 

      3、表模式: 

          EXP SONIC/SONIC    BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC) 

          这样用户SONIC的表SONIC就被导入。

密码输入注意事项:

如果你的密码中包含特殊字符,在Windows下就需要用三个双引号扩起来,如:

  exp skytf/"""#$adf`%6^=dfom"""@skytf buffer=52428800 file=skytf.dmp

  如果是在Linux系统下,则密码用一对双引号, 整体userid和password用对单引号括住,如:

  exp 'skytf/"?`}:=*H"@skytf'"<akJWI-q-@#<>?`}:Q*H"@skytf' DIRECT=Y buffer=52428800 FEEDBACK=10000 statistics=none file=skytf.dmp

密码中包含特殊字符的使用,具体请看《Oracle密码中含有特殊字符时exp,imp的使用》文章

注意事项:

1.如果加上“full=y”,将整个数据库全部导出,需要特殊的权限(具体什么权限没研究过),一般用system用户就足够了,普通用户是不可以的

2.不加“full=y”,默认导出连接数据库的用户数据库对象,比如:exp aaa/abc@oracle file=a.dmp,导出aaa模式下的所有数据库对象

3.你说的有多个用户,可以使用system来指定导出哪个用户的数据库对象,比如:exp aaa/abc@oracle file=a.dmp owner=(bbb,ccc),普通用户是不可以指定owner的

4.数据有多个实例的情况,这个要看你“@”后面是什么,如果@oracle,则在oracle实例上进行导出,@ora,则在ora实例上进行导出

FULL  导出整个数据库   默认是禁止的 

不加的就是不导出整个数据库  只导出该用户下的数据   那么bbb用户的数据就不会导出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: