`
learnmore
  • 浏览: 602575 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle导出导入数据

 
阅读更多
转自http://yangrenjun.iteye.com/blog/623839
Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的数据库外,我们还可以创建自己的数据库。

    对于初学者来说,为了避免麻烦,可以用'Database Configuration Assistant'向导来创建数据库。

    创建完数据库后,并不能立即在数据库中建表,必须先创建该数据库的用户,并且为该用户指定表空间。

    下面是创建数据库用户的具体过程:



    如下功能完成是在:sqlplusw 下完成的;



    1.假如现在已经建好名为'news'的数据库,此时在F:\oracle\product\10.1.0\oradata\目录下已经存在news目录(注意:我的Oracle10g安装在F:\oracle下,若你的Oracle安装在别的目录,那么你新建的数据库目录就在*\product\10.1.0\oradata\目录下)。



    2.在创建用户之前,先要创建表空间:

    其格式为:格式:  create tablespace 表间名 datafile '数据文件名' size 表空间大小;

    如:

    SQL> create tablespace news_tablespace datafile 'F:\oracle\product\10.1.0\oradata\news\news_data.dbf' size 500M;

    其中'news_tablespace'是你自定义的表空间名称,可以任意取名;'F:\oracle\product\10.1.0\oradata\news\news_data.dbf'是数据文件的存放位置,'news_data.dbf'文件名也是任意取;'size 500M'是指定该数据文件的大小,也就是表空间的大小。



    3.现在建好了名为'news_tablespace'的表空间,下面就可以创建用户了:

    其格式为:格式:  create user  用户名 identified by 密码  default tablespace 表空间表;

    如:

    SQL> create user news identified by news default tablespace news_tablespace;

    默认表空间'default tablespace'使用上面创建的表空间。
   注:也可以跳过创建表空间这一步,直接用名为users的默认表空间语句如下:
          create user test identified by test default tablespace users;


    4.接着授权给新建的用户:

    SQL> grant connect,resource to news;  --表示把 connect,resource权限授予news用户

    SQL> grant dba to news;  --表示把 dba权限授予给news用户

    授权成功。
   
    下面介绍的是导入导出的实例。

  数据导出:

  1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中

  exp system/manager@TEST file=d:\daochu.dmp full=y

  2 将数据库中system用户与sys用户的表导出

  exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)

  3 将数据库中的表inner_notify、notify_staff_relat导出

  exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)

  4 将数据库中的表table1中的字段filed1以"00"打头的数据导出

  exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"

  上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。

  也可以在上面命令后面 加上 compress=y 来实现。

  数据的导入

  1 将D:\daochu.dmp 中的数据导入 TEST数据库中。

  imp system/manager@TEST  file=d:\daochu.dmp

  imp aichannel/aichannel@HUST full=y  file= d:\data\newsmgnt.dmp ignore=y

imp dekey/dekey529@ORCL full=y file=c:\dekey.dmp ignore=y

  上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

  在后面加上 ignore=y 就可以了。

  2 将d:\daochu.dmp中的表table1 导入

  imp system/manager@TEST  file=d:\daochu.dmp  tables=(table1)

  基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

  注意:

  操作者要有足够的权限,权限不够它会提示。

  数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

    总结:当拿到由拥有DBA权限的用户导出的数据时,最好问清楚其缺省表空间,如果目标数据库中存在与导出数据库同名的表空间时,这种情况需要特别注意。
我们往往在一看到“IMP-00013: 只有 DBA 才能导入由其它 DBA 导出的文件” 这个错误信息后,就立刻给导入用户授予DBA权限,但却忽略了DBA的角色是拥有对数据库中所有表空间unlimit的权限,造成花费很长时间import结束后,却发现没有导入到预期的表空间中。
简而言之,如果有同名表空间存在的话,必须将导入用户的 unlimited tablespace的权限 revoke 掉,否则数据将被直接存放到了那个同名表空间中,而不是导入用户缺省的表空间中;如果没有同名表空间,则无需进行 revoke,oracle 会自动将数据存放在导入用户的缺省表空间中。
最后一个需要注意的问题就是DBA授权问题,个人建议,一个数据库中除了system和sys用户以外,最好严格控制DBA权限的授予,尤其是不要随便赋予应用系统schema的owner以这个权限。目前国内的软件开发以及项目管理的能力还很薄弱,绝大多数项目中,不会设立专门的数据库管理角色,又为了图方便,往往赋予应用系统schema的owner以DBA权限,这样一来,在一个几十人或者上百人的团队中,其中任何一个开发人员或是运维人员一个随意的对DB的操作,对DB而言也许将会是灾难性的。因此,当导入数据后,应及时revoke掉 DBA 权限。
分享到:
评论

相关推荐

    Oracle数据库导入导出工具

    - 数据文件路径:导出数据的保存位置或导入数据的源文件路径。 - 表/模式:选择要导入导出的特定表或整个模式。 - 压缩选项:选择是否对导出文件进行压缩,以节省存储空间。 7. **安全性与性能优化** - 导入...

    SQL Server - Oracle 导出导入数据及表的方法.docx

    以下是关于这两个系统中导出和导入数据及表的具体方法。 在SQL Server中,导出数据通常通过备份数据库的方式进行。首先,你需要在SQL Server企业管理器中右键点击要导出的数据库,然后选择“所有任务”->“备份...

    oracle Imp导入数据

    在使用 IMP 命令导入数据时,还需要注意导出服务器和导入服务器的 NLS_LANG 环境变量是否一致。如果两台服务器的 NLS_LANG 环境变量不一致,那么将会出现乱码问题。 在上面的示例代码中,可以看到使用了 export ...

    Oracle利用传输表空间导出导入数据的步骤

    ### Oracle利用传输表空间导出导入数据的步骤详解 #### 一、背景介绍 在数据库管理领域,Oracle作为一款广泛使用的数据库管理系统,在企业级应用中占据着重要地位。随着业务的发展和技术的进步,数据库间的迁移需求...

    Oracle导入导出命令bat执行命.rar

    `expdp`和`impdp`是Oracle Data Pump的命令行工具,用于导出和导入数据。`expdp`用于导出数据库对象和数据,而`impdp`则用于将这些导出的数据导入到数据库中。这两个工具提供了许多选项和参数,以满足各种需求,例如...

    SQL Server - Oracle 导出导入数据及表的方法.pdf

    Oracle数据导出导入简介

    ### Oracle 数据导出导入简介 #### 一、Oracle数据库的基本概念 Oracle数据库是一个关系型数据库管理系统,由不同的表空间组成,其中包括至少一个SYSTEM表空间。表空间是Oracle中用于管理存储空间的重要概念。 - ...

    oracle 数据泵与传统的导入导出的区别与实践

    与传统的导出导入工具相比,数据泵能够实现更快速的数据传输,同时提供了更多的控制选项,使得数据迁移更加灵活和安全。 2. Data Pump处理数据的方式 - 直接路径方式:这是数据泵的主要工作方式,它绕过数据库缓存...

    oracle导出导入定时

    Oracle数据库的导出导入是数据库管理员日常维护工作中的重要环节,它涉及到数据的备份、迁移和恢复等操作。Oracle提供了一套强大的数据泵工具(Data Pump),包括expdp(导出)和impdp(导入)命令,用于高效地处理...

    ORACLE导入导出数据

    - **表空间准备**:在导入数据之前,确保目标数据库有足够的表空间。如果源数据库的表空间与目标数据库不同,需要创建相应的表空间以匹配源数据库的结构。 - **权限管理**:在导入导出过程中,确保用户具有必要的...

    oracle数据导入导出

    3. **字符集问题**:在导出导入过程中,需要注意源数据库和目标数据库的字符集是否一致。 4. **错误处理**:通过设置 `ignore` 参数可以控制导入过程中的错误处理方式。 #### 六、示例 - **创建新用户**: ```sql...

    Oracle数据导入导出命令.pdf

    - 如果需要删除表后再导入数据,应先确保数据安全备份。 - 在执行导入时,若遇到表已存在的情况,可以通过添加 `ignore=y` 参数来忽略这些错误。 以上就是关于 Oracle 数据库导入导出命令的详细介绍,希望对您有所...

    oracle导入导出数据

    Oracle 数据库的导入导出是数据库管理中的重要环节,它涉及到数据的安全性、恢复性和效率。Oracle 提供了多种工具来实现数据的备份与恢复,其中最常用的是 EXPDP(Export Data Pump)和 IMPDP(Import Data Pump)...

    oracle导入导出数据命令

    oracle 命令导入导出命令,对于数据迁移,数据备份本地数据库和服务数据库很实用的命令

    oracle数据库导入导出命令! 更改字符集

    - `impdp` 命令则用于从转储文件导入数据。基本语法类似: ``` impdp [username/password@connection_string] directory=dir_name dumpfile=file_name [parameters] ``` 在涉及到字符集更改的情况下,我们需要...

    oracle 数据导入导出

    Oracle 数据导入导出是数据库管理中的重要操作,用于在不同环境之间转移数据,备份和恢复数据,以及进行数据迁移。本文将深入探讨Oracle数据库的数据导入导出机制,包括使用的主要工具、过程和最佳实践。 Oracle ...

    Oracle 19c 备份恢复-导入导出

    Oracle 19c 备份恢复-导入导出是指使用 Oracle 数据库提供的工具 exp 和 imp 实现数据库的备份恢复和数据的导入导出。本文将详细介绍 Oracle 19c 备份恢复-导入导出的基本命令、工作方式、模式、选项和高级选项。 ...

    oracle数据库导入数据以及创建用户

    本文将深入探讨如何导入数据到Oracle数据库以及创建新用户,这对于数据库管理员和开发者来说是至关重要的技能。以下是对标题"Oracle数据库导入数据以及创建用户"的详细解读: 1. 数据导入: - **SQL*Loader**:...

    Oracle数据库导入导出(备份与恢复).docx

    为了确保数据的安全和可靠性,Oracle数据库提供了导入导出命令,以便用户可以轻松地备份和恢复数据库。本文将详细介绍Oracle数据库的导入导出命令,包括exp和imp命令的使用方法和参数设置。 exp命令 exp命令是...

    利用Oracle管理服务器将数据导入导出

    Oracle 数据导入导出是数据库管理中的重要操作,Oracle 9i 提供了通过 Oracle Management Server (OMS) 来简化这一过程。Oracle Management Server 是 Oracle 企业级管理工具的一部分,它允许管理员对数据库进行集中...

Global site tag (gtag.js) - Google Analytics