Oracle数据泵跨大版本迁移数据库
Oracle数据泵跨大版本迁移数据库
- source库导出元数据
- 传输dump和数据文件到target库
- target库导入数据库
- 迁移后的工作
🦈场景:将测试环境中一台Oracle 11g数据库迁移到另一台新搭建的19c数据库中。
🤔分析:由于是跨数据库大版本,无法通过RMAN进行备份恢复来迁移数据库。数据库整体数据量较小,约1T左右,source库有充足的停机时间,因此可以采用数据泵技术来迁移数据库。
- source库版本:11.2.0.4
- target库版本: 19c
- OS版本: RHEL 7.6
- 数据量:1.2T
source库导出元数据
⭐️Tolist-1. 在source库上,修改用户自定义表空间为只读模式,导出数据库系统数据。
设置用户自定义表空间为只读:
--确认用户表空间清单
select tablespace_name,status from dba_tablespaces; --修改用户表空间为只读
ALTER TABLESPACE ts_sysmanage_idx READ ONLY;
ALTER TABLESPACE ts_sysmanage READ ONLY;ALTER TABLESPACE ts_aiia_idx READ ONLY;
ALTER TABLESPACE ts_aiia READ ONLY;ALTER TABLESPACE ts_abde_idx READ ONLY;
ALTER TABLESPACE ts_abde READ ONLY;ALTER TABLESPACE ts_src_idx READ ONLY;
ALTER TABLESPACE ts_src READ ONLY;ALTER TABLESPACE top_user READ ONLY;
ALTER TABLESPACE recon READ ONLY;ALTER TABLESPACE USERS READ ONLY;--确认只读的表空间
select tablespace_name,status from dba_tablespaces; --创建数据泵(如果没有)
select * from dba_directories where directory_name='DUMPDIR';
create directory dumpdir as '/oradata/backup';
导出数据库(导出库是11g时,需添加参数VERSION=12):
export ORACLE_SID=reconexpdp \'/ as sysdba\' directory=dumpdir full=y \
dumpfile=dump_${ORACLE_SID}_full_`date +%F`_%U.dmp \
logfile=dump_${ORACLE_SID}_full_`date +%F`.log \
TRANSPORTABLE=ALWAYS VERSION=12
该过程只会导出元数据和SYSTEM、SYSAUX表空间的数据,因此速度会比较快。
如果收到下面的报错:
ORA-39123: Data Pump transportable tablespace job aborted
ORA-39185: The transportable tablespace failure list isORA-29335: tablespace 'USERS' is not read only
需要把USERS表空间也改为只读。
导出完成后,检查输出信息中需要传输到target库的数据文件清单:
******************************************************************************
...
Master table "SYS"."SYS_EXPORT_FULL_02" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.SYS_EXPORT_FULL_02 is:/oradata/backup/dump_recon_full_2024-02-21_01.dmp
******************************************************************************
Datafiles required for transportable tablespace RECON:/oradata/RECON/datafile/o1_mf_recon_l06cyctt_.dbf/oradata/RECON/datafile/o1_mf_recon_l0682wv2_.dbf
Datafiles required for transportable tablespace TS_abde:/oradata/RECON/datafile/o1_mf_ts_abde_l064h30m_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l39kkof2_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l064h30s_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l064h30t_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l064h310_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l064h313_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l064h322_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l064h325_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l064h32d_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l064h34l_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l0682wrp_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l0682wrr_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l0682wsy_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l0682wt0_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l068s81z_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l068s821_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l068s822_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l068s83b_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l06cycrc_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l06cycrf_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l06cycrh_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l06cycsn_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l06dkx10_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l06dkx12_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l06dkx14_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l06dkx27_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l06dkx39_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l06dkx3d_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l39kkfjh_.dbf/oradata/RECON/datafile/o1_mf_ts_abde_l064h30p_.dbf
Datafiles required for transportable tablespace TS_abde_IDX:/oradata/RECON/datafile/o1_mf_ts_abde__l0682wrm_.dbf/oradata/RECON/datafile/o1_mf_ts_abde__l06cyctp_.dbf/oradata/RECON/datafile/o1_mf_ts_abde__l06cycsp_.dbf/oradata/RECON/datafile/o1_mf_ts_abde__l068s84d_.dbf
Datafiles required for transportable tablespace TS_aiia:/oradata/RECON/datafile/o1_mf_ts_aiia_l06cycvs_.dbf
Datafiles required for transportable tablespace TS_aiia_IDX:/oradata/RECON/datafile/o1_mf_ts_aiia__l0682ww2_.dbf
Datafiles required for transportable tablespace TS_SRC:/oradata/RECON/datafile/o1_mf_ts_src_l064h348_.dbf
Datafiles required for transportable tablespace TS_SRC_IDX:/oradata/RECON/datafile/o1_mf_ts_src_i_l064h33l_.dbf
Datafiles required for transportable tablespace TS_SYSMANAGE:/oradata/RECON/datafile/o1_mf_ts_sysma_l06dkx2b_.dbf/oradata/RECON/datafile/o1_mf_ts_sysma_l064h335_.dbf
Datafiles required for transportable tablespace TS_SYSMANAGE_IDX:/oradata/RECON/datafile/o1_mf_ts_sysma_l068s85g_.dbf
Datafiles required for transportable tablespace USERS:/oradata/RECON/datafile/o1_mf_users_l068s84g_.dbf
Job "SYS"."SYS_EXPORT_FULL_02" successfully completed at Wed Feb 21 09:07:48 2024 elapsed 0 00:01:08
传输dump和数据文件到target库
⭐️Tolist-2. 将导出的dump文件拷贝到target库所在的服务器。
scp /oradata/backup/dump_recon_full_2024-02-21* oracle@x.x.x.x:/oradata/backup
将dump文件拷贝到target库服务器的dumpdir对应的路径下。
⭐️Tolist-3. 将source库上用户自定义表空间对应的数据文件拷贝到target库所在的服务器。
拷贝到target库的数据文件目录下。
cd /oradata/RECON/datafile/
scp *.dbf oracle@x.x.x.x:/oradata/RECON_0/datatfile
不需要拷贝系统表空间、TEMP和UNDO表空间:
$ ls datafile/ | grep sysaux
$ ls datafile/ | grep system
$ ls datafile/ | grep temp
$ ls datafile/ | grep undo
检查source库和target库所在平台的endian是否相同。如果不同的话需要进行表空间转换。
SELECT d.PLATFORM_NAME, ENDIAN_FORMATFROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE dWHERE tp.PLATFORM_NAME = d.PLATFORM_NAME;
如果操作系统是相同的,比如都是Linux RHEL 7.6,那么endian也应该是相同的。
⭐️Tolist-4. 将source库上用户自定义表空间恢复成可读写模式。
ALTER TABLESPACE ts_sysmanage_idx READ WRITE;
ALTER TABLESPACE ts_sysmanage READ WRITE;ALTER TABLESPACE ts_aiia_idx READ WRITE;
ALTER TABLESPACE ts_aiia READ WRITE;ALTER TABLESPACE ts_abde_idx READ WRITE;
ALTER TABLESPACE ts_abde READ WRITE;ALTER TABLESPACE ts_src_idx READ WRITE;
ALTER TABLESPACE ts_src READ WRITE;ALTER TABLESPACE top_user READ WRITE;
ALTER TABLESPACE recon READ WRITE;ALTER TABLESPACE USERS READ WRITE;
target库导入数据库
⭐️Tolist-5. 在target库上导入dump文件。
创建数据泵:
select * from dba_directories where directory_name='DUMPDIR';
create directory dumpdir as '/oradata/backup';
准备一个parfile,写入impdp的参数:
full=Y
directory=dumpdir
dumpfile=dump_recon_full_2024-02-21_01.dmp
logfile=import.log
transport_datafiles=
'/oradata/RECON_0/datafile/o1_mf_recon_l06cyctt_.dbf',
'/oradata/RECON_0/datafile/o1_mf_recon_l0682wv2_.dbf',
...
'/oradata/RECON_)/datafile/o1_mf_users_l068s84g_.dbf'
导入数据库dump文件:
export ORACLE_SID=reconimpdp \'/ as sysdba\' parfile='par.f'
如果收到以下报错:
ORA-39123: Data Pump transportable tablespace job aborted
ORA-29349: tablespace 'USERS' already exists
解决办法如下:
--尝试删除target库的USERS表空间
sys@RECON_0> drop tablespace users;
drop tablespace users
*
ERROR at line 1:
ORA-12919: Can not drop the default permanent tablespace--尝试重命名已有的USERS表空间:
alter tablespace USERS rename to USERS_OLD;
select tablespace_name,status from dba_tablespaces;
重新导入:
impdp \'/ as sysdba\' parfile='par.f'
也可以给impdp加上以下参数来排除不导入USERS表空间:
exclude=tablespace:"IN ('USERS')"
迁移后的工作
导入过程中可能遇到的报错:
ORA-39083: Object type ALTER_PROCEDURE:"ABDE"."P8005030308" failed to create with error:
ORA-04052: error occurred when looking up remote object GP3USER.CALENDRIER_PORTEFEUILLE@GP3DB
ORA-00604: error occurred at recursive SQL level 3
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from GP3DBFailing sql is:ALTER PROCEDURE "ABDE"."P8005030308" COMPILE PLSQL_OPTIMIZE_LEVEL= 2 PLSQL_CODE_TYPE= INTERPRETED PLSQL_DEBUG= TRUE PLSCOPE_SETTINGS= 'IDENTIFIERS:NONE' NLS_LENGTH_SEMANTICS= CHAR REUSE SETTINGS TIMESTAMP '2022-12-06 21:14:17'ORA-39083: Object type ALTER_PROCEDURE:"ABDE"."P8002190101" failed to create with error:
ORA-04052: error occurred when looking up remote object AIIA.AIIA_MASTER_FILE@ABDE
ORA-00604: error occurred at recursive SQL level 3
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
...ORA-39082: Object type PROCEDURE:"ABDE"."P600200161011" created with compilation warningsJob "SYS"."SYS_IMPORT_FULL_01" completed with 68 error(s) at Wed Feb 21 15:38:55 2024 elapsed 0 00:03:03
注:在source库导出数据时,可以排除DBLINK和STATISTICS。
在target导入完成后,应用用户需要重建DBLINK并重新编译报错的存储过程。
Reference
【1】https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sutil/oracle-data-pump-export-utility.html#GUID-BA07401C-6261-4B07-AD2C-06CD0A6E0BE9
【2】https://docs.oracle.com/en/database/oracle/oracle-database/12.2/admin/transporting-data.html#GUID-05DFEA70-FDAF-4FAF-BF26-37225151A7D7
相关文章:
Oracle数据泵跨大版本迁移数据库
Oracle数据泵跨大版本迁移数据库 source库导出元数据传输dump和数据文件到target库target库导入数据库迁移后的工作 🦈场景:将测试环境中一台Oracle 11g数据库迁移到另一台新搭建的19c数据库中。 🤔分析:由于是跨数据库大版本&…...
如何在Win系统从零开始搭建Z-blog网站,并将本地博客发布到公网可访问
文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 想要成为一个合格的技术宅或程序员,自己搭建网站制作网页是绕…...
sawForceDimensionSDK安装,sigma7+ros
force dimension的sdk中没有关于ros,借助开源的sawForceDimensionSDK实现对于数据的封装和可视化,方便后续使用 链接: GitHub - jhu-saw/sawForceDimensionSDK 具体步骤: 安装qt和ros,官网下载Force Dimension SDK …...
全量知识系统问题及SmartChat给出的答复 之3
Q8. 进一步,请展示如何使用这些技术来衡量、评估或适应不可避免的不匹配的知识汤问题的更进一步的全面代码。 为了处理不可避免的不匹配的知识汤问题,我们可以引入一些技术方法来衡量、评估或适应这种情况。 下是一个更进一步的全面代码示例࿰…...
【常用的 SVN 命令及简要示例】
常用的 SVN 命令及简要示例,供您参考: 检出代码: svn checkout https://svn.example.com/project/trunk提交修改: svn commit -m "Commit message"更新代码: svn update创建分支: svn copy https://svn.example.com/project/trunk \https://sv…...
ISP代理是什么?怎么用?
在跨境出海业务中,代理IP对于您的在线任务至关重要,尤其是对于那些运行多个帐户的人来说。为您的帐户选择正确类型的代理对于确保帐户安全非常重要,劣质的IP容易使账号遭受封号风险。IPFoxy的多种代理IP类型应用范围各有侧重,其中…...
微服务之qiankun主项目+子项目搭建
主项目使用history,子项目使用hash模式 1. 下载安装"qiankun": "^2.10.13"2. 手动调用qiankun,使用vue脚手架搭建的项目1. 主项目配置(我使用的是手动调用乾坤,在指定页面显示内容)1. 要使用的页面中引入乾坤…...
双非二本找实习前的准备day2
学习目标: 每天2-3到简单sql(刷完即止),每天复习代码随想录上的题目3道算法(时间充足可以继续),背诵的八股的问题也在这里记录了 今日碎碎念: SQL有些题用到的知识感觉不会出现在…...
快速搭建宠物医院服务小程序的步骤,无需编程经验
如果你是一家宠物医院或者宠物服务机构,想要拥有一款方便用户预约、查询信息的小程序,那么乔拓云网提供的轻应用小程序是你的不二选择。下面将为你详细介绍如何轻松打造宠物医院服务小程序。 1. 进入乔拓云网后台,点击【轻应用小程序】中的【…...
从0开始python学习-53.python中flask创建简单接口
目录 1. 创建一个简单的请求,没有写方法时默认为get 2. 创建一个get请求 3. 创建一个post请求,默认可以使用params和表单传参 4. 带有参数的post请求 1. 创建一个简单的请求,没有写方法时默认为get from flask import Flask, request# 初始化一个flask的对象 ap…...
如何怎麼搭建高效的爬蟲全球代理IP池?
爬蟲技術可以幫助我們從各類網站上獲取大量的數據資訊,但常常會遇到IP被封鎖的問題,這就是我們需要搭建全球代理IP池的原因。那麼,如何搭建一個高效的IP代理池呢? IP代理池指什麼? 首先,我們需要明白什麼是…...
FinalShell连接Linux
远程连接linux 我们使用VMware可以得到Linux虚拟机,但是在/Mware中操作Linux的命令行页面不太方便,主要是: 内容的复制、粘贴跨越VMware不方便 文件的上传、下载跨越VMware不方便 不方便也就是和Linux系统的各类交互,跨越VMwar 到Linux操作系…...
数据分析Pandas专栏---第十一章<Pandas数据聚合与分组(1)>
前言: 数据聚合和分组操作是数据处理过程中不可或缺的一部分。它们允许我们根据特定的条件对数据进行分组,并对每个组进行聚合计算。这对于统计分析、汇总数据以及生成报告和可视化非常有用。无论是市场营销数据分析、销售业绩评估还是金融数据建模,数据…...
【Linux】将程序的输出显示到屏幕,同时写入到log文件
1. 将程序的输出显示到屏幕,同时写入到log文件 nohup python -u main.py 2>&1 | tee -a log.txt &nohup 放在命令的开头,表示不挂起(no hang up),也即,关闭终端或者退出某个账号,进…...
MySQL(基础篇)——函数、约束
一.函数 1.定义 函数是指一段可以直接被另一段程序调用的程序或代码。 2.字符串函数 常见如下: -- 字符串拼接 SELECT CONCAT(hello,MySql) AS CONCAT -- 将字符串全部转为小写 SELECT LOWER(HEllo MYSql) AS LOWER -- 将字符串全部转为大写 SELECT UPPER(Hello…...
【wails】(4):使用wails做桌面应用开发,整合chatgpt-web项目做前端,进行本地开发,web端也可以连调,使用websocket实现
1,视频地址 【wails】(4):使用wails做桌面应用开发,整合chatgpt-web项目做前端,进行本地开发,web端也可以连调,使用websocket实现 2,演示效果 启动先是报500 错误&#…...
八股文打卡day24——数据库(1)
面试题:左连接和右连接的区别? 我的回答: 左连接的SQL语句是:左表 left join 右表 on 连接条件,表示以左表为基础,将左表的的所有记录与右表进行连接。即使右表中没有与左表匹配的记录,左连接…...
robots.txt 文件规则
robots.txt 是一种用于网站根目录的文本文件,其主要目的在于指示网络爬虫(web crawlers)和其他网页机器人(bots)哪些页面可以抓取,以及哪些页面不应该被抓取。可以看作是网站和搜索引擎机器人之间的一个协议…...
电脑WiFi共享给电脑的网口,另一终端可通过该网口进行上网。可用于wireshark抓设备终端的包。
1、点击WinR,弹出命令框,输入services.msc 2、选中“Internet Connection Sharing”这个服务右键,点击属性打开,启动类型选择“自动”,确定保存 3、点击WinR,弹出命令框,输入regedit 4、找到路径…...
字节面试问题
实现三列布局的方法 第一种:可以使用浮动margin 第二种:浮动BFC <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, in…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...
Linux入门(十五)安装java安装tomcat安装dotnet安装mysql
安装java yum install java-17-openjdk-devel查找安装地址 update-alternatives --config java设置环境变量 vi /etc/profile #在文档后面追加 JAVA_HOME"通过查找安装地址命令显示的路径" #注意一定要加$PATH不然路径就只剩下新加的路径了,系统很多命…...
