迁移Oracle9i(Linux to Windows)
因业务需要,迁移Linux数据库到Window下。
环境:
数据库: oracle 9i
OS系统:
源机 RedHat ASE3 --A机
目的机 Win2k --B机
步骤:
1.B机上安装数据库。
2.B机DB中建立用户C,赋予resource和connect权限。
3.A机DB sys用户导出(以用户形式)C用户数据。
4.B机DB sys用户导入(以用户形式)上个步骤的导出数据。
问题:
导入后,索引和表,均被放到system表空间,需要移动到别的空间(用户自己的空间)
解决办法:
Google了一下,如下方案
1.导出后重新导入
1).把该用户dump出来
2).drop user *** cascade;
3).新建一个tablespace
4).重建该用户,并赋予相应权限,然后改该用户默认表空间为新建表空间
5).imp该用户入库
相关参考:
首先,收回目的用户的"UNLIMITED TABLESPACE"权限:
revoke unlimited tablespace from username;
其次,取消目的用户在原数据导出表空间中的配额,这样才能迫使IMP把数据导入到用户的默认表空间中去。
然后,将希望导入的表空间设为目的用户的默认表空间,并添加配额。
最后,执行IMP。
2.Toad Rebuild Multiple Objects
对错放的indexs,tables进行Rebuild.
还是方案2简单,驾起Toad Rebuild一下相关资源。不过,注意检查,有些Index需要重新Combile.