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…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...
书籍“之“字形打印矩阵(8)0609
题目 给定一个矩阵matrix,按照"之"字形的方式打印这个矩阵,例如: 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为:1,…...
对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...
leetcode73-矩阵置零
leetcode 73 思路 记录 0 元素的位置:遍历整个矩阵,找出所有值为 0 的元素,并将它们的坐标记录在数组zeroPosition中置零操作:遍历记录的所有 0 元素位置,将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...
