oracle 数据的导出与导入操作

来源:互联网 发布:cool edit mac 破解版 编辑:程序博客网 时间:2024/05/21 09:58
导出命令:
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
 


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




方法二:利用cmd的操作命令导出,详情如下:
1:G:\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)
    )
  )
 
其中:CMSTAR为数据库名,HOST为IP地址,所以可以仿效上面的例子手动添加数据录连接。
2:用cmd进入命令行
输入:tnsping cmstar
就是测试172.18.13.200是否连接成功
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自己导入导出,不能用编辑器查看。






在导入dmp文件时候,通常我们需要新建一个用户来导入,新用户需要一个表空间和一个临时表空间。


表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间,可自动释放;而表空间中存储表数据、函数、过程、序列等。是随数据库永久存在的。


新建临时表空间:


create temporary tablespace user_temp 
tempfile 'F:\oracle\product\10.2.0\oradata\orcl\user_temp.dbf' 
size 50m
autoextend on 
next 50m maxsize 20480m 
extent management local;
1
2
3
4
5
6
1
2
3
4
5
6
新建表空间:


create tablespace user_data 
logging 
datafile 'F:\oracle\product\10.2.0\oradata\orcl\user_data.dbf' 
size 50m 
autoextend on ;
1
2
3
4
5
1
2
3
4
5
新建用户:


create user user_name identified by user_password
default tablespace user_data 
temporary tablespace user_temp;
1
2
3
1
2
3
授权新用户:


grant connect,resource to user_name;
grand dba to user_name;
1
2
1
2
导入dmp文件:


imp user_name/user_password@SID file=F:\xxx.dmp full=y;
1
1
删除用户:


drop user user_name cascade;
1
1
删除表空间和临时表空间:


drop tablespace tablespace_name including contents;


2:用cmd进入命令行
输入:tnsping orcl
输入:tnsping orcl
exp dtmynew/dtmynew@oracle11 file=E:\daochu.dmp full=y


exp system/dengrunqiu@Rundy file=d:\daochu.dmp owner=(system,sys)


exp system/dengrunqiu@Rundy file=d:\jm110.dmp


exp system/dengrunqiu@Rundy file=d:\dao.dmp full=y


exp hguser/hguser@orcl file=E:\dtmy901.dmp


exp dtmynew/dtmynew@orcl file=E:\dtmy.dmp


imp system/dengrunqiu@orcl file=D:\DB\dthrz20180830.dmp full=y ignore=yes


imp system/dengrunqiu@orcl file=D:\DB\dthrz20180830.dmp buffer=102400000 feedback=10000 
log=D:\DB\dthrz20180830.txt full=y


E:\app\HP\product\11.2.0\dbhome_1\oradata


IMP-00058: 遇到 ORACLE 错误 12154
ORA-12154: TNS: 无法解析指定的连接标识符
IMP-00000: 未成功终止导入


一般为tns没配置好

原创粉丝点击