DB Name: GRP
Source DB: 11.2.0.3  
Target DB: 12.1.0.2

11g数据库使用DBUA升级Exadata数据库至12c前提条件:

0.需要11g源数据库full + archivelog backup 备份 本例中备份集放在以下目录。
[oracle@dm08db01 backup]$ pwd
/home/oracle/lyon/backup

备份脚本:backup_grp.txt
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup AS COMPRESSED BACKUPSET incremental level 0 format '/u01/app/oracle/backup/inc0_%d_%U_%Y%M%D.bak' tag hot_db_bk_level0 database;
release channel c1;
release channel c2;
release channel c3;
sql 'alter system archive log current';
allocate channel c1 type disk;
allocate channel c2 type disk;
backup AS COMPRESSED BACKUPSET format '/u01/app/oracle/backup/arc0_%d_%U_%Y%M%D.bak' archivelog all not backed up 1 times;
release channel c1;
release channel c2;
backup current controlfile format '/u01/app/oracle/backup/ctl_%d_%U_%Y%M%D.bak';
}

1. 源端11g/目标端12c 的Oracle Home需要提前安装且打好所需补丁.           
2. 11g OH需要追加打Patch#21150904 确保源端数据库可以注册到12C的CRS.   
(Bug 13460353 - Registration of 11.2 database fails against 12.1 CRS stack (required fix for 11g DB with 12c GI))           
3. 目标端ASM磁盘组兼容性问题. 需要将12C ASM磁盘组Database compatibility降级至11.2.0.0.0
4. 源端11g OH需要relink rds_ipc
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk ipc_rds ioracle

5. 源端初始化参数需要设置cluster_interconnects
GRP1.cluster_interconnects=192.168.18.1,192.168.18.2
GRP2.cluster_interconnects=192.168.18.3,192.168.18.4

6. 升级过程一定要注意环境变量的设置
GRP_11G_env 为11g Oracle Home 环境变量
GRP_env 为12C Oracle Home 环境变量

下面开始升级过程.
Upgrade 11g Oracle database GRP to 12C.

0. Edit source database pfile and create target pfile&spfile&passwordFile.

0.1 Edit source pfile esp. init parameters like cluster_database/local_listener/remote_listener.

. GRP_11G_env
$ORACLE_HOME/dbs/initGRP1.ora

GRP1.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
GRP2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
GRP1.cluster_interconnects=192.168.18.1,192.168.18.2
GRP2.cluster_interconnects=192.168.18.3,192.168.18.4
*._B_TREE_BITMAP_PLANS=FALSE
*._IN_MEMORY_UNDO=FALSE
*._INDEX_JOIN_ENABLED=FALSE
*._OPTIM_PEEK_USER_BINDS=FALSE
*._OPTIMIZER_MJC_ENABLED=FALSE
*._SORT_ELIMINATION_COST_RATIO=10
*._TABLE_LOOKUP_PREFETCH_SIZE=0
*.audit_file_dest='/u01/app/oracle/admin/GRP/adump'
*.cluster_database_instances=2
*.cluster_database=false
*.compatible='11.2.0.3.0'
*.control_file_record_keep_time=30
*.control_files='+DATA_DM08/GRP/controlfile/current'#Restore Controlfile
*.db_block_size=8192
*.db_cache_size=18269444505
*.db_name='GRP'
*.db_unique_name='GRP'
*.diagnostic_dest='/u01/app/oracle'
*.FILESYSTEMIO_OPTIONS='setall'
GRP1.instance_name='GRP1'
GRP2.instance_name='GRP2'
GRP1.instance_number=1
GRP2.instance_number=2
GRP1.local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=dm08db01-vip.sh217.com)(PORT=1527))))'
GRP2.local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=dm08db02-vip.sh217.com)(PORT=1527))))'
*.log_archive_config='NODG_CONFIG'
*.log_archive_dest_1='LOCATION=+RECO_DM08 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=GRP'
*.log_archive_dest_2=''
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.dbf'
*.log_archive_max_processes=30
*.log_checkpoints_to_alert=true
*.max_dump_file_size='20000'
*.open_cursors=2000
*.parallel_execution_message_size=16384
*.parallel_threads_per_cpu=1
*.pga_aggregate_target=24359259340
*.processes=270
*.query_rewrite_enabled='false'
*.recyclebin='off'
*.remote_login_passwordfile='exclusive'
*.remote_os_authent=false
*.replication_dependency_tracking=false
*.service_names='GRP'
*.sessions=540
*.shared_pool_size=18269444505
*.standby_file_management='AUTO'
*.star_transformation_enabled='true'
remote_listener='dm08-scan:1527'
GRP1.thread=1
GRP2.thread=2
GRP1.undo_tablespace='PSAPUNDO'
GRP2.undo_tablespace='PSAPUNDO2'

