• oracle19c升级时区版本 32-->42,解决数据泵导数据TSTZ报错


    1.查询当前数据库时区版本:

    select * from v$timezone_file;
    
    • 1

    2.下载42安装包
    3.打补丁

    1、opatch 打相应的时区补丁(如果是rac节点所有节点都要执行)
    mkdir -p /tmp/patch
    unzip  p35220732_190000_Linux-x86-64.zip -d /tmp/patch/
    chown -R oracle:oinstall /tmp/patch
    
    --检查补丁是否冲突 /u01/app/oracle/product/19.3.0/db_1是oracle安装目录,以现场实际为准
    切换到目录
    cd /tmp/patch/35220732
    执行(换成自己的oracle安装目录,按照下面的直接敲就行,不要怀疑):
    /u01/app/oracle/product/19.3.0/db_1/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
    #ph后面有空格
    
    --应用补丁
    /u01/app/oracle/product/19.3.0/db_1/OPatch/opatch apply
    
    --回退
    opatch rollback -id 35220732
    
    说明:仅打补丁不需要重启数据库
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    4.查询数据库业务链接:

    select a.machine,a.program from v$session a ;
    
    • 1
    #把JDBC的链接都关掉
    select a.machine,a.program from v$session a where a.program like '%JDBC%';
    
    • 1
    • 2

    5.去k8s界面找到工作负载–停用;(视情况而定,反正就是关掉应用,断开数据库链接);
    6.关闭监听:

    lsnrctl stop
    
    • 1

    7.应用停掉之后在sqlplus登录数据库执行下面的命令

    slplus /nolog
    
    • 1
    sql>connect /as sysdba
    
    • 1
    2、应用相关的sql使时区补丁生效(这一步会重启2次数据库)
    注释:下面的是路径 去路径找到对应的sql执行即可;
    $ORACLE_HOME/rdbms/admin/utltz_countstats.sql
    #Script to gives how much TIMESTAMP WITH TIME ZONE data there is in a database using stats info. No restart required.
    
    $ORACLE_HOME/rdbms/admin/utltz_countstar.sql
    #Script to approximate how much TIMESTAMP WITH TIME ZONE data there is in a database using a COUNT(*) for each table that has a TSTZ column. 
    This script is useful when using DBMS_DST package or the scripts of utlz_upg_check.sql and utlz_upg_apply.sql scripts.
    
    $ORACLE_HOME/rdbms/admin/utltz_upg_check.sql
    #Time zone upgrade check script
    
    $ORACLE_HOME/rdbms/admin/utltz_upg_apply.sql
    #Time zone apply script. Warning: This script will restart the database and adjust time zone data.
    2、应用相关的sql使时区补丁生效(这一步会重启2次数据库)
    $ORACLE_HOME/数据库管理系统
    使用stats信息给出数据库中有多少TIMESTAMP WITH TIME ZONE数据的脚本。不需要重新启动。
    
    $ORACLE_HOME/关系数据库管理系统/管理员
    脚本使用COUNT*)为每个具有TSTZ列的表估计数据库中有多少TIMESTAMP WITH TIME ZONE数据。
    这个脚本在使用DBMS_DST包或utlz_upg_check.sql和utlz_upg_apply.sql脚本时非常有用。
    
    $ORACLE_HOME/关系数据库管理系统
    时区升级检查脚本
    
    $ORACLE_HOME/rdbms/admin/utltz_upg_apply.sql
    时区应用脚本。警告:此脚本将重新启动数据库并调整时区数据。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    8.再次查看当前数据库时区版本,发现升级成功!

    select * from v$timezone_file;
    
    • 1

    通过百度网盘分享的文件:p3522073…zip
    链接:https://pan.baidu.com/s/1dDllx85B8WY4xGf7n-gIjQ
    提取码:MoKa
    复制这段内容打开「百度网盘APP 即可获取」

    声明:个人工作中遇到的问题,内容如有侵权请及时联系本人删除。

  • 相关阅读:
    计算机毕业设计springboot基于SpringBoot构建的高校疫情防控平台523g7源码+系统+程序+lw文档+部署
    Word另存为PDF后无导航栏解决办法
    java计算机毕业设计学科竞赛管理系统MyBatis+系统+LW文档+源码+调试部署
    centos部署nginx集群
    【多线程】Thread的interrupt()
    MATLAB小技巧(19)矩阵分析--主成分分析
    解析 RocketMQ 业务消息 - “顺序消息”
    【MySQL系列】- MYSQL锁机制
    1、Flutter移动端App实战教程【环境配置、模拟器配置】
    抽象工厂模式
  • 原文地址:https://blog.csdn.net/weixin_64198692/article/details/136481980