Oracle数据库导入/导出

来源:互联网 发布:新卡购3.0外包系统源码 编辑:程序博客网 时间:2024/06/06 03:05

1、使用PL/SQL工具来进行导出/导入

(1)、导出,如图所示:用红色框框出来的两个是必须要有的,第一个框,即导出可执行文件,这个是可以通过最后面那个按钮来确定默认导出可执行文件的,但是本人这里,不知道是因为数据库是64位而PL/SQL是32位的原因还是安装的Oracle数据是精简版的,不是完全版的原因,去网上搜了一下,说的是:“在确保oracle客户端安装完整的情况下,出现这种情况的原因是安装目录下的exp.exe文件缺失。”具体原因没有找到,若读者有好的建议或方法,欢迎与我共同分享。

(2)、导入,如图:问题和上面导出的一样。

以上方法如果环境允许的话,操作起来还是非常简便的,但是如果遇到我这种情况,不妨换一下其他方式,毕竟重新安装Oracle或PL/SQL还是挺麻烦的。

2、利用CMD命令来进行导出/导入操作

(1)、数据的导出:找到目标数据库,根据个人所需,在DOS环境下执行相应语句,便可完成导出操作。

具体步骤:

<1>、因为是直接在DOS环境下进行操作,所以在正式执行导出:

操作之前,我们需要确定目标数据库是否存在和可连接

D:\Oracle\product\10.1.0\Client_1\NETWORK\ADMIN目录下有个tnsname.ora文件,内容如下:
CMSTAR =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.13.200)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = cmstar)
    )
  )

<2>、使用DOS命令,测试数据库是否可连接,输入:tnsping DatabaseName

<3>、数据的导出:

[1]、将数据库DatabaseNameA完全导出,用户名:UserName,密码:Password导出到D:\data.dmp中

exp UserName/Password@DatabaseNameA  file = D:\data.dmp full = y

expdp UserName/Password@DatabaseNameA  directory=VBM_data dumpfile=数据包名.DMP 

[2]、将数据库中UserA用户和UserB用户的表导出

exp UserA/Password@DatabaseNameA  file = D:\data.dmp owner=(UserA,UserB)

[3]、将数据库中的表Table1和Table2导出

exp UserName/Password@DatabaseNameA  file = D:\data.dmp tables=(table1,table2)

[4]、将数据库的表table1中的字段filed1以“00”开头的数据导出

exp UserName/Password@DatabaseNameA  file = D:\data.dmp tables=(table1) query =\ "where filed1 like '00%'\"

注:如果想导出的文件是压缩文件,在上面的命令后面加上compress=y即可。

(2)、数据的导入:在正式执行导入命令之前,为了一些实际情况,我们可以做一些处理,具体情况具体而论。比如:我现在要将库A的表导入到库B,但是在此之前,库B其实是有库A中所有的表的,但是因为库A经常维护,而库B就偶尔维护,所以,库A的表结构与最新要求更匹配,但是我现在又要用库B,所以需要维护一下库B,即将库A的的表重新导入到库B中(现目前只知道这种方法),所做处理如下:

<1>、删除库B中的用户A,并及时清理相应表空间。此操作在PL/SQL环境下进行。

--删除用户
drop user USERA cascade;

--删除表空间TABLESPACEA和TABLESPACEB及其包含的内容和数据文件
drop tablespace TABLESPACEA including contents and datafiles;

drop tablespace TABLESPACEB including contents and datafiles;


<2>、创建临时表空间和永久表空间。此操作在PL/SQL环境下进行。

--创建临时表空间(temporary tablespace TABLESPACEA)并指定存放地点(tempfile 'D:\oracle_data\data\TBS_FMIS_TEMP.dbf')、表空间数据文件的初始大小(size 50m)、表空间自动增长的大小(autoextend on  next 50m)、表空间最大的大小(maxsize 2048m)和管理方式(extent management local)

create temporary tablespace TABLESPACEA
tempfile 'D:\oracle_data\data\TBS_FMIS_TEMP.dbf'
size 50m  
autoextend on  
next 50m maxsize 2048m  
extent management local;
--创建表空间
create tablespace TABLESPACEB
logging  
datafile 'D:\oracle_data\data\TBS_FMIS_DATA1.dbf'
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;

<3>、创建目录‘、用户,并给用户设置默认表空间和授权。此操作在PL/SQL环境下进行。

--创建目录

create  directory  DirectoryName  as  'F:\oracle_data\VBM_data'

--创建用户并设置默认表空间

create user FMIS identified by 1  
default tablespace TABLESPACEB
temporary tablespace TABLESPACEA;
--给用户授权
grant connect,resource,dba to USERA;

<4>、数据导入。此操作在DOS环境下进行。

[1]、将”数据包名.DMP”中的数据导入到数据库DatabaseName中去

impdp User/Password@DatabaseName directory = DirectoryName  dumpfile =数据包名.DMP remap_schema = USERA:USERB

注:在导出时,数据包中有可能带出当时的用户名,例:USER.TABLEA,如果直接到入的话,会出现错误,所以remap_schema = USERA:USERB的功能就是将用户USERA的数据导入到用户USERB中去。

[2]、将“数据包名.DMP”中的表table1导入

imp User/Password@DatabaseName file =数据包名.DMP tables = (table1)


原创粉丝点击