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

Oracle Dataguard跨版本数据迁移(11.2.0.4~19.13.0.0)

一、前期准备

按照DG部署步骤修改DG参数、添加standby redo log、配置静态监听、配置tnsnames文件、备端修改参数文件、创建所需目录等配置好部署环境,这里不再赘述,跟正常部署DG无区别。
环境配置好后,进行后面的操作。

二、使用RMAN备份复制主端数据库

2.1.主端备份数据库

RMAN> run {
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 0 format '/home/oracle/orcl_full_%U' database;
backup format '/home/oracle/orcl_full_stanctl_%U' current controlfile for standby;
release channel c1;
release channel c2;
}

2.2.备端启动至nomount

SQL> create spfile from pfile='/home/oracle/pfile.ora';
SQL> startup nomount

2.3.恢复控制文件

RMAN> restore standby controlfile from '/home/oracle/orcl_full_stanctl_061vp2sb_1_1';
RMAN> alter database mount;

2.4.恢复数据文件

RMAN> catalog backuppiece '/home/oracle/orcl_full_021vp2qu_1_1';
RMAN> catalog backuppiece '/home/oracle/orcl_full_031vp2qu_1_1';
RMAN> catalog backuppiece '/home/oracle/orcl_full_041vp2s7_1_1';
RMAN> catalog backuppiece '/home/oracle/orcl_full_051vp2s9_1_1';
RMAN> run {
allocate channel d1 type disk;
allocate channel d2 type disk;
restore database;
recover database;
release channel d1;
release channel d2;
}

三、只能mount同步,无法只读打开

3.1.备库开启同步

SQL> alter database recover managed standby database using current logfile disconnect from session;

3.2.验证是否同步

