搜档网
当前位置:搜档网 › Oracle通过sqlplus spool导入出数据

Oracle通过sqlplus spool导入出数据

Oracle通过sqlplus spool导入出数据
Oracle通过sqlplus spool导入出数据

之前用过spool导出oracle数据为文本,可惜一直也没有整理下,今天再次用到,网上找了相关文档,也算作个记录。

第一部分(实例,主要分两步),第二部分(参数小总结),第三部分(完全参数总结)

第一部分

第一步:这是我的导出数据的脚本call.sql

conn scott/tiger

set echo off

set term off

set line 1000 pages 0

set feedback off

set heading off

set trimspool on

spool /temp/test/ldr_test.csv

select a.empno||',"'||a.ename||'",'||to_char(a.hiredate,'yyyy-mm-dd hh24:mi:ss')||','||a.sal from test a; spool off

set trimspool off

set heading on

set feedback on

set term on

set echo on

exit

注释:call.sql脚本执行方法(1)sqlplus /nolog 先进入sqlplus命令模式

(2)start call.sql 在sqlplus命令模式下执行

第二步:导入数据的脚本add_test.ctl

LOAD DATA

INFILE ldr_test.csv

TRUNCATE INTO TABLE test

FIELDS TERMINATED BY"," OPTIONALLY ENCLOSED BY'"'

(EMPNO,ENAME,HIREDATE date 'yyyy-mm-dd hh24:mi:ss',SAL)

注释: 在第一步导出数据后,执行add_test.sql脚本命令为: sqlplus scott/tiger control=add_test.ctl

至此用sqlplus导入/出数据完成了,如果有些参数不明白,请看一下第二三部分。

哦..忘了说test测试表的结构了,create table test as select empno,ename,hiredate,sal from emp;

第二部分

spool本身其实没有啥难的,就是set参数的个数太太多啦!!!下面就是我网上Copy的,当然有一些是自己加上去的

SQL>set colsep' '; //-域输出分隔符

SQL>set newp none //设置查询出来的数据分多少页显示,如果需要连续的数据,中间不要出现空行就把newp设置为none,这样输出的数据行都是连续的,中间没有空行之类的

SQL>set echo off; //显示start启动的脚本中的每个sql命令,缺省为on

SQL> set echo on //设置运行命令是是否显示语句

SQL> set feedback on; //设置显示“已选择XX行”

SQL>set feedback off; //回显本次sql命令处理的记录条数,缺省为on即去掉最后的"已经选择10000行"

SQL>set heading off; //输出域标题,缺省为on 设置为off就去掉了select结果的字段名,只显示数据

SQL>set headsep off //标题分隔符

SQL>set pagesize 0; //输出每页行数,缺省为24,为了避免分页,可设定为0。(可以简写为:set pages 0)

SQL>set linesize 80; //输出一行字符个数,缺省为80。(可以简写为:set line 80)

SQL>set numwidth 12; //输出number类型域长度,缺省为10

SQL>set termout/term off; //显示脚本中的命令的执行结果,缺省为on

SQL>set trimout on; //去除标准输出每行的拖尾空格,缺省为off

SQL>set trimspool on; //去除重定向(spool)输出每行的拖尾空格,缺省为off

SQL>set serveroutput on; //设置允许显示输出类似dbms_output

SQL> set timing on; //设置显示“已用时间:XXXX”

SQL> set autotrace on-; //设置允许对执行的sql进行分析

SQL>set verify off //可以关闭和打开提示确认信息old 1和new 1的显示.

第三部分

这个是纯Copy的set命令全家福,呵呵,很专业,如果看不习惯的话可以全部改成小写使用set命令的语法如下: SET 系统变量值

其中系统变量及其可选值如下:

ARRAY[SIZE] {20(默认值)|n}

AUTO[COMMIT] {OFF(默认值)|ON|IMM[EDIATE]}

BLO[CKTERMINATOR] {.(默认值)|C}

CMDS[EP] {;|C|OFF(默认值)|ON}

COM[PATIBILITY] {V5|V6|V7|NATIVE(默认值)}

CON[CAT] {.(默认值)|C|OFF|ON(默认值)}

COPYC[OMMIT] {0(默认值)|n}

CRT crt

DEF[INE] {&|C|OFF|ON(默认值)}

ECHO {OFF|ON}

EMBEDDED {OFF(默认值)|ON}

ESC[APE] {\(默认值)|C|OFF(默认值)|ON}

FEED[BACK] {6(默认值)|n|OFF|ON}

FLU[SH] {OFF|ON(默认值)}

HEA[DING] {OFF|ON(默认值)}

HEADS[EP] {|(默认值)|C|OFF|ON(默认值)}

LIN[ESIZE] {80(默认值)|n}

LONG {80(默认值)|n}

LONGC[HUNKSIZE] {80(默认值)|n}

MAXD[ATA] n

NEWP[AGE] {1(默认值)|n}

NULL text

NUMF[ORMAT] 格式

NUM[WIDTH] {10(默认值)|n}

PAGES[IZE] {14(默认值)|n}

PAU[SE] {OFF(默认值)|ON|text}

RECSEP {WR[APPED](默认值)|EA[CH]|OFF}

RECSEPCHAR { |C}

SCAN {OFF|ON(默认值)}

SERVEROUT[PUT] {OFF|ON} [SIZE n]

SHOW[MODE] {OFF(默认值)|ON}

SPA[CE] {1(默认值)|n}

SQLC[ASE] {MIX[ED](默认值)|LO[WER]|UP[PER]}

SQLCO[NTINUE] {>;(默认值)|文本}

