测试环境1:AIX + Oracle 9i
测试环境2:RedHat + Oracle 10g
正式环境:AIX + Oracle 9i
最
近做了一个关于jBPM4.0的工作流项目,项目完成后需要向正式环境迁移和备份。发现使用exp命令导入的dmp文件在向另外的测试环境和正式环境导入
时,所有带有数据库大对象字段的数据表(BLOB,CLOB)均无法正常导入,甚至在目标schema下连数据表都没有创建。
通常在向目标schema imp具有LOB字段的表时可能遇到两种错误:
1. 目标schema扩展空间不足,这个可能是在创建schema时进行了限制,解决方法是扩大即可。
2. 目
标数据库没有原始数据库放置LOB字段表的表空间。imp在导入含有LOB字段的表时,dmp从原始数据库哪个表空间导出的,那么含有LOB字段的表就会
在目标数据库尝试在相应表空间中创建表并执行导入。若目标数据库没有相应表空间则会报错,导致导入失败。而imp在导入其他不含有LOB字段的表时,会将
表导入到当前user的default tablespace中。
针对问题2,有两种解决方法
1. 在目标schema下创建好含有LOB字段的表,并针对这些表进行导入(imp tables=(table1,table2))
2. 在目标数据库创建与原数据库相同名称的表空间并授权给目标user,将目标用户在default tablespace中的配额设置为0。
附:设置当前用户TableSpace的方法,假设原default tablespace为USERS,目标表空间为TARGET,目标schema为GEEKERDEVER,且已经将TARGET授权给GEEKERDEVER
grant dba to GEEKERDEVER; //赋DBA权限
revoke unlimited tablespace from GEEKERDEVER; //撤销此权限
alter user GEEKERDEVER quota 0 on USERS; //将用户在USERS表空间的配额置为0
alter user GEEKERDEVER quota unlimited on TARGET; //设置在用户在myhuang表空间配额不受限。
测试环境2:RedHat + Oracle 10g
正式环境:AIX + Oracle 9i
最
近做了一个关于jBPM4.0的工作流项目,项目完成后需要向正式环境迁移和备份。发现使用exp命令导入的dmp文件在向另外的测试环境和正式环境导入
时,所有带有数据库大对象字段的数据表(BLOB,CLOB)均无法正常导入,甚至在目标schema下连数据表都没有创建。
通常在向目标schema imp具有LOB字段的表时可能遇到两种错误:
1. 目标schema扩展空间不足,这个可能是在创建schema时进行了限制,解决方法是扩大即可。
2. 目
标数据库没有原始数据库放置LOB字段表的表空间。imp在导入含有LOB字段的表时,dmp从原始数据库哪个表空间导出的,那么含有LOB字段的表就会
在目标数据库尝试在相应表空间中创建表并执行导入。若目标数据库没有相应表空间则会报错,导致导入失败。而imp在导入其他不含有LOB字段的表时,会将
表导入到当前user的default tablespace中。
针对问题2,有两种解决方法
1. 在目标schema下创建好含有LOB字段的表,并针对这些表进行导入(imp tables=(table1,table2))
2. 在目标数据库创建与原数据库相同名称的表空间并授权给目标user,将目标用户在default tablespace中的配额设置为0。
附:设置当前用户TableSpace的方法,假设原default tablespace为USERS,目标表空间为TARGET,目标schema为GEEKERDEVER,且已经将TARGET授权给GEEKERDEVER
grant dba to GEEKERDEVER; //赋DBA权限
revoke unlimited tablespace from GEEKERDEVER; //撤销此权限
alter user GEEKERDEVER quota 0 on USERS; //将用户在USERS表空间的配额置为0
alter user GEEKERDEVER quota unlimited on TARGET; //设置在用户在myhuang表空间配额不受限。