## 备库查询MRP0恢复进程应用块数
SQL> SELECT PROCESS,STATUS,THREAD#,SEQUENCE#,BLOCK#,BLOCKS,DELAY_MINS FROM V$MANAGED_STANDBY;PROCESS    STATUS     THREAD#  SEQUENCE# BLOCK# BLOCKS DELAY_MINS
------- ------------ --------- --------- ------ ------ ----------
DGRD    ALLOCATED        0        0        0      0        0
ARCH    CLOSING          1        34       1     342       0
DGRD    ALLOCATED        0        0        0      0        0
ARCH    CONNECTED        0        0        0      0        0
ARCH    CONNECTED        0        0        0      0        0
ARCH    CONNECTED        0        0        0      0        0
RFS     IDLE             1        0        0      0        0
RFS     IDLE             0        0        0      0        0
RFS     IDLE             1        35      23      1        0
MRP0    APPLYING_LOG     1        35      23    102400     010 rows selected.SQL> / PROCESS   STATUS    THREAD# SEQUENCE# BLOCK# BLOCKS DELAY_MINS
------- ----------- ------- --------- ------ ------ ----------
DGRD    ALLOCATED      0       0        0      0        0
ARCH    CLOSING        1       34       1     342       0
DGRD    ALLOCATED      0       0        0      0        0
ARCH    CONNECTED      0       0        0      0        0
ARCH    CONNECTED      0       0        0      0        0
ARCH    CONNECTED      0       0        0      0        0
RFS     IDLE           1       0        0      0        0
RFS     IDLE           0       0        0      0        0
RFS     IDLE           1       35       27     1        0
MRP0    APPLYING_LOG   1       35       27   102400     010 rows selected.SQL> /PROCESS   STATUS   THREAD# SEQUENCE# BLOCK# BLOCKS DELAY_MINS
------- ---------- ------- --------- ------ ------ ----------
DGRD    ALLOCATED     0       0        0      0        0
ARCH    CLOSING       1       34       1     342       0
DGRD    ALLOCATED     0       0        0      0        0
ARCH    CONNECTED     0       0        0      0        0
ARCH    CONNECTED     0       0        0      0        0
ARCH    CONNECTED     0       0        0      0        0
RFS     IDLE          1       0        0      0        0
RFS     IDLE          0       0        0      0        0
RFS     IDLE          1       35      28      1        0
MRP0    APPLYING_LOG  1       35      28    102400     010 rows selected.## 主库查询归档日志序列号
SQL> select max(sequence#),thread# from v$archived_log where RESETLOGS_CHANGE# = (SELECT RESETLOGS_CHANGE# FROM V$DATABASE_INCARNATION WHERE STATUS = 'CURRENT') GROUP BY THREAD#;MAX(SEQUENCE#) THREAD#
-------------- -------34           1## 备端查询归档日志序列号
SQL> select max(sequence#),thread# from v$archived_log where applied='YES' and RESETLOGS_CHANGE# = (SELECT RESETLOGS_CHANGE# FROM V$DATABASE_INCARNATION WHERE STATUS = 'CURRENT') GROUP BY THREAD#;MAX(SEQUENCE#) THREAD#
-------------- -------33           1## 检查alert日志是否正常
2023-06-27T16:44:48.145275+08:00
MRP0 (PID:24798): Media Recovery Waiting for T-1.S-36
2023-06-27T16:44:48.243077+08:00rfs (PID:24785): Selected LNO:4 for T-1.S-36 dbid 1668400254 branch 1140619521
2023-06-27T16:44:48.243519+08:00
ARC1 (PID:24769): Archived Log entry 5 added for T-1.S-35 ID 0x6371a37e LAD:1
2023-06-27T16:44:49.181453+08:00
Recovery of Online Redo Log: Thread 1 Group 4 Seq 36 Reading mem 0Mem# 0: /oradata/orcldg/standby_redo04.log## 备库应用是否存在延迟
SQL> select name,value from v$dataguard_stats;NAME                     VALUE
--------------------- ------------
transport lag         +00 00:00:00
apply lag             +00 00:00:00
apply finish time
estimated startup time     5

四、主库创建测试表,备库升级后验证数据是否同步

SQL> create user test identified by admin;User created.SQL> grant create session,resource to test;Grant succeeded.SQL> conn test/adminConnected.SQL> create table t1 (id number);Table created.SQL> insert into t1 values(1);1 row created.SQL> commit;Commit complete.SQL> select * from t1;  ID------1

五、备库进行故障转移

由于跨版本无法进行正常的主备切换,故采用故障转移的方式,将备库改为主库,进行升级操作。

## 备库
SQL> alter database recover managed standby database finish;
SQL> alter database commit to switchover to primary;## 升级模式打开数据库
SQL> shutdown immediate
SQL> startup upgrade

六、开始升级

## 切换后的新主库执行升级脚本
cd $ORACLE_HOME/bin
./dbupgrade
或
$ORACLE_HOME/perl/bin/perl catctl.pl catupgrd.sql

七、升级后打开数据库,验证同步数据

## 启动数据库
SQL> startup
SQL> conn test/adminConnected.SQL> select * from t1;ID
-----1升级后,数据正常,所以此方式可以作为升级迁移数据的一种方式。

八、部署过程中遇到的问题

8.1.不能使用rman duplicate方式复制主端数据库

因为主备端RMAN版本不一致造成此方式无法使用,报错现象如下:

[oracle@dg-19 ~]$ rman target sys/admin@orcl auxiliary sys/admin@orcldg nocatalogRecovery Manager: Release 19.0.0.0.0 - Production on Tue Jun 27 15:59:11 2023
Version 19.13.0.0.0Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-06429: TARGET database is not compatible with this version of RMAN
RMAN-06618: RMAN client and database version mismatch; indicated database version is 11.2.0.4

8.2.升级后用户无法登录的问题

## 错误现象:
SQL> conn test/adminERROR:ORA-01017: invalid username/password; logon denied## 原因
Oracle 19c SEC_CASE_SENSITIVE_LOGON参数对用户登录的影响:
(1)设置为FALSE,关闭密码大小写限制,会造成用户无法登录。
(2)设置为TRUE,开启密码大小写限制,用户登录正常。## 解决方法
(1)alter system set sec_case_sensitive_logon=true;
(2)如Oracle 19c 需要开启关闭密码大小写限制。需要在sqlnet.ora 文件添加参数:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8。然后重新设置用户密码:
SQL> alter user test identified by admin;
SQL> conn test/adminConnected.SQL> conn test/ADMINConnected.也可登录成功。

相关文章:

Oracle Dataguard跨版本数据迁移(11.2.0.4~19.13.0.0)

一、前期准备 按照DG部署步骤修改DG参数、添加standby redo log、配置静态监听、配置tnsnames文件、备端修改参数文件、创建所需目录等配置好部署环境,这里不再赘述,跟正常部署DG无区别。 环境配置好后,进行后面的操作。 二、使用RMAN备份复…...

零基础Linux_14(基础IO_文件)缓冲区+文件系统inode等

目录 1. 缓冲区 1.1 缓冲区的存在 1.2 缓冲区的刷新策略 1.3 模拟C标准库中的文件操作 完整代码及验证: 1.4 重看缓冲区 1.5 stdout和stderr的区别 2. 文件系统 2.1 磁盘的物理结构CHS等 2.2 磁盘的抽象结构LBA等 2.3 文件管理inode等 2.4 对文件的操作…...

Vue中的router路由的介绍(快速入门)

路由的介绍 文章目录 路由的介绍1、VueRouter的介绍2、VueRouter的使用(52)2.1、5个基础步骤(固定)2.2、两个核心步骤 3、组件存放的目录(组件分类) 生活中的路由:设备和ip的映射关系(路由器) V…...

ESP-07S进行TCP 通信测试

一,TCP Server 为 AP 模式,TCP Client 为 Station 模式。 这里电脑pc作为TCP Server,ESP-07S作为TCP Client 。 二,电脑端配置。 1,开启热点。 2,转到“设置”,编辑热点信息。 3,关闭…...

如何找到新媒体矩阵中存在的问题?

随着数字媒体的发展,企业的新媒体矩阵已成为品牌推广和营销的重要手段之一。 然而,很多企业在搭建新媒体矩阵的过程中,往往会忽略一些问题,导致矩阵发展存在潜在风险,影响整个矩阵运营效果。 因此,找到目前…...

MongoDB-基本常用命令

基本常用命令 MongoDB常用命令a) 案例需求b) 数据库操作b.1) 选择和创建数据库b.2) 删除数据库 c) 集合操作c.1) 集合的显示创建c.2) 集合的隐式创建c.3) 集合的删除 d) 文档基本CRUDd.1) 文档的插入(1) 单个文档的插入(2) 批量插入 d.2) 文档的基本查询(1) 查询所有(2) 投影查…...

