11.2.0.4如何升级到19c

2024-02-18 08:40
文章标签 升级 19c 0.4 11.2

本文主要是介绍11.2.0.4如何升级到19c,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

11.2.0.4一直以来都是最稳定,应用最广泛的oracle数据库版本,但是官方对其的支持仅仅到2018年12月31日就结束了,如果想要获得11.2.0.4之后的补丁,则必须和Oracle签订扩展服务协议,而且需要另外收费。随着稳定且强大的19c出现,这里建议大家可以考虑将11g升级到19c,获得更好的数据库服务以及体验
今天,就为大家介绍如何基于Linux6原地升级11g到19c

在这里插入图片描述

一 备份

使用rman备份源库
使用rman备份源库,做好回退准备

rman target / 
run {
allocate channel c1 device type disk;
allocate channel c2 device type disk;
backup as compressed backupset database format '/bak/rman/ora_df%t_s%s_s%p';
release channel c1;
release channel c2;
}

二 安装19c软件

2.1 创建一个新的ORACLE_HOME
mkdir -p /oracle/app/product/19.3.0/dbhome_1

2.2 上传,解压压缩包
unzip LINUX.X64_193000_db_home.zip -d /oracle/app/product/19.3.0/dbhome_1

2.3 升级glibc
需要以下rpm包(以下为下载链接)
https://download.csdn.net/download/qqqyyy0422/12672522

使用以下命令升级glibc

rpm -Uvh glibc-utils-2.14.1-6.x86_64.rpm --nodeps
rpm -Uvh glibc-2.14.1-6.x86_64.rpm --nodeps
rpm -Uvh glibc-devel-2.14.1-6.x86_64.rpm --nodeps
rpm -Uvh glibc-static-2.14.1-6.x86_64.rpm --nodeps
rpm -Uvh glibc-common-2.14.1-6.x86_64.rpm --nodeps
rpm -Uvh glibc-headers-2.14.1-6.x86_64.rpm --nodeps

检查glibc版本
strings /lib64/libc.so.6|grep GLIBC

发现已经成功更新到了2.14

2.4 安装19c软件

export ORACLE_HOME=/oracle/app/product/19.3.0/$ORACLE_HOME/runInstaller -ignoreInternalDriverError

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
yes
(OSOPER是一种额外的用户组(oper),我们可以选择要不要创建该用户组,创建该用户组可以满足让os用户行使某些数据库管理权限(包括SYSOPER角色权限)的目的。注意SYSOPER的权限包括startup和shutdown,所以要小心为该用户组添加成员)

在这里插入图片描述
安装成功

三 升级前工作

3.1 拷贝相关文件
复制sqlnet.ora和钱包文件到新的ORACLE_HOME/network/admin
复制tnsnames.ora文件到新的ORACLE_HOME/network/admin
复制listerner.ora 文件到新ORACLE_HOME/network/admin

3.2 密码版本问题
从Oracle数据库12开始c第2版(12.2),默认的基于密码的身份验证协议配置排除了不区分大小写的使用,只有10g版本的密码将会变得不可用。
并且确保SEC_CASE_SENSITIVE_LOGON这个参数没有被设为FALSE

show parameter sec_case_sensitive_logon
alter system set SEC_CASE_SENSITIVE_LOGON=true sid='*';

通过一下命令查看密码版本,确认是否存在只有10G版本的密码

SELECT USERNAME,PASSWORD_VERSIONS FROM DBA_USERS;

在这里插入图片描述

如果存在仅仅为10G版本的密码,升级之后客户端将无法访问这些用户(需要在升级之后重置密码)

3.3 备份dblink创建命令

