ORACLE10G升级11G

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.
前期有过调研且写过相关的手册。
 
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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值