Linux 常用systemctl service 脚本

文章目录 1. jar 包部署 service 脚本2. nginx 服务安装 脚本3.artemis 服务安装脚本 1. jar 包部署 service 脚本 默认jdk 执行: [Service] Typesimple Userroot WorkingDirectory/opt/app/webserver ExecStart/usr/bin/java -Xms512m -Xss256k -jar /opt/app/we…...

flask-sqlalchemy实现读写分离完整版

1. 依赖版本: alembic==1.6.5 click==8.0.1 colorama==0.4.4 Flask==1.1.2 Flask-Migrate==2.7.0 Flask-Script==2.0.6 Flask-SQLAlchemy==2.4.4 greenlet==1.1.0 itsdangerous==2.0.1 Jinja2==3.0.1 Mako==1.1.4 MarkupSafe==2.0.1 protobuf==3.17.3 PyMySQL==1.0.2 python-…...

windows下在cmd和git bash中执行bash download.sh失败

cmd报错信息: 解决办法: win64-wget-1.21.4 安装软件wget,如下这是64位的包,解压后,下面有个wget.exe,拷贝到C:\Windows\System32、 然后打开cmd,执行wget -V 如上,有版本信息就O…...

rust流程控制

一、分支 (一)if 1.if 语法格式 if boolean_expression { }例子 fn main(){let num:i32 5;if num > 0 {println!("正数");} }条件表达式不需要用小括号。 条件表达式必须是bool类型。 2.if else 语法格式 if boolean_expression { } …...

虚拟机软件Parallels Desktop 19 mac功能介绍

Parallels Desktop 19 mac是一款虚拟机软件,它允许用户在Mac电脑上同时运行Windows、Linux和其他操作系统。Parallels Desktop提供了直观易用的界面,使用户可以轻松创建、配置和管理虚拟机。 PD19虚拟机软件具有快速启动和关闭虚拟机的能力,让…...

在工业机器视觉领域中应用钡铼技术有限公司的EtherCAT网关

钡铼技术有限公司作为一家专注于业物联网关、工业智能网关、边缘计算网关、ARM嵌入式工业计算机、PLC远程采集网关、Modbus转MQTT网关、OPC UA网关、BACnet网关路由器、Lora网关、工业4G边缘路由器、4G无线远程数据采集模块、4G DTU RTU、以太网远程IO模块、工业总线分布式I/O模…...

ssh指定的密钥协商方式以及Ansible的hosts文件修改密钥协商方式

