oracle linux 11.2.0.4 单实例升级到upgrade 19c(single instance)
背景: 由于现上的单到rds数据库需要在2021年1月1日之前,从oracle 11.2.0.4升级到19c,实例升级现在需要我测试升级后业务兼容不,所以,单到需要我把准生产linux 11.2.0.4的实例升级oracle升级到19c 文章参考资料来自support文档 ID 2548962.1,Doc ID 2577572.1 oracle升级到19C有直接和间接升级,单到11.2.0.4以下的实例升级版本需要先升级到11.2.0.4然后再升级到19c;11.2.0.4以上版本可以直接升级。而我的单到版本是11.2.0.4,所以升级成非CDB的实例升级数据库。 19c升级步骤 升级环境 1.备份 这个可以逻辑的单到或RMAN的备份 2.安装19软件的步骤 把新建的ORACLE_HOME目录(我的是/u01/app/oracle/product/19c/dbhome_1)建好,解压下载的实例升级19软件(修改解压文件的权限) oracle用户: mkdir -p /u01/app/oracle/product/19c/dbhome_1 (root用户需要修改权限) cd /u01/app/oracle/product/19c/dbhome_1/ 静默安装的话: 设置好 https://www.cnblogs.com/hmwh/p/runInstaller -ignorePrereq -waitforcompletion -silent 图形界面安装: . 3.进行升级前检查 清空回收站 检查所有的物化视图的状态,刷新所有没有刷新的实例升级物化视图。 执行下面的 SQL 查询: 在开始升级之前,请确定是否要对密码处于EXPIRED状态且其帐户处于LOCKED状态的默认Oracle数据库帐户使用密码身份验证。 此功能还可以降低未授权者使用默认密码侵入这些帐户的安全风险。 3.4复制 Transparent Encryption Oracle 钱包 如果使用了带 Oracle 钱包的 Transparent Data Encryption (TDE),那么拷贝 thesqlnet.ora 和 wallet 文件到新的Oracle home。在升级前需要手工拷贝 sqlnet.ora 和 wallet 文件。 打开数据库 wallet。 从 Oracle Database 12c release 2 (12.2) 开始,默认的基于密码验证的协议排除了大小写不敏感的 10g 版本的密码。默认的SQLNET.ORA文件中参数SQLNET.ALLOWED_LOGON_VERSION_SERVER被设置成了 12 (排他模式)。 为了安全起见,Oracle建议使用大小写敏感的密码验证。这是默认的设置。但是在升级数据库的时候可以短暂的关闭大小写敏感的密码验证。在升级后,可以再决定是否启用大小写敏感的密码验证。 在升级前,Oracle建议您检查是否新的密码验证会影响您的应用。可以做下面的检查: 以 -T 参数使用 Parallel Upgrade Utility 可以在升级时把用户表空间置为只读。 因为数据库可以读取之前版本创建的数据文件 header, 所以在升级时我们不需要做额外的操作。当升级完成后,表空间被置为读写时,文件 header 会自动被更新。如果升级失败,无法把表空间重新 online,那么检查升级日志。日志中包含把表空间重新 online 的语句。可以在数据库中或者每个pdb里手工执行来 online 表空间。 如果升级失败可以检查升级的日志 (Oracle_base/cfgtoologs/dbua), 并且手工执行日志中的命令来 online 表空间。可以检查如下日志: 而在每个日志文件的结尾部分,可以找到把表空间置为读写的SQL命令: 出于安全考虑,不同的 Windows 账户配置为 Oracle home 不允许共享同一个 Oracle Base。 在源库执行 Preupgrade 脚本 升级前在 11.2 数据库上执行 OLS preprocess 脚本: 对于Database Vault,赋予SYS以DV_PATCH_ADMIN的角色 关闭 DB control 从系统中手工删除ORACLE_HOME/HOSTNAME_SID/ 和 ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_HOSTNAME_SID 目录 执行下面的语句: 要清空回收站,执行下面的语句: 保存性能相关指标 收集统计信息可以减少停机时间,Oracle建议使用 DBMS_STATS.GATHER_DICTIONARY_STATS 来收集这些统计信息,比如: 源库的 time zone 文件版本应该小于或者等于目标库的 time zone 文件版本。如果源库的 time zone 文件版本更高,那么需要升级目标库的 time zone 文件版本来对应源库的 time zone 文件。 在 11g 数据库上定义的 Data security roles 不能自动转换成 ORAS。所以在升级前,需要删除所有在 11g 数据库上定义的 data security roles。升级后可以使用新版本的 Analytic Workspace Manager 重新定义 data security roles。 5.升级具体步骤 19c linux7需要安装的yum包: db_recovery_file_dest string /u01/app/oracle/fast_recovery_area 5.1关闭数据库 PURGE DBA_RECYCLEBIN; lsnrctl stop; SHUTDOWN IMMEDIATE; 从旧的Oracle home下拷贝 SPFILE.ORA 或者 INIT.ORA到目标Oracle home,PURGE DBA_RECYCLEBIN然后把 使用目标 ORACLE_HOME(设置 ORACLE_HOME 为目标 ORACLE_HOME)启动数据库到 upgrade 模式(后续需要把sqlnet.ora,tnsnames.ora,listerner.ora复制到新的目录) cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfiletest19c.ora /u01/app/oracle/product/19c/dbhome_1/dbs/ cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwtest19c /u01/app/oracle/product/19c/dbhome_1/dbs/ startup upgrade; cd $ORACLE_HOME/bin https://www.cnblogs.com/hmwh/p/dbupgrade 耐心等待约1个小时结束如下: 执行 Post-Upgrade Status 工具, utlusts.sql 并且检查升级的日志。在新的版本下执行 Post-Upgrade Status 工具。 注意: 之前版本的 utluNNNs.sql 在 19c 上被替换为 utlusts.sql 如果使用了Oracle Clusterware,设置了 CLUSTER_DATABASE=TRUE 那么你必须升级数据库对应的 Oracle Clusterware keys。在19c上运行 srvctl 来做这件事,比如: 执行 dbupgdiag.sql 并检查日志。可以从 Note 556610.1 下载这个脚本。 执行 utlrp.sql (多次) 来使它们生效,直到失效对象的个数不再改变。 在 Linux 和 Unix 上设置环境变量 确保下面的环境变量指向了新的 ORACLE_HOME 对应的目录: ORACLE_HOME 修改 /etc/oratab 文件对应的条目指向新的 ORACLE_HOME 目录 修改 /etc/oratab 文件 Post-upgrade fixup 脚本 执行 pre-upgrade 产生的 post-upgrade fixup 脚本 后续把tns,监听文件,以及sqlnet.ora拷贝到到指定的新目录中,入股是11G升到19C,需要在sqlnet.ora中加入: SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8 执行 Post-Upgrade Status 工具, utlusts.sql 并且检查升级的日志。在新的版本下执行 Post-Upgrade Status 工具。 $ sqlplus "/as sysdba" SQL> STARTUP SQL> @?ORACLE_HOME/rdbms/admin/utlusts.sql 注意: 之前版本的 utluNNNs.sql 在 19c 上被替换为 utlusts.sql 注意: 如果执行 utlusts.sql 时碰到错误 "ORA-06502: PL/SQL: numeric or value error: character string buffer too small" ,那么执行 $ sqlplus "/as sysdba" SQL> STARTUP SQL> @?/rdbms/admin/utlusts.sql 如果使用了Oracle Clusterware,设置了 CLUSTER_DATABASE=TRUE 那么你必须升级数据库对应的 Oracle Clusterware keys。在19c上运行 srvctl 来做这件事,比如: $ORACLE_HOME/bin/srvctl upgrade database -db name -o ORACLE_HOME 检查升级状态 执行 dbupgdiag.sql 并检查日志。可以从 Note 556610.1 下载这个脚本。 编译失效对象 执行 utlrp.sql (多次) 来使它们生效,直到失效对象的个数不再改变。 $ sqlplus "/ AS SYSDBA" SQL> @?/rdbms/admin/utlrp.sql SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8 SQLNET.ALLOWED_LOGON_VERSION_SERVER:控制可以连接到12c数据库的客户端版本(client -->12c server ) SQLNET.ALLOWED_LOGON_VERSION_CLIENT:控制12c数据库可以连到哪些版本的数据库(12c server -->其它版本dbserver),例如:控制通过DB LINK可连接到哪些版本的oracle库。 查看升级的组件: set lin 200 pages 200 select * from dba_registry_history; 后续还需要、修改时区以及兼容版本参数: $ORACLE_HOME/rdbms/admin/utltz_countstar.sql alter system set compatible='19.0.0' scope=spfile; 并进行重启。
服务器os linux7.5 内存256G cpu 32核
oracle 版本 11.2.0.4 数据量240G
oracle 19c软件静默安装时间约5-10分钟
oracle 11.2.0.4升级到19c升级时间 约60分钟新的ORACLE_HOME,ORACLE_BASE
对应的单到参数按照实际需要进行修改
-responseFile ${ ORACLE_HOME}/install/response/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=${ ORACLE_HOSTNAME}
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=${ ORA_INVENTORY}
SELECTED_LANGUAGES=en,en_GB
ORACLE_HOME=${ ORACLE_HOME}
ORACLE_BASE=${ ORACLE_BASE}
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
检查 SYS 及 SYSTEM 用户的失效对象
检查 SYS 及 SYSTEM 用户下的重复对象
检查失效的、必需的实例升级、废弃的单到组件
检查物化视图日志的单到大小,如果物化视图日志的行数非零,那么刷新物化视图。
检查 direct loader 日志以及 PMOP 日志(分区维护操作日志),如果 direct loader log 或者 PMOP 日志非空,那么刷新日志显示的物化视图。升级数据库前,必须确保所有的物化视图都已经刷新完毕。
在升级到 Oracle Database 19c 之后,默认的 Oracle 账号(没有设置密码并且处于 EXPIRED 和 LOCKED 状态)会被置为 NO AUTHENTICATION 状态。
由于此新功能,这些默认账号会变为 schema-only 帐户,并无法使用密码验证。此功能的好处是管理员不再需要定期修改这些Oracle默认账号的密码。
例如:
在升级日志文件中找到表空间相关的命令
Non-CDB 升级: catupgrd0.log
PDB 数据库: catupgrdpdbname0.log, 这里 pdbname 是要升级的 pdb 的名字。
在每个日志文件的开始部分,可以找到把表空间置为只读的命令:
如果要升级的数据库安装有 Oracle Label Security,那么赋予SYS以DV_PATCH_ADMIN的角色
升级前在 11.2 数据库上执行 OLS preprocess 脚本:
1. 从 19c 的 Oracle Home 下拷贝以下脚本到源库的 Oracle Home(11.2) 下。
2. 启动 SQL*Plus 并以 DVOWNER 登录到要升级的数据库。
3. 执行下面的SQL:
4. 使用 SYS as SYSDBA 登陆数据库:
5. 执行 Data Vault preprocess 脚本:
6. 执行完毕后,以 DVOWNER 登陆数据库
7. 执行下面的SQL:
如果启用了Database Vault,那么也需要做对应的检查,检查步骤需要执行下面的SQL脚本 - olspreupgrade.sql, emremove.sql, catnoamd.sql
以 DVOWNER 登陆要升级的数据库
执行下面的SQL:
如果是 windows 系统则删除 DB Console 的系统服务 OracleDBConsoleSID
检查网络性能
收集优化器统计信息
如果从 11g 升级到 12c 之前未删除 data security roles,那么所有的 data security policies 以及 data security role 都会在新版本上失效。yum install -y bc yum install -y binutilsyum install -y compat-libcap1yum install -y compat-libstdc++-33#yum install -y dtrace-modules#yum install -y dtrace-modules-headers#yum install -y dtrace-modules-provider-headersyum install -y dtrace-utilsyum install -y elfutils-libelfyum install -y elfutils-libelf-develyum install -y fontconfig-develyum install -y glibcyum install -y glibc-develyum install -y kshyum install -y libaioyum install -y libaio-develyum install -y libdtrace-ctf-develyum install -y libXrenderyum install -y libXrender-develyum install -y libX11yum install -y libXauyum install -y libXiyum install -y libXtstyum install -y libgccyum install -y librdmacm-develyum install -y libstdc++yum install -y libstdc++-develyum install -y libxcbyum install -y makeyum install -y net-tools # Clusterwareyum install -y nfs-utils # ACFSyum install -y python # ACFSyum install -y python-configshell # ACFSyum install -y python-rtslib # ACFSyum install -y python-six # ACFSyum install -y targetcli # ACFSyum install -y smartmontoolsyum install -y sysstat# Added by me.yum install -y unixODBC
linux 8需要安装的包:dnf install -y bc dnf install -y binutils#dnf install -y compat-libcap1dnf install -y compat-libstdc++-33#dnf install -y dtrace-modules#dnf install -y dtrace-modules-headers#dnf install -y dtrace-modules-provider-headers#dnf install -y dtrace-utilsdnf install -y elfutils-libelfdnf install -y elfutils-libelf-develdnf install -y fontconfig-develdnf install -y glibcdnf install -y glibc-develdnf install -y kshdnf install -y libaiodnf install -y libaio-devel#dnf install -y libdtrace-ctf-develdnf install -y libXrenderdnf install -y libXrender-develdnf install -y libX11dnf install -y libXaudnf install -y libXidnf install -y libXtstdnf install -y libgccdnf install -y librdmacm-develdnf install -y libstdc++dnf install -y libstdc++-develdnf install -y libxcbdnf install -y makednf install -y net-tools # Clusterwarednf install -y nfs-utils # ACFSdnf install -y python # ACFSdnf install -y python-configshell # ACFSdnf install -y python-rtslib # ACFSdnf install -y python-six # ACFSdnf install -y targetcli # ACFSdnf install -y smartmontoolsdnf install -y sysstat# Added by me.dnf install -y unixODBC# New for OL8dnf install -y libnsldnf install -y libnsl.i686dnf install -y libnsl2dnf install -y libnsl2.i686
启动预检查:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4
/u01/app/oracle/product/11.2.0/dbhome_1/jdk/bin/java -jar /u01/app/oracle/product/19c/dbhome_1/rdbms/admin/preupgrade.jar FILE TEXT DIR /u01/app/oracle/precheck
查看生成的/u01/app/oracle/precheck下的日志
如果有问题的,执行 postupgrade_fixups.sql
安装19软件--这一步已经安装了。
db_recovery_file_dest_size big integer 80G 这个是、我是设置的很大。
PATH
col COMP_NAME for a60
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;
- 最近发表
- 随机阅读
-
- 米聊光速复活,“中国版Clubhouse”之争白热化
- 我的世界鸡骑士怎么做
- dnf幻境阿拉德
- 光遇小王子季第一个任务小王子在哪
- 【KID CASTLE】重庆吉的堡华润园——手足口&疱疹性咽峡炎进入高发态势, 最全防治手册来了!
- 魔兽世界战友招募奖励怎么领取 魔兽世界2022战友招募规则是什么
- 首位国服夏洛特出装一览 冷门装冰痕的春天来了
- 魔兽5.4:新增成就头衔与光辉事迹汇总一览
- 原创马思纯抑郁症黄景瑜被曝猛料!多灾难《荞麦疯长》尺度大?
- 堡垒Tower Fortress加速器
- 《DNF》传奇之稀有装扮怎么样 传奇之稀有装扮外观一览
- lol手游无限火力琴女最新出装分享 无限火力琴女怎么出装
- 怎么把qq头像弄透明 QQ透明头像怎么弄图文教程
- 巫师3昆特牌怎么打赢血腥男爵?
- 洛克王国烈焰烤鸭技能石怎么得 有什么用
- DNF70怀旧复古服,5.07日更新公告
- 宜信另一低调的网贷巨头,坏账是宜人贷的35倍!
- 逗玩游戏盒子下载
- 魔兽世界盗贼种族,魔兽世界盗贼种族选择
- 一拳超人最强之男角色强度排行,看看谁才是真正的王者!
- 搜索
-
- 友情链接
-
- 原创LOL:云顶之弈重秘狐狸不吃天选门槛低易成型
- DNF积分商城:哪些有用哪些没用?商城道具兑换指南
- 《魔兽世界怀旧服》希利苏斯传送机制是什么 希利苏斯传送机制详解
- 怪物防御战游戏
- 小法师天赋-魔兽世界怀旧服:60年代法师“全天赋类型”详解
- 《DNF手游》漫游PK加点技巧 《DNF手游》漫游PK怎么加点
- 《魔兽世界》猎人天赋推荐推荐
- 9.9版本上单英雄全面评级 诺手加强晋升S级
- 【G14讯飞输入法下载】HTC G14讯飞输入法13.0.9免费下载
- 康熙字典 > 九
- 地下城舰炮防御战任务实现过 DNF安图恩舰炮防御战单刷详解
- 一拳超人:最强之男
- 智勋09月29日录播简介
- 英雄联盟手游剑姬怎么出装 剑姬出装推荐?英雄联盟手游攻略推荐
- 一刀传世先锋服
- 使命召唤手游周年庆什么时候
- 魔兽世界9.1兽王猎天赋怎么加点 tbc猎人最强天赋
- 王者荣耀战术体系你知道几个?
- 小法师天赋-魔兽世界怀旧服:60年代法师“全天赋类型”详解
- 时空猎人3平民玩什么职业?时空猎人3攻略详解
- 天津一汽的转型之作 骏派A50 5.59万-7.29万成都上市
- 厄运的钥匙在哪打??哪个任务?
- 【洛克王国】双损(压迫)类技能整合及简单解析(2023/9/29)
- 手游破解网站哪个最好 2020最好的破解手游网推荐
- dnf战令第九季装扮外观怎么样
- 《大地的裂变》地图详解-深岩之洲
- 摩尔庄园人物图鉴
- 新浪游戏 > 新闻动态 > 手机游戏 正文页 【已有_COUNT_条评论】
- 魔兽世界恶魔猎手天赋(魔兽世界恶魔猎手天赋加点推荐)
- TBC怀旧服P3职业攻略 火法配装天赋输出**分析
- 《光遇》圣岛季怎么玩 圣岛季完整介绍
- 《DNF》神界版本战斗法师职业技能加点推荐
- 13.16版本更新公告:刺客装调整,玉剑传说皮肤翩然降临
- DNF希洛克攻坚商店奖励一览,这些道具你心动了吗
- 摩尔庄园礼包大全 礼包和激活码领取攻略
- 手游诺手出门装什么好,LOL新版诺手肿么出装
- wow兽王天赋?10.1兽王猎人天赋加点
- 暗黑破坏神2重制版上线 用北通阿修罗3游戏手柄体验无限刷宝乐趣
- 王者荣耀S19赛季新版本的8大变化 王者荣耀新版本
- 天龙八部萌宝猪怎么获得,天龙八部怀旧服欢乐猪宝宝哪里来的