采用exp/imp命令

知识扩充:

    数据泵导入导出(EXPDP和IMPDP)的作用:

  1. 实现逻辑备份和逻辑恢复
  2. 在数据库用户之间移动对象
  3. 在数据库之间移动对象
  4. 实现表空间搬迁
  • EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用

1.首先切换到oracle用户下

首选登录使用xshell登录到需要导出数据库的服务器,然后使用命令切换到oracle用户下

shell 导出多个MySQL数据 shell脚本导出oracle数据库数据_数据库

如上图,root变为oracle表示切换成功!

2.导出命令

导出与导入有三种方式:

  1. 完全模式导出(导入)

      将整个数据库导出,但是操作时需要特殊权限;例如:

exp Test/Test buffer=32000 file=test.dmp full=y

执行:

shell 导出多个MySQL数据 shell脚本导出oracle数据库数据_数据库_02

    2.用户模式导出(导入)

     将指定用户的所有对象进行导出,例如:

exp Test/Test buffer=32000 file=test.dmp owner=Test

    3.表模式导出(导入)

     将用户的所有的表数据导出,例如:

exp Test/Test buffer=32000 file=test.dmp owner=Test tables=(User)

   其中Test/Test为数据库用户名和密码,test.dmp为导出的文件 ,执行上诉其中一个命令,导出文件可在/home/oracle目录下查看  

   

shell 导出多个MySQL数据 shell脚本导出oracle数据库数据_表空间_03

COMPRESS参数将在导出的同时合并碎块,尽量把数据压缩到initial的EXTENT里,默认是N,一般建议使用。DIRECT参数将告诉EXP直接读取数据,而不像传统的EXP那样,使用SELECT来读取表中的数据,这样就减少了SQL语句处理过程。一般也建议使用。不过有些情况下DIRECT参数是无法使用的。

2.导入步骤

假设在另一台服务器,oracle有个全新的数据库orcl,现在要把刚刚导出的数据库文件(.dmp)导入这个全新的数据库orcl中。详细步骤如下:

1.创建表空间

create tablespace test(表空间名称) datafile '/home/oracle/data/test.dmp'(表空间的存储位置) 
size 50M (表空间大小,单位兆) 
autoextend on next 50M 
maxsize unlimited 
extent management local autoallocate 
segment space management auto;

2.创建用户并将表空间分配给用户 

create user test(用户名) identified by test(密码) default tablespace test(表空间名称);

3. 给用户授予权限 

grant dba,connect,resource, aq_administrator_role,aq_user_role, authenticateduser to test(用户名);

4. 导入数据(在命令提示符窗口,和导出数据一样,切换到oracle用户下,导入数据之前需要将之前导出的数据文件上传到服务器)

imp test/test@orcl BUFFER=64000 file=/home/oracle/test.dmp(导出文件上传的另一台服务器存放路径) FULL=y(FULL和TABLES是两种导入模式,TABLES可以只导入部分表,TABLES=(tab1,tab2,...)) COMMIT=y  IGNORE=y  LOG=test.log

执行:

shell 导出多个MySQL数据 shell脚本导出oracle数据库数据_shell 导出多个MySQL数据_04