一、首先你要知道用什么加密协商。 [WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details 10.10.2.190 | UNREACHABLE! > {"changed": false,"msg": "Failed to connect to the host via ssh: U…...

NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器

自然语言处理是机器学习和人工智能的一个迷人领域。这篇博客文章启动了一个具体的 NLP 项目,涉及使用维基百科文章进行聚类、分类和知识提取。灵感和一般方法源自《Applied Text Analysis with Python》一书。 一、说明 该文是系列文章,揭示如何对爬取文…...

QT sqlite的简单用法

1、相关头文件 #include <QSqlDatabase> #include <QSqlError> #include <QSqlQuery> #include <QSqlRecord> #include <QSqlIndex> #include <QSqlField> #include <QFile> #include <QDebug> 2、数据库对象 QSqlDatabas…...

大模型部署手记(12)LLaMa2+Chinese-LLaMA-Plus-2-7B+Windows+text-gen+中文对话

1.简介&#xff1a; 组织机构&#xff1a;Meta&#xff08;Facebook&#xff09; 代码仓&#xff1a;https://github.com/facebookresearch/llama 模型&#xff1a;chinese-alpaca-2-7b-hf 下载&#xff1a;使用百度网盘下载 硬件环境&#xff1a;暗影精灵7Plus Windows版…...

C#导出本机Win32native dll

C# 使用 "3f/DllExport" 工具导出C风格的本机函数 [文 / 张赐荣] 首先&#xff0c;让我们来了解一下什么是争渡读屏软件&#xff0c;以及什么是争渡文本预处理API。争渡读屏软件是一款屏幕朗读软件&#xff0c;用于协助视力障碍人士操作电脑。 争渡文本预处理API是一…...

express-generator快速构建node后端项目

express-generator是express官方团队开发者准备的一个快速生成工具&#xff0c;可以非常快速的生成一个基于express开发的框架基础应用。 npm安装 npm install express-generator -g初始化应用 express my_node_test 创建了一个名为 my_node_test 的express骨架项目通过 Exp…...

视频监控系统/视频汇聚平台EasyCVR如何反向代理进行后端保活?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…...

金融信创黄金三年:小程序生态+跨端技术框架构建

小程序应用场景生态的发展&#xff0c;受益于开源技术的发展&#xff0c;以及响应快速开发的实际业务需求&#xff0c;一些跨端框架如&#xff1a;Electron、wxPython、FinClip、Tauri、Flutter等发展也非常迅速&#xff0c;小程序生态跨端技术框架&#xff0c;不仅能满足自有超…...

这短短 6 行代码你能数出几个bug?

前言&#xff1a;本文仅仅只是分享笔者一年前见到的诡异代码&#xff0c;大家可以看看乐子&#xff0c;随便数一数一共有多少个bug&#xff0c;这数bug多少还是要点水平的 在初学编程的时候&#xff0c;写的第一个代码大多都是 hello world&#xff0c;可是就算是 hello world…...

【毕设选题】深度学习 机器视觉 车位识别车道线检测 - python opencv

0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过…...

不同数据类型在单片机内存中占多少字节?

文章目录 前言一、不同编译器二、C51* 指针型 三、sizeof结构体联合体 前言 在C语言中&#xff0c;数据类型指的是用于声明不同类型的变量或者函数的一个广泛的系统。变量的类型决定了变量存储占用的空间 一、不同编译器 类型16位编译器大小32位编译器大小64位编译器大小char…...

安卓LinearLayout让控件居中的办法

在控件属性上&#xff0c;是处理不了的。必须是在LinearLayout处理&#xff1a; 垂直居中 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width&…...

uniapp下拉刷新

为什么要使用uniapp的下拉刷新呢 跨平台兼容性&#xff1a; Uniapp 允许你一次编写代码&#xff0c;然后在多个平台&#xff08;如微信小程序、H5、iOS 和 Android 等&#xff09;上运行。使用 Uniapp 的下拉刷新功能&#xff0c;可以确保在不同平台上都能提供一致的用户体验&a…...

【工作记录】css3 grid布局笔记

概述 Grid 布局即网格布局&#xff0c;是一种新的 CSS 布局模型&#xff0c;比较擅长将一个页面划分为几个主要区域&#xff0c;以及定义这些区域的大小、位置、层次等关系。号称是最强大的的 CSS 布局方案&#xff0c;是目前唯一一种 CSS 二维布局 参数配置说明 属性说明可…...

区块链技术-比特币数据结构

背景 随着近几年区块链技术的迅速发展&#xff0c;越来越多的行业正在将区块链技术应用到实际中去。例如&#xff0c;金融、物流、交易所等行业都开始尝试使用区块链技术来替代传统技术。伴随着区块链迅速发展的期间&#xff0c;诞生了比特币&#xff08;BTC&#xff09;、以太…...

SpringBoot结合dev-tool 实现IDEA项目热部署

什么是热部署&#xff1f; 应用正在运行的时候升级功能, 不需要重新启动应用对于Java应用程序来说, 热部署就是在运行时更新Java类文件 通俗的来讲&#xff0c;应用在运行状态下&#xff0c;修改项目源码后&#xff0c;不用重启应用&#xff0c;会把编译的内容部署到服务器上…...

flink中使用外部定时器实现定时刷新

背景&#xff1a; 我们经常会使用到比如数据库中的配置表信息&#xff0c;而我们不希望每次都去查询db&#xff0c;那么我们就想定时把db配置表的数据定时加载到flink的本地内存中&#xff0c;那么如何实现呢&#xff1f; 外部定时器定时加载实现 1.在open函数中进行定时器的…...

Spring Cloud Pipelines 入门实践

文章目录 1. 前言2. Spring Cloud Pipelines 是做什么的2.1. 预定义的流程2.2. 集成测试和契约测试2.3.部署策略 4. Spring Cloud Pipelines的使用示例4.1. 创建一个Spring Boot应用4.2. 将代码托管到GitHub仓库4.3. 添加Spring Cloud Pipelines依赖4.4. 配置Spring Cloud Pipe…...