Oracle数据库导入导出方法.docx

上传人:b****6 文档编号:7354383 上传时间:2023-01-23 格式:DOCX 页数:14 大小:24.33KB
下载 相关 举报
Oracle数据库导入导出方法.docx_第1页
第1页 / 共14页
Oracle数据库导入导出方法.docx_第2页
第2页 / 共14页
Oracle数据库导入导出方法.docx_第3页
第3页 / 共14页
Oracle数据库导入导出方法.docx_第4页
第4页 / 共14页
Oracle数据库导入导出方法.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Oracle数据库导入导出方法.docx

《Oracle数据库导入导出方法.docx》由会员分享,可在线阅读,更多相关《Oracle数据库导入导出方法.docx(14页珍藏版)》请在冰豆网上搜索。

Oracle数据库导入导出方法.docx

Oracle数据库导入导出方法

Oracle数据库导入导出方法:

1.使用命令行:

数据导出:

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

daochu.dmp中

expsystem/manager@TESTfile=d:

daochu.dmpfull=y

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

expsystem/manager@TESTfile=d:

daochu.dmpowner=(system,sys)

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

expaichannel/aichannel@TESTDB2file=d:

datanewsmgnt.dmptables=(inner_notify,notify_staff_relat)

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

expsystem/manager@TESTfile=d:

daochu.dmptables=(table1)query="wherefiled1like'00%'"

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

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

数据的导入:

1.将D:

daochu.dmp中的数据导入TEST数据库中。

impsystem/manager@TESTfile=d:

daochu.dmp

impaichannel/aichannel@HUSTfull=yfile=file=d:

datanewsmgnt.dmpignore=y

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

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

2.将d:

daochu.dmp中的表table1导入

impsystem/manager@TESTfile=d:

daochu.dmptables=(table1)

2.plsql:

数据导出:

TOOLS-Exportuserobjects(用户对象)

TOOLS-Exporttables(表)

数据的导入:

TOOLS-Importtables

OracleImport(表)SQLInserts(用户对象)

也可以将用户对象的语句拷贝出来,粘贴到CommandWindow这样的好处是可以看到执行的过程。

oracle数据库导入导出命令!

Oracle数据导入导出imp/exp

功能:

Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。

 

大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。

 Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接

 (通过NetConfigurationAssistant添加正确的服务命名,其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过来了)

 这样你可以把数据导出到本地,虽然可能服务器离你很远。

 你同样可以把dmp文件从本地导入到远处的数据库服务器中。

 利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用。

 

执行环境:

可以在SQLPLUS.EXE或者DOS(命令行)中执行,

 DOS中可以执行时由于在oracle8i中 安装目录\$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中

  expsystem/manager@TESTfile=d:

\daochu.dmpfull=y

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

  expsystem/manager@TESTfile=d:

\daochu.dmpowner=(system,sys)

 3将数据库中的表table1、table2导出

  expsystem/manager@TESTfile=d:

\daochu.dmptables=(table1,table2)

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

  expsystem/manager@TESTfile=d:

\daochu.dmptables=(table1)query=\"wherefiled1like '00%'\"

 

    上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。

                    不过在上面命令后面加上compress=y 就可以了

数据的导入

 1将D:

\daochu.dmp中的数据导入TEST数据库中。

  impsystem/manager@TEST file=d:

\daochu.dmp

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

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

 2将d:

\daochu.dmp中的表table1导入

 impsystem/manager@TEST file=d:

\daochu.dmp tables=(table1)

 

 基本上上面的导入导出够用了。

不少情况我是将表彻底删除,然后导入。

 

注意:

 你要有足够的权限,权限不够它会提示你。

 数据库时可以连上的。

可以用tnspingTEST来获得数据库TEST能否连上。

 

数据导出:

exphkb/hkb@boss_14full=yfile=c:

\orabackup\hkbfull.dmplog=c:

\orabackup\hkbfull.log;

导出注意事项:

导出的是当前用户的的数据,当前用户如果有DBA的权限,则导出所有数据!

同名用户之间的数据导入:

imphkb/hkb@xe file=c:

\orabackup\hkbfull.dmplog=c:

\orabackup\hkbimp.logfull=y

不同名之间的数据导入:

impsystem/test@xefromuser=hkbtouser=hkb_newfile=c:

\orabackup\hkbfull.dmp

log=c:

\orabackup\hkbimp.log;

 

oracle导入导出命令详解(附数据库每天定时备份脚本)

一.导出工具exp

1.它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/bin

exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移

它有三种模式:

a.用户模式:

