代码编织梦想

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

因oracle11g数据库官方平台不再负责维护升级,公司总部要求对11g数据迁移至19c数据库中。


一、使用步骤

导出数据

exp userid=账号/密码@源数据库IP:端口/服务名 file=D:/testDB.dmp log=D:/exp.log   direct=y recordlength=65535 buffer=65535 owner=用户

导入数据

imp userid=账号/密码@目标数据库IP:端口/服务名 file=D:/testDB.dmp log=D:/imp.log fromuser=源用户 touser=目标用户 buffer=1024000

导出导入过程中碰到的问题:

1、EXP-00091: Exporting questionable statistics

本地环境与数据库环境字符集不一致,这个应该是属于警告,而非错误。
可能会导致的问题,重新导入新的数据库后,表和字段备注(comment)中文乱码,显示为???,暂未发现数据乱码。
解决方式:在当前导出的命令窗口执行:set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK ,具体字符集网上查询oracle数据库字符集命令。

2、导出包含大数据类型(blob、clob)字段的表无故中断退出

首次为了方便,我使用了免安装版的19c客户端(地址:https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html)对11g数据进行导出,不包含blob、clob类型的表均可导出导入,唯有到了这两种类型的表时,日志停止不动,按下回车键才发现已经中断跳出命令了,无任何报错信息。
网上所说的exp工具的版本必须与源库或者目标库中版本较低的相同其实不太准确,普通数据类型还是可以通过高版本客户端共计导出低版本的数据库数据的,导入到高版本中的数据也没有问题,唯有涉及了一些复杂类型(如:blob、clob),还是通过相同版本客户端导出吧,或者使用借助其它工具单独导出。
解决方式:使用与目标数据库相同版本客户端工具导出。

3、导入包含大数据类型(blob、clob)字段的表空间不一致

导出这两种数据类型是包含表空间前缀的,普通数据类型不涉及。
解决方式:通过nodepad++打开导出文件,批量替换表空间为目标数据库表空间,虽然感觉通过文本方式打开数据库文件有点怪,但改完之后再导入未发现问题。

4、导入过程中某些记录数据超过字段长度

这是因为源数据库与目标数据库字符集不一致导致的,如源数据库是ZHS16GBK ,一个中文占据两个长度,但目标数据库是utf8,一个中文占据三个长度,查询语句如下:select lengthb('中') from dual; 
解决方式:
	(1)修改目标数据库字符集,使之与源数据库相同,建议此方式。
	(2)查询导入日志,记录报错的表及字段长度,修改源数据库超长数据或者加大字段长度,重新导出导入,当涉及数据不多或者表字段列较少可以使用这种方式。
	(3)将varchar类型改为blob或clob,不推荐。

5、导出过程中经常无故停止不动

知识有限,未发现这种情况的原因是什么问题导致的。
按回车键,如果并非表比较大,导出时间较长,那么日志会显示导出行数,同时进行下一个表导出

6、导出效率优化

导出命令使用 direct=y recordlength=65535  与  buffer=65535 具体说明和其它优化方式网上搜索。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_37700673/article/details/130890017

linux安装oracle12c客户端(适用于18c客户端和19c客户端)_看不见阿唱的博客-爱代码爱编程

安装过程目录 linux6及以上版本安装oracle 12C过程(适用于18C和19C)安装前环境准备安装过程复制客户端到其他服务器 linux6及以上版本安装oracle 12C过程(适用于18C和19C

oracle19c xp安装 客户端_dba+开源工具:傻瓜式免安装搞定Centos资源监控-爱代码爱编程

工具研发者介绍 贺春旸,凡普金科爱钱进DBA团队负责人,《MySQL管理之道:性能调优、高可用与监控》第一、二版作者,曾任职于中国移动飞信、安卓机锋网。致力于MariaDB、MongoDB等开源技术的研究,主要负责数据库性能调优、监控和架构设计。 工具下载: https://github.com/hcymysql/os_mo

命令行使用oracle19c_把oracle19c数据导入oracle11g-爱代码爱编程

背景: 基本所有的数据库都是从高版本兼容低版本,也就是可以把数据从低版本的数据库导入高版本,但如果把高版本数据库的数据导入低版本就会发生一些问题。此文章是记录的把数据从oracle19.3版本导入11g中 源数据版本: 19.3.0.0.0 目标数据库版本:11.2.0.4.0 oracle客户端版本:sqldeveloper  19.1 操

oracle10G迁移至19C,教你如何成为Oracle 10g OCP - 第十九章 数据迁移-爱代码爱编程

主要内容 1. exp/imp的原理及使用 2. 如何进行可传输表空间的操作,特别是进行跨平台表空间传输 3. expdp/impdp的原理及使用 4. 如何使用外部表 5. 如何进行可传输数据库的操作 1. exp/imp exp/imp 原理:  它是一个位于客户端的程序(在DB Server及远程客户端都能操作) , 能跨平台进行导

rman迁移win到linux rac,oracle 11g r2 使用rman进行迁移rac到rac-爱代码爱编程

源端 服务器主机名 rac05 rac06 公共IP地址(eth0) 10.15.8.15 10.15.8.16 虚拟IP地址(eth0) 10.15.8.17 10.15.8.18 私有IP地址(eth1) 1.1.1.9 1.1.1.10 ORACLE RAC SID bol1 bol2 集群实例名称 bol SCAN IP 10.1

Oracle 19c导入11g数据库-爱代码爱编程

Oracle 19c导入11g数据库 一、创建pdb (1)使用oracle用户登录到cdb # su – oracle # sqlplus / as sysdba;   附oracle19c基本操作: ①查看容器名称,必须为 cdb$root,需要在根容器下创建pdb 查看: # show con_name 如果不是cdb$root,手

【Oracle】19c数据库向11g迁移数据的问题-爱代码爱编程

19c通过exp命令到处的dmp文件,导到11gR2会报错, Import: Release 11.2.0.4.0 - Production on Tue Jan 11 17:36:14 2022 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

oracle ora-28040报错解决_jnrjian的博客-爱代码爱编程

使用plsql Developer连接时,发现报ora-28040 No matching authentication protocol select username, account_status, default_tablespace, created, password_versions from dba_users; p

oracle 12c 升级 19c_wucao110的博客-爱代码爱编程

服务环境: 操作系统:window service 2012 r2 原有数据库版本:12.2.0.1 采用升级方式:Oracle Database Upgrade Assistant(DBUA)(此方式为图形化安装、可以降低现场升级难度) oracle官网升级指南:https://docs.oracle.com/en/database/orac

【oracle】数据迁移12c->19c完整流程_lu、ck的博客-爱代码爱编程

1 数据导出 exp user/pwd@srcip:1521/orcl file=path/name.dmp owner=name 2 目标库新建用户并赋权限 ①sqlplus / as sysdba // 进入目标库dba账户 ②create user name identified by name default tablespace user

oracle一键迁移mysql工具使用_iverycd的博客-爱代码爱编程

Oracle一键迁移MySQL工具使用 1.简介2.下载3.平台测试4.运行概览5.开箱使用全库迁移示例Linux环境MacOS环境Windows环境 6.比对Oracle以及MySQL表数据量7.迁移

expdp impdp oracle数据迁移-爱代码爱编程

需求描述 项目原来使用的是 eureka+apollo,现要改为nacos ,配置中心数据库使用oracle,nacos 改造较为简单,这里记录下oracle 的迁移 迁移方案 因为数据库的版本是从11g,升级为19c