`
dchaoxiong
  • 浏览: 183465 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

在命令行中操作Oracle数据库

阅读更多

sqlplus 命令的使用:

sqlplus NET3_IPS_HOTPAY/NET3_IPS_HOTPAY@HOTYEDB  @NET3_IPS_HOTPAY.sql (自动执行sql文件中的脚本)
 

 

exp 数据导出命令的使用 和 imp 数据导出命令的使用

 

rem----------------运行这个批处理的前提是:1设置路由;      2设置Oracle的监听器ECPDB和HOTYEDB-------------------

echo "正在从生产系统导出HOTPAY的表"
EXP username/password@ECPDB FILE="IPS_Hotpay/Hotpay.DMP" LOG="IPS_Hotpay/exp_Hotpay.log" TABLES=('HOTPAY.ACCOUNT', 'HOTPAY.MERCHANT_ACCOUNT', 'HOTPAY.SUB_ACCOUNT', 'HOTPAY.SUB_ACCOUNT_TYPE') FEEDBACK=1000

echo "正在从生产系统导出EWALLET的表" 
EXP username/password@ECPDB FILE="IPS_Hotpay/IPS.DMP" LOG="IPS_Hotpay/exp_IPS.log" TABLES=('EWALLET.INSTITUTE_TRANS_CODE', 'EWALLET.MEMBER_INFO', 'EWALLET.POINT', 'EWALLET.POINT_CODE', 'EWALLET.POINT_TYPE')FEEDBACK=1000

echo "把HOTPAY.DMP导入到数据库IPS_HOTPAY"
imp IPS_HOTPAY/IPS_HOTPAY@HOTYEDB FILE="IPS_Hotpay/Hotpay.DMP" LOG="IPS_Hotpay/imp_Hotpay.log" FROMUSER=HOTPAY TOUSER=IPS_HOTPAY IGNORE=Y FEEDBACK=1000

echo "把IPS.DMP导入到数据库IPS_HOTPAY"
imp username/password@HOTYEDB FILE="IPS_Hotpay/IPS.DMP" LOG="IPS_Hotpay/imp_IPS.log" FROMUSER=EWALLET TOUSER=IPS_HOTPAY IGNORE=Y FEEDBACK=1000

echo "创建IPS_hotpay的索引"
sqlplus username/password@HOTYEDB   @IPS_Hotpay/IPS_HOTPAY.sql
 

 

 

 

批处理调用批处理的例子

@echo off
rem-----------把IPS和Hotpay的数据导入到本地的迁移数据库中--------------
call 1_IPS_Hotpay.bat

echo --------修改迁移前本地数据库的Sequence值----------
call 2_Before_Sequence.bat

echo --------本地进行数据迁移---------
call 3_IPSHotpayToNet3.bat

echo --------更新生产系统上的数据库----------
call 4_Update_Pro_DB.bat

echo --------把迁移好的数据导入到生产系统数据库----------
call 5_Move_Data_to_Pro.bat

echo --------同步生产系统上的Sequence值----------
call 6_After_Sequence.bat
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
 
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
 DOS中可以执行时由于 在oracle 8i 中  安装目录ora81BIN被设置为全局路径,
 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
 oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。
 SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。
 
下面介绍的是导入导出的实例。
数据导出:
 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:datanewsmgnt.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:datanewsmgnt.dmp ignore=y
   上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
   在后面加上 ignore=y 就可以了。
 2 将d:daochu.dmp中的表table1 导入
 imp system/manager@TEST  file=d:daochu.dmp  tables=(table1)
 
 基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。
 
注意:
 操作者要有足够的权限,权限不够它会提示。
 数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

附录一:
 给用户增加导入数据权限的操作
 第一,启动sql*puls
 第二,以system/manager登陆
 第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)
 第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
   DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
      DBA,CONNECT,RESOURCE,CREATE SESSION  TO 用户名字
 第五, 运行-cmd-进入dmp文件所在的目录,
      imp userid=system/manager full=y file=*.dmp
      或者 imp userid=system/manager full=y file=filename.dmp

 执行示例:
 F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp

屏幕显示
Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation.  All rights reserved.

连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production

经由常规路径导出由EXPORT:V08.01.07创建的文件
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)
. 正在将AICHANNEL的对象导入到 AICHANNEL
. . 正在导入表                  "INNER_NOTIFY"          4行被导入
准备启用约束条件...
成功终止导入,但出现警告。

 
附录二:
 Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
  先建立import9.par,
  然后,使用时命令如下:imp parfile=/filepath/import9.par
  例 import9.par 内容如下:
        FROMUSER=TGPMS      
        TOUSER=TGPMS2     (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)         
        ROWS=Y
        INDEXES=Y
        GRANTS=Y
        CONSTRAINTS=Y
        BUFFER=409600
        file==/backup/ctgpc_20030623.dmp
        log==/backup/import_20030623.log

以下我自己补充:
1.在导入导出命令中加上feedback=1000可以让过程显示一个不断增多的“...”,以改变以往的闪烁的光标

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

E:\>exp help=y

通过输入 EXP 命令和用户名/口令,您可以
在用户 / 口令之后的命令:

实例: EXP SCOTT/TIGER

或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出”的运行方式。
要指定参数,您可以使用关键字:

格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
实例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字 说明(默认)
---------------------------------------------------
USERID 用户名/口令
FULL 导出整个文件 (N)
BUFFER 数据缓冲区的大小
OWNER 所有者用户名列表
FILE 输出文件 (EXPDAT.DMP)
TABLES 表名列表
COMPRESS 导入一个范围 (Y)
RECORDLENGTH IO 记录的长度
GRANTS 导出权限 (Y)
INCTYPE 增量导出类型
INDEXES 导出索引 (Y)
RECORD 跟踪增量导出 (Y)
ROWS 导出数据行 (Y)
PARFILE 参数文件名
CONSTRAINTS 导出限制 (Y)
CONSISTENT 交叉表一致性
LOG 屏幕输出的日志文件
STATISTICS 分析对象 (ESTIMATE)
DIRECT 直接路径 (N)
TRIGGERS 导出触发器 (Y)
FEEDBACK 显示每 x 行 (0) 的进度
FILESIZE 各转储文件的最大尺寸
QUERY 选定导出表子集的子句

下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
TABLESPACES 将传输的表空间列表


E:\>imp help=y

可以通过输入 IMP 命令和您的用户名/口令
跟有您的用户名 / 口令的命令:

实例: IMP SCOTT/TIGER

或者, 可以通过输入 IMP 命令和各种自变量来控制“导入”按照不同参数。
要指定参数,您可以使用关键字:

格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
实例: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字 说明(默认)  
----------------------------------------------
USERID 用户名/口令
FULL 导入整个文件 (N)
BUFFER 数据缓冲区大小
FROMUSER 所有人用户名列表
FILE 输入文件 (EXPDAT.DMP)
TOUSER 用户名列表
SHOW 只列出文件内容 (N)
TABLES 表名列表
IGNORE 忽略创建错误 (N)
RECORDLENGTH IO 记录的长度
GRANTS 导入权限 (Y)
INCTYPE 增量导入类型
INDEXES 导入索引 (Y)
COMMIT 提交数组插入 (N)
ROWS 导入数据行 (Y)
PARFILE 参数文件名
LOG 屏幕输出的日志文件
CONSTRAINTS 导入限制 (Y)
DESTROY 覆盖表空间数据文件 (N)
INDEXFILE 将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护 (N)
ANALYZE 执行转储文件中的 ANALYZE 语句 (Y)
FEEDBACK 显示每 x 行 (0) 的进度
TOID_NOVALIDATE 跳过指定类型 id 的校验
FILESIZE 各转储文件的最大尺寸
RECALCULATE_STATISTICS 重新计算统计值 (N)

下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
TABLESPACES 将要传输到数据库的表空间
DATAFILES 将要传输到数据库的数据文件
TTS_OWNERS 拥有可传输表空间集中数据的用户

分享到:
评论

相关推荐

    命令行导入导出Oracle数据库操作

    相比于图形界面工具(如Oracle SQL Developer或Oracle Enterprise Manager),通过命令行来进行Oracle数据库的导入导出操作不仅更为高效快捷,而且在自动化运维场景下具有更大的灵活性。本文将详细介绍如何利用`...

    使用命令行方式创建Oracle数据库.docx

    在IT领域,Oracle数据库是广泛使用的大型关系型数据库管理系统之一,尤其在企业级应用中扮演着重要角色。本文将详细讲解如何使用命令行方式创建一个名为Menrry的Oracle数据库。 首先,创建Oracle数据库涉及多个步骤...

    Oracle数据库工具安装包(免安装)

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,尤其在企业级应用中占据了重要的地位。本文将详述“Oracle数据库工具安装包(免安装)”的相关知识点,包括Oracle Client 11.2版本以及32位系统兼容性,...

    如何备份还原oracle数据库

    在IT领域中,Oracle数据库因其高性能、可靠性及可扩展性被广泛应用于企业级应用之中。对于Oracle数据库管理员而言,掌握如何高效地进行数据库备份与恢复是一项至关重要的技能。本文将根据给定的信息“如何备份还原...

    Java导出Oracle数据库数据

    在 Oracle 数据库中,exp 和 imp 命令是两个非常重要的命令。exp 命令用于将 Oracle 数据库数据导出到文件中,而 imp 命令用于将数据从文件中导入到 Oracle 数据库中。这些命令可以在命令行中使用,例如,在 Windows...

    Oracle数据库导入导出工具

    Oracle数据库是企业级...综上所述,这款“Oracle数据库导入导出工具”提供了一个方便的界面,简化了数据库操作,尤其适合对技术不太熟悉的用户。配合详细的使用说明,用户可以更有效地管理和维护自己的Oracle数据库。

    Oracle数据库完全卸载干净工具

    Oracle数据库是一种广泛使用的大型关系型数据库管理系统,它在企业级应用中扮演着核心角色。然而,当不再需要Oracle数据库或需要进行系统升级时,正确、彻底地卸载Oracle数据库至关重要,以防止残留文件影响新安装或...

    在linux命令行安装oracle11g

    在操作系统环境设置中,需要安装相关的软件包,例如 binutils、elfutils-libelf、gcc 等。同时,需要设置内核参数,例如 fs.file-max、kernel.shmall、kernel.shmmax 等。 二、内核参数设置 在内核参数设置中,...

    ORACLE数据库备份用bat脚本

    在IT行业中,数据库管理是至关重要的任务之一,而Oracle数据库作为全球广泛使用的数据库管理系统,其数据安全性与备份策略显得尤为重要。本文将详细讲解如何利用批处理脚本(BAT)进行Oracle数据库的备份,并探讨...

    Oracle数据库应用课件

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据着核心地位。本课件将深入探讨Oracle数据库的应用,旨在帮助学习者掌握其基础知识和操作技能。 首先,我们来了解一下“数据库的基础...

    Oracle数据库管理工具与操作.

    在管理Oracle数据库时,有多种工具可供选择,这些工具使得数据库的安装、配置、监控和维护变得更加便捷。 Oracle Universal Installer (OUI) 是Oracle数据库安装的核心工具,用于安装、升级和卸载Oracle组件。它...

    oracle数据库操作可视化程序

    Oracle数据库操作可视化程序是一款基于Java开发的工具,它为用户提供了一种直观的方式来管理和操作Oracle数据库。这个程序的主要目的是简化数据库的交互过程,使得数据库管理更加便捷,尤其适合那些不熟悉SQL命令行...

    Oracle数据库的基本操作

    接下来,我们来看看在Oracle数据库中创建数据表的基本步骤: 1. 定义数据类型:Oracle支持多种数据类型,如VARCHAR2(变长字符串)、NUMBER(数值)、DATE(日期)、BOOLEAN(布尔值)等。在创建表时,需要为每个列...

    WINDOWS下使用DOS命令行连接oracle数据库

    在Windows操作系统中,使用DOS命令行连接Oracle数据库是一种常见的技术实践,尤其在没有图形化界面或者需要自动化脚本执行任务时。Oracle数据库是一个强大的关系型数据库管理系统,它提供了多种方式与之交互,其中之...

    Oracle数据库基础操作

    本文将深入探讨Oracle数据库的基础操作,包括数据的增加、删除、修改和查询,以及常用的数据库命令。 首先,让我们从创建数据库开始。在Oracle中,数据库是由一个或多个表空间组成的,表空间又包含数据文件。使用`...

    VS2015连接Oracle数据库的详细步骤

    通过以上步骤,你可以在VS2015中成功连接并操作Oracle数据库。无论是创建表格、执行查询还是处理二进制数据,都能轻松完成。记得在编写代码时遵循最佳实践,确保数据安全性和应用程序的高效性。

    oracle数据库实验指导书

    这份指南旨在帮助用户深入理解和掌握Oracle数据库的配置、管理和操作。以下是根据标题、描述和部分内容提炼出的关键知识点: 1. **Oracle数据库配置**: - 实验一的核心是配置Oracle数据库服务,包括启动`...

    登录Oracle数据库.ppt

    本文档介绍了登录Oracle数据库的三种方式:SQLPLUS直接登录、命令行方式登录和PL/SQL方式登录。 SQLPLUS直接登录 SQLPLUS是一个命令行工具,用于连接和管理Oracle数据库。要使用SQLPLUS登录Oracle数据库,需要打开...

Global site tag (gtag.js) - Google Analytics