导出用户所有对象以及对象中的数据;

b.表模式:

导出用户所有表或者指定的表;

c.整个数据库:

导出数据库中所有对象。

2.导出工具exp交互式命令行方式的使用的例子

$exptest/test123@appdb

Enterarrayfetchbuffersize:

4096>回车

Exportfile:

expdat.dmp>m.dmp生成导出的文件名

(1)E(ntiredatabase),

(2)U(sers),or(3)T(ables):

(2)U>3

Exporttabledata(yes/no):

yes>回车

Compressextents(yes/no):

yes>回车

ExportdoneinZHS16GBKcharactersetandZHS16GBKNCHARcharacterset

AbouttoexportspecifiedtablesviaConventionalPath...

Table(T)orPartition(T:

P)tobeexported:

(RETURNtoquit)>cmamenu要导出的表名

..exportingtableCMAMENU4336rowsexported

Table(T)orPartition(T:

P)tobeexported:

(RETURNtoquit)>要导出的表名n

Table(T)orPartition(T:

P)tobeexported:

(RETURNtoquit)>回车

Exportterminatedsuccessfullywithoutwarnings.

3.导出工具exp非交互式命令行方式的例子

$expscott/tigertables=emp,deptfile=/directory/scott.dmpgrants=y

说明:

把scott用户里两个表emp,dept导出到文件/directory/scott.dmp

$expscott/tigertables=empquery=\"wherejob=\'salesman\'andsal\<1600\"file=/directory/scott2.dmp

说明:

在exp里面加上导出emp的查询条件job='salesman'andsal<1600

(但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)

$expparfile=username.parfile=/directory1/username_1.dmp,/directory1/username_2.dmpfilesize=2000Mlog=/directory2/username_exp.log

参数文件username.par内容

userid=username/userpassword

buffer=8192000

compress=n

grants=y

说明:

username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改

filesize指定生成的二进制备份文件的最大字节数

(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)

4.命令参数说明

关键字说明(默认)

---------------------------------------------------

USERID用户名/口令

FULL导出整个文件(N)

BUFFER数据缓冲区的大小

OWNER所有者用户名列表

FILE输出文件(EXPDAT.DMP)

TABLES表名列表

COMPRESS导入一个范围(Y)

RECORDLENGTHIO记录的长度

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将传输的表空间列表

二.导入工具imp

1.它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/bin

imp导入工具将EXP形成的二进制系统文件导入到数据库中.

它有三种模式:

a.用户模式:

导出用户所有对象以及对象中的数据;

b.表模式:

导出用户所有表或者指定的表;

c.整个数据库:

导出数据库中所有对象。

只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入

imp步骤:

(1)createtable

(2)insertdata(3)createindex(4)createtriggers,constraints

2.导入工具imp交互式命令行方式的例子

$imp

Import:

Release8.1.6.0.0-Productionon星期五12月717:

01:

082001

(c)Copyright1999OracleCorporation.Allrightsreserved.

用户名:

test

口令:

****

连接到:

Oracle8iEnterpriseEditionRelease8.1.6.0.0-64bitProduction

WiththePartitioningoption

JServerRelease8.1.6.0.0-Production

导入文件:

expdat.dmp>/tmp/m.dmp

输入插入缓冲区大小(最小为8192)30720>

经由常规路径导出由EXPORT:

V08.01.06创建的文件

警告:

此对象由TEST导出,而不是当前用户

已经完成ZHS16GBK字符集和ZHS16GBKNCHAR字符集中的导入

只列出导入文件的内容(yes/no):

no>

由于对象已存在,忽略创建错误(yes/no):

no>yes

导入权限(yes/no):

yes>

导入表数据(yes/no):

yes>

导入整个导出文件(yes/no):

no>yes

.正在将TEST的对象导入到SCOTT

..正在导入表"CMAMENU"4336行被导入

成功终止导入,但出现警告。

3.导入工具imp非交互式命令行方式的例子

$impsystem/managerfromuser=jonestables=(accts)

$impsystem/managerfromuser=scotttables=(emp,dept)

$impsystem/managerfromuser=scotttouser=joetables=emp

$impscott/tigerfile=expdat.dmpfull=y

$impscott/tigerfile=/mnt1/t1.dmpshow=nbuffer=2048000ignore=ncommit=ygrants=yfull=ylog=/oracle_backup/log/imp_scott.log

$impsystem/managerparfile=params.dat

params.dat内容

file=dba.dmpshow=nignore=ngrants=yfromuser=scotttables=(dept,emp)

4.导入工具imp可能出现的问题

