记录一次将dmp文件导入oracle数据库(本地导线上),所遇到的问题及解决方法

Oracle 导入导出 dmp 数据文件实战 DMP文件操作指南摘要 DMP文件是Oracle数据库专用的二进制文件,用于数据备份、迁移和恢复。通过expdp/impdp或exp/imp工具生成,包含元数据和实际数据。导出时可通过并行处理、压缩和加密优化性能及安全性;导入时支持用户重映射、表空间调整等参数。关键操作包括全库/用户/表三种导入模式,并需注意字符集兼容性。高级场景可采用增量同步(按条件筛选变更数据)或分段导出提升效率,同时结合日志记录确保流程可追溯。传统工具(exp/imp)适用于低版本,而数据泵工具(expdp/impdp)提供更强大的功 阅读详情
AI摘要

本文介绍了如何在已安装Oracle数据库的环境中安装InstantClient以进行数据导入操作。通过Navicat连接Oracle数据库,创建表空间、用户并分配权限。详细步骤包括创建表空间、增加数据文件、创建用户并分配CONNECT、RESOURCE、DBA角色。随后,使用IMP命令导入DMP文件,并解决导入过程中可能出现的统计信息、权限和表空间不足的问题。还涵盖了表空间迁移的方法,包括离线、修改数据文件路径、在线等步骤。

安装oracle环境(instantclient)

因线上已安装oracle完成版数据库,则本地只需安装instantclient即可进行导入数据操作
具体安装步骤请参考:https://blog.youkuaiyun.com/admin_web/article/details/125103786

使用navicat工具查看oracle数据

打开navicat工具后在菜单栏中选择 文件->新建连接->oracle,输入连接的地址、端口、服务名、用户名密码。
服务名是安装oracle时设置的,默认是ORCL
在这里插入图片描述
如需使用sysdba用户选择高级后将角色选择为sysdba
在这里插入图片描述

准备开始导入工作

1.登录到线上服务器oracle数据库,使用sqlplus / as sysdba超管角色进入后新建表空间、用户以及分配给用户分配权限
创建表空间

(表空间每次自增200m)

create tablespace MY_TAB datafile 'D:\oracle\oradata\DANTE_TEMP.DBF' size 4096M AUTOEXTEND ON NEXT 200M

给同一个表空间配置多个存储文件

-- 根据需要添加一定数量的数据文件
alter tablespace MY_TAB add datafile 'D:\oracle\oradata\DANTE_TEMP2.dbf' size 320m autoextend ON next 100 m maxsize unlimited;
alter tablespace MY_TAB add datafile 'D:\oracle\oradata\DANTE_TEMP3.dbf' size 300m autoextend ON next 100 m maxsize unlimited;
alter tablespace MY_TAB add datafile 'D:\oracle\oradata\DANTE_TEMP4.dbf' size 300m autoextend ON next 100 m maxsize unlimited;

创建用户并为其分配表空间

create user mytest(用户名) identified by 123456(密码) default tablespace MY_TAB(表空间名);

给用户分配权限

GRANT CONNECT,RESOURCE,DBA TO c##mytest;

Connect 角色
是授予最终用户的典型权利,最基本的权利,能够连接到Oracle数据库中,并在对其他用户的表有访问权限时,做SELECT、UPDATE、INSERTT等操作。

Alter session–修改会话;

Create cluster–建立聚簇;

Create database link–建立数据库连接;

Create sequence–建立序列;

Create session–建立会话;

Create synonym–建立同义词;

Create view–建立视图。

Resoure角色
是授予开发人员的,能在自己的方案中创建表、序列、视图等。

Create cluster–建立聚簇;

Create procedure–建立过程;

Create sequence—建立序列;

Create table–建表;

Create trigger–建立促发器;

Create type–建立类型。

DBA角色
是授予系统管理员的,拥有该角色的用户就能成为系统管理员了,它拥有所有的系统权限。

2.使用imp命令将本地dmp文件导入至线上oracle中
使用imp -help命令可查看所有参数
imp 用户名/密码@ip地址:端口号/服务名 file=需导入的dmp文件 full=y indexes=N log=日志 statistics=none

