项目要求新建一个数据库用户,将以前数据库数据库的数据迁移到新用户下。
方案一:直接exp导出数据,imp导入数据。。真正实践时,傻眼了,有一个表中有3000多万条记录,而exp导出数据的速度非常慢,光那个表就花了我两个小时,其他表还没有开始导呢,浪费了我两个小时之从后,我中断了exp。
方案二:折腾了好久,我找到了第二种方案,从pl/sql中export(sql insert方式)表数据及结构,再将它导入新用户,这个方法更不可取,因为在导入时,只考虑了表本身,确未将相关视图和sequence考虑进来。而且,和方案一一样,速度太慢,优点是灵活,不用编写麻烦的指令
方案三:用toad导数据,选择export->export utility wizard,选择export users,这样导出来的就是整个用户空间的数据。导入时,类似操作就可以。
优点:可以看到导入导出日志,速度快。
其实还有一种方式,可以在pl/sql导出数据时,选择oracle export方式,应该也可以实现数据的导出和导入,只是这样做的弊端还是速度是个问题。。
附:数据库用户的建立:
CREATE USER 用户名 IDENTIFIED BY 密码
DEFAULT TABLESPACE 表空间名
TEMPORARY TABLESPACE temp;
ALTER USER 用户名 QUOTA 20M ON 表空间名;
grant connect to 用户名;
grant resource to 用户名;
GRANT UNLIMITED TABLESPACE TO 用户名;
搞完这次后,看来我还要好好加强oracle数据库的训练了。
另外:也可以在TOAD中以DBA的身份登陆,在菜单中增加数据库用户。