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

启停数据库测试

相关推荐
Cx330❀3 小时前
【MySQL基础】一文吃透“表的约束”:从 Null/Default 到主外键的终极安全法则
linux·服务器·数据库·c++·mysql·安全
c238563 小时前
第二篇:《测试指挥官:可视化单题自测框架(含 assert 实操)》
java·数据库·c++·算法·安全性测试
我科绝伦(Huanhuan Zhou)3 小时前
MySQL极端场景数据丢失防护:从Crash-Safe到异地备份
数据库·mysql
辞旧 lekkk3 小时前
【Redis初阶】常见数据类型
开发语言·数据库·c++·redis·学习·缓存·bootstrap
明志数科4 小时前
人形机器人格斗场景下的技术挑战:动力学控制、感知融合与实时决策
网络·数据库
酉鬼女又兒4 小时前
零基础入门 DeepSeek V4 Pro API 开发:从环境搭建、消息格式规范到翻译函数实战、少样本提示、多轮对话聊天机器人与常见报错全流程详解指南
大数据·网络·数据库·人工智能·macos·机器人·github
笨蛋不要掉眼泪4 小时前
MySQL架构揭秘:MVCC解决读一致性问题
数据库·mysql·架构
Navicat中国5 小时前
开发者入门:无服务器数据库
数据库·云原生·serverless·navicat
whn19777 小时前
如何避免以root用户执行达梦
数据库
brave_zhao7 小时前
openEuler下安装tar包解压工具
linux·服务器·数据库