SELECT 'CREATE '||DECODE(U.NAME,'PUBLIC','public ')||'DATABASE LINK '||CHR(10)
||DECODE(U.NAME,'PUBLIC',Null, 'SYS','',U.NAME||'.')|| L.NAME||chr(10)
||'CONNECT TO ' || L.USERID || ' IDENTIFIED BY "'||L.PASSWORD||'" USING
'''||L.HOST||''''
||chr(10)||';' TEXT
FROM SYS.LINK$ L, SYS.USER$ U
WHERE L.OWNER# = U.USER#;

3.4 确保物化视图已经全部刷新
select s.obj#,o.obj#,s.containerobj#,lastrefreshdate,pflags,xpflags,o.name,o.owner#, bitand(s.mflags, 8) from obj$ o, sum$ s
where o.obj# = s.obj# and o.type# = 42 AND bitand(s.mflags, 8) = 8;

如果查出来有结果,协助完成刷新
exec DBMS_MVIEW.REFRESH(‘&MVIEW_NAME’,‘C’,atomic_refresh=>false);

3.5 确保没有数据文件存在热备模式
select * from v$backup where status!=‘NOT ACTIVE’;

3.6 清空回收站
PURGE DBA_RECYCLEBIN;

四 升级预检查工具Pre-Upgrade Information Tool

停止监听
lsnrctl stop

启动升级的预检查工具
工具箱会给出11g升级到19c,目前需要我们改进的地方(*号为必须修改)

$ORACLE_HOME/jdk/bin/java -jar java -jar /oracle/app/product/19.3.0/rdbms/admin/preupgrade.jar TERMINAL TEXT

4.1 修改memory_target值

Memory必须大于1.2G
alter system set memory_max_target=1500m scope=spfile;
alter system set memory_target=1500m scope=spfile;
shutdown immediate

4.2 修改recover_file_dest

确保recover_file_dest值大于5G
alter system set db_recovery_file_dest_size=5000M scope=both;

4.2 手动移除oracle插件(节省升级时间)

移除EM
(oracle的管理监控软件,通过emctl status dbconsole可以确认EM组件是否运行,当数据库软件从11g升级到19c以后会失效,所以需要手动移除节省升级时间)

emctl stop dbconsole
SET ECHO ON;SET SERVEROUTPUT ON;@emremove.sql

移除OLAP
(oracle的联机处理软件,通过select value from v$option where parameter = ‘OLAP’;可以确认是否使用该组件,当数据库软件从11g升级到19c原先olap组件会失效,所以需要手动移除节省升级时间)

----> Remove OLAP Catalog
SQL> @?/olap/admin/catnoamd.sql
----> Remove OLAP API
SQL> @?/olap/admin/olapidrp.plb
SQL> @?/olap/admin/catnoxoq.sql
----> Deinstall APS - OLAP AW component
SQL> @?/olap/admin/catnoaps.sql
SQL> @?/olap/admin/cwm2drop.sql
----> Recompile invalids
SQL> @?/rdbms/admin/utlrp.sql

移除Expression Filter (EXF) or Rules Manager (RUL)
(oracle的功能性组件,通过SELECT comp_name,version,STATUS FROM dba_registry;可以确认是否使用该组件,当数据库软件从11g升级到19c原先olap组件会失效,所以需要手动移除节省升级时间)

/oracle/app/product/19.3.0/rdbms/admin/catnoexf.sql 

执行脚本,解决预检查里标明可通过脚本解决的问题(脚本包含了收集统计信息)

SQL>@/oracle/app/cfgtoollogs/zwy/preupgrade/postupgrade_fixups.sql

4.3 确保空间足够

预检查工具将会提前告诉你这些表空间将会扩展成的大小,确保空间足够

五 开始升级

5.1 确认升级前版本以及组件状态

select comp_name,version,status from sys.dba_registry;

在这里插入图片描述

5.2 修改环境变量

vi ~/.bash_profile
export ORACLE_HOME=/oracle/app/product/19.3.0

