• oracle 12.1.0.2升级oracle12.2.0.1(non cdb)


    https://blog.csdn.net/bjywxc/article/details/106898480

    1、环境准备环境准备工作,需要在升级前完成,这里不做过多介绍。我的环境如下:虚拟机:rhel 7.4升级前数据库版本:oracle 12.1.0.2升级后数据库版本:oracle 12.2.0.1参考文档:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/upgrd/checklists-for-oracle-database-upgrade.html#GUID-5FAA2A12-87C5-4D65-B7AE-C9D67FA4F05F
    2、升级前工作1、升级前一定要先备份数据,防止升级失败。2、创建测试数据
    SQL> create user ogg identified by ogg;User created.SQL> grant dba to ogg;Grant succeeded.SQL> create table ogg.a (  2    dd nvarchar2(11),  3    aa nvarchar2(11)  4  )  5  ;Table created.SQL> SQL> insert into ogg.a VALUES ('aa','22');1 row created.SQL> commit;Commit complete.SQL> select * from ogg.a;DD          AA----------- -----------aa          22SQL> exit12345678910111213141516171819203、安装升级切换到oracle12.2.0.1的安装目录执行runInstaller
    [oracle@test1 ~]$ cd /soft/database/[oracle@test1 database]$ ./runInstaller 121、取消安全更新,下一步

    2、选择升级现有数据库。
    3、下一步
    4、指定oracle12.2软件的安装目录。
    5、下一步
    6、下一步

    7、安装
    8、另外一个窗口以root用户执行脚本

    [root@test1 soft]# /u01/app/oracle/product/12.2.0/dbhome_1/root.sh Performing root user operation.
    The following environment variables are set as:    ORACLE_OWNER= oracle    ORACLE_HOME=  /u01/app/oracle/product/12.2.0/dbhome_1
    Enter the full pathname of the local bin directory: [/usr/local/bin]: The contents of "dbhome" have not changed. No need to overwrite.The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) [n]: y   Copying oraenv to /usr/local/bin ...The contents of "coraenv" have not changed. No need to overwrite.
    Entries will be added to the /etc/oratab file as needed byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed.Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] : yInstalling Oracle Trace File Analyzer (TFA).Log File: /u01/app/oracle/product/12.2.0/dbhome_1/install/root_test1_2020-06-22_13-57-40-716080198.logFinished installing Oracle Trace File Analyzer (TFA)[root@test1 soft]# 1234567891011121314151617181920212223249、输入原库的sys用户和密码。
    10、下一步
    11、默认,下一步。
    12、如果之前有手动备份数据,选择第三项,没有备份选择第二项进行数据备份。
    12、默认监听,下一步。
    13、下一步。
    14、下一步,完成
    15、等待升级完成。
    16、等待完成即可。17、修改环境变量到新的ORACLE_HOME18、验证数据是否一致。
    DBUA降级降级前准备1、验证所有组件和字典对象
    set  pagesize500set  linesize  100col comp_id format a10col comp_name format a30col version format a10col status format a8select name from v$database;select name from v$version;select  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 ownerselect substr(comp_id,1,15) comp_id,substr(comp_name,1,30) comp_name,substr(version,1,10) version,status from dba_registryselect owner, count(object_name) "Invalid object count" from dba_objects where status!='VALID' and owner in ('SYS','SYSTEM') group by owner;12345678910111213如果有无效对象,则执行 utlrp.sql 多次,如果对象无法解析为有效状态,则不能继续降级。
    $  cd  $ORACLE_HOME/rdbms/admin   $  sqlplus  "/  as  sysdba"   SQL>  @utlrp.sql1232、如果已在数据库上启用了 Oracle Database Vault,如果输出为TRUE,则需要禁用,输出为FALSE则进行下一步。
    SQL> SELECT * FROM CDB_DV_STATUS;禁用 Oracle Database Vault 触发器: SQL>CONNECT  DVSYS/DVSYS    SQL>ALTER  TRIGGER  DV_BEFORE_DDL_TRG  DISABLE;    SQL>ALTER  TRIGGER  DV_AFTER_DDL_TRG  DISABLE; 123453、如果设置了操作系统参数 ORA_TZFILE,请取消其设置。如果不取消设置 ORA_TZFILE 变量,连接至数据库时可能会生成以下错误:
    SP2-1503: Unable to initialize Oracle call interface SP2-0152: ORACLE may not be functioning properly124、如果在降级至之前的数据库版本之前,已运行 DBMS_DST 软件包将时区版本升级至新版本,那么必须将版本时区文件安装到旧的 Oracle 数据库版本上的$ORACLE_HOME/ORACORE/ZONEINFO 目录中。
    查询V$TIMEZONE_FILE视图,当前使用的timezone文件
    SQL> select * from V$TIMEZONE_FILE;
     
    FILENAME                VERSION     CON_ID
    -------------------- ---------- ----------
    timezlrg_32.dat              32          0
    注: 需要将19c $ORACLE_HOME/oracore/zoneinfo 下的timezlrg_32.dat 文件拷贝到 11gR2 的$ORACLE_HOME/oracore/zoneinfo 目录下
    cp /u01/app/oracle/product/19.0.0/db_1/oracore/zoneinfo/timezlrg_32.dat /u01/app/oracle/product/11.2.0/db_1/oracore/zoneinfo1234567891011121314155、如果数据库使用了 Oracle Label Security, 则需要在19c ORACLE_HOME下执行olspredowngrade.sql 脚本
    查询下面视图,查看Oracle Label Security是否使用,输出为FALSE则进行下一步。SQL> SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Oracle Label Security';如果返回TRUE,执行 olspredowngrade.sql 脚本: SQL> @ORACLE_HOME/rdbms/admin/olspredowngrade.sql12346、如果数据库启用了 Unified Auditing, 建议备份和清除审计文件
    a . 查看是否有unified audit 记录,输出为0则进行下一步。
    SQL> SELECT COUNT(*) FROM UNIFIED_AUDIT_TRAIL; 
    b. 备份现有的审计数据到表格中
    SQL> CREATE TABLE UA_DATA AS (SELECT * FROM UNIFIED_AUDIT_TRAIL);
    c. 清除审计记录
    EXEC DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, use_last_arch_timestamp => FALSE);12345678910117、如果配置了EM,则需要删掉sysman用户 ,重建EM
    DROP USER sysman CASCADE;18、降级前数据库备份
    数据库降级1、执行降级脚本
    如果是RAC数据库,设置参数CLUSTER_DATABASE=FALSE,保留一个实例,关闭其它实例,降级后,必须将该参数设置回 truesqlplus / as sysdbaSQL> alter system set CLUSTER_DATABASE=FALSE scope=spfile sid=’*’;SQL> shutdown immediate;以19c ORACLE_HOME 启动数据库export ORACLE_HOME= /u01/app/oracle/product/19.0.0/db_1sqlplus / as sysdbaSQL> startup downgrade;Sql> Spool downgrade.logSql> @$ORACLE_HOME/rdbms/admin/catdwgrd.sqlSql> spool offSql> shutdown immediateExit SQL PlusSql> exit;12345678910111213142、修改环境变量指向旧版本,检查oratab 文件。3、执行catrelod.sql 重载组件版本
    sqlplus / as sysdba
    SQL> STARTUP UPGRADE;
    SQL> @$ORACLE_HOME/rdbms/admin/catrelod.sql123454、重启数据库,执行重新编译脚本
    SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP;SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
    如果是RAC 数据库,则设回CLUSTER_DATABASE参数为TRUEsqlplus / as sysdbaSQL> alter system set CLUSTER_DATABASE=TRUE scope=spfile sid=’*’;更新CRS中注册的数据库版本信息$ srvctl downgrade database -d db-unique-name -o oraclehome -t to_version
    降级完成后结果:SQL> select name from v$database;SQL> select * from v$version;12345678910111213降级后报错处理
    降级后 数据库alert 日志每隔5分钟就有报错:
    ORA-1400 encountered when generating server alert SMG-4121
    MOS 解决方案(ORA-1400 encountered when generating server alert SMG-4121 after downgrade from 12c to 11.2.0.4 (Doc ID 2169006.1))如下:Recreate the the SYS.ALERT_QUE using the following steps:
    1. Drop the alert_QTsqlplus / as sysdbaalter system enable restricted session;exec dbms_aqadm.drop_queue_table('ALERT_QT',true);
    2. Drop tables wri$_alert_history and WRI$_ALERT_OUTSTANDINGdrop table WRI$_ALERT_OUTSTANDING;drop table WRI$_ALERT_HISTORY;
    3. Recreate the alert_que and associated objects:SQL>@$ORACLE_HOME/rdbms/admin/dbmsslrt.sqlSQL>@$ORACLE_HOME/rdbms/admin/catalrt.sqlSQL>@$ORACLE_HOME/rdbms/admin/catmwin.sqlSQL>@$ORACLE_HOME/rdbms/admin/exechae.sqlSQL>@$ORACLE_HOME/rdbms/admin/utlrp.sqlSQL>alter system disable restricted session;
    经过验证,处理后alert日志不再有ORA-1400报错了。1234567891011121314151617181920212223242526https://www.cnblogs.com/sky2088/p/13373404.htmlhttp://www.ludatou.com/?p=2921————————————————版权声明:本文为CSDN博主「bjywxc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/bjywxc/article/details/106898480

    喜欢请赞赏一下啦^_^

    微信赞赏

    支付宝赞赏

  • 相关阅读:
    sql server 复制数据库
    sql server 修改数据库名、修改逻辑文件名、修改数据库物理文件名
    前端工具集合
    如何写一个日历组件
    封装一个通过class获取元素的方法--我的JS原生库(1)
    关于复选框选中状态的判断
    42种常见的浏览器兼容性问题大汇总(转载)
    CSS样式命名整理(非原创)
    setTimeout和setInterval实现滚动轮播中,清除定时器的思考
    注册登陆拖拽验证(1)
  • 原文地址:https://www.cnblogs.com/lkj371/p/15072058.html
Copyright © 2020-2023  润新知