Oracle数据库导出和导入

方法一:利用PL/SQL Developer工具导出:
菜单栏---->Tools---->Export Tables,如下图,设置相关参数即可:

方法二:利用cmd的操作命令导出,详情如下:

首先需要连接sqlplus ,使用CMD远程连接需要导出的数据库。
1:D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN目录下有个tnsname.ora文件,你要在%ORACLE_HOME%\network\admin\tnsnames.ora中配置一个连接串,增加一个连接串。

内容如下:

示例:192.168.1.88 = 
 (DESCRIPTION = 
    (ADDRESS = 
     (PROTOCOL = TCP)
      (HOST = 192.168.1.88)
     (PORT = 1521)
   )
    (CONNECT_DATA = 
     (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
   )
  )  
保存文件。

2:测试连接,进入CMD   (本人测试成功)
c:\>sqlplus scott/[email protected]   // scott(要连接的数据库User)/tiger(数据库password) 

============================================================================

情况一:通过远程在sql plus 中进行远程导出,命令如下:

$exp username/password@servername owner=username rows=y file=D:\sample.dmp log=D:\sample.log;
实例:$exp portal/[email protected] owner=username rows=y file=D:\sample.dmp log=D:\sample.log;
或者
$exp username/password@servername owner=username rows=y file=D:\sample.dmp 
log=D:\sample.log statistics=none;

$imp username/password@servername fromuser=fromUserName touser=toUserName 

file=D:\sample.dmp rows=y log=D:\sample.log;

其中,rows=n 不带数据;rows=y 带数据

实现“imp一个.dmp文件中的部分表,并且,只导入数据不导入表结构(表结构已经存在)”的命令:

$imp username/password@ORASVR fromuser=username1 touser=username file=e:\file.dmp IGNORE=Y  TABLES=(table1,table2, ……)

Oracle数据库导出和导入_第1张图片

情况二:在CMD中运行以下命令导出,具体实现可远程登录然后在CMD中导出。(导出文件在数据库服务器上)

3:导入与导出,如下:
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2将数据库中system用户与sys用户的表导出
expsystem/manager@TESTfile=d:\daochu.dmpowner=(system,sys)
3将数据库中的表table1、table2导出
expsystem/manager@TESTfile=d:\daochu.dmptables=(table1,table2)
4将数据库中的表table1中的字段filed1以"00"打头的数据导出
expsystem/manager@TESTfile=d:\daochu.dmptables=(table1)query=\"wherefiled1like'00%'\"

上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
不过在上面命令后面加上compress=y就可以了

数据的导入

1将D:\daochu.dmp中的数据导入TEST数据库中。
impsystem/manager@TESTfile=d:\daochu.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上ignore=y就可以了。

2将d:\daochu.dmp中的表table1导入
impsystem/manager@TESTfile=d:\daochu.dmptables=(table1)

注意事项:导出dmp数据时需要有导出表的权限的用户,否则不能导出。

PL/SQL Developer是Oracle数据库中用于导入或导出数据库的主要工具,本文主要介绍了利用PL/SQL Developer导入和导出数据库的过程,并对导入或导出时的一些注意事项进行了说明,接下来我们就一一介绍。

导出步骤:

1 tools ->export user object 选择选项,导出.sql文件。

2 tools ->export tables-> Oracle Export 选择选项导出.dmp文件。

导入步骤:

注:导入之前最好把以前的表删除,当然导入另外数据库除外。
1 tools->import tables->SQL Inserts 导入.sql文件。
2 tools->import talbes->Oracle Import然后再导入dmp文件。

一些说明:

Tools->Export User Objects导出的是建表语句(包括存储结构)。
Tools->Export Tables里面包含三种导出方式,三种方式都能导出表结构以及数据,如下:
Oracle Export
Sql Insert
pl/sql developer

第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广 。
第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,会提示不能导出(提示如下: table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead)。
第三种是导出为.pde格式的,.pde为Pl/sql developer自有的文件格式,只能用Pl/sql developer自己导入导出,不能用编辑器查看。

=====================================================================

进行数据库导入导出工作的先决条件:

1. 本地安装Oraclek客户端或是服务器端。

2. 通过oracle提供的NetConfiguration Assistant连接到目标数据库。

第一步毋庸多言,第二步稍微要说一下,打开Net Configuration Assistant,选择第三项,下一个页面输入远程数据库的服务名,如AHMCCCMS,接下来的页面输入远程数据库的IP地址和端口(一般默认1521),再接下来测试一下,此时测试因为连接数据库的用户名和密码不对不会成功,再输入正确的用户名和密码后就能看到测试成功的信息了。再接下来指定本地的服务名,它相当于远程数据库的映射。然后点击完成。这一步成功以后下面就好办了。

现假设我们配置了两个服务:

导出源--工作机                               用户名CMS密码password123服务名WORKDB

导入目的地--测试机                        用户名CMS_TEST密码password123服务名TESTDB

下面是如何进行导出的语句(在 cmd 中执行):

1.将数据库WORKDB完全导出,用户名CMS密码password123导出到D:\daochu.dmp中

exp cms/password123@WORKDB  file=d:\1.dmp full=y

2.将数据库中cms用户的表导出

   exp cms/password123@WORKDB file=d:\2.dmp owner=(cms)

3.将数据库中的表tb_contract 、tb_sys_user导出

   exp cms/password123@WORKDBfile=d:\3.dmp tables=( tb_contract, tb_sys_user)

下面是如何进行导入的语句

1.将D:\2.dmp 中的数据导入 TESTDB数据库中。

    imp CMS_TEST/ password123@TESTDB  file=d:\2.dmp ignore=y

2 . 将d:\3.dmp中的表tb_contract 导入

imp CMS_TEST/ password123@TESTDB file=d:\3.dmp  tables=( tb_contract)

下面是详细命令格式,与上面对应+++++++++

1)单表导出:exp 用户名/密码@服务器别名 tables=表名 file=d:\名称.dmp