5.3 升级数据库
关闭数据库
shutdown immediate
使用dbua升级数据库
$ORACLE_HOME/bin/dbua
输入sys密码

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
启用并行升级
如果要在升级过程中启用并行性,请选择此选项。根据可同时处理脚本和进程运行的CPU数量,并行运行升级进程减少了执行升级所需的时间。

在升级后重新编译无效对象(建议手动)
此选项在升级完成后重新编译所有无效的PL/SQL模块。如果在升级后阶段没有DBUA重新编译无效对象,则必须在数据库升级后手动重新编译无效对象。

升级时区数据
此选项更新此版本的时区数据文件。如果不选择此选项,则必须在升级后手动更新时区配置文件。
指定要执行的自定义SQL脚本.

这三个全部勾选,next

在这里插入图片描述
选择备份方法,闪回,rman或者选择已有自己的备份策略

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
不配置em

开始升级
在这里插入图片描述
在这里插入图片描述
升级完成,总耗时1小时14分

5.4 回退措施
还原事先备份好的备份片

六 升级后工作

6.1 升级后检查数据库状态
查看数据字典的状态

 spool /tmp/regInvalid.outset echo on
-- query registryset lines 80 pages 100
select substr(comp_id,1,15) comp_id,substr(comp_name,1,30)comp_name,substr(version,1,10) version,status
from dba_registry order by modified;

在这里插入图片描述

6.2 检查无效对象
查询无效对象

select owner, object_name, object_type from dba_invalid_objects order by owner, object_type;

如果有无效对象,需要进行编译无效对象

@?/rdbms/admin/utlrp.sql

6.3 升级依赖于oracle维护的类型的表

查询是否存在依赖于oracle维护的表

COLUMN owner FORMAT A30
COLUMN table_name FORMAT A30
SELECT DISTINCT owner, table_name
FROM dba_tab_cols
WHERE data_upgraded = 'NO'
ORDER BY 1,2;

如果存在,运行脚本升级

SET SERVEROUTPUT ON
@utluptabdata.sql

6.4 启用新的扩展数据类型

启用Oracle数据库12中引入的32767字节限制,运行升级脚本

CONNNECT SYS / AS SYSDBA
SHUTDOWN IMMEDIATE;
STARTUP UPGRADE;
ALTER SYSTEM SET max_string_size=extended;
START $ORACLE_HOME/rdbms/admin/utl32k.sql
SHUTDOWN IMMEDIATE;
STARTUP;

6.5 查看Time Zone是否更新

SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value FROM DATABASE_PROPERTIES 
WHERE PROPERTY_NAME LIKE 'DST_%' ORDER BY PROPERTY_NAME;

19c以后,DST_PRIMARY_TT_VERSION默认为32

6.6 重新收集统计信息

EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;

6.7 配置sqlnet.ora
11g升级成19c后,为了能够让后续的10g,11g客户端仍然可以继续连接,需要在sqlnet.ora文件中配置

SQLNET.ALLOWED_LOGON_VERSION_SERVER=11

升级成功!

这篇关于11.2.0.4如何升级到19c的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/720631

相关文章

【文末附gpt升级秘笈】腾讯元宝AI搜索解析能力升级:千万字超长文处理的新里程碑

腾讯元宝AI搜索解析能力升级:千万字超长文处理的新里程碑 一、引言 随着人工智能技术的飞速发展,自然语言处理(NLP)和机器学习(ML)在各行各业的应用日益广泛。其中,AI搜索解析能力作为信息检索和知识抽取的核心技术,受到了广泛的关注和研究。腾讯作为互联网行业的领军企业,其在AI领域的探索和创新一直走在前列。近日,腾讯旗下的AI大模型应用——腾讯元宝,迎来了1.1.7版本的升级,新版本在AI搜

java同步锁以及级别升级的理解

