本人记性太差,写的原因只是因为想记住一点
原来的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数据库看时,是没有问题的,当然了,可能因数据库可能有多个表空间的情况儿出错,那就一一建立表空间就好了,具体出现的问题到网上搜搜一定会有的!另外出错的地方请指正,谢谢!