首页数据库oracle数据库升级?如何升级oracle版本

oracle数据库升级?如何升级oracle版本

编程之家2023-10-22208次浏览

很多朋友对于oracle数据库升级和如何升级oracle版本不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

oracle数据库升级?如何升级oracle版本

如何升级oracle版本

Oracle数据库升级也并非简单的事,这篇文章对Oracle那点事做了较详细的介绍:Oracle数据库升级或数据迁移方法研究

我还属于Oracle的菜鸟,就不献丑介绍了。

下面我就简单总结下,Oracle同版本升级的经历:

升级数据库:

1.先检查数据库当前版本:SELECT* FROM v$version;

2.使用RMAN或exp进行全库备份

oracle数据库升级?如何升级oracle版本

【这一步非常非常重要,因升级到数据部分时,虚拟机没空间了,导致VM崩溃,升级失败.orcl库也挂了,不得不从另一台Oracle上创建了一个Orcl,然后,冷备迁移过来,才得以重新升级。】

如:RMAN全备

export ORACLE_SID=orcl

rman target/

RMAN>backup full database plus archivelog//全备数据库,并且包括ArchiveLog。

3.最后按下面步骤进行升级

oracle数据库升级?如何升级oracle版本

<1>先知道Oracle 7个更新文件的作用:

第一和二个包表示database,如果升级数据库,只需要这2个文件即可。

第三个包表示grid,用来升级RAC的CRS。如果升级RAC要先用这个文件。

第四个表示客户端,

第五个表示gateways,

第六个表示 examples,这个是我们的示例文件安装包。

<2>升级Oracle数据库

首先将第一和二个zip压缩包上传,并在同一个目录下解压,因为,它两的目录结构基本一致,并且这两压缩包的内容需要合并后才能,执行runInstaller文件。所有要在同一个目录下解压,这样会直接合并。

<3>运行runInstaller,若没有图像界面会可能就需要有应答文件了,这个就需要再查了,

我测试时,有图形界面,所以直接用图形界面来升级:

需要注意几个地方:

A.这是第一个地方,这里需要点,“Skip software updates"跳到软件更新

B.这里是选项安装新Oracle软件的位置,这里不能写旧的位置。

另注:磁盘空间一定要5~10G, Oracle11.2.0.1升级到11.2.0.3需要4.1G。

C.第三点:需要注意:/etc/oratab这个文件。

因为,更新到最后是更新数据库,更新数据库时,必须要有一个数据库是运行的.才能执行,并且更新数据库时,它是通过oratab文件来让你选择通过那个运行的数据库来尝试更新数据库。

4.数据库更新完后,需要做以下事情:

首先,升级完成后,需要将Oracle必须的环境变量修改为升级后的Oracle软件路径。

需要修改: ORACLE_HOME.

如我的环境:

Oracle11.2.0.1时:

ORACLE_BASE=/home/oracle/ora

ORACLE_HOME=$ORACLE_BASE/product/11g/db_1

升级后,Oracle版本为:11.2.0.3,新的家目录为:

Oracle11.2.0.3: ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/db_1

<1>先执行这个文件,用sysdba的权限:

SQL> SPOOL update.info

SQL>$ORACLE_HOME/rdbms/admin/utlu112i.sql

SQL> SPOOL OFF

查看日志是否有错误。

<2>关闭数据库,并更新启动。

SQL> shutdown immediate

SQL> startup upgrade

SQL> select* from v$version;#查看Oracle的版本。

SQL> select status from v$instance;

STATUS

------------

OPEN MIGRATE

#下面开始执行升级脚本。

SQL> SPOOL update-info.log

SQL>@$ORACLE_HOME/rdbms/admin/catupgrd.sql

#下面是查看升级结果的;这个不是很确定,因为参考博客的环境是,

#是9i升 10g

#SQL>@$ORACLE_HOME/rdbms/admin/utlu102s.sql

SQL> SPOOL OFF

完成后,需要查看升级日志,是否有保错,若有,则重新执行升级SQL脚本。

#升级完成后,需要重启DB.

SQL> shutdown immediate

SQL> startup

#下面是执行重新编译无效对象