首先简单说下先偏向锁、轻量级锁、重量级锁三者各自的应用场景: 偏向锁:只有一个线程进入临界区;轻量级锁:多个线程交替进入临界区;重量级锁:多个线程同时进入临界区。 还要明确的是,偏向锁、轻量级锁都是JVM引入的锁优化手段,目的是降低线程同步的开销。比如以下的同步代码块:   synchronized (lockObject) { // do something } 上述同步代码块

Python pip升级及升级失败解决方案 pip 20.2.2升级20.2.3教程

Python pip升级及升级失败解决方案 本教程用于Python  pip升级及失败解决方案 首先查看脚本 pip show pip 我已经升级到了最新的版本 安装其他模块过程中出现下面提示,便说明你需要升级pip You are using pip version 18.1.1, however version 19.0.1 is available. 你的版本为18.1

两个基因相关性细胞系(CCLE)(升级)

目录 单基因CCLE数据 ①细胞系转录组CCLE数据下载 ②单基因泛癌表达 CCLE两个基因相关性 ①进行数据整理 ②相关性分析 单基因CCLE数据 ①细胞系转录组CCLE数据下载 基因在各个细胞系表达情况_ccle expression 23q4-CSDN博客 rm(list = ls())library(tidyverse)library(ggpubr)rt

「Debug R」如何不需要重新启动R/Rstudio就可以升级已经加载的R包

当我们已经加载了一个R包,例如ggplot2时,然后此时你发现ggplot2目前出最新版了,你心血来潮想要升级它,于是你输入了install.packages("ggplot2"), 结果弹出了下面这个界面 一个神奇的界面 它强烈建议你重启一下Rstudio,并且说到Rstudio会非常智能的重启并继续你的任务。但是根据我多年踩坑的经验,它通常没有那么智能。即便它有它说的那么智

AG32 MCU是否支持DFU下载实现USB升级

1、AG32 MCU是否支持DFU下载实现USB升级呢? 先说答案是NO. STM32 可以通过内置DFU实现USB升级,AG32 MCU目前不支持。但用户可以自己写一个DFU, 作为二次boot. 2、AG32 MCU可支持的下载方式有哪些呢? 我们AG32裸机下载只支持uart和jtag. 用户可以通过UART实现ISP升级。所以虽然不支持DFU,但是用户仍然可以通过UART实现升级。 3

mysql 升级到8.0

MySQL :: MySQL 8.0 Reference Manual :: 3.7 Upgrading MySQL Binary or Package-based Installations on Unix/Linux 2种升级方式: In-Place Upgrade   : data目录替换 Logical Upgrade: 通过 mysqldump 导出为sql文本后,导入。

升级iOS7后利用rvictl和wireshark抓包失效?

最近把一台设备升级到iOS7后,利用rvictl和wireshark抓包发现抓不了,无意中发现在装有xcode5的机器上可以抓包,看来rvictl与xcode是绑定的,升级到最新的iOS7后,必须要装上最新的xcode5版本才能抓包。 使用rvictl有一个前提是要获取设备的UDID,看网上不少教程都是从xcode中获取UDID,步骤相当繁琐,快速获取UDID用命令行才是王道,果然不出所料,很快

Android实战之app版本更新升级全文章(二)

BaseAndroid.checkUpdate(MainActivity.this, 2, “http://f5.market.mi-img.com/download/AppStore/0f4a347f5ce5a7e01315dda1ec35944fa56431d44/luo.footprint.apk”, “更新了XXX\n修复OOO”, false); 看看效果图 界面有点丑,自己

source配置文件不生效 原创 2016年03月14日 18:43:55 3558 问题背景: 升级jdk 1.8之后,启动时报版本编译问题,查看$JAVA_HOME,$JRE_HOME

source配置文件不生效 原创  2016年03月14日 18:43:55 3558 问题背景:       升级jdk 1.8之后,启动时报版本编译问题,查看$JAVA_HOME,$JRE_HOME,没有问题。      初步推断是没有source,sourec .bashrc 之后查看$JAVA_HOME,$JRE_HOME变成1.8版本,但启动时还是报错,这就