0.1 create target spfile.
. GRP_11G_env
sqlplus "/ as sysdba"
startup nomount pfile='initGRP1.ora';
create spfile='+DATA_DM08' from pfile='initGRP1.ora';
exit;

0.2
. grid.env
asmcmd
ASMCMD> pwd
+DATA_DM08/GRP/PARAMETERFILE

mkalias '+DATA_DM08/GRP/PARAMETERFILE/spfile.303.938004267' '+DATA_DM08/GRP/spfileGRP'

0.3 edit target pfile to use spfile.
[oracle@dm08db01 dbs]$ cat initGRP1.ora
spfile='+DATA_DM08/GRP/spfileGRP'

0.4 shutdown the DB and nomount it.  
[oracle@dm08db01 dbs]$ . GRP_11G_env
shutdown immediate;
startup nomount;
show parameter spfile;

1. restore target controlfile
rman target /
restore controlfile from '/home/oracle/lyon/backup/ctl_GRP_tfru5il9_1_1_20170302.bak';

2. mount DB.
SQL> alter database mount;

Database altered.

SQL>

3. catalog backup files.
RMAN> catalog start with '/home/oracle/lyon/backup';

list backup set.
RMAN> list backup of database completed after 'sysdate-2';

4. Prepare the restore&recovery script

select 'set newname for datafile '||FILE#||' to '''||replace(NAME,substr(NAME,0,instr(NAME,'/',-1)),'+DATA_DM08/GRP/') ||''';'
from v$datafile;

Edit the script restore_GRP.txt

run
{
sql 'alter session set NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"';
set until time "to_date('03/02/17 23:10:00','mm/dd/yy hh24:mi:ss')";
ALLOCATE CHANNEL ch01 TYPE disk;
ALLOCATE CHANNEL ch02 TYPE disk;
ALLOCATE CHANNEL ch03 TYPE disk;
set newname for datafile 1 to '+DATA_DM08/GRP/system.data1';
set newname for datafile 2 to '+DATA_DM08/GRP/sysaux.data1';
set newname for datafile 3 to '+DATA_DM08/GRP/undo.data1';
set newname for datafile 4 to '+DATA_DM08/GRP/sr3.data1';
set newname for datafile 5 to '+DATA_DM08/GRP/sr3.data2';
set newname for datafile 6 to '+DATA_DM08/GRP/sr3.data3';
set newname for datafile 7 to '+DATA_DM08/GRP/sr3.data4';
set newname for datafile 8 to '+DATA_DM08/GRP/sr3.data5';
set newname for datafile 9 to '+DATA_DM08/GRP/sr3.data6';
set newname for datafile 10 to '+DATA_DM08/GRP/sr3740.data1';
set newname for datafile 11 to '+DATA_DM08/GRP/sr3740.data2';
set newname for datafile 12 to '+DATA_DM08/GRP/sr3740.data3';
set newname for datafile 13 to '+DATA_DM08/GRP/sr3740.data4';
set newname for datafile 14 to '+DATA_DM08/GRP/sr3740.data5';
set newname for datafile 15 to '+DATA_DM08/GRP/sr3usr.data1';
set newname for datafile 16 to '+DATA_DM08/GRP/psapundo2.300.929276573';
set newname for datafile 17 to '+DATA_DM08/GRP/psapsr3.490.923928705';
restore database;
switch datafile all;
recover database;
}

5.
restore&recover DB.

nohup /u01/app/oracle/product/11.2.0/dbhome_1/bin/rman target / cmdfile=/home/oracle/lyon/backup/restore_GRP.txt &

monitoring:
[oracle@dm08db01 backup]$ tail -f nohup.out