复制代码代码如下:

exp jm110/jm110@120_2 tables=ajb file=d:\ajb.dmp

多张表:
复制代码代码如下:

exp jm110/jm110@120_2 tables=(ajb,jjdwb) file=d:\ajb2.dmp

2)完全导出:也就是数据库中的所有表都导出
格式:exp 用户名/密码@服务器别名 file=d:\名称.dmp

复制代码代码如下:

exp jm110/jm110@120_2 file=d:\jm110.dmp


导入命令 :
    因为导入的内容都是dmp文件,所以未涉及到单表导入的情况,统一命令格式
       格式:imp 新用户名/密码@新服务器别名 file=d:\名称.dmp buffer=102400000 feedback=10000 log=d:\名称.txt full=y
            参数:buffer:设置缓存大小,越大越好,它决定导入的速度
                    full:完全导入,导出表结构及存储过程等等

复制代码代码如下:

 imp jm110/jm110@120_1 file=d:\jm110.dmp buffer=102400000 feedback=10000 log=d:\jm110.txt full=y
 


==================================================================================

oracle 11g 数据泵导入导出方法

运行以下命令:
1> cmd 运行sqlplus system/密码 


2>  创建数据导出目录expnc_dir为目录名,'E:\ncdatabak'为数据库实际目录,命令如下:
create directory expnc_dir as 'E:\ncdatabak';

3> 为oracle用户授予访问数据目录的权限,命令如下:
Grant read,write on directory expnc_dir to dxzyjt;

执行数据泵出命令,注意一定要在Cmd下执行,不能登录sqlplus后执行。
4 > expdp dxzyjt/dxzyjt@ncdata_192.168.1.224 directory=expnc_dir dumpfile=ncdatabak.dmp schemas=dxzyjt  logfile=ncdatabak.log;

>>>>>>>>>>开始备份到expnc_dir 文件夹


以上内容转自别处,为个人学习所整理,多谢作者 部分有自己总结改进,且已经测试成功

你可能感兴趣的:(数据库)