ITPub博客

首页 > 数据库 > Oracle > ORACLE10G升级11G

ORACLE10G升级11G

原创 Oracle 作者:ocpDBAboy 时间:2018-03-20 09:41:30 0 删除 编辑
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博客 ” ,链接:https://blog.itpub.net/29267792/viewspace-2152016/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
积极,热爱生活!

注册时间:2014-01-15

  • 博文量
    32
  • 访问量
    112279