full=y :导入文件全部数据,
indexes=N :是否导入表索引 N否 Y是,默认Y
rows=N : 导入数据行 (Y) ,N只导入表结构
statistics=none : 不导入或者重新统计数据库统计信息
DATA_ONLY=Y :只导入数据

imp mytest/123456@10.4.xx.xxx:1521/ORCL file=D:\upload_file\orcl1.dmp full=y indexes=N log=D:\upload_file\orcl.log statistics=none

只导出表机构

exp mytest/123456@127.0.0.1/orcl file=D:\tablejg.sql rows=n  //导出表结构
exp mytest/123456@127.0.0.1/orcl file=D:\a.dmp tables=user // 导出指定的表

使用bat批量将dmp文件导入至服务器
如图:将需导入的dmp文件放置同一目录中
在这里插入图片描述
a.bat

@echo off

setlocal EnableDelayedExpansion
set localPath=./
set host=xx.x.xx.xxx
set user=mytest
set pwd=123456
set num=0

for /r %localPath% %%i in (*.dmp) do (
    set /a num+=1
    imp %user%/%pwd%@%host%/ORCL file=%%i full=y statistics=none indexes=N DATA_ONLY=Y log=%localPath%\!num!_s2.log
)


pause

导入时所遇到的问题

问题------------

在这里插入图片描述
原因分析:经过查询,发现这个错误发生的原因在于数据库统计信息。但是更深层次的原因,还不清楚。暂时理解的是,由于默认的导入策略是statistics=always,这个策略要求的是一定要导入原先的数据库统计信息,这个策略,还是觉得有点问题,数据库统计信息,由于是使用了新的数据库版本,原先的统计信息,基本上80%左右的统计信息应该是不正确的,所以为什么导入策略还要默认是statistics=always呢。所以,我的决定是不导入或者重新统计数据库统计信息。
参考:https://blog.youkuaiyun.com/weixin_35986494/article/details/116441481
解决方法:在导入是加上statistics=none

问题------------
在这里插入图片描述
原因分析:可能是由于权限或者导入的dmp文件中的表字段和服务器上的表字段不一致(我所遇到的是后者)
解决方法:
1.统一需要的表字段后重新导出
2.将缺少的字段追加到导入的数据表中,如上图:将"DATASRC"字段追加到导入的表中

问题------------
IMP-00058: ORACLE error 1659 encountered
ORA-01659: unable to allocate MINEXTENTS beyond 16 in tablespace OLDAGE6110
在这里插入图片描述
原因分析:表空间不足/当前文件所在盘符空间不足
解决方法:
如果是表空间不足使用以下语句添加

alter tablespace JNINFO add datafile '/opt/oracle/oradata/orcl/JNINFO02.dbf' size 32000m autoextend ON next 100 m maxsize unlimited;

如果是盘符空间不足,扩大盘符空间或者将表空间迁移至空间充足的盘符中
表空间前移详细参考:https://blog.youkuaiyun.com/weixin_41607523/article/details/122414853

一、数据库本地迁移
1.登录对应数据库
SQL>sqlplus / as sysdba

