热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oracle数据库导入数据问题

通常mysql可以通过转储为sql的方式导出数据,且在新的数据库中在导入sql数据。但是对于oracle数据库时,对于数据量过大的情况,通

通常mysql可以通过转储为sql的方式导出数据,且在新的数据库中在导入sql数据。但是对于oracle数据库时,对于数据量过大的情况,通过转储为sql文件的方式基本上是不支持的,一般都是需要通过oracle导出的dmp文件方式实现,但是跨库使用不同的用户名时,由于oracle库表空间的存在,也时常会造成数据导入存在部分失败的情况,以下是个人实践的几个经验。

1、通过navicate连接oracle数据库,直接复制表粘贴到目标的数据库

这种方法可以避免使用表空间造成的问题,因为会连同表空间一起复制到目标数据库中,亲测可行,但是由于navicate处理sql语言的方式比较慢,所以过程会比较耗时,建议可以通过查询表数据数据量的方式,把数据量比较小的表直接复制,数据量较大的表通过plsql导出后在导入。

过程中可能会出现的问题:

ORA-01653: 表 无法通过 128 (在表空间 USERS 中) 扩展

解决方法:

(1)、扩展表空间

select * from dba_data_files where tablespace_name = 'USERS';

alter database datafile '/home/oracle/oradata/ORCL/users01.dbf' autoextend on next 50M maxsize unlimited;

上一句查询表空间中,把file_name值赋值到下一句中,执行下一句会自动给表空间扩展50M的存储。但是一个dbf文件会有上限,很可能造成扩展无校的情况,此时可以通过给表空间增加一个dbf文件的方式,实现数据的扩展。

ALTER TABLESPACE "USERS" ADD DATAFILE '/home/oracle/oradata/ORCL/users02.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
以上为给表空间users新增一个存储的dbf文件。

(2)、oracle创建用户,赋权限

create user shenzhen identified by beijing;

grant connect,resource,dba to shenzhen;

(3)、使用管理员权限打开cmd,进行导入和导出oracle的dmp备份文件,需要环境变量和oracle环境

exp导出,需要使用imp进行导入;如果是expdp导出,则需要使用impdp导入,登录oracle数据库导出是expdp的方式,工具(plsql)等导出是exp方式。

导出
exp whsffz/whsffz@10.204.27.3:1521/orcl file=F:\11\21.dmp log=F:\11\21.log
exp whsffz/WHSFFZ2020@10.204.20.20:1521/orcl file=F:\11\20_bak.dmp log=F:\11\21_bak.log

导入dmp文件(使用oracle导出的dmp文件,需要使用impdp命令)
imp whsffz_test/whsffz_test@10.204.20.20:1521/orcl file=F:\11\21.dmp full=y ignore=y

(4)、使用oracle导出(非plsql等工具)

这种方式对于数据量比较大时,执行的还是很快的,不然通过plsql去导出的话,时间太慢,还容易出错。

首先,登录linux服务器

其次,切换oracle用户

su oracle

执行导出命令(使用系统管理员的账户和密码,schemas为选择的用户,expdir为导出目录,dumpfile为导出文件名)

expdp sysname/password schemas=user directory=expdir dumpfile=2020-8-7.dmp

然后进入导出文件的目录,找到文件,如果很大,建议压缩后在传出来

gzip 2020-8-7.dmp

然后拖出来就可以了。

(5)、导入本地oracle数据库

首先,一定要把另一个oracle导出的dmp文件,放到系统文件夹中,不是任意的文件夹都可以的,如果不知道,可以通过如下方式

用管理员身份打开cmd,通过sqlplus查看系统的dmp文件夹

set ORACLE_SID=orcl
sqlplus / as sysdba

连接后,执行select * from dba_directories;查看系统的相关路径

个人是把dmp文件放到下图的路径中的

执行导入命令

impdp loginname/password@ip:port/orcl file=D:\oracle_database\admin\orcl\dpdump\2020-11-12.dmp full=y ignore=y

上一步执行完成,在用链接工具查看,已经出来数据了。

三、表空间相关

1、查看表空间名称,使用大小,位置等信息,下两条sql

select
t.tablespace_name,
round(sum(bytes/(1024*1024)),0) ts_size
from
dba_tablespaces t,
dba_data_files d where t.tablespace_name = d.tablespace_name 
group by t.tablespace_name;


select
tablespace_name,
file_id, file_name,
round(bytes/(1024*1024),0) total_space
from
dba_data_files
order by tablespace_name;

2、创建表空间

create tablespace AAA  datafile '/data/oracle/product/11.2.0/db_1/dbs/AAA.dbf' 
size 1000M autoextend on next 100M;

3、如果已经创建了用户,给用户添加默认表空间(第一个AAA为登录用户,第二个为密码,第三个为表空间)

alter user  AAA identified by AAA default tablespace AAA;

4、删除表空间(需要先删除使用了表空间的数据表,如果还删除不了就要删除表空间的用户)

drop tablesp AAA; 

或drop tablespace AAA INCLUDING CONTENTS and datafiles;


推荐阅读
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • mysql自动打开文件_让docker中的mysql启动时自动执行sql文件
    本文提要本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动My ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了win7系统休眠功能无法启动和关闭的解决方法,包括在控制面板中启用休眠功能、设置系统休眠的时间、通过命令行定时休眠、手动进入休眠状态等方法。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • 1Oracle三层权限体系【复习】1、Oracle的权限体系划分为三个层次 ... [详细]
  • Intellij IDEA中详细图解连接MySQL腾讯云数据库以及基础操作
    虽然小编记录的是在IDEA中连接mysql腾讯云数据库。当然,如果读者使用的是本地数据库,也是一样的操作,只是数据库的url书写有所不同。 ... [详细]
author-avatar
奋肀斗小族
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有