首页 > 数据库 > Oracle > 对Oracle数据库中某个用户数据的复制
将一台计算机(暂且称为计算机A)上oracle数据库中的task用户的所有表复制到另外一台计算机(暂且称为计算机B)的oracle数据库中。注意:为了不修改程序等其他项,在计算机B的oracle中创建的表空间、用户等应该和计算机A中的一样(oracle数据库中用户名为task,密码为task,表空间为users)。
1.1首先以sys或者system的身份登录
安装了oracle10g之后,在开始-所有程序-找到oracle10g的相关启动程序。双击SQL Plus进行登陆,或者用PLSQL Developer登陆。在此我们使用的是图形化界面的PLSQL Developer,操作起来比较方便。
1.2 创建表空间 (由于计算机A上的oracle数据库用的是users表空间,所以在此不用创建表空间,如果A中oracle用的不是系统自带的表空间,则要创建。)
在创建表空间之前应该先查询计算机A中kby表空间的大小。
select
tablespace_name,sum(bytes)/1024/1024 from dba_data_files where
tablespace_name='kby'
通过查询,查询结果如图1-5所示。
图1-5 表空间大小查询结果
从图中可以看出,KBY的全部表空间为100M,但是还有99M空闲。接下来在计算机B的oracle数据库中创建表空间。同时在左边的Objects下的表空间Tablespace文件夹下找到KBY表空间。
create tablespace kby datafile ‘d: askkby.dbf’ size 10M autoextend on next 10m maxsize 100m extent management local;
1.3 创建新用户task,并和表空间建立关系
create
user
创建成功会提示 User created,同时在左边的Objects下的用户Users文件夹下找到TASK用户。
1.4 给用户授权
grant connect,resource,dba to task;
在命令窗口输入以上命令,就会出现Grant succeeded提示。
方法1:打开DOS的命令窗口,输入命令如下,运行结果如图1-9和1-10所示。
exp
图1-9
图1-10
此时在c: ask文件夹下可以看到task.dmp文件。
方法2:使用PLSQL Developer导出
说明:
1.exp userid=system的用户/system用户的密码@服务器名,owner用来指定执行导出操作的方案。
2.查询数据库服务名:
方法一:select value
from v$parameter where name =
'service_name';
方法二:show parameter service_name;
方法三:select name from v$database;
方法三:在参数文件中查询。查看tnsnames.ora 的连接,有个SID,SID就是服务名了。
在此,我们用第二种方法,用system登陆,如图1-12所示。
图1-12 服务器名的查询
方法一:进入DOS命令窗口,输入命令,运行结果如图1-14所示。
imp
task/task@orcl file=c: ask ask.dmp full=y
图1-14
导入完成之后,用户task登陆,在Objects中可以看到task用户的tables文件夹中有很多表,与计算机Aoracle数据库task用户的表相同,导入成功。
方法二:跟导出一样,可以使用PLSQL Developer导入,task用户登陆,然后点击tools ->import tables-> Oracle Export选择选项,导入task.dmp文件。
注:如果有什么问题,可以提问哦!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23244689/viewspace-1117603/ ,如需转载,请注明出处,否则将追究法律责任。