通过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='';

启停数据库测试

相关推荐
byxdaz6 小时前
jeston平台交叉编译Poppler库与预览pdf文件
数据库
SilicoCode6 小时前
江科大STM32入门:FLASH闪存详解——从结构原理到读写保护
数据库·mongodb
一个有温度的技术博主6 小时前
DeepSeek Harness 深度解析:与 LangChain / LangGraph 的本质区别
数据库·oracle·langchain·harness
Wang's Blog7 小时前
PostgreSQL笔记4: 市场地位、生态全景与行业应用实践
数据库·笔记·postgresql
隔窗听雨眠8 小时前
Oracle误Truncate操作恢复:从原理到实战的完整指南
数据库·oracle
Lethehong8 小时前
MySQL迁移如何做到零改造?四层兼容方案详解
数据库·mysql·adb
Json____9 小时前
五金制品行业-企业官网源码
java·大数据·数据库·企业站·wwwoop.com
深念Y10 小时前
Opencode Event 表写入优化方案
数据库·人工智能·ai·node.js·bug·优化·opencode
竹枝溪11 小时前
MySQL进阶:约束、多表设计、多表查询与事务
java·数据库·mysql·事务·子查询·acid·多表查询
weixin_4316004411 小时前
NestJS 入门(9):连上数据库,SQL 写在哪?
数据库·后端·sql·学习·nest.js