通过DBUA升级 Oracle 11g到Oracle12c版本

Oracle 11g升级到Oracle12c

Oracle11g数据库环境准备与数据备份

环境:

oracle11.2.0.4 to oralce12.2.0.1

升级方案:

升级方案很多种,我们ORACLE培训课程第8阶段有所讲所有的升级方案,我们这里采用DBUA官方建议的方法

1、手工通过upgrade方式,执行大量的脚本去手工升级

2、dbua图形方式升级(官方推荐的)

oracle安装目录备份

修改主机名:

hostname hefeidb

vi /etc/hostname

停所有的数据库服务

oracle数据库备份

cd /backup

tar /cvf /backup/oracle.tar /oracle

停机时间长:启动mount状态,完整备份

不停机时间短:在线备份+归档

mkdir /backup/hferpdb

sql 复制代码
rman target / 

CONFIGURE CONTROLFILE AUTOBACKUP ON; 
run
{ 
allocate channel d1 type disk; 
allocate channel d2 type disk; 
backup format '/backup/hfhsdb/hferpdbfull_%U' database include current controlfile; 
release channel d1; 
release channel d2; 
} 

Oracle12c安装过程

用oracle用户,上传linuxx64_12201_database.zip,

su - oracle

mkdir -p /oracle/app/oracle/product/12.2.0/db_1

chown -R oracle:oinstall /oracle/app/oracle/product/12.2.0

chmod -R 775 /oracle/app/oracle/product/12.2.0

修改环境变量:

oracle@hefeidb:/home/oracle]$cp ~/.bash_profile ~/.bash_profile.bak

oracle@hefeidb:/home/oracle$vi ~/.bash_profile

sql 复制代码
\#export PATH

PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
export ORACLE_UNQNAME=hefeidb
ORACLE_SID=hefeidb; export ORACLE_SID
ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1; export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
PATH=.:$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_BASE/product/12.2.0/db_1/bin:$ORACLE_HOME/bin; export PATH
THREADS_FLAG=native; export THREADS_FLAG
umask=022

验证:

root@hefeidb backup# su - oracle

Last login: Sun Aug 27 16:11:11 CST 2023 on pts/1

oracle@hefeidb:/home/oracle$env |grep ORACLE

sql 复制代码
ORACLE_UNQNAME=hefeidb
ORACLE_SID=hefeidb
ORACLE_BASE=/oracle/app/oracle
ORACLE_TERM=xterm
ORACLE_HOME=/oracle/app/oracle/product/12.2.0/db_1

解压12c的安装软件

oracle@hefeidb:/backup$unzip linuxx64_12201_database.zip

运行vnc安装:

oracle@hefeidb:/backup$vncserver

oracle@hefeidb:/backup/database ./runInstaller

安装监听:

监听端口改成1522,后面升级完后再改回1521.

netca

Oracle11g数据库升级检查与测试

oracle@hefeidb:/home/oracle$source ~/.bash_profile.bak

oracle@hefeidb:/home/oracle$env |grep ORACLE

ORACLE_UNQNAME=hefeidb

ORACLE_SID=hefeidb

ORACLE_BASE=/oracle/app/oracle

ORACLE_TERM=xterm

ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db_1

oracle@hefeidb:/home/oracle$which sqlplus

oracle@hefeidb:/home/oracle$source ~/.bash_profile.bak

oracle@hefeidb:/home/oracle$/oracle/app/oracle/product/11.2.0/db_1/bin/sqlplus "/as sysdba"

运行preupgrade.jar ,生产检查脚本

oracle@hefeidb:/backup$unzip preupgrade_12201_cbuild_20_lf.zip

oracle@hefeidb:/backup$source ~/.bash_profile.bak --【到之前的环境变量里面去】

oracle@hefeidb:/backup$java -jar preupgrade.jar

oracle@hefeidb:/oracle/app/oracle/product/12.2.0/db_1/rdbms/admin$more /oracle/app/oracle/cfgtoollogs/hefeidb/preupgrade/preupgrade.log

数据库表空间修改

oracle@hefeidb:/backup$/oracle/app/oracle/product/11.2.0/db_1/bin/sqlplus "/as sysdba"

SQL> select name from v$datafile;

SQL> alter database datafile '/oradata/hefeidb/system01.dbf' resize 1010m;

em管理器修改

oracle@hefeidb:/oracle/app/oracle/product/12.2.0/db_1/rdbms/admin$cp emremove.sql .../.../.../.../11.2.0/db_1/rdbms/admin/

oracle@hefeidb:/oracle/app/oracle/product/12.2.0/db_1/rdbms/admin$emctl stop dbconsole

oracle@hefeidb:/oracle/app/oracle/product/12.2.0/db_1$/oracle/app/oracle/product/11.2.0/db_1/bin/sqlplus "/as sysdba"

SQL> SET ECHO ON;

SQL> SET SERVEROUTPUT ON;

SQL> @?/rdbms/admin/emremove.sql

SQL> @/oracle/app/oracle/cfgtoollogs/hefeidb/preupgrade/preupgrade_fixups.sql

升级前收集信息

检查无效对象

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql

Oracle11g升级到Oracle12c过程

用vnc连接到oracle,要在12c的环境下面运行dbua进行升级

Oracle11g到Oracle12c后期检查

升级后执行的脚本

再12c执行

/oracle/app/oracle/cfgtoollgs/hefeidb/preupgrade/postupgrade_fixups.sql

升级完成后的检查

dbupgdiag.sql

对象检查

hcheck.sql

/etc/oratab

show parameter compat

alter system set compatble='12.2.0.1.0' scope=spfile;

show parameter list

alter system set local_listener='';

启停数据库测试

相关推荐
代码小库13 小时前
【2026前端转 AI 全栈指南】第 2 章(下):NestJS 项目创建 · MongoDB 配置 · 项目启动与调试
前端·数据库·mongodb
大熊猫侯佩13 小时前
SwiftData 迁移深度指南:从入门到“填坑”(下集)
数据库·swift·编程语言
大熊猫侯佩14 小时前
SwiftData 迁移深度指南:从入门到“填坑”(上集)
数据库·swift·编程语言
我星期八休息14 小时前
Linux系统编程—mmap文件映射
java·linux·运维·服务器·数据库·mysql·spring
桌面运维家14 小时前
基于vDisk技术的Vol云桌面技术解析
数据库
放下华子我只抽RuiKe514 小时前
FastAPI 全栈后端(八):部署与运维
运维·数据库·react.js·oracle·数据挖掘·前端框架·fastapi
J.P.August14 小时前
Oracle RAC双活存储配置三个关键点
数据库·oracle
弹简特14 小时前
【Java项目-轻聊】10-实现会话管理模块
java·开发语言·数据库
网管NO.114 小时前
MySQL 8.0 JSON 操作 | 新增 / 查询 / 修改,适配新兴业务
数据库·mysql·json
江畔柳前堤14 小时前
github实战指南00-命令在哪里执行?
人工智能·线性代数·oracle·数据挖掘·github·word