oracle import命令使用浅解
- 格式:docx
- 大小:21.55 KB
- 文档页数:2
1、export/import的用处oracle export/import工具用于在数据库之间传递数据。
export从数据库中导出数据到dump文件中import从dump文件中到入数据导数据库中下面是一般使用他们的情况(1)两个数据库之间传送数据同一个版本的oracle server之间不同版本的oracle server之间同种os之间不同种os之间(2)用于数据库的备份和恢复(3)从一个schema传送到另一个schema(4)从一个tablespace传送到另一个tablespace2、dump文件export到出的是二进制格式的文件,不可以手工编辑,否则会损坏数据。
该文件在oracle支持的任何平台上都是一样的格式,可以在各平台上通用。
dump文件在import时采用向上兼容方式,就是说oralce7的dump文件可以导入到oracle8中,但是版本相差很大的版本之间可能有问题。
3、export/import过程export导出的dump文件包含两种基本类型的数据- ddl (data dictionary language)- datadump文件包含所有重新创建data dictionary的ddl语句,基本上是可以读的格式。
但是应该注意的是,千万不要用文本编辑器编辑之,oracle说不支持这样做的。
下面列出的是dump文件中包括的oracle对象,分为table/user/full方式,有些对象只是在full方式下才有(比如public synonyms, users, roles, rollback segments等)table mode user mode full database mode---------------------- ---------------------- -------------------------table definitions table definitions table definitionstable data table data table dataowner's table grants owner's grants grantsowner's table indexes owner's indexes indexestable constraints table constraints table constraintstable triggers table triggers all triggersclusters clustersdatabase links database linksjob queues job queuesrefresh groups refresh groupssequences sequencessnapshots snapshotssnapshot logs snapshot logsstored procedures stored proceduresprivate synonyms all synonymsviews viewsprofilesreplication catalogresource costrolesrollback segmentssystem audit optionssystem privilegestablespace definitionstablespace quotasuser definitions4、import时的对象倒入顺序在倒入数据时,oracle有一个特定的顺序,可能随数据库版本不同而有所变化,但是现在是这样的。
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(3)、“累积型”增量导出累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。
比如:exp system/manager inctype=cumulative file=040731.dmp数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。
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=y2 将数据库中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文件可以很好的压缩。
oracle imp&exp 导入导出命令详解附录一:给用户增加导入数据权限的操作第一,启动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附录二:Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.先建立import9.par,然后,使用时命令如下:imp parfile=/filepath/import9.par例import9.par 内容如下:FROMUSER=TGPMSTOUSER=TGPMS2 (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)ROWS=YINDEXES=YGRANTS=YCONSTRAINTS=YBUFFER=409600file==/backup/ctgpc_20030623.dmplog==/backup/import_20030623.log在导入导出命令中加上feedback=1000可以让过程显示一个不断增多的“...”,以改变以往的闪烁的光标。
Export/Import 使用技巧与常见错误Export 和 Import 是一对读写Oracle数据的工具. Export 将 Oracle 数据库中的数据输出到操作系统文件中, Import 把这些文件中的数据读到Oracle 数据库中. Export/Import可以用来完成以下工作: 数据归档, 数据库升级, 备份数据库, 把数据从一个数据库移到另一个数据库, 回收数据库存储碎片等等.使用Export除了要保证磁盘或磁带上有足够的空间, 还必须执行expvew.sql和expvew.sql来创建Export使用的示图, 并创建EXP_FULL_DATABASE ROLE. 使用Export的用户应具有CREATE SESSION的权限, 若要Export其他用户的表还要有EXP_FULL_DATABASE ROLE.同样, 使用Import必须用catex.sql来创建IMP_FULL_DATABASE ROLE. 使用Import 的用户应具有CREATE SESSION的权限. Import只能读入用Export创建的文件. 如果该文件是全库Export, 使用Import的用户还要有IMP_FULL_DATABASE ROLE.Export/Import有三个级别: 表级, 用户级和全数据库级.表级允许Export/Import指定的表而不涉及其他数据库对象. 用户级Export/Import只针对属于指定用户的全部数据库对象. 只有拥有EXP_FULL_DATABASE/IMP_FULL_DATABASE ROLE 的用户才能使用全数据库级的Export/Import.有三种方式执行Export/Import: 参数文件方式, 命令行方式和交互式.使用参数文件是一种比较好的方式, 格式为:Exp <username/password> PARFILE = <ilename>Imp <username/password> PARFILE = <ilename>命令行方式是指在命令行中指定参数:Exp <username/password> TABLES = (emp,dept) GRANTS = yImp <username/password> FROMUSER = scott TOUSER = test TABLES = (emp,dept)交互式只要敲入Exp或Imp然后回答屏幕上的提问即可.下面介绍一些EXPORT/IMPORT的使用技巧- 把数据库对象从一个用户移到另一个用户Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.假设要把表 T 的拥有者User1改为User2, 具体步骤是:- exp system/manager tables = User1.T- imp system/manager fromuser = User1 touser = User2 tables = T- drop table User1.T- 把数据库对象从一个表空间移到另一个表空间建表时可以指定表空间, 表空间一经确定就部能随意改变. 若要表 T 从表空间 tbs1移到表空间 tbs2, 就要采用以下方法:- exp <user/passwd> tables = T- imp <user/passwd> tables = T indexfile = temp.sql- drop table T- 编辑 temp.sql 只保留所需的建表命令并指定表空间为tbs2- 以表的所有者执行temp.sql- imp <user/passwd> tables = T ignore = Y- 只输出一个的表空间通常数据库设计成用户若属于某个表空间, 那么这个用户创建的数据库对象也在该表空间内.Export某个表空间可用如下方法:- 查看表空间内所有用户spool ownersselect ownerfrom dba_segmentswhere tablespace_name = '<TablespaceName>';spool off- 查看表空间内所有数据库对象spool objectsselect owner, object_name, object_typefrom dba_objectswhere owner = 'owner1'or owner = 'owner2'...or owner = 'ownern';spool off- 作表级Export- 从Exp文件中提取创建数据库对象的命令在IMPORT时使用 'INDEXFILE = FileName', IMPORT把创建数据库对象的命令输出到指定的文件中, 编辑后运行这个文件就能建立数据库对象.下面介绍Export/Import 使用中几个常见的问题和解决办法- Export/Import 使用不同的字符集Export文件中包含着字符信息. 如过输入/输出都使用担字节字符集, 如EBCDIC或US7ASCII, 输入时将自动进行字符集转换. 转换过程中, 若输出文件中含有的目标字符集中不能匹配的字符会自动设成缺省字符.对于多字节字符集, 如ZHS16CGB231280, 通常不能自动转换, 只有在字符串长度不变的情况下才能自动转换.- 空间不够 -- 碎片问题有些时候, 即使数据库仍有足够的空间, 使用IMPORT时却出空间不够的错误. 出现这种现象通常是由于数据库中存在碎片, 即有很多小的不连续的空闲空间. 解决办法是先将数据库全库EXPORT(FULL=Y), SHUTDOWN数据库, 重新建库(CREATE DATABASE)后用IMPORT FULL=Y恢复数据.- ROLLBACK段不够Export/Import使用过程中, 如果数据量很大会出现'ROLLBACK段不够'的错误. 这时要建一个足够大的ROLLBACK段, 使它ONLINE而其他ROLLBACK段OFFLINE. 这样, Export/Import使用这个大ROLLBACK段, 从而避免上述现象.不同观点。
oracle的import用法Oracle的import用法可以通过Oracle的数据导入工具`impdp`实现。
以下是impdp命令的基本用法:```impdp username/password@database_nameDIRECTORY=directory_name DUMPFILE=dump_file_name [other_options]```其中,各参数的含义如下:- `username/password@database_name`:要导入数据的Oracle数据库的用户名、密码和数据库连接信息。
- `DIRECTORY=directory_name`:指定导入数据文件的目录,需要在数据库中先创建目录。
- `DUMPFILE=dump_file_name`:指定要导入的数据文件名。
- `[other_options]`:可选的其他选项,如指定导入模式、指定要导入的表等。
以下是一些常用的impdp命令选项:- `SCHEMAS=schema_names`:指定要导入的模式(用户)名。
- `TABLES=table_names`:指定要导入的表名。
- `TRANSFORM=transform_options`:指定导入时对数据进行的转换操作,如修改表名、修改字段类型等。
- `REMAP_SCHEMA=old_schema:new_schema`:将导入的数据从旧的模式(用户)导入到新的模式(用户)。
- `REMAP_TABLE=old_table:new_table`:将导入的数据从旧的表导入到新的表。
- `REMAP_DATAfile=old_file:new_file`:将导入的数据从旧的数据文件导入到新的数据文件。
请注意,impdp命令需要在操作系统的命令行中执行,并且需要具有Oracle数据库的管理员权限。
在执行命令之前,请确保已经创建好了要导入的数据文件并设置了正确的权限。
oracle11gimp用法Oracle 11g IMP(Import)用法指南Oracle 11g是一种强大的关系数据库管理系统,它提供了多种工具和功能,其中之一是IMP(Import)工具,它用于将先前导出的数据和对象导入到Oracle数据库中。
本文将介绍Oracle 11g IMP工具的用法,帮助您使用它进行数据导入。
首先,确保您已经安装了Oracle 11g数据库,并具备正确的权限以执行导入操作。
使用IMP工具进行数据导入的基本语法如下:```imp username/password@database file=<导入文件路径> full=y```其中,`username/password@database`是您的数据库登录凭据,`file=<导入文件路径>`是导入文件的路径和名称,`full=y`表示导入所有数据和对象。
下面是一些常用的IMP工具参数:1. FROMUSER和TOUSER:用于指定要导入数据的源用户和目标用户。
例如:```imp username/password@database fromuser=<源用户> touser=<目标用户>file=<导入文件路径> full=y```2. TABLES:可以通过指定TABLES参数来限制只导入特定的表。
例如:```imp username/password@database tables=(table1, table2) file=<导入文件路径> full=y```3. IGNORE:用于指定在导入过程中遇到重复记录时的操作。
可以选择忽略(ignore)或替换(replace)重复记录。
例如:```imp username/password@database ignore=y file=<导入文件路径> full=y```4. INDEXES:可以使用INDEXES参数来控制是否导入表的索引。
Oracle的import用法1. 导入数据的目的和意义在数据库管理中,数据导入是一个非常重要且常见的操作。
导入数据可以将外部数据源中的数据加载到Oracle数据库中,以便后续分析、查询和处理。
这对于数据迁移、备份恢复、系统集成等场景都非常有用。
Oracle提供了多种导入工具和方法,其中最常用的是使用imp命令行工具或者使用Oracle SQL Developer图形界面工具进行导入。
2. 使用imp命令行工具进行导入2.1 准备导入文件在使用imp命令进行导入之前,首先需要准备好导入文件。
通常情况下,导入文件是由Oracle提供的导出工具exp生成的。
这些导出文件通常以.dmp为扩展名。
2.2 连接到数据库在执行导入操作之前,需要先连接到目标数据库。
可以使用以下命令连接到数据库:$ sqlplus username/password@database其中,username是要连接的用户名,password是对应的密码,database是目标数据库实例名。
2.3 执行导入操作连接到数据库后,就可以执行实际的导入操作了。
以下是一个示例命令:$ imp username/password@database file=export.dmp full=y其中,username/password@database是连接数据库的参数,file=export.dmp指定了导入文件的路径和名称,full=y表示导入所有对象。
2.4 导入参数说明在上述示例命令中,我们使用了一些导入参数。
下面是一些常用的导入参数及其说明:•file=:指定要导入的文件路径和名称。
•fromuser=:指定要导入的源用户。
•touser=:指定要导入到的目标用户。
•tables=:指定要导入的表名。
•ignore=y:忽略导入过程中遇到的错误。
•indexes=:是否导入索引,默认为y。
•constraints=:是否导入约束,默认为y。
Oracle import命令使用浅解
oracle的exp命令用来导出数据,导出的二进制文件如何使用,怎样才能导入到数据库中呢?答案就是通过oracle的imp命令。
该命令的很多参数和上一篇中介绍的exp是相对应的,所以两篇可以对比着来看。
1.认识imp命令
Imp命令可以通过输入各种参数来控制导出的运行方式,执行参数时格式如下:
IMP KEYWORD=value 或KEYWORD=(value1,value2,...,valueN),例如IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N 。
要想查看imp支持的所有参数,可以通过执行Imp help=y 来查看参数的详细情况。
虽说是详细情况,但是等你查看了就知道了,其实一点都不详细,要不然我也就没必要再写这边笔记博文了。
2.参数详解
USERID:用户名/口令。
该参数在imp命令中位置必须是第一个,用户名/口令。
格式为用户名/密码@待连接的数据库。
具体参考第三节中示例。
BUFFER:数据缓冲区大小。
定义了插入数据的缓冲区的大小,单位是byte,该值越大, Import进程执行插入次数就越少,从而提高导入效率。
BUFFER的大小取决于系统应用、数据库规模,通常来说,设为百兆就足够了。
FROMUSER:所有者用户名列表。
待导入的二进制文件的中的shcema信息,如果导出的文件包含多个用户,那么该参数设定时为多个用户的子集,或者全集。
如果指定了文件包含用户中的一部分,则本次导入操作只会导入已经指定的部分用户的数据。
TOUSER:用户名列表。
与FROMUSER对应的参数,指定导入的目标用户列表。
因为这个参数的存在,可以使我们轻松的把一个用户下的数据导入到另一个用户下,只需执行一个相应的touser就可以了。
前提是该用户确实存在。
FILE:输入文件。
待导入的二进制文件,如果不指定的话,默认采用EXPDAT.DMP。
如果导出时设定了最大转储文件大小的话,我们得到的可能是多个文件,这时候可以指定多个文件名,如:FILE=(file1.dmp,file2.dmp……)。
TABLES:表名列表。
指定要导入的表名。
可以是多个表名,多个表名时采用如下格式:tables=(test_tab_1,test_tab_2)。
如果是在linux或者unix下的话,括号需要进行转义。
如:tables=\(test_tab_1,test_tab_2\) 。
IGNORE:忽略创建错误。
默认为N,及不会忽略创建时的错误。
比如在导入一个表时,目标表已经存在,那样就会导入失败,并提示错误。
如果我们将IGNORE=Y,这样就不会出现该错误了,但是你就得做好表被追加数据的心理准备了。
即使重复了,也不会报错,会直接导入到表中。
RECORDLENGTH:IO记录的长度。
指定文件的byte长度。
INDEXES:是否导入索引。
COMMIT:提交数组插入。
默认值是N,表示导完一张表之后进行提交。
如果设置为Y,则每次缓冲区满了之后就进行提交一次。
这样可以减少占用的回滚段大小。
建议设置为Y.
ROWS: 导入数据行。
默认为Y,即导入表中的记录。
设置为N的话,则只会导入表结构。
LOG:屏幕输出的日志文件。
CONSTRAINTS:是否导入文件中包含的表的constraint内容。
GRANTS:是否导入权限。
STATISTICS:统计信息。
统计导入过程的相关信息,可选项包括ALWAYS,NONE,SAFE,RECALCULATE。
以上只是列举了imp的基本常用参数。
要午休了,就写这些吧,基本也就够了。
3.举例
下面是一个导入命令的示例,可以参考一下。
如下:
imp scott/scottpwd@mydb file=/data/test.dmp.tmp buffer=100000 fromuser=user1 touser=user1 commit=Y tables=\(etl_test_0,etl_test_1\) ignore=Y indexes=N rows=Y grants=Y constraints=Y log=/data/imp.log。