本人记性太差,写的原因只是因为想记住一点

   原来的oracle是装在windows server 2008上面的,因重新买了服务器,而服务器上面装的是linux系统,因服务器用来做开发,所以将原来的数据库和数据全部导出来,在导入新的服务器上面。原来的服务器和新的服务器跟我使用的PC在同一个网段。我原来的数据库网络名是orcl20,新的数据库网络名是orcl10,

1.exp

C:\Users\Administrator>exp abcdefg/dba@orcl20 file=d:\abcdefg.dmp  

###导出数据库abcdefg所有表和视图,数据库的密码是dba###

2.imp

首先我们得在新的数据库建立表空间和临时表空间(注意:原abcdefg数据库用到的表空间需要与新的数据库表空间相同)

  • 创建临时表空间

create temporary tablespace TS_TEMP tempfile '/opt/oracle/product/10.1.0/oradata/orcl/mytest.dbf' size 32m  autoextend on  next 32m maxsize 1024m extent management local;         ##建立临时表空间TS_TEMP,大小是32M

  • 创建表空间

 create tablespace TS_DATA  logging  datafile'/opt/oracle/product/10.1.0/oradata/orcl/mytest_data.dbf'  size 100m  autoextend on  next 32m maxsize 1024m  extent management local; ##建立表空间TS_DATA

  • 建立用户

CREATE USER "abcdefg" PROFILE "DEFAULT" IDENTIFIED BY "DBA" DEFAULT TABLESPACE "TS_DATA" TEMPORARY TABLESPACE "TS_TEMP" ACCOUNT UNLOCK;  ##建立abcdefg用户,密码是dba,

  • 授权

GRANT "CONNECT" TO "SUPERVISE_CLEAN";##根据自己的需要来授权
GRANT "DBA" TO "SUPERVISE_CLEAN";

  • 查看表空间

select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name;

  • 导入

imp abcdefg/dba@orcl10 file=d:\abcdefg.dmp log=d:\abcdefg.log full=y ignore=y ##产生log日志文件abcdefg.log

3.expdp

Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中. 数据泵导出导入(EXPDP和IMPDP)的作用 1,实现逻辑备份和逻辑恢复. 2,在数据库用户之间移动对象. 3,在数据库之间移动对象 4,实现表空间搬移. 数据泵导出导入与传统导出导入的区别: 在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项; EXP和IMP是客户段工具程序,它们既可以在可以客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用 IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件. 数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.

SQL> conn /as sysdba                                        ##以管理员身份登录
SQL> CREATE OR REPLACE DIRECTORY dir_dump  AS 'd:/teat';    ##创建目录
SQL> GRANT read,write ON DIRECTORY dir_dump TO public;      ##给予读和写的权限SQL>SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all
_directories d WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1; ##查看目录SQL>quit                               ##退出sqlplus

C:\Users\Administrator>expdp abcdefj/dba@orcl20 directory=d:\test dumpfile=abcdefj.dmp logfile=abcdefj.log            ##导出来

4.impdp

  • sqlplus直接登录到orcl10上面查看目录
  • 然后利用ftp工具(注:不要使用root用户,就用oracle用户,因为用root用户需要修改权限以及用户的群主关系)把导出来的abcdefg.dmp传到那个目录下面
  • 当然了,还得建立和原来一样的表空间和临时表空间,用户,以及用户的授权
  • 此时就可以用impdp来导入数据库了
  • C:\Users\Administrator>impdp abcdefj/dba@orcl10 directory= DATA_PUMP_DIR dumpfil
    e=abcdefj.DMP logfile=abcdefj.log    ##本人此处查到的目录是DATA_PUMP_DIR,另外可能因为字符集问题,在linux上面看到的日志文件大部分是乱码,但是当你用oracle工具登陆abcdefg数据库看时,是没有问题的,当然了,可能因数据库可能有多个表空间的情况儿出错,那就一一建立表空间就好了,具体出现的问题到网上搜搜一定会有的!另外出错的地方请指正,谢谢!