(1)数据库对象已经存在

一般情况,导入数据前应该彻底删除目标数据下的表,序列,函数/过程,触发器等;

数据库对象已经存在,按缺省的imp参数,则会导入失败

如果用了参数ignore=y,会把exp文件内的数据内容导入

如果表有唯一关键字的约束条件,不合条件将不被导入

如果表没有唯一关键字的约束条件,将引起记录重复

(2)数据库对象有主外键约束

不符合主外键约束时,数据会导入失败

解决办法:

先导入主表,再导入依存表

disable目标导入对象的主外键约束,导入数据后,再enable它们

(3)权限不够

如果要把A用户的数据导入B用户下,A用户需要有imp_full_database权限

(4)导入大表(大于80M)时,存储分配失败

默认的EXP时,compress=Y,也就是把所有的数据压缩在一个数据块上.

导入时,如果不存在连续一个大数据块,则会导入失败.

导出80M以上的大表时,记得compress=N,则不会引起这种错误.

(5)imp和exp使用的字符集不同

如果字符集不同,导入会失败,可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.

导入完成后再改回来.

(6)imp和exp版本不能往上兼容

imp可以成功导入低版本exp生成的文件,不能导入高版本exp生成的文件

根据情况我们可以用

$impusername/password@connect_string

说明:

connect_string是在/ORACLE_HOME/network/admin/tnsnames.ora

定义的本地或者远端数据库的名称

5.命令参数说明

关键字说明(默认)

----------------------------------------------

USERID用户名/口令

FULL导入整个文件(N)

BUFFER数据缓冲区大小

FROMUSER所有人用户名列表

FILE输入文件(EXPDAT.DMP)

TOUSER用户名列表

SHOW只列出文件内容(N)

TABLES表名列表

IGNORE忽略创建错误(N)

RECORDLENGTHIO记录的长度

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拥有可传输表空间集中数据的用户

三.unix下oracle数据库定时备份脚本(按用户备份)

以下命令可以用crontab方式每天夜里2点定时执行,脚本最多分30个文件,每个文件大小最大1G的形式将数据库导出,

如果数据库数据量很大,多于30G,则会导出不成功,此时只需根据数据量大小调整变量num的值即可。

该脚本将数据库

导出后用gzip进行压缩,然后保存到系统/data/expfiles,导出之前,会将前一天的备份移到/data/expfiles_bak,

此种备份方式可以保存最近两天的数据备份。

outfile=`date+%Y%m%d_%H%M`

num=30

i=1

files=

if[!

-d/data/expfiles];then

mkdir/data/expfiles

fi

if[!

-d/data/expfiles_bak];then

mkdir/data/expfiles_bak

fi

dfile=`ls-1/data/expfiles_bak/|awk'{if(NR<2){print$1}}'`

prefix=`echo|awk'{printsubstr("'"${dfile}"'",1,13)}'`

rm-f/data/expfiles_bak/${prefix}*

 

dfile=`ls-1/data/expfiles/|awk'{if(NR<2){print$1}}'`

prefix=`echo|awk'{printsubstr("'"${dfile}"'",1,13)}'`

mv/data/expfiles/${prefix}*/data/expfiles_bak

 

while[$i-lt$num]

do

files=$files/data/expfiles/${outfile}_$i.dmp,

i=`expr$i+1`

done

files=$files/data/expfiles/${outfile}_$i.dmp

#echo$files

expuserid=user/passwd@acctFILE=$filesfilesize=1024Mgrants=N2>>exp_rpt.log

gzip/data/expfiles/${outfile}*

Oracleexp/imp导出导入工具的使用

一.导出工具exp

1.它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/bin

  exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移

  

  它有三种模式:

      a. 用户模式:

导出用户所有对象以及对象中的数据;

      b. 表模式:

导出用户所有表或者指定的表;

      c. 整个数据库:

导出数据库中所有对象。

2.导出工具exp交互式命令行方式的使用的例子

$exptest/test123@appdb

Enterarrayfetchbuffersize:

4096>回车

Exportfile:

expdat.dmp>m.dmp 生成导出的文件名

(1)E(ntiredatabase),

(2)U(sers),or(3)T(ables):

(2)U>3

Exporttabledata(yes/no):

yes>回车

Compressextents(yes/no):

yes>回车

ExportdoneinZHS16GBKcharactersetandZHS16GBKNCHARcharacterset

AbouttoexportspecifiedtablesviaConventionalPath...

Table(T)orPartition(T:

P)tobeexported:

(RETURNtoquit)>cmamenu 要导出的表名

.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1