6. rename logfile.

select 'alter database rename file '||''''||member||''''||' to '||''''||replace(member,substr(member,0,instr(member,'/',-1)),'+DATA_DM08/GRP/') ||''';'
from v$logfile order by GROUP#;

alter database rename file '+DATA_DM04/grpstdby/log_g11m1.dbf' to '+DATA_DM08/GRP/log_g11m1.dbf';
alter database rename file '+DATA_DM04/grpstdby/log_g12m1.dbf' to '+DATA_DM08/GRP/log_g12m1.dbf';
alter database rename file '+DATA_DM04/grpstdby/log_g13m1.dbf' to '+DATA_DM08/GRP/log_g13m1.dbf';
alter database rename file '+DATA_DM04/grpstdby/log_g14m1.dbf' to '+DATA_DM08/GRP/log_g14m1.dbf';
alter database rename file '+DATA_DM04/grpstdby/onlinelog/group_5.588.929287435' to '+DATA_DM08/GRP/group_5.588.929287435';
alter database rename file '+DATA_DM04/grpstdby/onlinelog/group_6.587.929287435' to '+DATA_DM08/GRP/group_6.587.929287435';
alter database rename file '+DATA_DM04/grpstdby/onlinelog/group_7.586.929287435' to '+DATA_DM08/GRP/group_7.586.929287435';
alter database rename file '+DATA_DM04/grpstdby/onlinelog/group_8.585.929287435' to '+DATA_DM08/GRP/group_8.585.929287435';

7. open upgrade resetlogs the database.
alter database open resetlogs upgrade;

8. CRS registration to 12C CRS.

srvctl add database -d GRP -o /u01/app/oracle/product/11.2.0/dbhome_1
srvctl add instance -d GRP -i GRP1 -n dm08db01
srvctl add instance -d GRP -i GRP2 -n dm08db02
srvctl modify database -d GRP -p '+DATA_DM08/GRP/spfilegrp'
srvctl config database -d GRP -a
srvctl modify database -d GRP -a DATA_DM08,DBFS_DG,RECO_DM08

9.Add the DB to /etc/oratab

9.
alter system reset remote_os_authent scope=spfile;
alter system set cluster_database=true scope=spfile;

10. Test a DB restart.
srvctl stop database -d GRP
srvctl start database -d GRP

11. Upgrade the DB using DBUA.  注意这里要使用12c的oracle home.
[oracle@dm08db01 env]$ . GRP_env
[oracle@dm08db01 env]$ export DISPLAY=10.129.61.157:0.0
[oracle@dm08db01 env]$ dbua

12. 参见DBUA过程。
11gTo12CByDBUA.docx

Reference:
Complete Checklist for Upgrading to Oracle Database 12c Release 1 using DBUA (Doc ID 1516557.1)
Script to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql) (Doc ID 556610.1)
Complete Checklist for Manual Upgrades to Oracle Database 12c Release 1 (12.1) (Doc ID 1503653.1)

