文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Oracle数据库升级或数据迁移的方法是什么

2023-06-06 02:10

关注

本篇文章给大家分享的是有关Oracle数据库升级或数据迁移的方法是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

这里论述了oracle数据库升级的升级前的准备、升级过程和升级后的测试与调整工作,并对各种升级方法在多种操作系统平台上作了测试。

数据库升级的必要性

数据库升级是数据库管理员经常要面对的问题,如果你的应用要使用新版本数据库的

新特性;如果数据库运行负载过重,而通过软硬件调整又不能有根本性的改善;如果要更换操作系统平台;如果要增强数据库的安全性;还有一个原因是随着新版本数据库的出现与成熟,oracle停止了对旧版本数据库的技术支持,升级到高版本,可以继续获得oracle的支持,还可以利用新版本数据库的新特新,可以改善系统的性能,健壮性,可扩张性和可用性,等等,面对这些问题,需要通过数据库升级才得以解决。不过,如果你的系统运行稳定,没有大的性能瓶颈的话,还是不要轻易升级数据库,因为升级一个产品数据库会面临很多风险.

数据库升级或数据迁移情况分析

数据库升级或数据迁移会遇到多种情况,一般有以下几种情况:

1.  相同主机条件下,低版本数据库向高版本数据库的升级。

2.  数据库有了新的补丁级,需要安装新的补丁。

3.  更换了系统主机,如从windows更换为unix系统,数据库需要迁移。

4.  实现跨平台,跨数据库版本的迁移。

5.  32位数据库升级到64为数据库。

6.  标准版的数据库升级到企业版的数据库。

制定详细的数据库升级计划

数据库升级操作会面临巨大的风险,因此在数据库升级前制定详细而周密的升级和测试计划,反复验证与测试升级数据库的各个阶段非常必要,这样才能保证升级产品数据库的各个阶段可理解,可预测并能够成功。一般来说,数据库升级的测试计划应该包括以下几种测试类型:

1.  升级测试(Upgrade testing)

2.  最小化测试(Minimal testing)。

3.  功能测试(Functional testing)。

4.  集成测试(Integration testing)。

5.  性能测试(Performance testing)。

6.  容量与负载压力测试(Volume and load stress testing)。

7.  特定的升级前后的测试(Specific Pre-Upgrade and Post-Upgrade Tests)。

8.  制定升级前的备份方案。

9.  升级步骤的反复测试(test the upgrade process)。

10.升级后的数据库的测试(test the upgraded database)。

以上是数据库升级前需要考虑和测试的问题,具体可以参考oracle数据库提供的升级文档,在此对各种要求的测试过程不做详细讨论。

数据库升级准备:

1.升级数据库前首先要熟悉新数据库的各种新特性,如:表空间、段的管理、参数的变化,内存的管理,数据库回闪特性,存储的管理,sql优化的改进等。

2.确定升级到新版本数据库的升级路径,升级到10gr2的路径取决于当前数据库的发行号(release number),很有可能不能从当前的数据库版本升级到最新版本,这种情况首先升级到一个中间版本,然后再升级到最终的版本。例如:当前版本是oracle9.1.0.1,首先升级到oracle9.1.0.4,然后再从oracle9.1.0.4升级到oracle10gr2。

下表列出了各种版本升级到oracle10gr2的路径:

当前版本


升级路径


3.3 and lower

3.4

0.3

0.4

0.5

0.6

1.5

1.6

不支持直接升级,需要先升级到一个中间版本,然后再升级到oracle10g:

·         7.3.3 (or lower) -> 7.3.4 -> 8.1.7.4 -> 10.2

·         7.3.4 -> 8.1.7.4 -> 10.2

·         8.0.·         8.1.

1.7.4

0.1.4

2.0.4

1.0.2

可以直接升级到oracle10gr2

3.选择升级方法。

4.选择oracle home目录。

5.做好数据库备份。