SQLN[UMBER] {OFF|ON(默认值)}

SQLPER[FIX] {#(默认值)|C}

SQLP[ROMPT] {SQL>;(默认值)|文本}

SQLT[ERMINATOR] {;(默认值)|C|OFF|ON(默认值)}

SUF[FIX] {SQL(默认值)|文本}

TAB {OFF|ON(默认值)}

TERM[OUT] {OFF|ON(默认值)}

TI[ME] {OFF(默认值)|ON}

TIMI[NG] {OFF(默认值)|ON}

TRIM[OUT] {OFF|ON(默认值)}

UND[ERLINE] {-(默认值)|C|OFF|ON(默认值)}

VER[IFY] {OFF|ON(默认值)}

WRA[P] {OFF|ON(默认值)}

系统变量说明:

ARRAY[SIZE] {20(默认值)|n} 置一批的行数,是SQL*PLUS一次从数据库获取的行数,有效值为1至5000. 大的值可提高查询和子查询的有效性,可获取许多行,但也需要更多的内存.当超过1000时,其效果不大.

AUTO[COMMIT] {OFF(默认值)|ON|IMM[EDIATE]} 控制ORACLE对数据库的修改的提交. 置ON时,在ORACLE执行每个SQL命令或PL/SQL块后对数据库提交修改;置OFF时则制止自动提交,需要手工地提交修改,例如用SQL的COMMIT命令. IMMEDIATE功能同ON.

BLO[CKTERMINATOR] {.(默认值)|C} 置非字母数字字符,用于结束PL/SQL块.要执行块时,必须发出RUN命令或/命令.

CMDS[EP] {;|C|OFF(默认值)|ON} 置非字母数字字符,用于分隔在一行中输入的多个SQL/PLUS命

令.ON或OFF控制在一行中是否能输入多个命令. ON时将自动地将命令分隔符设为分号(;).其中C表示所置字符.

COM[PATIBILITY] {V5|V6|V7|NATIVE(默认值)} 指定当前所链接的ORACLE版本.如果当前ORACLE

的版本为5,则置COMPATIBILITY为V5; 为版本6时置成V6; 为版本7时置成V7. 如果希望由数据库决定该设置,在置成NATIVE.

CON[CAT] {.(默认值)|C|OFF|ON(默认值)}设置结束一替换变量引用的字符.在中止替换变量引用字符之

后可跟所有字符,作为体会组成部分,否则SQL*PLUS将解释为替换变量名的一部分.当CONCAT开关为ON时,SQL*PLUS可重置CONCAT的值为点(.).

COPYC[OMMIT] {0(默认值)|n} 控制COPY命令提交对数据库修改的批数.每次拷贝n批后,将提交到目标数据库.有效值为0到5000. 可用变量ARRAYSIZE设置一批的大小.如果置COPYCOMMIT为0,则仅在COPY操作结束时执行一次提交.

CRT crt 改变SQL*PLUS RUNFORM命令使用的缺省CRT文件.如果置CRT不包含什么,则crt仅包含''''.如果在一个Form的系统调用期间,要使用NEW.CRT(缺省CRT是OLD.CRT),可按下列形式调用Form: SQL>;RUNFORM -C NEW form名

或者

SQL>;SET CRT NEW

SQL>;RUNFORM form名

第二中方法存储CRT选择,以致在下次运行RUNFORM命令(是在同一次SQL*PLUS交互中)时,不需要指定.

DEF[INE] {&|C|OFF|ON(默认值)} 设置在替换变量时所使用的字符.ON或OFF控制SQL*PLUS是否扫描替换变量的命令及用他们的值代替. DEFINE的ON或OFF的设置控制SCAN变量的设置.

ECHO {OFF|ON} 控制START命令是否列出命令文件中的每一命令.为ON时,列出命令;为OFF时,制止列清单.

EMBEDDED {OFF(默认值)|ON} 控制每一报表在一页中开始的地方. 为OFF时,迫使每一报表是在新页的顶部开始;为ON时,运行一报表在一页的任何位置开始.

ESC[APE] {\(默认值)|C|OFF(默认值)|ON} 定义作为Escape字符的字符.为OFF时,使Escape字符不起作用.为ON时,使Escape字符起作用.

FEED[BACK] {6(默认值)|n|OFF|ON} 显示由查询返回的记录数.ON和OFF置显示为开或关.置FEEDBACK为ON时,等价于置n为1. 如果置FEEDBACK为0,等价于将它置成OFF.

FLU[SH] {OFF|ON(默认值)} 控制输出送至用户的显示设备.为OFF时,运行操作系统做缓冲区输出;为ON时,不允许缓冲. 仅当非交互方式运行命令文件时使用OFF,这样可减少程序I/O总是,从而改进性能.

HEA[DING] {OFF|ON(默认值)} 控制报表中列标题的打印.为ON时,在报表中打印列标题;为OFF时禁止打印列标题.

HEADS[EP] {|(默认值)|C|OFF|ON(默认值)} 定义标题分隔字符.可在COLUMN命令中使用标题分隔符,将列标题分成多行.ON和OFF将标题分隔置成开或关.当标题分隔为关(OFF)时,SQL*PLUS打印标题分隔符像任何字符一样.

LIN[ESIZE] {80(默认值)|n} 置SQL*PLUS在一行中显示的字符总数,它还控制在TTITLE和BTITLE中对准中心的文本和右对齐文本. 可定义LINESIZE为1至最大值,其最大值依赖于操作系统.

LONG {80(默认值)|n} 为显示和拷贝LONG类型值的最大宽度的设置. 对于ORACLE7, n的最大值为2G 字节;对于版本6,最大值为32767.

LONGC[HUNKSIZE] {80(默认值)|n} 为SQL*PLUS检索LONG类型值的增量大小.由于内存的限制,可按增量检索,该变量仅应用于ORACLE7.

MAXD[ATA] n 置SQL*PLUS可处理的最大行宽字符数,其缺省值和最大值在不同操作系统中是可变的.

NEWP[AGE] {1(默认值)|n} 置每一页的头和顶部标题之间要打印的空行数.如果为0, 在页之间送一换号符,并在许多终端上清屏.

NULL text 设置表示空值(null)的文本,如果NULL没有文本,则显示空格(缺省时). 使用COLUMN命令中的NULL子句可控制NULL变量对该列的设置.

NUMF[ORMAT] 格式设置显示数值的缺省格式,该格式是数值格式.

NUM[WIDTH] {10(默认值)|n} 对显示数值设置缺省宽度.

PAGES[IZE] {14(默认值)|n} 置从顶部标题至页结束之间的行数.在11英寸长的纸上打印报表,其值为54,上下各留一英寸(NEWPAGE值为6).

PAU[SE] {OFF(默认值)|ON|text} 在显示报表时,控制终端滚动.在每一暂停时,必须按RETURN键.ON将引起SQL*PLUS在每一报表输出页开始时暂停.所指定的文本是每一次SQL*PLUS暂停时显示的文本.如果要键入多个词,必须用单引号将文本括起来.

RECSEP {WR[APPED](默认值)|EA[CH]|OFF}

RECSEPCHAR { |C} 指定显示或打印记录分行符的条件.一个记录分行符,是由RECSEPCHAR指定的字符组成的单行.空格为RECSEPCHAR的默认字符.

RECSEP 告诉SQL*PLUS在哪儿做记录分隔.例如将RECSEP置成WRAPPED,在每一缠绕行之后,打印记录分行符.如果将RECSEP置成EACH,SQL*PLUS在每一行后打印一记录分行符.如果将RECSEP置成OFF, SQL*PLUS不打印分行符.

来源:https://www.sodocs.net/doc/4917721736.html,/mousever/article/details/7962202

oracle数据库数据的导入导出

Oracle数据库导入导出命令(备份与恢复) Toad 一个很好的oralce数据库操作与管理工具,使用它可以很方便地导入导出数据表,用户以及整个数据库。今天在这里主要讲一下用命令行来操作oracle数据导入和导出: 备份数据 1、获取帮助: exp help=y 2. 导出一个完整数据库 exp user/pwd@instance file=path full=y 示例:exp system/system@xc file = c:/hehe full =y imp tax/test@tax file=d:/dbbak.dmp full=y 3 、导出一个或一组指定用户所属的全部表、索引和其他对象 exp system/manager file=seapark log=seapark owner=seapark exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold) 示例:exp system/system@xc file=c:/hehe owner=uep 4、导出一个或多个指定表 exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist) 示例:exp system/system@xc file=c:/heh tables=(ueppm.ne_table) 恢复数据 1. 获取帮助 imp help=y 2. 导入一个完整数据库 imp system/manager file=bible_db log=dible_db full=y ignore=y 3. 导入一个或一组指定用户所属的全部表、索引和其他对象 imp system/manager file=seapark log=seapark fromuser=seapark imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold) 4. 将一个用户所属的数据导入另一个用户 imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy imp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1) 5. 导入一个表 imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b) ************************ **************************** 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle 数据库中去。 1. 简单导出数据(Export)和导入数据(Import) Oracle支持三种类型的输出: (1)表方式(T方式),将指定表的数据导出。 (2)用户方式(U方式),将指定用户的所有对象及数据导出。 (3)全库方式(Full方式),将数据库中的所有对象导出。 数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。

Oracle Export/Import数据库备份与恢复的三种方法

Oracle数据库备份与恢复的三种方法 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1)、表方式(T方式),将指定表的数据导出。 (2)、用户方式(U方式),将指定用户的所有对象及数据导出。 (3)、全库方式(Full方式),瘵数据库中的所有对象导出。 数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。 2、增量导出/导入 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。 增量导出包括三种类型: (1)、“完全”增量导出(Complete) 即备份三个数据库,比如: exp system/manager inctype=complete file=040731.dmp (2)、“增量型”增量导出 备份上一次备份后改变的数据,比如: exp system/manager inctype=incremental file=040731.dmp

带有oracle数据库的数据迁移方案

数据迁移技术方案 项目背景 某信息中心系统本次机房搬迁以及数据迁移工程是本次项目需完成的重点工作,包括整个信息中心的核心数据及业务交换中心,系统现有设备包括:核心交换机、接入交换机、服务器、存储盘阵等,迁移主要分设备迁移和数据迁移。系统搬迁具有时间短、系统结构复杂、测试时间长、设备繁多昂贵、人员多、层次复杂等特点。本项目搬迁迁移,时间非常紧,且对设备的稳定性也是一个考验。因此,必须协调好各单位人员的关系,齐心协力才可能在预定时间内完成搬迁迁移工程。 整个迁移工作分两步走,第一步先对数据进行迁移,数据迁移完成确认无误。第二步对整体信息中心所有设备进行迁移,确保所有设备正常运行。 本方案是以尽量不影响信息中心工作或将影响降低到最低为前提的情况下制定的,即先完成新机房网络接入后,确保网络畅通稳定的前提下,完成信息中心系统业务的部署,确保整个系统在新机房业务实现,整个业务系统顺利割接,然后再在特定时间点开始原机房的设备搬迁工作,在1-2工作日内完成整个服务器、网络设备的搬迁、安装及测试。并且在开机以后,继续跟踪系统的运行情况,随时处理系统运行的异常情况。我公司在资源方面有较大优势,如在搬迁迁多工作中出现设备故障,除在备品备件中提供的备件外,还可协调各方资源以最快速度解决客户设备故障问题。

系统环境 第一机房环境 ( 设备分布 第一机房设备共涉及到10个机柜,具体设备名称及数量为:38台pvg server(1810/2800)汇聚服务器、4台pvg server3800核心服务器、26台存储、1台存储控制服务器、5台交换机。 硬件设备情况 汇聚服务器 汇聚服务器品牌为网力产品,38台中32台设备作为汇聚服务器,每台设备使用2个网卡:1个网卡接入单位、另1个网卡接入存储服务器;另外6台为出口服务,只使用1个网卡。设备网口全部接到RG-6806/6810两台交换机上,以便与单位和存储设备通讯。总电口使用量为:32*2+6=70个。 核心服务器 核心服务器品牌为网力产品,4台该设备中2台为负责汇总个单位,另外2台为出口服务。每台设备使用1个网口,网口接到RG-6806/6810上。总电口使用量为:1*4=4。 存储 [ 存储品牌为XX以及部分老存储设备,存储共涉及到17台设备:1台控制器、16台存储。控制服务器使用1个网卡,接入到RG-6810上。16台存储各使用2个网口,每台存储对应两台汇聚服务器,设备网口接入到RG-6810/6806上。总电口使用量为:16*2+1=33个。 交换机

推荐下载-Oracle 数据泵导出和导入 精品

Oracle10g数据导入导出 简介 Oracle 10g引入了DATA PUMP提供的是一种基于服务器的数据提取和恢复的实用程序,DATA PUMP在体系结构和功能上与传统的EXPORT和IMPORT实用程序相比有了显著的提升。DATA PUMP允许您停止和重启作业,查看运行的作业的状态,及对导入和导出的数据做限制。 注意:数据泵文件与传统的EXP/IMP数据转储文件是不兼容的。 以下是DATA PUMP的几个优点介绍: 1.数据泵(Data Pump)的所有工作都有数据库实例来完成,数据库可以并行来处理这些工作,不仅可以通过建立多个数据泵工作进程来读/写正在被导出/导入的数据,也可以建立并行I/O服务器以更快地读取或插入数据,从而,单进程瓶颈被彻底解决。 2.通过数据泵,以前通过EXP/IMP主要基于Client/Server的逻辑备份方式转换为服务器端的快速备份,数据泵主要工作在服务器端,可以通过并行方式快速装入或卸载数据,而且可以在运行过程中调整并行的程度,以加快或减少资源消耗。 3.数据泵通过新的API来建立和管理,这些新的工作主要由DBMS_DATAPUMP来完成。新的导入/导出工具完全成为了一个客户端应用,通过IMPDP/EXPDP执行的命令实际上都是在调用Server端的API在执行操作,所以一旦一个任务被调度或执行,客户端就可以退出连接,任务会在server 端继续执行,随后通过客户端实用程序从任何地方检查任务的状态和进行修改创建DIRECTORY DATA PUMP要求为将要创建和读取的数据文件及日志文件创建目录,这个参数是用来定义一个目录,前面已经提到数据泵主要在Server端工作,导出文件需要写出到Server端本地目录,这个DIRECTORY就是对应的Server 端的目录。将要访问数据泵文件的用户必须要拥有该目录的读/写权限。 注意:在开始操作之前要验证外部目录是否存在,并且下达create directory 命令的用户需要拥有create any directory的系统权限。 下面给出一个创建名为TEST_EXPDP的目录并授予hs_user,hs_his用户访问此目录读/写权限。

Oracle 11G 数据库迁移手册

客户的数据库采用expdp命令导出的,这是Oracle10g以后采用的新的导出方式,比exp 执行效率上有所提高。下面说明如何做导入导出: 1、环境变量设置(在Sqlplus中执行) create or replace directory as ‘c:\tmpdir’; 注:c:\tmpdir也可以是另外的随意目录,用单引号括起来 2、导出ARADMIN库 expdp /@ directory= dumpfile=xxxxxx.dat logfile=xxxx.log schemas=ARADMIN; 3、如果需要备份(通常不需要)CMDB WebService则导出AtriumAdmin库 expdp /@ directory= dumpfile=xxxxxx.dat logfile=xxxx.log schemas=ARADMIN; 4、导出成功后,把dat和log文件都拷贝到目标数据库服务器上,记住两个文件的放 置路径 5、目标库导入前操作 create or replace directory as ‘c:\tmpdir’; 注:此处的c:\tmpdir替换成两个文件的存放路径 Sqlplus登录目标库(一定要用管理员账号); sqlplus /@ as sysdba; 核对连接的库名: show parameter name; 查看连接的是哪个SID; select username from dba_users order by created;查看所有表空间命令的最后两行应该有ARADMIN和ATRIUMADMIN表空间名;

oracle数据库的导入导出及表空间的创建

oracle数据库的导入导出及表空间的创建 (1)向oracle数据库中导入完整的数据库(后缀名:dmp) 首先进入cmd,输入sqlplus/nolog运行oracle自带程序,然后输入conn/as sysdba,以数据库管理员(dba)的身份链接到后台数据库。 step1:建立临时表空间(取名为:libsys_temp) create temporary tablespace libsys_temp tempfile'D:\oracle\libsys_temp.dbf'//指定空间存放路径 size1000M//为临时表空间分配磁盘空间 autoextend on next10M maxsize2048M//若存入的数据量超过了分配的空间大小, //则以每次新增10M的大小增大表间,但最大为2048M! extent management local;//设置表空间的区管理为本地管理,为的是减少分配extent的时 //候产生的内部递归sql,提高数据库分配空间的效率. step2:建立数据表空间,用于存储导入的数据库中的所有数据(取名:libsys_data) create tablespace libsys_data logging//指明导入过程记入日志中 datafile'D:\oracle\libsys_data.dbf'//指定数据库保存的路径size10240M//注意表空间应足够大,否则导入将出错! autoextend on next100M maxsize20480M extent management local;

Oracle数据库的数据迁移方法

数据迁移的一般步骤 对数据库管理人员来说,数据库数据迁移极具挑战性,一旦措施不当,珍贵的数据资源将面临丢失的危险,要成功地实现数据库数据平滑迁移,需要周密计划和充分准备,并按照一定的步骤来完成。 设计数据迁移方案 设计数据迁移方案主要包括以下几个方面工作:研究与数据迁移相关的资料,或在网站上查询相关内容、评估和选择数据迁移的软硬件平台、选择数据迁移方法、选择数据备份和恢复策略、设计数据迁移和测试方案等。 进行数据模拟迁移 根据设计的数据迁移方案,建立一个模拟的数据迁移环境,它既能仿真实际环境又不影响实际数据,然后在数据模拟迁移环境中测试数据迁移的效果。数据模拟迁移前也应按备份策略备份模拟数据,以便数据迁移后能按恢复策略进行恢复测试。 测试数据模拟迁移 根据设计的数据迁移测试方案测试数据模拟迁移,也就是检查数据模拟迁移后数据和应用软件是否正常,主要包括:数据一致性测试、应用软件执行功能测试、性能测试、数据备份和恢复测试等。 准备实施数据迁移 数据模拟迁移测试成功后,在正式实施数据迁移前还需要做好以下几个方面工作:进行完全数据备份、确定数据迁移方案、安装和配置软硬件等。 正式实施数据迁移

按照确定的数据迁移方案,正式实施数据迁移。 测试数据迁移效果 按照数据迁移测试方案测试数据迁移效果,并对数据迁移后的数据库参数和性能进行调整,使之满足数据迁移后实际应用系统的需要。 移植系统应用软件 将实际应用系统的应用软件移植到数据迁移后的数据库系统上,并使之正常运行。 正式运行应用系统 在正式实施数据迁移成功并且数据库参数和性能达到要求后,就可以正式运行应用系统,并投入实际使用。 实现向Oracle8i数据迁移

带有oracle数据库的数据迁移方案精编版

数据迁移技术方案 一、项目背景 某信息中心系统本次机房搬迁以及数据迁移工程是本次项目需完成的重点工作,包括整个信息中心的核心数据及业务交换中心,系统现有设备包括:核心交换机、接入交换机、服务器、存储盘阵等,迁移主要分设备迁移和数据迁移。系统搬迁具有时间短、系统结构复杂、测试时间长、设备繁多昂贵、人员多、层次复杂等特点。本项目搬迁迁移,时间非常紧,且对设备的稳定性也是一个考验。因此,必须协调好各单位人员的关系,齐心协力才可能在预定时间内完成搬迁迁移工程。 整个迁移工作分两步走,第一步先对数据进行迁移,数据迁移完成确认无误。第二步对整体信息中心所有设备进行迁移,确保所有设备正常运行。 本方案是以尽量不影响信息中心工作或将影响降低到最低为前提的情况下制定的,即先完成新机房网络接入后,确保网络畅通稳定的前提下,完成信息中心系统业务的部署,确保整个系统在新机房业务实现,整个业务系统顺利割接,然后再在特定时间点开始原机房的设备搬迁工作,在1-2工作日内完成整个服务器、网络设备的搬迁、安装及测试。并且在开机以后,继续跟踪系统的运行情况,随时处理系统运行的异常情况。我公司在资源方面有较大优势,如在搬迁迁多工作中出现设备故障,除在备品备件中提供的备件外,还可协调各方资源以最快速度解决客户设备故障问题。

二、系统环境 1、第一机房环境 1.1. 设备分布 第一机房设备共涉及到10个机柜,具体设备名称及数量为:38台pvg server(1810/2800)汇聚服务器、4台pvg server3800核心服务器、26台存储、1台存储控制服务器、5台交换机。 1.2. 硬件设备情况 1.2.1汇聚服务器 汇聚服务器品牌为网力产品,38台中32台设备作为汇聚服务器,每台设备使用2个网卡:1个网卡接入单位、另1个网卡接入存储服务器;另外6台为出口服务,只使用1个网卡。设备网口全部接到RG-6806/6810两台交换机上,以便与单位和存储设备通讯。总电口使用量为:32*2+6=70个。 1.2.2核心服务器 核心服务器品牌为网力产品,4台该设备中2台为负责汇总个单位,另外2台为出口服务。每台设备使用1个网口,网口接到RG-6806/6810上。总电口使用量为:1*4=4。 1.2.3存储 存储品牌为XX以及部分老存储设备,存储共涉及到17台设备:1台控制器、16台存储。控制服务器使用1个网卡,接入到RG-6810上。16台存储各使用2个网口,每台存储对应两台汇聚服务器,设备网口接入到RG-6810/6806上。总电口使用量为:16*2+1=33个。 1.2.4交换机 交换机品牌为锐捷及H3C。共涉及到5台交换机:RG-6810、RG-6806、RG-7610、H3C 7506、H3C 7506E。设备端口及板卡信息为:

把Excel中的数据导入Oracle 数据库中练习题.doc

教你怎么样把Excel 文件中的数据导入到Oracle 数据库中 第一种:最简单的方法。 在EXCEL中全选数据,然后COPY。接着打开PL/SQL DEVELOPER,打开SQL窗口,输入select * from mytable for update; 然后执行,就可以看到查出目的表mytable数据,如果是空表,当然是没数据了。然后点击下面列表上方的锁(编辑数据),不管有没有数据,我们选择最后一个空行的行头,让整行变成黑色则表示整行已全选中。注意该行左边是有个黑色实心三角箭头的。然后粘贴,再commit 就OK咯。 说明:而且这个方法还有个好处就是对EXCEL中的日期型、数值型字段的处理也很正常,数据类型不会丢失。 图:选中了行然后粘贴数据 第二种:简单的方法。 先将Excel文件另存为一个.csv 文件,然后编写一个insert.ctl文件,ctl文件写法如下:load data--1、控制文件标识 infile 'test.csv'--2、要输入的数据文件名为test.csv append into table table_name --3、向表table_name中追加记录 fields terminated by ','--4、字段终止于',',是一个逗号 (field1, field2, field3, ... fieldn)-----定义列对应顺序 field(x)要与Oracle表中的字段名保持一致(大写) 最后在DOS命令下执行以下命令: sqlldr user/password control=insert.ctl

图:表示导入了12条记录 第三种:比较简单的方法。 如果数据不是很多,可以使用如下方法: 假设表名为test_excel,有4列数据,则设置Excel的E1单元格的值为 ="insert into test_excel values(‘” & A1 & “’, ‘” & B1 & “’, ‘” & C1 & “’, ‘” & D1 & “’);” 向下拖动该公式,则生成一列sql,把其copy到sql/plus中执行即可(如果数据中有单引号,需要先替换成两个),临时导数据用这种方法还是比较方便的。 图:使用Excel的公式功能为我们生成的SQL语句 图:导入到Oracle数据库后的表数据

Oracle数据库迁移的几种方式

Oracle数据库迁移的几种方式 我们常常需要对数据进行迁移,迁移到更性能配置更高级的主机OS上、迁移到远程的机房、迁移到不同的平台下,以下介绍ORACLE的几种数据库迁移方案: 一、exp/imp逻辑备份与恢复: 它是最常用最简单的方法,一般是基于应用的owner级做导出导入。 操作方法为: 在新库建立好owner和表空间,停老库的应用,在老库执行: $ exp user/pwd owner=XXX file=exp_xxx.dmp log=exp_xxx.log buffer=6000000, 导入dmp文件到新库,在新库执行如下命令: $ imp user/pwdfromuser=XXX touser=XXX file=exp_xxx.dmp log=imp_xxx.log ignore=y. 优缺点:优点是可以跨平台使用;缺点是停机时间长,停机时间为从exp到网络传输到新库,再加上imp的时间。 二、Storage存储迁移: 这种情况下,数据文件、控制文件、日志文件、spfile都在存储上(一般情况下是裸设备),我们可以直接把存储挂到新机器上,然后在新机器上启动数据库。 操作方法:将老库的pfile(因为里面有指向裸设备的spfile链接),tnsnames.ora,listener.ora,密码文件传到新库的对应位置。将存储切至新机,或者用文件拷贝或dd的方式复制数据文件,启动数据库。 优缺点:优点是该迁移方式非常简单,主要的工作是主机工程师的工作,dba只需配合即可,停机时间为停库、切存储、起库的时间;缺点是要求新老库都是同一平台,是相同的数据库版本。 三、利用data guard迁移: 用dg我们不仅可以用来做容灾,物理的dg我们还可以作为迁移的方式。

oracle按用户导入导出数据

Oracle数据库exp imp按用户导出导入实例 按用户导出再导入实例,任务要求如下: ◆1.从一台windows服务器 A 上导出 Test1 这个用户的所有对象,然后导入到linux服务器 B 上的 Test2用户。(已知Test1密码为Test1passwd 或者用system用户导出也行) ◆2.B机器上Test2用户不存在,或Test2用户已经存在两种情况(用户存在相对比较复杂) ---------如果Test2用户已经存在(数据没用,可以删除),级联删除用户及所有对象(有可能遇到有人正在连接,删除不掉的情况方法参照下文),重新创建账号并赋权。 ◆3.赋予适当的权限 操作步骤: ◆1.从 A 上导出数据文件到指定目录(目录名称自己定义,只要自己能找到就行,和用户名没有关系) sqlplus /nolog conn / as sysdba exp Test1/Test1passwd owner=Test1 file=D:\files\Test1.dmp ◆2.在A机器上查看用户默认表空间,以便导入时创建一样的表空间 SQL> select username,default_tablespace from dba_users where username ='TEST1'; USERNAME DEFAULT_TABLESPACE ------------------------------ ------------------------------ TEST1 CMIS ◆3.查看用户使用的表空间 SQL> select DISTINCT owner ,tablespace_name from dba_extents where owner like 'TEST1'; OWNER TABLESPACE_NAME ------------------------------ ------------------------------ TEST1 XSL TEST1 CMIS ◆4.查看表空间对应的数据文件,以便在B上创建大小合适的数据文件。 SQL> select file_name,tablespace_name from dba_data_files where tablespace_name in ('CMIS','XSL'); FILE_NAME BYTES TABLESPACE ------------------------------------------------------------ ---------- ---------- D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS 8728346624 CMIS D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS01.ORA 8204058624 CMIS D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS02.ORA 4194304000 CMIS D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS03.ORA 4194304000 CMIS D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS04.ORA 4194304000 CMIS D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS05.ORA 4194304000 CMIS

dmp文件导入oracle数据库方法

DMP文件使用IMP导入ORACLE方法 在审计中接到被审计单位的ORACLE数据库EXP导出的备份文件XXX.DMP文件,需要导入ORACLE数据库中进行查询。 一、准备工作 1、将XXX.DMP拷贝到E:\下; 2、使用超大文本查看器logvewer软件打开XXX.DMP,在文件开头中找到导出用户名,使用查找功能输入TABLESPACE查找此单词后的表空间名称。 例如:我们得到财政预算数据库ORACLE数据EXP备份文件IFMIS2012_CJ20121229.DMP文件,经查看用户名为IFMIS2012_CJ,表空间名称为L TSYSDA TA01、L TSYSDA TA02、L TSYSDA TA03、L TINXDA TA01、L TLOBDA TA01、USERS六个,USERS是系统用户表空间,在建立表空间时就不需要再建了。 二、安装ORACLE 按照ORACLE 11G安装图解安装就可以了,建议安装企业版桌面模式,启动ORACLE服务,创建实例,使用统一口令。 我安装的是企业版服务器模式,创建实例ORCL,使用统一口令SQ。 三、建立表空间 方法有2种,一种DOS下SQLPLUS方式,一种是ORACLE的EM方式。

建议使用EM方式建立表空间: 1、启动服务:我的电脑—右键—管理—服务—ORACLE3个服务启动; 2、启动EM:开始--程序-- ORACLE-oradb11g_home1-- Database Control - orcl; 3、登陆:用户名:sys 口令:SQ(安装时统一口令)连接身份:SYSDBA; 4、创建空间表: 选‘服务器’—‘表空间’—‘创建’—‘表空间名称’—‘添 加物理数据库名称’—‘可扩展,无限制’--‘确定’。 如有其他表空间可以继续—‘创建’~~~‘确定’的程序。 例如:将上述事例的5个表空间逐一创建。 注意:表空间大小的选择要合适,必须要选择可扩展。 四、建立用户并授权 建议在DOS下SQLPLUS方式下进行: 1、开始—附件—dos提示符; 2、输入:CD\ 回车 3、以DBA身份登陆超级用户:c:\>SQLPLUS SYS/SQ AS SYSDBA回车 4、建立用户(以事例为内容建立):sql>CREA TE USER ifmis2012_cj IDENTIFIED BY sq; (ifmis2012_cj用户名,sq 口令)。

Oracle10g的数据迁移方案(好文章要转)

Oracle10g的数据迁移方案(好文章要转) 2008-07-07 11:31 网上看到一个不错的文章,转帖给大家,包括传输表空间解决跨平台及endian-ness问题的处理方法 找到将数据从仓库迁移到集市的最快方法。 Lora 是Acme银行的数据库管理员,她现在在该银行高层管理团队高级会议上成了大家最关注的核心人物。这次会议的目的是确定一些方法,来使最终用户能够详细分析公司主数据仓库中的数据。会上提出的一种想法是创建几个小型数据集市--每个集市根据一个特定的职能范围存储数据--这样每个数据集市就可以由专门的团队来使用。 为了有效地实现数据集市的方法,数据专家必须能将数据快速、有效地放入数据集市中。该团队面临的挑战就是解决如何用数据仓库中的数据快速刷新数据集市中的数据,而这些数据集市又运行在各个结构不同的平台上。这就是Lora为什么出席会议的原因。她会为移动数据提出哪些可供选择的方法呢? 作为一名经验丰富、知识渊博的数据库管理员,Lora向与会者提供了三种可能的方法,分别是: 使用可移动表空间 使用数据泵(导入和导出) 拖出表空间 本文介绍Lora对这三种可选方法的解释,包括它们的实施细节和优缺点。 可移动表空间 Lora 从可移动表空方法开始介绍。把整个表空间移动到目标系统的最快速方法是用FTP(文件传输协议)或rcp(远程复制)来简单地转移表空间的基本文件。但是,仅仅复制Oracle数据文件还不够,目标数据库必须识别出并导入文件以及相应的表空间,最终用户才能使用表空间数据。使用可移动表空间包括复制表空间文件和使它们中的数据在目标数据库中可用。 在考虑该方法之前必须进行一些审查。首先,对于要转移到目标系统的表空间TS1,它必须是自含式的(self-contained)。也就是说,在该表空间中表的所有索引、分区及其他从属于该表的各数据段都必须在该表空间内部。Lora解释说,如果一个表空间集合包含所有从属的数据段,那么就认为这个集合是自含式的。例如,如果表空间TS1和TS2要作为一个集合进行转移,TS1中的一个表在TS2中有一个索引,则这个表空间集合就是自含式的。但是,如果TS1中的一个表另一个索引在表空间TS3中,则该表空间集合(TS1, TS2)就不是自含式的。 要移动表空间,Lora提议使用Oracle数据库10g中的数据泵导出(Data Pump Export)工具。数据泵是Oracle的新一代数据转移工具,它替换了早期的Oracle Export (EXP)和Import (IMP)工具。这些老的工具使用正则SQL来提取和插入数据,而数据泵则与它们不同,它使用能绕过SQL缓冲区的专用API,从而使操作过程速度变得极快。此外,数据泵可以提取特定的对象,如特定的存储过程或特定表空

Oracle数据的导入导出(数据泵的使用)

Oracle数据泵的使用 使用数据泵导出数据 1、连接Oracle数据库 SQL> conn / as sysdba 已连接。 2、创建一个操作目录 SQL> create directory dump_dir as 'e:\dump'; 注意同时需要使用操作系统命令在硬盘上创建这个物理目录。 目录已创建。 3、使用以下命令创建一个导出文件目录 hr用户操作dump_dir目录的权限, SQL>grant read,write on directory my_dir to scott; 授权成功。 4、使用命令expdp导出数据(可以按照用户模式导出、按照表、按照表空间导出和全库导出) C:\>expdp scott/tiger directory=dump_dir dumpfile=20090517scotttab.dmp tables=dept,emp s= Export: Release 10.2.0.1.0 - Production on 星期三, 18 6月, 2008 15:49:00 Copyright (c) 2003, 2005, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options 启动"SCOTT"."SYS_EXPORT_TABLE_01": scott/******** directory=dump_dir dumpfile=20080601.dmp table dept,emp 正在使用BLOCKS 方法进行估计... 处理对象类型TABLE_EXPORT/TABLE/TABLE_DA TA 使用BLOCKS 方法的总估计: 128 KB 处理对象类型TABLE_EXPORT/TABLE/TABLE 处理对象类型TABLE_EXPORT/TABLE/INDEX/INDEX 处理对象类型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT 处理对象类型TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT . . 导出了"SCOTT"."DEPT" 5.656 KB 4 行

dmp文件导入到Oracle数据库

向Oracle数据库导入DMP文件 说明:dmp文件为Oracle数据库备份文件。 命令:imp:导入 emp:导出 Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。 执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于在oracle 8i 中安装目录\ora81\BIN被设置为全局路径, 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。 oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。 下面介绍的是导入导出的实例。 数据导出: 1 将数据库TEST完全导出,用户名system 密码sql 导出到D:\daochu.dmp中 exp system/sql@TEST file=d:\daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出 exp system/sql@TEST file=d:\daochu.dmp owner=(system,sys) 3 将数据库中的表table1、table2导出 exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=( table1、table2) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出 exp system/sql@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\" 上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。 也可以在上面命令后面加上compress=y 来实现。 数据的导入: 1 将D:\daochu.dmp 中的数据导入TEST数据库中。 imp system/sql@TEST file=d:\daochu.dmp imp aichannel/aichannel@HUST full=y file=file= d:\data\newsmgnt.dmp ignore=y 上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。 在后面加上ignore=y 就可以了。 2 将d:\daochu.dmp中的表table1 导入 imp system/sql@TEST file=d:\daochu.dmp tables=(table1) 基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

oracle数据库导入导出命令

Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。 Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接 (通过Net Configuration Assistant添加正确的服务命名,其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过来了) 这样你可以把数据导出到本地,虽然可能服务器离你很远。 你同样可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用。 执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于在oracle 8i 中安装目录\$ora10g\BIN被设置为全局路径, 该目录下有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 将数据库中的表table1 、table2导出 exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) 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 上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

windows环境oracle数据库迁移实例

环境描述: 源数据库 Oracle服务器版本: Oracle9.2.0.8 数据库名称db_name = oradb instance_name=oradb 操作系统版本: windows 2003 实例安装位置: $oracle_base = e:\oracle 目标数据库 Oracle服务器版本: Oracle9.2.0.8 数据库名称db_name = orcl instance_name=orcl 操作系统版本: windows xp 实例安装位置: $oracle_base = d:\oracle 执行步骤. 一, 数据库名称和sid要求相同 1.1 数据库名称的相关概念 一, 数据库名 数据库名是数据库的身份证号码, 用于表示一个数据库. 在参数文件(?/database/initSID.ora)中用DB_NAME表示. *.db_domain='' *.db_file_multiblock_read_count=16 *.db_name='oradb' *.instance_name='oradb' 数据库名是在安装数据库, 创建新的数据库, 创建数据控制文件, 修改数据库结构, 备份与恢复数据库时都需要使用到的. 查询数据库名称: ?Select name, dbid from v$database; ◆Show parameter db_name; ◆查看参数文件initsid.ora 二, 数据库实例名 数据库实例名是用户和操作系统进行联系的标识, 也就是说数据库和操作系统之间的交互使用的是数据库实例名. 实例名在参数文件中也存在, 该参数为instance_name. 数据库名和实例名可以相同也可以不同, 在一般情况下, 数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中, 数据库名和实例名是一对多的关系.

oracle EXP导入导出表

C:\Documents and Settings\Administrator>exp Export: Release 10.1.0.2.0 - Production on 星期一10月11 21:22:09 2010 Copyright (c) 1982, 2004, Oracle. All rights reserved. 用户名: scott 口令:tiger 连接到: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options 输入数组提取缓冲区大小: 4096 > 导出文件: EXPDA T.DMP > e:\dump\dept.dmp (2)U(用户), 或(3)T(表): (2)U > t 导出表数据(yes/no): yes > yes 压缩区(yes/no): yes > yes 已导出ZHS16GBK 字符集和AL16UTF16 NCHAR 字符集 即将导出指定的表通过常规路径... 要导出的表(T) 或分区(T: P): (按RETURN 退出) > dept . . 正在导出表DEPT导出了 4 行 要导出的表(T) 或分区(T: P): (按RETURN 退出) > emp . . 正在导出表EMP导出了14 行 要导出的表(T) 或分区(T: P): (按RETURN 退出) > 导出成功终止, 但出现警告。 C:\Documents and Settings\Administrator>

相关主题