数据迁移工作技术准备
一、数据迁移环境:oracle 817 >> oracle 10g R2
二、基本方法:EXP/IMP导出导入。
三、为了探索出所有的问题,用直接导出后直接导入的办法,不修改设置,直接来得办法,探测出所有问题,然后在进行修改。
四、列出的问题:
1、导入时,目录结构不存在的时候,数据库不会主动创建目录的,必须先手动创建好。
2、TEMP表空间创建时:catnot create dictionary managed tablespace,无法创建本地管理的表空间。
3、uniform. size for auto segment space managed tablespace should have asleast 5 blocks。里面无数据,直接创建。
create tablespace tools datafile 'd:\oracle\oradata\orcl\tools.dbf' size 50m;
4、用户创建,基本上全部出错,原因在于默认表空间和临时表空间设置不正确,原来版本的临时表空间没有特别要求,但是10G数据库要求临时表空间必须是临时表空间类型,否则无法创建用户。
select 'alter user '||username||' temporary tablespace temp;' from dba_users where temporary tablespace<>'TEMP';
在SQL中直接执行上面生成的SQL语句,请不要复制。
5、请仔细考虑,用户表空间配额问题,默认情况下SYSTEM用户只在SYSTEM表空间有配额,其他自己创建的表空间里面是没有配额的。但是创建表的时候,不报错,因为创建表往往是带了模式名称在表名前面的,但是创建索引好像不行。
6、10g数据库,默认情况下,表空间的数据文件没有开启自动扩展,有可能导致在导入的时候,无法创建initial extent,主要开启自动扩展。
五、最终的解决办法:
1、手动创建表空间和用户,然后再执行导入。主要在10G安装的时候,几个设置:(1)字符集和导出数据库一直;(2)启用OMF;(3)不启用闪回和归档,以便加快导入速度。
2、直接用查询来生成创建语句,这样比较通用。
3、查询语句:
(1)、从目标数据库中提取已有的表空间
select ''''||tablespace_name||''''||',' from dba_tablespaces;
(2)、从导出数据库提取表空间创建语句
select 'create tablespace '||tablespace_name||' datafile size '||round(bytes/1024/1024)||'M autoextend on;'
from dba_data_files where tablespace_name not in ('SYSTEM','UNDOTBS1','SYSAUX','TEMP','USERS','EXAMPLE');
(3)、从目标数据库中提起已有的用户
select ''''||username||''''||',' from dba_users;
(4)、从导出数据库提取用户创建语句
select 'create user '||username||' identified by '||username||' default tablespace '||default_tablespace||' temporary tablespace temp;'
from dba_users where username not in ('MGMT_VIEW','SYS','SYSTEM','DBSNMP','SYSMAN','OUTLN','MDSYS',
'ORDSYS','EXFSYS','DMSYS','WMSYS','CTXSYS','ANONYMOUS',
'XDB','ORDPLUGINS','SI_INFORMTN_SCHEMA','OLAPSYS','SCOTT',
'TSMSYS','BI','PM','MDDATA','IX','SH','DIP','OE','HR');
(5)、从导出数据库提取用户配额调整语句
select 'alter user '||username||' quota unlimited on '||tablespace_name||';' from dba_ts_quotas;
4、将查询生成的语句,直接在SQLPLUS中执行就可以了,但还是需要在执行前,检查下是否有错误。如果有,做相应的调整。
六、下一步,检查导入成功后的数据库,各对象情况,并开启10G版本新功能。
七、整个过程,在windows和linux系统下,均已成功来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9606200/viewspace-745665/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9606200/viewspace-745665/