1、Oracle 用户间的数据拷贝方法针对同一数据库下不同用户间的拷贝或者两台机器 Oracle 数据库下用户的拷贝大型数据库系统不是一个简单的文件系统,不象 FOXBASE 的 DBF 文件那样,可以简单地拷来拷去。就拿 ORACLE 数据库来说,数据是隶属于某个用户的,每个用户都有各自的权限,如果某用户要用另一个用户的数据,可以通过访问权限来实现。有时需要将某用户的数据直接搬到自己的用户下用,可用下边的方法实现:1.例子ORACLE7 数据库服务器操作系统为 UNIX。ORACLE 用户 1:o7user1,密码:passwd1ORACLE 用户 2:o7user2 密码:passwd2现在要
2、做的工作是,将用户 o7user1 的所有的表(视图及其它全部应用)复制到 o7user2 中去。2.具体实现方法21 将用户 o7user1 的数据卸出$ exp o7user1/passwd1Export:Export file:expdat.dmpE(ntire database),(2)U(sers),or (3)T(ables):(2)UExport grants(yes/no):yesExport table data(yes/no):yesCompress extents(yes/no):yesAbort to export specified usersAbort to exp
3、ort O7USER1s tables.Export terminated successfully without warnings最后将 o7user1 用户的数据生成于默认的 expdat.dmp 文件中。22 确认已建立用户 o7user2,并赋有相应的权限(一般用户的权限为 connect 和resource) 。23 将 o7user1 的数据全部复制到 o7user2 中$ imp o7user2/passwd2Import:Release Import file: expdat.dmp Enter insert buffer size (minimum is 4096) 307
4、20307200Export file created by EXPORT:List contents of import file only(yes/no):noIgnore create error due to object existence(yes/no):noImport grants(yes/no):yesImport table data(yes/no):yesImport entire export file(yes/no):noy开始复制 o7user1 之数据到 o7user2 中,出现如下提示:.importing O7USER1s objects into O7USER2importing table “table1“ 10 rows importedImport terminated successfully without warnings. 至此,o7user1 的数据已全部复制到了 o7user2 用户中。值得注意的是,在 Import entire export file(yes/no):noy,选择的是“y“, 若选择“no“,就不能完成复制工作。现在一般用 expO usr/password 导出数据用 impO usr/password 导入数据