当前位置: 首页 > news >正文

Oracle 11.2.0.1升级到11.2.0.4并做rman备份异机恢复

下载好数据库升级包,想去Oracle官网下载的,提示没有授权
只能在csdn找付费的了,9块1个,下载了前2个。
注意,总共有7个包,如果Oracle是安装在linux服务器,且无图形界面管理的
只需要第一,第二个包即可(即使博主说必须下载7个,其实也是2个就可以了)

unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip

unzip 命令解压后,如下图
在这里插入图片描述

直接cd database ,执行下面的命令安装数据库:

./runInstaller -silent -debug -force -ignorePrereq DECLINE_SECURITY_UPDATES=true oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/home/oracle/11.2.0.4/oraInventory ORACLE_HOME=/data/oracle/product/11.2.0.4 ORACLE_BASE=/data/oracle/new/ oracle.install.db.InstallEdition=EE oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oracle

这里ORACLE_HOME设置为:/data/oracle/product/11.2.0.4,原来的目录为/data/oracle/product/11.2.0.1

软件升级之后
同步旧库的oradata文件过来(根据实际情况拷贝数据文件),dbs里面的ora文件同步过来

rsync -avl /data/oracle/product/11.2.0.4/oradata/* /data/oracle/product/11.2.0.1/oradata/
rsync -avl /data/oracle/product/11.2.0.4/dbs/* /data/oracle/product/11.2.0.1/dbs/

如果11.2.0.4里面没有oradata目录,新建一个即可

重启一下进程,然后启动数据库:

lsnrctl stop
lsnrctl start

在这里插入图片描述

启动数据库

sqlplus / as sysdba
startup upgrade;

看看数据库是否能正常启动,可以正常启动后

去源库查看undo参数:show parameter undo;
如果我们的库和源库这个参数不一致,恢复后启动会报错,找不到undo文件的

启动数据库到MOUNT; 这个状态设置undo相关参数

shutdown abort;
startup mount;
CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE '/data/oracle/product/11.2.0.4/db_1/oradata/UNDOTBS1.DBF' SIZE 100M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED; 
alter system set undo_tablespace='UNDOTBS1';
alter system set db_recovery_file_dest_size=12G;
COMMIT;
alter database open;
create pfile='/data/oracle/pfile_0630.ora' from spfile;
shutdown abort;

我们这里当前库是UNDOTBS01,源库是UNDOTBS1,所以要把当前库的设置一下,根源库一样才行
这里顺便设置了db_recovery_file_dest_size,show parameter db_recovery_file查看这个的值,原来是2G,太小了,第一次做的时候报错是这个内存不足,所以这里给设置成了12G,免除后患
保存一个ora文件后,关闭数据库。
保存的.ora文件,里面的值必须改为升级后的数据库版本,compatible=‘11.2.0.4.0’(必须改,否则恢复后会提示control文件版本不兼容)

下面开始恢复数据库:

rman target /
startup nomount pfile=/data/oracle/pfile_0630.ora;
restore controlfile from '/data/oracle/tdata_2024-05-30/c-24543xxxxxxx';
alter database mount;

用我们保存后修改过的.ora文件启动,启动数据库到nomount模式
恢复控制文件
启动数据库到mount模式
如果上面的操作都没报错,继续RMAN操作:

catalog start with '/data/oracle/tdata_2024-05-30/';
run{
allocate channel c1 device type disk;
set newname for database to '/data/oracle/product/11.2.0.4/db_1/oradata/%b';
restore database;
switch datafile all;
switch tempfile all;
release channel c1;
}

/data/oracle/tdata_2024-05-30/是我们从源库拷贝过来的rman备份文件
包括了控制文件、数据文件、归档日志这些
在这里插入图片描述
/data/oracle/product/11.2.0.4/db_1/oradata/%b
这里是我们要恢复的数据保存的目标路径,
%b 指定的文件名从目录路径中剥离,只获取数据文件名称.
执行run命令后,可以用这个语句SQL查看进度

SELECT 
(select sysdate from dual) as systime,
SID,SERIAL#,CONTEXT,SOFAR,TOTALWORK,ROUND(SOFAR / TOTALWORK * 100, 2) "%_COMPLETE"FROM gV$SESSION_LONGOPS
WHERE OPNAME LIKE 'RMAN%' AND OPNAME NOT LIKE '%aggregate%' ANDTOTALWORK != 0 AND SOFAR <> TOTALWORKorder by 7 desc;

上面的命令跑完之后,恢复数据库

recover database;

这里会有一个报错,可以这样处理,也有说不处理也没关系的
在这里插入图片描述
(最后验证的时候,指定到某个时间点的话,有些表的数据行数跟源库不一致,根这个报错有关系吗?还没确定是业务导致的还是这个报错导致的)
然后用resetlogs参数打开数据库

alter database open resetlogs;

恢复完成。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何用Java写一个整理Java方法调用关系网络的程序
  • 银河麒麟V10 SP1 审计工具 auditd更新
  • 在linux系统centos上面安装php7gmp扩展
  • 【算法专题】双指针算法
  • rider使用libman
  • k8s-第六节-数据持久化
  • JVM(Java虚拟机)详解(JVM 内存模型、堆、GC、直接内存、性能调优)
  • 51单片机基础10——串口实验
  • web前端开发——开发环境和基本知识
  • ROS 2官方文档(基于humble版本)学习笔记(四)
  • leetcode-每日一题
  • Vue 路由传参 query方法 bug 记录
  • 【Linux】什么是进程间通信?方式有哪些?本质理解?
  • 文件、文本阅读与重定向、路径与理解指令——linux指令学习(一)
  • Docker:一、安装与卸载、配置阿里云加速器(Ubuntu)
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Angular 响应式表单 基础例子
  • CSS中外联样式表代表的含义
  • Docker入门(二) - Dockerfile
  • dva中组件的懒加载
  • JS变量作用域
  • MySQL数据库运维之数据恢复
  • PHP 7 修改了什么呢 -- 2
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • REST架构的思考
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 普通函数和构造函数的区别
  • 人脸识别最新开发经验demo
  • 手机端车牌号码键盘的vue组件
  • 数组的操作
  • 思考 CSS 架构
  • 我的业余项目总结
  • 写代码的正确姿势
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 2017年360最后一道编程题
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​比特币大跌的 2 个原因
  • #includecmath
  • #LLM入门|Prompt#3.3_存储_Memory
  • $(function(){})与(function($){....})(jQuery)的区别
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (done) 声音信号处理基础知识(2) (重点知识:pitch)(Sound Waveforms)
  • (LLM) 很笨
  • (python)数据结构---字典
  • (TOJ2804)Even? Odd?
  • (二)学习JVM —— 垃圾回收机制
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (轉貼) UML中文FAQ (OO) (UML)
  • .aanva
  • .net framework4与其client profile版本的区别