对Oracle数据库中某个用户数据的复制

来源:互联网 发布:打字软件哪个好 编辑:程序博客网 时间:2024/05/20 13:07

http://blog.sina.com.cn/s/blog_68c266e701016dy3.html


将一台计算机(暂且称为计算机A)上oracle数据库中的task用户的所有表复制到另外一台计算机(暂且称为计算机B)的oracle数据库中。注意:为了不修改程序等其他项,在计算机B的oracle中创建的表空间、用户等应该和计算机A中的一样(oracle数据库中用户名为task,密码为task,表空间为users)。

1复制前的准备工作

1.1首先以sys或者system的身份登录

安装了oracle10g之后,在开始-所有程序-找到oracle10g的相关启动程序。双击SQL Plus进行登陆,或者用PLSQL Developer登陆。在此我们使用的是图形化界面的PLSQL Developer,操作起来比较方便。

 

1.2创建表空间 (由于计算机A上的oracle数据库用的是users表空间,所以在此不用创建表空间,如果Aoracle用的不是系统自带的表空间,则要创建。)

在创建表空间之前应该先查询计算机A中kby表空间的大小。

selecttablespace_name,sum(bytes)/1024/1024 from dba_data_files wheretablespace_name='kby'  group bytablespace_name;

通过查询,查询结果如图1-5所示。

 

图1-5 表空间大小查询结果

从图中可以看出,KBY的全部表空间为100M,但是还有99M空闲。接下来在计算机B的oracle数据库中创建表空间。同时在左边的Objects下的表空间Tablespace文件夹下找到KBY表空间。

createtablespace kby datafile ‘d:\task\kby.dbf’ size 10M autoextend onnext 10m maxsize 100m extent management local;

1.3 创建新用户task,并和表空间建立关系

createuser task identified by cloud default tablespaceusers;

创建成功会提示 User created,同时在左边的Objects下的用户Users文件夹下找到TASK用户。

1.4 给用户授权

grantconnect,resource,dba to task;

在命令窗口输入以上命令,就会出现Grantsucceeded提示。

2 导出数据库中task用户的所有表

方法1:打开DOS的命令窗口,输入命令如下,运行结果如图1-9和1-10所示。

exp task/task@orcl file=c:\task\task.dmp full=y     

 

图1-9

 

 

图1-10

此时在c:\task文件夹下可以看到task.dmp文件。

方法2:使用PLSQL Developer导出

说明:

1.expuserid=system的用户/system用户的密码@服务器名,owner用来指定执行导出操作的方案。

2.查询数据库服务名:

方法一:select valuefrom v$parameter where name ='service_name';
方法二:show parameter service_name;

方法三:select name fromv$database;

方法三:在参数文件中查询。查看tnsnames.ora 的连接,有个SID,SID就是服务名了。

在此,我们用第二种方法,用system登陆,如图1-12所示。

 

1-12服务器名的查询

3 导入从计算机A中导出的文件

方法一:进入DOS命令窗口,输入命令,运行结果如图1-14所示。

imptask/task@orcl file=c:\task\task.dmp full=y  

 

图1-14

导入完成之后,用户task登陆,在Objects中可以看到task用户的tables文件夹中有很多表,与计算机Aoracle数据库task用户的表相同,导入成功。

方法二:跟导出一样,可以使用PLSQLDeveloper导入,task用户登陆,然后点击tools ->importtables-> Oracle Export选择选项,导入task.dmp文件。

注:如果有什么问题,可以提问哦!


0 0
原创粉丝点击