Oracle10g
升级
11g
数据迁移
目录
1.
调研数据结构
1.1
分析
1.1.1
数据库表空间
select *
from dba_tablespaces t
where t.tablespace_name not in
(
'SYSTEM'
,
'UNDOTBS1'
,
'SYSAUX'
,
'TEMP'
,
'USERS'
);
1.1.2
数据库
schema
select *
from dba_users t
where t.default_tablespace not in (
'USERS'
,
'SYSTEM'
,
'SYSAUX'
)
AND T.username not in (
'SYS'
,
'SYSTEM'
);
1.2
创建表空间
1.2.1
生成创建表空间语句
--
将查询结果中的双引号替换成单引号,即可正常执行!
Select
' Create TABLESPACE '
|| tablespace_name ||
' DATAFILE '
||
'"'
||
file_name ||
'"'
||
' SIZE '
|| to_char(ROUND(bytes /
1000000
,
0
)) ||
'M REUSE AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED ;'
from dba_data_files
where tablespace_name not in (
'SYSTEM'
,
'UNDOTBS1'
,
'SYSAUX'
,
'TEMP'
,
'USERS'
);
2.
选取方案
2.1.
方案筛选
2.1.1.
导全库分析
10g
全库到11g
考量因素:数据量(已知oracle10g
的dbf
是178G
)和版本兼容性(查询官方网站得知就expdp
工具在Oracle10g
全库到11g
有未修复的bug
,其他途径未知)。
2.1.2
导全库结论
数据量大(一次测试周期长),字符集是US7ASCII,
版本兼容性有坑,
故:不考虑导全库。
2.1.3
导表空间分析
优点:1.
导出次数少;
2.
全且安全(方法同导schema
)
缺点:1.
表空间比较大,一个次一个表空间周期长,不太好控制和监测;
2.
该库属于OLTP
类型库,导表空间存在碎片;
3.
没有最佳实践过这种方式。
2.1.4
导表空间结论
可以作为第二方案。
2.1.5
导方案(
schema
)分析
优点:1.
导出次数少;
2.
全且安全(方法同导表空间)。
缺点:1.
该库属于OLTP
类型库,导schema
不存在碎片;
2.
有最佳实践过这种方式。
2.1.6
导方案结论
可以作为第一方案。
2.1.7
导表方案
表比较多,一张一张表导,周期太长,且容易弄混或者漏掉。
2.1.8
导方案结论
可以作为补导方案(如果有些表数据不够或新增表等等)。
3.
选取工具
3.1
工具分析
市面上工具有很多,调研且熟悉的工具是sqldeveloper
优点:1.
操作简单(图形化界面操作);
2. oracle 官方推出的工具;
3. 前期有过调研且写过相关的手册。
2. oracle 官方推出的工具;
3. 前期有过调研且写过相关的手册。
3.2
选取结论
根据3.1
的优点分析选取sqldeveloper
作为本次迁移工具。
4.
数据导出导入
参见前期写的文档,在明道“oracle
数据泵调研之sqldeveloper
工具使用”任务下【
sqldeveloper
数据泵调研说明文档
(V329).docx
】
5.
补充对象
5.1
导同义词
--
导出所有同义词
SELECT
'CREATE OR REPLACE PUBLIC SYNONYM '
||
'"'
|| SYNONYM_NAME ||
'"'
||
' FOR '
||
'"'
|| TABLE_OWNER ||
'"'
||
'.'
||
'"'
|| TABLE_NAME ||
'"'
||
';'
FROM DBA_SYNONYMS A where A.table_owner not in (
'SYS'
,
'SYSTEM'
);
5.2
导用户
select
' create user '
|| username ||
' identified by values '''
||
password ||
''' default tablespace '
||
DEFAULT_TABLESPACE ||
' TEMPORARY TABLESPACE '
|| TEMPORARY_TABLESPACE ||
';'
from dba_users where username not in (
'SYS'
,
'SYSTEM'
,
'DBSNMP'
);
5.3
导角色
---
角色可能有授予表操作权限,还有相互交叉的角色,可能要手工在目标库上运行源库的脚本
select
'create role '
|| role ||
' ;'
from dba_roles where role like
'ROLE%'
;
dbtiger 2018,3,19
good luck!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29267792/viewspace-2152016/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29267792/viewspace-2152016/