SQL>@$ORACLE_HOME/rdbms/admin/utlrp.sql

#查看是否还存在无效对象,若为0,则表示升级完成。否则重新执行编译。

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

SQL> select name from v$database;#确认数据库的SID是否正确。

SQL> show user;#确认当前是否为sys用户。

SQL> select tablespace_name, bytes from dba_data_files;#确认表空间大小是否正确.

#下面这个步骤网文中没有,这是尚观视频中提到的,作用不明.

#SQL>@$ORACLE_HOME/rdbms/admin/catalog.sql

#最后,重启数据库没有问题就是升级成功了。

SQL> select status from v$instance;

STATUS

------------

OPEN#注意,成功打开数据库后,这里将是OPEN,而非OPEN MIGRATE

Oracle数据库如何从11.2降级至之前的版本

本文档可用作将之前升级的数据库从 Oracle 11gR2降回至下列以前版本数据库的指南与核对表:Oracle 10gR1、Oracle 10gR2、Oracle

本文档可用作将之前升级的数据库从 Oracle 11gR2降回至下列以前版本数据库的指南与核对表:Oracle 10gR1、Oracle 10gR2、Oracle 11gR1。该文档内容也适用于从 11.2.0.4降级至 11.2.0.1

需要特别注意的是,在将数据库实例从当前版本降级至升级前版本时,数据库不会返回至与其升级前相同的状态。升级过程会导致一些不可逆的更改,具体取决于涉及的版本。降级过程允许用户在之前版本中打开并访问数据库实例。这通常就足够了。此外,在降级后可能需要采取一些更正操作(如卸载/重新安装,或重新升级至当前修补程序集级别),以解决残留问题。如果目标是将实例完全返回至其升级前的状态,那么将会用到包括恰好恢复至升级前状态在内的其他流程。

本文章中讨论的过程是基于脚本的降级。本文章并未讨论如何使用导入/导出、数据泵或其他方法将数据从一个版本移至另一个版本。

开始降级过程之前,在服务器上应该有或已安装要降至版本的 Oracle二进制文件。如果已卸载了希望降至版本的 Oracle可执行文件,请将该 Oracle二进制文件重新安装至正确的版本/修补程序级别,以便进行降级。

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2在VMWare虚拟机中安装步骤

Debian下安装 Oracle 11g XE R2

注意事项:

示例:对于 Exadata Bundle Patch,过程为:

卸载 patch

示例:$ opatch auto/u01/app/oracle/patches/14103267-rollback

回滚SQL的变更

示例: SQL>@rdbms/admin/catbundle_EXA__ROLLBACK.sql rollback SQL变更.

解决方案

降级前步骤:

1:验证所有组件和字典对象对于 11gR2均有效并且版本正确。

set pagesize500 set linesize 100select substr(comp_name,1,40) comp_name, status, substr(version,1,10) version from dba_registry order by comp_name;select substr(object_name,1,40) object_name,substr(owner,1,15) owner, object_type from dba_objects where status='INVALID' order by owner,object_type;select owner,object_type,count(*) from dba_objects where status='INVALID' group by owner,object_type order by owner,object_type;

如果任何组件或 Oracle提供的对象无效,则需要运行 utlrp.sql对其进行重新验证。该脚本可能需要运行多次以验证所有对象。

$ cd$ORACLE_HOME/rdbms/admin$ sqlplus"/ as sysdba" SQL>@utlrp.sql

当完成后,重新运行上述查询以验证所有无效对象现在都是有效的。

2:如果已在数据库上启用了 Oracle Database Vault,则必须:

a:授予 SYS帐户 Database Vault DV_PATCH_ADMIN角色。b:降级数据库之前禁用 Database Vault。

禁用 Oracle Database Vault触发器: SQL>CONNECT DVSYS/DVSYSSQL>ALTER TRIGGER DV_BEFORE_DDL_TRG DISABLE;SQL>ALTER TRIGGER DV_AFTER_DDL_TRG DISABLE;

3:如果设置了操作系统参数 ORA_TZFILE,请取消其设置。如果不取消设置 ORA_TZFILE变量,连接至数据库时可能会生成以下错误:

