日期:2014-05-16  浏览次数:20422 次

Oracle导入远程数据库数据及导入
exp本地导出与imp本地导入

exp命令:
1 exp username/psw@TEST file=d:test.dmp full=y
2 exp username/psw@TEST file=d:test.dmp owner=(ly)
3 exp username/psw@TEST file= d:test.dmp tables=(grid1,grid2) 
1其中一是将Test(与某一数据库对应的oracle服务名)数据库进行整体导出
2将属于用户ly的所有表导出
3将表grid1,与grid2导出
d:test.dmp是导出的文件地址

imp命令:
1 imp system/psw@TEST file=d:test.dmp
2 imp system/psw@TEST full=y file=d:test.dmp ignore=y
3 imp system/psw@TEST file=d:test.dmp tables=(grid1)ignore=y表示如果被导入的数据库中某个表已经存在就忽略不导入那个表
3表示只导入grid1这个表

在导入导出前要先测试下对应的数据库是否是通的:tnsping test来测试,同样test是服务名
所有命令可在cmd下执行


用exp/imp远程操作数据库

对ORACLE数据库进行远程操作,假设数据库在192.168.1.110上,具体方法如下:
一、在客户端创建和服务端对应的服务名
方法1:
修改tnsnames.ora文件
加入远程服务器的命名:

Sql代码 
TEST_ORCL =   
(DESCRIPTION =   
    (ADDRESS_LIST =   
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.110)(PORT = 1521))   
    )   
    (CONNECT_DATA =   
      (SERVICE_NAME = orcl)   
    )   
) 

方法2:

在oracle客户端,打开net manager。

创建一个服务命名TEST_ORCL,主机IP为:192.168.1.110,服务名orcl,端口1521


二、测试远程服务器是否畅通

进入到cmd后,执行命令:tnsping TEST_ORCL。

三、远程操作数据库
导出:

Sql代码 
1:exp username/password@TEST_ORCL file=bak_filepath 
2:exp username/password@TEST_ORCL full=y file=bak_filepath
username 用户名,password 密码,TEST_ORCL 客服端服务名,bak_filepath 备份文件存放的路径

导入:

Sql代码 
1:imp username/password@TEST_ORCL file=bak_filepath full=y 
2:imp username/password@TEST_ORCL/database_name file=bak_filepath full=y 
3:imp username/password@TEST_ORCL file=bak_filepath fromuser=fromadmin touser=toadmin

username 用户名,password 密码,TEST_ORCL 客服端服务名,bak_filepath 备份文件存放的路径
fromadmin 备份数据的用户名,toadmin 还原数据库的用户名。database_name 还原到那个数据库上
full=y 将数据库整体导出,包括表结构等。
 

?

导入过程中可能要重新创建用户:

给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以system/manager登陆
第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
    DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
       DBA,CONNECT,RESOURCE,CREATE SESSION   TO 用户名字 

?

导入过程可能要创建表空间等:

其要操纵一个ORACLE数据库中的数据,应该:   
1.被授予关于一个或多个表空间中的RESOURCE特权;   
2.被指定缺省表空间;   
3.被分配指定表空间的存储空间使用份额;   
4.被指定缺省临时段表空间。   

drop user xuping cascade;
drop tablespace xuping including contents;
create tablespace xuping Logging datafile 'F:\oracle\product\10.2.0\oradata\develop\xuping.ora' size 50M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;;
create user xuping identified by xuping default tablespace xuping  Temporary TABLESPACE Temp;
grant connect,resource,dba to xuping;

?导入导出实例:

cmd
exp hzbswcis/hzbswcis@10.101.2.3HZBSWCIS file=e:/hzcis.dmp owner=hzbswcis
创建用户和表空间
imp hzbswcis/hzbswcis@orcl file=e:/hzcis.dmp full=y

?

另见:Oracle导出用户中的表,视图等到另一个用户 http://quicker.iteye.com/blog/688253

???????? Oracle创建表空间和用户授权?http://quicker.iteye.com/blog/869946

???????? Oracle创建表空间的语法:http://quicker.iteye.com/admin/blogs/1561575