11g数据库使用DBUA升级Exadata数据库至12c的更多相关文章

  1. Oracle数据库异机升级

    环境: A机:RHEL5.5 + Oracle 10.2.0.4 B机:RHEL5.5 需求: A机10.2.0.4数据库,在B机升级到11.2.0.4,应用最新PSU补丁程序. 目录: 一. 确认是 ...

  2. Web工程软件升级之数据库升级(一)

    1. 首先检查oracle数据库版本是否正确 (可以使用方法 lsinventory来实现) 2. 检查oracle连接是否成功 3. 解压升级包,放到特定目录 4. 做升级前数据备份,备份主要业务数 ...

  3. 探索Oracle之数据库升级七 11gR2 to 12c 升级完毕后插入PDB

    探索Oracle之数据库升级七 11gR2 to 12c 升级完毕后插入PDB 前言:        从Oracle 12c開始,引入了容器数据库的概念,能够实现数据库插拔操作,例如以下图: 如今我们 ...

  4. phpstudy升级mysql数据库

    因为MySQL支持全文索引的只有5.6以上,而我下的phpstudy只有5.5的版本,在导入数据库的时候因为该数据库的表内有使用全文索引,因此必须升级phpstudy的mysql版本,这里就把自己当升 ...

  5. 【转】使用PowerDesigner的建模创建升级管理数据库

    使用PowerDesigner的建模创建升级管理数据库 PowerDesigner是一种著名的CASE建摸工具,最开始为数据库建模设计,即物理模型(Physical Data Model)用于生成数据 ...

  6. 【Jhipster】升级/修改 数据库结构

    前提 1.jhipster环境,jdk1.8,yeoman,node.js安装环境参考官方wiki,环境问题参考我的博客,如果出现注册中心空白页,请参考博客 2.首先需要启动jhipster基础服务, ...

  7. Django1.6版本的PG数据库定义手动升级

    Django1.7以后添加了migration功能,数据库定义的升级完全实现自动化,之前是通过一个叫south的app来做的.这篇文章谈一下1.6下的手动更新升级. 1.table create和ta ...

  8. c#常用数据库封装再次升级

    c#封装的几类数据库操作: 1.sqilte 2.berkeleydb 3.一般数据库 4.redis 包含其他项目: 1.序列化 2.通信 3.自定义数据库连接池 再次升级内容: 1.新增redis ...

  9. 检测到无法识别的AP,请升级AP数据库

    0x00 事件 原因是公司新增了两个 AP 设备 TL-AP1202i ,似乎是新的 AP 硬件版本比较高,导致 AC 无法识别,控制器 Web 页面给出 检测到无法识别的AP,请升级AP数据库! 的 ...

随机推荐

  1. VMware Workstation 虚拟机的安装及kali Linux 的安装

    要用到虚拟机了,Windows平台的虚拟机现在主要用的是VMWare 和VirtuualBox了.VirtualBox作为一款免费的软件,用着还行.笔者这里主要介绍VMware的安装和使用 . 下载: ...

  2. Failed to open the key database file. c;\\User\\w\\Destop\\SecureCRT_FX6.5.3\\Config\\KnowHosts\\Hostsmap.txt这个问题的解决方法

    1.首先将这段错误在百度翻译上面查询一下,是什么意思,查询结果如下: 打开密钥数据库文件失败.C:\用户\ w \平台\ securecrt_fx6.5.3 \\ \\ \\ hostsmap.txt ...

  3. 简单说 JavaScript中的事件委托(下)

    说明 上次我们说了一些,关于 JavaScript中事件委托的 基础知识,这次我们继续来看. 解释 先来一段代码 <!doctype html> <html lang="e ...

  4. 论JS函数传参时:值传递与引用传递的区别

    什么是值传递:值传递是指在调用函数时将实际参数(实参)复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数. 值传递的总结:也就是说,将实参复制到函数中的这个过程叫值传递 什么是 ...

  5. vue 动态加载图片路径报错解决方法

    最近遇到图片路径加载报错的问题 之前一直都是把图片放到assets的文件下的.总是报错,看到一些文章并且尝试成功了,特意记录下 首先先说明下vue-cli的assets和static的两个文件的区别, ...

  6. ES6中的Promise使用总结

    One.什么是Promise? Promise是异步编程的解决方案,而它本身也就是一个构造函数,比传统的异步解决[回调函数]和[事件]更合理,更强大. Two.Promise有何作用? 作用:解决回调 ...

  7. C语言程序设计(二) C数据类型

    第二章 C数据类型 八进制整数由数字0开头,后跟0~7的数字序列组成. 十六进制整数由数字0加字母x(或X)开头,后跟0~9,a~f(或A~F)的数字序列组成. 整型常量: 默认的int型定义为有符号 ...

  8. js 数组一些简单应用

    把两个数组连接成按从小到大的一个数组例如: var allowVlan = '23-25,45,4-6,67,50-53'; var unTagVlan = '1-5'; 完成时应该是1-6,23-2 ...

  9. 关于Idea中不能使用Scanner在console

    遇到了麻烦,在Idea中使用@Test运行程序时,scanner在控制台无法输入,然后来回折腾... 创建了一个新的类里面含有main方法,可以完美运行scanner: 重新回来,发现还是不行, 创建 ...

  10. 13. Java 获取指定字符串出现的次数

    方式一 /** * @param args */ public static void main(String[] args) { String srcText = "Hello World ...