SP2-1503: Unable to initialize Oracle call interface SP2-0152: ORACLE may not be functioning properly

4:如果在降级至之前的数据库版本之前,已运行 DBMS_DST软件包将时区版本升级至新版本(例如在 11gR2升级的升级后步骤期间升级至版本 11),那么必须将版本 11时区文件安装到旧的 Oracle数据库版本上的$ORACLE_HOME/oracore/zoneinfo目录中。

5:检查数据库的兼容性级别,以确定数据库是否可能具有防止降级的不兼容性。曾经设置过的 compatible的最高值就是您能降级到的最低的那个版本。比如:

如果数据库的兼容性级别已经是最新的了(比如11.2.0.4),则无法进行降级。

如果数据库的兼容性级别曾经是 11.2.0或更高,则无法将数据库降级到比 11.2.0.1更低的版本。如果要将数据库降级至 11gR1,COMPATIBLE初始化参数必须从未比 11.1.0更高。如果要将数据库降级至 10gR2,COMPATIBLE初始化参数必须从未比 10.2.0更高。如果要将数据库降级至 10gR1,COMPATIBLE初始化参数必须从未比 10.1.0更高。

6:如果数据库上安装有 Oracle Application Express,则必须将 apxrelod.sql文件从 Oracle 11gR2(11.2) ORACLE_HOME/apex/目录复制到 Oracle主目录之外的某个目录,如系统上的临时目录。记下该文件的新位置。7:在降级之前执行 11gR2数据库的备份。

数据库的降级步骤

如果要从 11.2.0.4降级至 11.2.0.2,使用 11.2.0.2 catrelod.sql脚本会出现一个问题。针对版本 11.2.0.2下载并应用修补程序 11811073,其提供了更新版本的 catrelod.sql。

1:以 Oracle Database 11g Release 2(11.2) Oracle主目录的所有者登录系统。2:如果已针对数据库配置并运行了 Enterprise Manager Database Control,则按如下所示停止Database Control:

a:将 ORACLE_UNQNAME环境变量设置为数据库唯一名称。b:运行以下命令:RACLE_HOME/bin/emctl stop dbconsole

3:如果要降级的数据库是 Oracle Real Application Clusters(Oracle RAC)数据库,则在所有实例上执行该步骤。

如何查看Oracle数据库版本

方法一:v$version

[sql]view plaincopy

SQL>select*fromv$version;

BANNER

--------------------------------------------------------------------------------

OracleDatabase11gEnterpriseEditionRelease11.1.0.7.0-64bitProduction

PL/SQLRelease11.1.0.7.0-Production

CORE11.1.0.7.0Production

TNSforLinux:Version11.1.0.7.0-Production

NLSRTLVersion11.1.0.7.0-Production

方法二:product_component_version

[sql]view plaincopy

SQL>select*fromproduct_component_version;

PRODUCTVERSIONSTATUS

---------------------------------------------------------------------------------------------

NLSRTL11.1.0.7.0Production

OracleDatabase11gEnterpriseEdition11.1.0.7.064bitProduction

PL/SQL11.1.0.7.0Production

TNSforLinux:11.1.0.7.0Production

SQL>

方法三:dbms_output.put_line( dbms_db_version.version)

[sql]view plaincopy

SQL>SETSERVEROUTPUTON

SQL>EXECdbms_output.put_line(dbms_db_version.version);

11

PL/SQLproceduresuccessfullycompleted.

SQL>

拓展资料:

Oracle数据库:

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。

特点

1、完整的数据管理功能。

1)数据的大量性

2)数据的保存的持久性

3)数据的共享性

4)数据的可靠性

2、完备关系的产品。

1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;

2)保证访问的准则

3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化

4)数据物理性和逻辑性独立准则

3、分布式处理功能。

ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的关系型产品构成。[2]

4、用ORACLE能轻松的实现数据仓库的操作。

这是一个技术发展的趋势,不在这里讨论。

优点

1、可用性强

2、可扩展性强

3、数据安全性强

4、稳定性强

好了,文章到此结束,希望可以帮助到大家。

java服务器开发?java服务器开发是做什么和web端的区别是什么国家社科基金数据库?国内五大论文数据库