2.确认表空间以及要迁移的空间
[root@inlinkdb1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.7G 0 3.7G 0% /dev
tmpfs 3.7G 0 3.7G 0% /dev/shm
tmpfs 3.7G 648K 3.7G 1% /run
tmpfs 3.7G 0 3.7G 0% /sys/fs/cgroup
/dev/vda1 40G 12G 26G 33% /
tmpfs 756M 0 756M 0% /run/user/0
tmpfs 756M 0 756M 0% /run/user/1000
/dev/vdb1 689G 639G 16G 98% /oracle
/dev/vdb2 319G 13G 291G 5% /oracle2
如上所示/oracle目录已达到98%,现实现目标将/oracle目录的表空间迁移到/oracle2下

SQL> @/home/oracle/tbs

TABLESPACE_NAME SUM_SPACE(M) SUM_BLOCKS USED_SPACE(M) USED_RATE(%) FREE_SPACE(M)


SYSTEM 350 44800 340.06 97.16 9.94
SYSAUX 2350 300800 2228.06 94.81 121.94
DATA 10240 1310720 8833.75 86.27 1406.25
USERS 35071.25 4489120 27328.37 77.92 7742.88
WB_
*** 10240 1310720 7058.37 68.93 3181.63
KETTLE_DATA 61440 7864320 29705.06 48.35 31734.94
UNDOTBS1 5770 738560 2400.81 41.61 3369.19
flexsche_data 20480 2621440 6667.19 32.55 13812.81
****_DATA 1024 131072 144.87 14.15 879.13
****_DATA 3244 415232 325.19 10.02 2918.81
***_DATE 1024 131072 13.5 1.32 1010.5

TABLESPACE_NAME SUM_SPACE(M) SUM_BLOCKS USED_SPACE(M) USED_RATE(%) FREE_SPACE(M)


****_DATA 1024 131072 9.87 .96 1014.13
****_DATA 10240 1310720 4.12 .04 10235.88
****_TEMP 1024 131072 0
****DATA_TEMP 1024 131072 0
TEMP 795 101760 0
TEMP 1024 131072 0
WB
_TEMP 1024 131072 0
****_TEMP 1024 131072 0
****_TEMP 1024 131072 0
****_TEMP 1024 131072 0
KETTLE_TEMP 3072 393216 0

22 rows selected.

SQL>
3.确认要迁移表空间位置
示例:USERS

SQL> select FILE_NAME,FILE_ID,TABLESPACE_NAME from dba_data_files where tablespace_name =‘USERS’;

FILE_NAME FILE_ID TABLESPACE_NAME


/oracle/app/oracle/oradata//users01.dbf 6 USERS
/oracle/app/oracle/oradata/
/users02.dbf 7 USERS
4.将表空间状态设为offline
SQL>alter tablespace USERS offline;

Tablespace altered.
5.拷贝dbf数据文件到新路径
注:USERS现有所有dbf文件都要拷贝哦

[oracle@***db1 ~]$ cp /oracle/app/oracle/oradata//users01.dbf /oracle2/datafile/
[oracle@*db1 ~]$ cp /oracle/app/oracle/oradata//users02.dbf /oracle2/datafile/
6.数据库中修改表空间指向地址
SQL>alter database rename file '/oracle/app/oracle/oradata//users01.dbf’ to '/oracle2/datafile/
/users01.dbf’;

Database altered.
SQL>alter database rename file ‘/oracle/app/oracle/oradata//users02.dbf’ to '/oracle2/datafile/**/users02.dbf’;

Database altered.
7.表空间状态设为online
SQL> alter tablespace USERS online;

Tablespace altered.
8.确认变更结果
SQL> select FILE_NAME,FILE_ID,TABLESPACE_NAME from dba_data_files where tablespace_name =‘USERS’;

FILE_NAME FILE_ID TABLESPACE_NAME


/oracle2/datafile//users01.dbf 6 USERS
/oracle2/datafile/
/users02.dbf 7 USERS
9.原路径位置删除dbf数据文件
[oracle@*****db1 ~]$ rm -rf /oracle/app/oracle/oradata//users01.dbf
[oracle@*****db1 ~]$ rm -rf /oracle/app/oracle/oradata/
/users02.dbf

【Oracle】Oracle导入导出dmp文件 在工作中,经常会遇到需要备份库,库表迁移的场景,对于oracle会使用dmp文件进行数据迁移和备份。基于一次迁移数据库的经历,整理记录dmp相关知识点,供后续工作参考使用。 阅读详情

相关推荐

如何将dmp文件快速导入至oracle数据库

将我们拿一个dmp文件时,如何快速导入至数据库?注意事项: 第一步 首先我们打开navicat软件,点击软件左上角连接,点击Oracle连接,输入连接信息,连接成功即可 注意:必须要用最高权限用户登录,即SYS用户 第二步 连接成功后,点击数据泵导入 第三步 填好信息,这里需要的注意是在转储文件那里,目录选择的是oracle文件的目录,后面的文件名是在目录下的,比如这里目前写的LOG_FILE_DIR,那么我这个文件下面肯定是有tp_qxgz_jcqr200609.dmp这个dmp文件的,填好之后点

我喜欢你对我笑 4717

Oracle导入dmp文件

Oracle的.dmp文件的导入导出操作

weixin_44782318的博客 3万+

将本地的dmp备份文件导入到本地的Oracle数据库中

这是一个基本的示例,用于将dmp备份文件导入到本地的Oracle数据库中。请确保在执行操作之前,已经了解和熟悉了相关的Oracle数据库和Oracle Data Pump工具的使用。在Oracle数据库中,可以使用Oracle Data Pump工具将dmp备份文件导入到数据库中。执行命令后,Oracle Data Pump将开始导入操作。进入Oracle数据库安装目录的bin文件夹。这个目录包含了一些Oracle数据库的实用程序。导入完成后,你可以检查日志文件以获取导入操作的结果和统计信息。

CsmbPascal的博客 1195

oracle数据库导入dmp文件,两种方法

oracle数据库导入dmp文件,两种方法

m0_54521957的博客 4万+

基于反相器的超声波发生和气泡检测电路

本文主要介绍了关于超声波的两种电路——基于反相器的振荡电路和基于逻辑们的气泡检测电路

xehagy的博客 1958

【OpenCV】手眼标定实战:从原理到calibrateHandEye的完整实现

本文详细解析了机器人视觉中的手眼标定原理与实战,重点介绍了如何使用OpenCV的calibrateHandEye函数实现从数据采集到结果验证的完整流程。文章深入剖析了AX=XB核心方程,区分了眼在手上与眼在手外两种配置,并提供了详细的代码示例与避坑指南,帮助开发者精准建立相机与机械臂末端的坐标转换关系,是机器人精准抓取的关键技术。

weixin_29046611的博客 509

【产品工具使用】Navicat 导入Oracle数据库的dmp文件

1、打开navicat 连上本地数据库,点击【其他】-》【目录】,会把你本机的已有的一些目录列表展示出来,我们可以找到oracle 默认的导入dmp文件的目录,DATA_PUMP_DIR,如果不想使用该目录,我们也可以新建目录,这里,我新建一个目录MY_DIR。4、点击【生成SQL】 -> 【点击运行】等待执行结束即可(注:数据量大的话,此过程耗时较长,请耐心等待),注意:首次导入失败的话,如上图所示部位【表存在的动作】,这里我们可以选择 truckate 重新导入。2、把自己要导入的数据放到该目录下。

小卓仗剑走天涯的博客 9026

带你一分钟了解电感与磁珠的区别

在电路设计中会经常使用到电感和磁珠,虽然在电路中的作用有所不同,但它们都属于磁性电子元器件,本文简单介绍下电感和磁珠的区别电感和磁珠电感和磁珠的结构主要由磁性材料金属线圈和外壳组成,具体结构如下图所示:电感磁珠结构图电感其实是金属线圈缠绕在磁芯上,而磁珠是在内部折叠后外围包裹着铁氧体磁性材料。电感器(Inductor)又称扼流器、电抗器、动态电抗器是储能器件,能够把电能转化为磁能而存储起来的元件。磁珠则是能量转换(消耗)器件,将流过他的高频信号以热能的形式消耗掉。

攻城狮鹏哥 1410

Oracle导出导入dmp

oracle导入导出dmp

h18300103614的博客 1万+

【eNSP 华为模拟器】小型校园网模拟环境的设计与配置(附eNSP源文件)

【eNSP 华为模拟器】小型校园网模拟环境的设计与配置 一、实验概述 二、交换机的配置 2.1 二层交换机的配置 2.2 三层交换机的配置 三、路由器的配置 四、实验结果 五、实验总结 一、实验概述 按照以下的拓扑连接,自行设计VLAN和IP地址等网络参数,实现PC1到PC2的IP通信。其中,R1,R2为路由器;LSW1,LSW4为3层交换机;LSW2,LSW3 ,LSW6, LSW7为2层交换机;CLIENT1-CLIENT12为PC机。 拓扑图 课程设计要求:(1)IP地址自行规划设计,应该清晰地

qq_43757282的博客 4万+

ABAP HANA BP主数据批导

SAPhana官方推荐的创建bp主数据的类是CL_MD_BP_MAINTAIN 客户的创建具体示例代码如下: DATA: LT_RETURN_MAP TYPE MDG_BS_BP_MSGMAP_T. DATA: LS_RETURN_MAP TYPE MDG_BS_BP_MSGMAP. DATA: LS_MESSAGE_MAP TYPE MDG_BS_BP_MSGMAP_KEY. DATA: LT_DATA TYPE CVIS_EI_EXTERN_.

IamRunjiang的博客 4143

Oracle数据库——数据导出时出现导出成功终止, 但出现警告。

字符集导致问题,解决办法有两种: 1.命令末尾添加statistics=none忽略统计信息 exp system/Bujidao0@orcl file=c:\orcl.dump full=y statistics=none 2.更改字符集为数据库默认字符集ZHS16GBK 转载来源http://www.cnblogs.com/baoposhou/p/5669778.html ...

newborne's blog 4852

嵌入式视频应用开发者必读:嵌入式Linux+FFmpeg硬件编解码实战指南

在嵌入式Linux上,FFmpeg支持多种硬件加速API,比如VAAPI、VDPAU、CUDA,以及针对特定平台的专用接口(如NVIDIA的NVENC、Intel的QSV、ARM的Mali)。FFmpeg的硬件解码通过-hwaccel参数启用,咱们以常见的H.264和HEVC(H.265)格式为例,展示如何用VAAPI和V4L2实现高效解码。: FFmpeg硬件加速需要额外的库,比如libva(VAAPI)、libv4l2(V4L2)或libnvcodec(CUDA)。

大模型大数据攻城狮的专栏 2204

(Oracle)导入dmp数据库文件的步骤

(创建数据库表空间,这里的目录是你所创建的数据库实例位置,我建立的是slexamflow实例)7:imp slexamflow/password@slexamflow full=y file="D:\Oracal\admin\slexamflow\dpdump\KM1DATA.dmp"(对dmp数据进行导入)/*必须先建立表空间,表空间的名称依据导入的dmp文件来决定,不清楚表空间的名字可以先任意取一个名字,然后在报错信息里会显示*/(查看数据库的表空间)步骤一:创建数据库实例(任意取一个名字)

m0_52192986的博客 3491

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

.dmp文件导入数据库(oracle)

dmp文件导入到数据库三步走

ZZH150286的博客 2196

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

oracle创建数据库,导入dmp操作全家桶

oracle导入dmp文件

m0_52110974的博客 5713

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Oracle导入dmp类型的数据源数据

声明:本文内容来自以下链接。

卷NM呢!不干了! 1万+

关于用navicat链接Oracle并导入dmp文件的记录

关于用navicat链接Oracle并导入dmp文件的记录

Not_knowing_hash的博客 2701

Oracle导入dmp文件步骤

1.创建表空间2000M并以10M增长 create tablespace 表空间名 datafile '放置表空间的路径' size 2000M autoextend on next 10M maxsize unlimited; 2.创建和授权用户权限 create user 用户名 identified by 密码 default tablespace 表空间名; grant exp_full_database to 用户名 ; grant imp_full_database to 用户名 ; gra

编程怪的博客 2万+

oracle怎么导入dmp文件??????

oracle怎么导入dmp文件?????? 回车导入成功!即可。

m0_63064861的博客 1873

Oracle DMP文件导入

记住:USERNAME是业务库的名字。不要随便用sys或者system.那样就不是导入业务资料库了。改为imp工具(有时不得不认为原配就是好)dmp文件可以在Navicat中的。

chengg0769 平淡无奇见真知 独立博客: http://blog.mis2erp.com 2554

Oracle数据库全局导入dmp文件

Oracle数据库全局导入

WW_33的博客 3027

使用imp导入数据时报ORA-20001错误的解决办法

在导出的语句后加上statistics=none 比如:imp lms/1@orcl file=d:\bak.dmp fromuser=(lms) ignore=y statistics=none statistics=none 是指不导出分析数据 造成此问题的原因可能是导入导出使用的不是同一个版本的数据库 imp其他相关参数: buffer缓冲区大小,64M...

diejiankuai3444的博客 502
上一篇: instantclient安装配置imp导入数据
下一篇: mysql截取字符串CS0000_1中_后面的字符
if时光重来
博客等级 码龄8年 248粉丝 217原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值