oracle数据库升级?如何升级oracle版本
很多朋友对于oracle数据库升级和如何升级oracle版本不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
如何升级oracle版本
Oracle数据库升级也并非简单的事,这篇文章对Oracle那点事做了较详细的介绍:Oracle数据库升级或数据迁移方法研究
我还属于Oracle的菜鸟,就不献丑介绍了。
下面我就简单总结下,Oracle同版本升级的经历:
升级数据库:
1.先检查数据库当前版本:SELECT* FROM v$version;
2.使用RMAN或exp进行全库备份
【这一步非常非常重要,因升级到数据部分时,虚拟机没空间了,导致VM崩溃,升级失败.orcl库也挂了,不得不从另一台Oracle上创建了一个Orcl,然后,冷备迁移过来,才得以重新升级。】
如:RMAN全备
export ORACLE_SID=orcl
rman target/
RMAN>backup full database plus archivelog//全备数据库,并且包括ArchiveLog。
3.最后按下面步骤进行升级
<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、稳定性强
好了,文章到此结束,希望可以帮助到大家。