数据库升级的各种方法讨论

   实现数据库升级可以选择多种方法,一般有:数据库升级助手(database upgrade assistant),手工的脚本升级,exp/imp(exdmp/imdmp)工具,表空间传输特性(transportable tablespace),table copy,实体化视图(material ized view)等技术,在升级前,首先确定升级路径,根据具体情况选择合适的升级方法,对升级过程的各个阶段进行测试。本文以军卫一号医院信息系统为例,涉及的数据库版本主要有oracle8i,oracle9i,oracle10gr2,操作系统平台主要有windows2000,oracle unbreakable linux as 4等,主要实现oracle8i,oracle9i向oracle10gr2的升级过程,oracle8i,oracle9i运行在windows2000上,oracle10gr2主要运行在windows2000,oracle unbreakable linux as 4两种平台,我使用以上各种方法对各种升级过程都做了测试。以下详细介绍这些方法的升级过程。

1.手工脚本升级

手工脚本升级在命令行运行一些sql脚本和工具,手工升级对升级过程提供了更多的控制,但是如果没有遵循严格的升级步骤,在升级过程中容易出错,它与dbua一样只能在相同的操作系统平台间跨数据库版本升级,对于不同的os平台不能使用,而且升级需要遵循严格的升级路径。

本测试从oracle9.2.0.1升级到oracle10.2.0.3,由于oracle9.2.0.1不能直接升级到oracle10.2.0.3,首先对oracle9.2.0.1安装补丁(补丁号p3095277_9204_WINNT)升级到oracle9.2.0.4,然后oracle9.2.0.4再升级到oracle10.2.0.3。以下是升级的测试过程:

安装oracle 10g r2的软件。

打oracle 10g最新的补丁,我打的是升级到10.2.0.2(补丁号p4547817_10202_WINNT)和10.2.0.3(补丁号p5948242_10203_WINNT)的补丁,关于如何安装oracle补丁程序,需要认真阅读每个补丁程序提供的readme,按照readme的步骤进行安装。

运行Pre-Upgrade Information Tool.分析升级到10g前要做的一些操作,包括:

数据库版本、日志文件大小、表空间大小、服务器选项、初始化参数(新增的,降级的,废弃的)、数据库组件、sysaux表空间、集群信息等分析。升级前要解决该脚本生成的各种问题。

启动要升级的DB,用SYSDBA运行10g的ORACLE_HOME/rdbms/admin下的utlu102i.sql,查看产生的日志.

SQL> SPOOL info.log
SQL> @utlu102i.sql
SQL> SPOOL OFF

copy oracle 9i的pfile(D:oracleora92databaseINITzhangye.ORA)到oracle 10g的pfile(D:oracle10gdatabaseINITzhangye.ORA),检查info.log,对oracle 10g的pfile修改.

运行Oracle Net Configuration Assistant,生成10g的listener.ora

rman备份DB.

stop所有oracle 9i的服务.

删除oracle 9i的服务. C:> ORADIM -DELETE -SID test

新建oracle 10g的服务 C:> ORADIM -NEW -SID orcl -MAXUSERS 10 -STAMODE AUTO -PFILE D:oracle10gdatabaseINITzhangye.ORA

UPGRADE选项启动DB. SQL> STARTUP UPGRADE

创建SYSAUX表空间CREATE TABLESPACE sysaux DATAFILE 'D:oracleoradatazhangyesysaux01.dbf'
        SIZE 500M REUSE
        EXTENT MANAGEMENT LOCAL
        SEGMENT SPACE MANAGEMENT AUTO
        ONLINE;

运行10g的ORACLE_HOME/rdbms/admin/catupgrd.sql,然后运行utlu102s.sql查看升级结果.

SQL> SPOOL upgrade.log
SQL> @catupgrd.sql
SQL> @utlu102s.sql
SQL> SPOOL OFF

检查upgrade.log,如果有错误,处理错误后再次运行catupgrd.sql.

重新启动DB,编译无效对象.

SQL> shutdown immediate
SQL> startup pfile=D:oracle10gdatabaseINITzhangye.ORA
SQL> @D:oracle10gRDBMSADMINutlrp.sql

编译后没有无效对象,升级完成。

SQL> SELECT count(*) FROM dba_objects WHERE status='INVALID';

2.数据库升级助手dbua:

dbua是一个图形工具,它自动化了以上手工升级的所有过程,它自动完成如下工作:

             1。运行Pre Upgrade Information Utility,对表空间,redo logs等自动的做一些调整。

             2。检查<span lang="EN-US" style="FONT-SIZE: 10.5pt

以上就是Oracle数据库升级或数据迁移的方法是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