Oracle常用命令(详细介绍导入、导出全部方法)
oracle中imp导入导出命令详解
![oracle中imp导入导出命令详解](https://img.taocdn.com/s3/m/6d1100a8b0717fd5360cdcfd.png)
oracle中imp命令详解Oracle的导入实用程序(Importutility)允许从数据库提取数据,并且将数据写入操作系统文件。
imp使用的基本格式:imp [username[/password[@service]]],以下例举imp常用用法。
1. 获取帮助imp help=y2. 导入一个完整数据库imp system/manager file=d:\daochu.dmp log=d:\daochu.log full=y ignore=y3. 导入一个或一组指定用户所属的全部表、索引和其他对象imp system/manager file=seapark log=seapark fromuser=seapark impsystem/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)6. 从多个文件导入imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)log=paycheck, filesize=1G full=y7. 使用参数文件imp system/manager parfile=bible_tables.parbible_tables.par参数文件:#Import the sample tables used for the Oracle8i Database Administrator's Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import8. 增量导入imp system./manager inctype= RECTORE FULL=Y FILE=A Oracle imp/expC:Documentsand Settingsadministrator>exp help=yExport: Release 9.2.0.1.0 - Production on 星期三 7月 28 17:04:43 2004Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 通过输入 EXP命令和用户名/口令,您可以后接用户名/口令的命令:例程: EXPSCOTT/TIGER或者,您也可以通过输入跟有各种参数的 EXP命令来控制“导出”按照不同参数。
ORACLE 11g数据导入导出
![ORACLE 11g数据导入导出](https://img.taocdn.com/s3/m/2751b1c2a1c7aa00b52acb39.png)
导入时选 择合理的 parallel, 是可以降 低导入数 据时的时 间的,导 入数据时 指定 parallel 值,实际 是用在了 创建索引 的并行度 上 所以在导 入操作时 选择较大 的并行 度,是可 以大幅度 降低提高 创建索引 的速度, 从而加快 导入时的 速度。当 然度如增果 加并 到 太大的 值,会产 生I/O和 锁之类的 竞争,导 致导入速 度降低。
2)改变表 的owner impdp system/D igicom201 4 DIRECTO RY=exp_d ir2 DUMPFIL E=exp_sc ott.dmp TABLES= scott.dep t REMAP_S CHEMA= scott:syst 先导出 scott用户 中的数 据,然后 将此用户 下的表 dept的归 属权转移 给system 用户
导出完 成:
导出的文 件:
6)带出整 个数据库 在DOS环 境下输入 expdp system/D igicom201 4 directory =exp_dir2 dumpfile = full_demo. dmp logfile = full_demo.
导出成 功:
查看导出 文件:
数据导入:
导出成功 。
导出的文 件:
3)按表名 导出 在DOS中 输入: expdp system/D igicom201 4@myorcl tables=st udent dumpfile= table_dem o.dmp directory =exp_dir2 logfile=ta ble_demo.l og
执行结束
查看dept 表的 owner
3)导入表 空间 impdp system/D igicom201 4 DIRECTO RY=exp_d ir2 DUMPFIL E=tablesp ace_demo .dmp TABLES PACES=s ystem;
常用oracle数据库命令
![常用oracle数据库命令](https://img.taocdn.com/s3/m/3784d346001ca300a6c30c22590102020740f2b4.png)
常用oracle数据库命令
1. 启动Oracle数据库
$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup
3. 创建表空间
创建表空间的命令是:
SQL> create tablespace 表空间名 datafile '路径名' size 大小;
6. 创建用户
7. 删除用户
删除用户的命令是:
8. 授权用户
SQL> grant 权限 to 用户名;
9. 撤销用户的权限
11. 查看表结构
查看表结构的命令是:
SQL> desc 表名;
SQL> create table 表名 (列名数据类型, 列名数据类型, …);
13. 删除表
14. 插入数据
插入数据的命令是:
SQL> update 表名 set 列名=新值 where 某条件;
18. 创建索引
20. 查看索引
21. 查询相关信息
查询相关信息的命令是:
SQL> select * from v$session; -- 查看会话 22. 查看数据库版本
24. 备份数据库
$ exp 用户名/密码 file=备份文件路径备注:以上命令均需要在Oracle登录后进行。
oracle数据迁移方法
![oracle数据迁移方法](https://img.taocdn.com/s3/m/a02ce960302b3169a45177232f60ddccdb38e66b.png)
oracle数据迁移方法Oracle数据迁移是将现有的Oracle数据库中的数据、表结构以及相关的约束条件等迁移到另一个Oracle数据库中的过程。
在实际的数据迁移中,存在以下几种常见的方法和工具:1.手动数据迁移:手动数据迁移是一种基本的迁移方法,它需要手工编写SQL语句完成数据迁移的操作。
这种方法适用于迁移的数据量较小的情况,迁移过程相对简单。
迁移操作可以分为以下几个步骤:-创建目标数据库-创建目标数据库的表结构,包括表、索引、约束等-导出源数据库中的数据-将导出的数据文件导入到目标数据库中手动数据迁移方法的优点是灵活性高,适用于各种复杂情况下的迁移操作。
但是由于需要手工编写SQL语句,容易出现错误,对于数据量较大的迁移任务来说,效率较低。
2. Oracle迁移工具:Oracle官方提供了多个数据迁移工具,如Oracle Data Pump和Oracle GoldenGate等。
- Oracle Data Pump是一个用于高效迁移数据和元数据的工具。
它支持全库导出和导入,可以将源数据库中的数据、表结构、存储过程等导出为二进制文件,然后通过网络或者直接复制文件的方式导入到目标数据库中。
Oracle Data Pump在迁移时可以进行数据过滤、表空间映射等操作,可以对数据进行压缩和加密等处理。
- Oracle GoldenGate是一个实时数据复制和数据同步工具,它可以在源数据库和目标数据库之间实时同步数据,保证两个数据库的数据一致性。
GoldenGate可以进行额外的数据转换和过滤操作,支持多种复杂的迁移场景,如异构数据库迁移、分布式迁移等。
3.第三方迁移工具:除了Oracle官方提供的工具,还有一些第三方的数据迁移工具,如TOAD、SQL Developer等。
这些工具提供了可视化的操作界面,可以简化迁移操作的过程,提高效率。
-TOAD是一款功能强大的数据库管理工具,具有数据导入导出、数据比较、数据同步等功能。
Oracle数据库导入导出方法汇总
![Oracle数据库导入导出方法汇总](https://img.taocdn.com/s3/m/5ba7aae66c85ec3a86c2c584.png)
Oracle数据库导入导出方法:1.使用命令行:数据导出: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.将数据库中的表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.dmpimp aichannel/aichannel@HUST full=y file= d:\data\newsmgnt.dmp ignore=y上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上ignore=y 就可以了。
2.将d:\daochu.dmp中的表table1导入imp system/manager@TEST file=d:\daochu.dmp tables=(table1)3.不同名用户之间的数据导入:imp system/test@xe fromuser=hkb touser=hkb_new file=c:\orabackup\hkbfull.dmplog=c:\orabackup\hkbimp.log;2.plsql:数据导出:TOOLS-Export user objects(用户对象)TOOLS-Export tables(表)数据的导入:TOOLS-Import tablesOracle Import(表) SQL Inserts(用户对象)也可以将用户对象的语句拷贝出来,粘贴到Command Window这样的好处是可以看到执行的过程。
oracle数据库导入导出语句
![oracle数据库导入导出语句](https://img.taocdn.com/s3/m/423660c909a1284ac850ad02de80d4d8d15a01be.png)
oracle数据库导⼊导出语句
oracle的exp/imp命令⽤于实现对数据库的导出/导⼊操作;exp命令⽤于把数据从远程数据库服务器导到本地,⽣成.dmp⽂件;imp命令⽤于把本地的数据库.dmp⽂件从本地导⼊到远程的oracle数据库中
1 将数据库test完全导出.⽤户名system/manager导出到D:daochu.dmp 代码如下:
exp file=d:daochu.dmp full=y
2.将数据库中system⽤户与sys⽤户的表导出代码如下:
exp file=d:daochu.dmp owner=(system,sys)
3.将数据库中的表table1 table2 导出代码如下:
exp file:= d:daochu.dmp tables=(table1,table2)
4.将数据库中的表table1中的字段filed1以"00"打头的数据导出代码如下;
exp file:=d:daochu.dmp tables=(table1) query="where filed1 like '00%'"
5.将D:daochu.dmp中的数据导⼊到test数据库中代码如下
imp file:=d:doachu.dmp (这样写的肯定会报错,因为数据库中已经存在表了,对该表就不能导⼊)
所以要在后⾯加上ignore=y就可以了
imp file:=d:daochu.dmp ignore=y 就可以了
6.将d:daochu.dmp中的表table1导⼊到test的数据库中
imp file:=d:daochu.dmp tables=(table1);。
Oracle常用命令大全(很有用,做笔记)
![Oracle常用命令大全(很有用,做笔记)](https://img.taocdn.com/s3/m/05e89ac1a0c7aa00b52acfc789eb172ded6399f7.png)
Oracle常⽤命令⼤全(很有⽤,做笔记)⼀、ORACLE的启动和关闭1、在单机环境下要想启动或关闭ORACLE系统必须⾸先切换到ORACLE⽤户,如下su - oraclea、启动ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>startupSVRMGR>quitb、关闭ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>shutdownSVRMGR>quit启动oracle9i数据库命令:$ sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL> connect / as sysdbaConnected to an idle instance.SQL> startup^CSQL> startupORACLE instance started.2、在双机环境下要想启动或关闭ORACLE系统必须⾸先切换到root⽤户,如下su - roota、启动ORACLE系统hareg -y oracleb、关闭ORACLE系统hareg -n oracleOracle数据库有哪⼏种启动⽅式说明:有以下⼏种启动⽅式:1、startup nomount⾮安装启动,这种⽅式启动下可执⾏:重建控制⽂件、重建数据库读取init.ora⽂件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora⽂件。
2、startup mount dbname安装启动,这种⽅式启动下可执⾏:数据库⽇志归档、数据库介质恢复、使数据⽂件联机或脱机,重新定位数据⽂件、重做⽇志⽂件。
oracle数据库导入导出命令
![oracle数据库导入导出命令](https://img.taocdn.com/s3/m/5ec6b4f1f90f76c661371a10.png)
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数据库备份与还原命令
![最全的Oracle数据库备份与还原命令](https://img.taocdn.com/s3/m/e0ef4333182e453610661ed9ad51f01dc2815788.png)
最全的Oracle数据库备份与还原命令【数据导出】1. 导出orcl中所有的表空间exp system/manager@orcl file=d:\daochu.dmp full=y2. 导出system数据库中指定的表空间exp system/manager@orcl file=d:\daochu.dmp owner=(system,sys)3. 导出数据库中制定的表数据exp system/manager@orcl file=d:\daochu.dmp tables=(table1,table2)4. 导出数据库中table1中字段field1以“00”开头的数据exp system/manager@orcl file=d:\daochu.dmp tables=(table1)query=" where filed1 like '00%'"注:如果要压缩,则在最后⾯加上compress=y即可【数据导⼊】1. 将D:\daochu.dmp 中的数据导⼊ orcl数据库中。
imp system/manager@orcl file=d:\daochu.dmp注:如果有的表已经存在,会提⽰报错,这个时候,在后⾯加上ignore=y,即已存在的表不导⼊2. 将d:\daochu.dmp中的表table1 导⼊imp system/manager@orcl file=d:\daochu.dmp tables=(table1)注:导⼊导出时,有时候会出现权限不⾜的情况这时,需要登录plus进⾏授权,⾸先登录管理员账号,然后: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 ⽤户名字。
ORACLE导出导入(exp和imp)总结
![ORACLE导出导入(exp和imp)总结](https://img.taocdn.com/s3/m/95a4bc63f242336c1eb95e98.png)
1.1 EXP AND IMP导入导出的模式a表模式的导入导出b用户模式的导入导出c全库模式的导入导出导出表模式exp system/jaguar@cfp00_cpzb2003 tables=(cp.misywt14,cp.misywt18) file=d:\t8.dmplog=d:\t14t18_exp.log feedback=10000 compress=n用户模式exp system/jaguar@cfp00_cpzb2003 owner=cp file=e:\cp.dmp log=e:\cp_exp.logfeedback=10000 compress=n全库模式exp system/jaguar@bkup full=y filesize=2000M file=(cpzb01.dmp,cpzb02.dmp)log=cpzb_exp.log feedback=10000 compress=n使用参数文件导出(需要在当前路径下执行)exp system/manager@bgd-11_yang1 parfile=t09_exp.part09_exp.par文件内容tables = (test1.misywt09) file=e:\yang\t09.dmp log=e:\yang\t09_exp.log feedback=10000 compress=n快速导出使用参数direct=y recordlength=65535exp system/jaguar@cfp00_cpzb2003 owner=cp file=e:\cp.dmp log=e:\cp_exp.log direct=y recordlength=65535 feedback=10000 compress=n有条件的导出,windowsexp system/ckdb5@ckdb5 tables = (cp962008.misywt40_1) file=t40_96.dmp log=t40_96_exp.log feedback=10000 QUERY='where substr(ckhwh,1,1)="5"'导入表模式imp system/jaguar@cfp99_cpzb fromuser=cp touser=cp tables= (misywt14,misywt18)file=e:\t14t18.dmp log=e:\t14t18_imp.log ignore=y buffer=5120000 commit=yfeedback=10000用户模式imp system/jaguar@cfp99_cpzb fromuser=cp touser=cp file=d:\cp.dmp log=d:\cp_imp.log ignore=y buffer=5120000 commit=y feedback=10000全库模式imp system/jaguar@cfp99_cpzb full=y file=d:\cp.dmp log=d:\cp_imp.log ignore=ybuffer=5120000 commit=y feedback=10000导入大于2G的文件imp system/jaguar@cfp10_cpzbbak filesize=2000M buffer=81920 commyit=y ignore=yfile=(cpzb01.dmp,cpzb02.dmp,cpzb03.dmp,cpzb04.dmp) log=cpzb_imp.log feedback=10000使用参数文件导入(需要在当前路径下执行)imp system/manager@bgd-11_yang1 parfile=t09_imp.part09_imp.par 文件的内容fromuser=test1 touser=test1 tables=(misywt09) file=e:\yang\t09.dmp log=e:\yang\t09_imp.log ignore=y buffer=5120000 commit=y feedback=10000imp步骤说明(1) create table (2) insert data (3) create index (4) create triggers,constraints导出导入常见问题及解决方法1) unix上导出导入,使用多个用户或多个文件时不使用()2) ORACLE不同版本之间的导出导入oracle8.0.4 netwareoracle8.1.5 win2000oracle8.1.7 unix ware 7.1.18.0.4――>8.1.7使用8.0.4从自己导出,使用8.1.5导入8.1.78.1.7――>8.0.4使用8.1.5从8.1.7 导出,使用8.1.5导入8.0.48.1.5――>8.1.7使用8.1.5从自己导出,使用8.1.5导入8.1.78.1.7――>8.1.5使用8.1.7从自己导出,使用8.1.7导入8.1.5oracle8-oracle10之间导入导出的关系1个表的测试oracle8->oracle10test 源数据库目的数据库导出的oracle版本导入的oracle版本文件大小时间结果备注test18 10 8 8 成功有垃圾表BIN$bEheaq87S/q9CiHem/Ty6Q==$0test28 10 8 10 成功test38 10 10 8 失败10无法连接8test48 10 10 10 失败10无法连接8 结论:oracle8->oracle10 导出使用8,导入使用10oracle10->oracle8test 源数据库目的数据库导出的oracle版本导入的oracle版本文件大小时间结果备注test510 8 8 8 成功test610 8 8 10 失败10无法连接8test710 8 10 8 失败8不能读取10得导出文件test810 8 10 10 失败10无法连接8 结论:oracle10->oracle8 导出使用8,导入使用8使用oracle8导出oracle10时,出现错误EXP-00003: 未找到段(10,585868) 的存储定义原因:不能用oracle8导出oracle10。
oracle的导出命令
![oracle的导出命令](https://img.taocdn.com/s3/m/8162f8d6ab00b52acfc789eb172ded630b1c98ee.png)
oracle的导出命令资料来⾃百度搜索,测试全库备份正常导出。
常⽤的oracle数据库备份(导⼊/导出)有两种,分别是exp/imp和expd/impd,前者是Orace早期版本带有的导⼊导出⼯具,后者是Oracle10g后出现的,下⾯进⾏分别介绍!1.exp/imp三种导⼊导出类型Oracle⽀持三种导⼊导出类型分别是表⽅式(T⽅式),⽤户⽅式(U⽅式),全库⽅式(Full⽅式)A: 表⽅式(T⽅式)备份(exp)某个⽤户模式下指定的对象(表),exp guwei/ai123456@10.21.19.63/orcl rows=y indexes=n compress=n buffer=50000000 file=exp_table.dmplog=exp_table.log tables=USER_INFO,POLICY_INFO恢复(imp)备份数据中的指定表,imp yuwen/ai123456@10.21.13.14/orcl fromuser=guwei touser=yuwen rows=y indexes=n commit=y buffer=50000000 ignore=nfile=exp_table.dmp log=exp_table.log tables=USER_INFO,POLICY_INFOB:⽤户⽅式(U⽅式)备份(exp)某个⽤户模式下的所有对象,exp jnth/thpassword@oracle owner=guwei rows=y indexes=n compress=n buffer=50000000 file=exp_table.dmp log=exp_table.log恢复(imp)备份数据的全部内容,imp yuwen/ai123456@10.21.13.14/orcl fromuser=guwei touser=yuwen rows=y indexes=n commit=y buffer=50000000 ignore=nfile=exp_table.dmp log=exp_table.log恢复(imp)备份数据中的指定表,imp yuwen/ai123456@10.21.13.14/orcl fromuser=guwei touser=yuwen rows=y indexes=n commit=y buffer=50000000 ignore=nfile=exp_table.dmp log=exp_table.log tables=USER_INFO,POLICY_INFOC:全库⽅式(Full⽅式)备份(exp)完整的数据库,exp system/systempassword@oracle rows=y indexes=n compress=n buffer=50000000 full=y file=exp_table.dmp log=exp_table.log导⼊(imp)完整数据库,imp system/systempassword@oracle rows=y indexes=n commit=y buffer=50000000 ignore=y full=y file=exp_table.dmp log=exp_table.log 导出导⼊的优缺点优点:简单易⾏;可靠性⾼;不影响数据库的正常运⾏。
oracle导入导出详解
![oracle导入导出详解](https://img.taocdn.com/s3/m/79ac02e9172ded630b1cb66b.png)
总结了oracle的导入导出,希望能帮助大家一. 导出工具exp1. 它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/binexp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移它有三种模式:a. 用户模式:导出用户所有对象以及对象中的数据;b. 表模式:导出用户所有表或者指定的表;c. 整个数据库:导出数据库中所有对象。
2. 导出工具exp交互式命令行方式的使用的例子$exp test/test123@appdbEnter array fetch buffer size: 4096 > 回车Export file: expdat.dmp > m.dmp 生成导出的文件名(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3Export table data (yes/no): yes > 回车Compress extents (yes/no): yes > 回车Export done in ZHS16GBK character set and ZHS16GBK NCHAR character setAbout to export specified tables via Conventional Path ...Table(T) or Partition(T:P) to be exported: (RETURN to quit) > cmamenu 要导出的表名. . exporting table CMAMENU 4336 rows exportedTable(T) or Partition(T:P) to be exported: (RETURN to quit) >要导出的表名nTable(T) or Partition(T:P) to be exported: (RETURN to quit) > 回车Export terminated successfully without warnings.3. 导出工具exp非交互式命令行方式的例子$exp scott/tiger tables=emp,dept file=/directory/scott.dmp grants=y说明:把scott用户里两个表emp,dept导出到文件/directory/scott.dmp$exp scott/tiger tables=emp query=\"where job=\'salesman\' and sal\<1600\" file=/directory/scott2.dmp说明:在exp里面加上导出emp的查询条件job='salesman' and sal<1600(但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)$exp parfile=username.par file=/directory1/username_1.dmp,/directory1/username_2.dmp filesize=2000Mlog=/directory2/username_exp.log参数文件username.par内容userid=username/userpasswordbuffer=8192000compress=ngrants=y说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改filesize指定生成的二进制备份文件的最大字节数(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等) 4. 命令参数说明关键字说明(默认)---------------------------------------------------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 屏幕输出的日志文件STA TISTICS 分析对象(ESTIMATE)DIRECT 直接路径(N)TRIGGERS 导出触发器(Y)FEEDBACK 显示每x 行(0) 的进度FILESIZE 各转储文件的最大尺寸QUERY 选定导出表子集的子句下列关键字仅用于可传输的表空间TRANSPORT_TABLESPACE 导出可传输的表空间元数据(N) TABLESPACES 将传输的表空间列表二.导入工具imp1. 它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/binimp导入工具将EXP形成的二进制系统文件导入到数据库中.它有三种模式:a. 用户模式:导出用户所有对象以及对象中的数据;b. 表模式:导出用户所有表或者指定的表;c. 整个数据库:导出数据库中所有对象。
Oracle数据导入导出impexpsp2-0734:未知的命令开头imp忽略了剩余行默认。。。
![Oracle数据导入导出impexpsp2-0734:未知的命令开头imp忽略了剩余行默认。。。](https://img.taocdn.com/s3/m/60b327d24128915f804d2b160b4e767f5acf80cb.png)
Oracle数据导⼊导出impexpsp2-0734:未知的命令开头imp忽略了剩余⾏默认。
sp2-0734:未知的命令开头'imp 忽略了剩余⾏默认分类应该是在cmd的dos命令提⽰符下执⾏,⽽不是在sqlplus⾥⾯。
但是格式⼀定要类似于:imp PERSONNEL_MANAGE/MWQ@DBSQL full=y file=C:\personnel_manage.dmpignore=y谨以此纪念我的粗⼼。
我错了。
imp 命令是在dos提⽰符下执⾏的。
直接cmd后执⾏⽽不是在sql下执⾏的数据导出: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 将数据库中的表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数据库中。
dmp文件导入到Oracle数据库
![dmp文件导入到Oracle数据库](https://img.taocdn.com/s3/m/889fcfd4b4daa58da1114ab2.png)
向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=y2 将数据库中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文件可以很好的压缩。
oracle批量导出存储过程
![oracle批量导出存储过程](https://img.taocdn.com/s3/m/de02d36d9b89680202d82520.png)
file_handle utl_file.file_type;
stor_text VARCHAR2(4000);
sql_stat varchar2(1000);
sql_stat2 varchar2(1000);
select text from user_source;
spool off;
法三:(自己写存储过程导出)
1.创建DIRECTORY
Sql代码
create or replace directory PROCE_DIR as 'C:/Documents and Settings/Administrator/桌面';
execute immediate sql_stat bulk collect into user_source_table;
file_handle:=utl_file.fopen('PROCE_DIR','test.sql','W');
for j in er_source_table.count loop
创建之后可通过如下语句查询是否创建成功
Sql代码
select * from dba_directories;
2.创建导出存储过程
Sql代码
create or replace procedure loadProce(owner varchar2)
is
type user_source_table_type is table of user_source.text%TYPE INDEX BY BINARY_INTEGER;
oracle常用命令
![oracle常用命令](https://img.taocdn.com/s3/m/11c319cb81eb6294dd88d0d233d4b14e85243eb8.png)
--关闭数据库Oracle自动搜集功能alter system set "_optimizer_autostats_job"=false scope=spfile--修改表的默认表空间alter table 表名 move tablespace 表空间名;--修改索引表空间ALTER INDEX 索引名 REBUILD tablespace 表空间名;--修改LOB类型默认表空间ALTER TABLE SIGNATUREWORD MOVE LOB(IMAGE) STORE AS (TABLESPACE CZDJ);--创建数据表空间(表空间名称CZDJ,表空间文件大小1024M,数据文件满后自动扩展增量100MB,文件大小无限制)create tablespace CZDJ(表空间名)datafile 'd:\oracle\product\10.2.0\oradata\orcl\ CZDJ.dbf'(存放路径)size 1024m AUTOEXTEND ONNEXT 100m maxsize unlimited;--创建临时表空间create temporary tablespace dzdj31cz_temp (表空间名)tempfile 'd:\oracle\product\10.2.0\oradata\orcl\dzdj31cz_temp01.dbf'size 32Mautoextend onnext 32M maxsize 2048Mextent management local;本地管理表空间:extent management local字典管理表空间:extent management dictionary--修改表空间alter database datafile 'D:\oracle\product\10.2.0\oradata\orclzhaowei\test.dbf' resize 10m; alter database datafile 'D:\oracle\product\10.2.0\oradata\orclzhaowei\test.dbf' autoextend on next 50m maxsize unlimited;--创建用户并指定表空间create user 用户名 identified by 密码default tablespace 默认表空间temporary tablespace 临时表空间;--修改用户密码alter user 用户名 identified by 密码;--给表空间增加数据文件ALTER TABLESPACE sdeADD DATAFILE 'D:\oracle\product\10.2.0\oradata\orcl\sde01.dbf' size 20480M autoextend on next 50M maxsize unlimited;--给用户授予权限grant connect,dba,resource to 用户名--给用户解锁alter user username account unlock;--OraOLEDB.Oracle.1没有注册解决方法:regsvr32 D:\oracle\product\10.2.0\db_1\BIN\OraOLEDB10.dll--查询表空间状态select tablespace_name,status from dba_tablespaces;--表空间离线在线:离线的表空间无法访问,用于数据维护。
Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结
![Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结](https://img.taocdn.com/s3/m/5f8cd612ff00bed5b9f31d5a.png)
说明:在创建数据库时输入的密码,是修改系统默认的密码,以system和sysman等系统默认身份登录时要输入的密码就是修改后的密码(创建数据库时输入的密码)如果要创建新的用户就必须以system或者sysman(这二者的权限最大)的身份登录后才可创建创建用户格式:create user 用户名identified by 密码(例如:create user cht id entified by cht;)创建完成后,必须分配权限,否则连不上数据库和sqlplus。
因此要做:grant connect,resource,dba to cht;这样数据库就可以通过cht/cht连上了。
那些select,update,delete,insert的权限就不必分配了,因为每个用户默认都有这些基本权限。
命令行方式连接数据库的方法:开始==》运行==》cmd方式一:输入sqlplus,回车输入用户名:system,回车输入密码:orcl,回车方式二:输入sqlplus system/orcl@orcl,回车(system是用户名,orcl是密码,@后面的or cl是库的名字)(数据库安装完成后,有两个系统级的用户:1)system 默认密码为:manager2)sys 默认密码为:change_on_install)创建用户前必须要先建好临时表空间和数据表空间两个表空间,否则用系统默认的表空间不好。
//创建临时表空间create temporary tablespace zfmi_temp tempfile 'D:\oracle\oradata\zf mi\zfmi_temp.dbf' size 100m autoextend on next 32m maxsize 2048m extent management local;说明:1、zfmi_temp 表空间的名字2、D:\oracle\oradata\zfmi\ 存放数据库文件的地方,一般是安装数据库后有控制文件,数据文件和日志文件的文件夹,再加上要创建表空间的名字+dbf(数据文件)3、100M 表空间的初始大小4、32M 表空间自动增长的大小5、2048M 表空间最大的大小//创建数据表空间create tablespace zfmi logging datafile 'D:\oracle\oradata\zfmi\zfmi.d bf' size 100m autoextend on next 32m maxsize 2048m extent manage ment local;//创建用户并指定表空间create user zfmi identified by zfmi default tablespace zfmi temporary t ablespace zfmi_temp;//给用户授予权限grant connect,resource dba to zfmi;(dba:指定所有权限)到这一步新建一个用户的工作就完成了。
(完整版)ORACLE命令大全
![(完整版)ORACLE命令大全](https://img.taocdn.com/s3/m/ece40be99b6648d7c1c746c4.png)
ORACLE命令大全1. 执行一个SQL脚本文件SQL>start file_nameSQL>@ file_name我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,上面的任一命令即可,这类似于dos中的批处理。
2. 对当前的输入进行编辑SQL>edit3. 重新运行上一次运行的sql语句SQL>/4. 将显示的内容输出到指定文件SQL> SPOOL file_name在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。
5. 关闭spool输出SQL> SPOOL OFF只有关闭spool输出,才会在输出文件中看到输出的内容。
6.显示一个表的结构SQL> desc table_name7. COL命令:主要格式化列的显示形式。
该命令有许多选项,具体如下:COL[UMN] [{ column|expr} [ option ...]]Option选项可以是如下的子句:ALI[AS] aliasCLE[AR]FOLD_A[FTER]FOLD_B[EFORE]FOR[MAT] formatHEA[DING] textJUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}LIKE { expr|alias}NEWL[INE]NEW_V[ALUE] variableNOPRI[NT]|PRI[NT]NUL[L] textOLD_V[ALUE] variableON|OFFWRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]1). 改变缺省的列标题COLUMN column_name HEADING column_headingFor example:Sql>select * from dept;DEPTNO DNAME LOC---------- ---------------------------- ---------10 ACCOUNTING NEW YORK sql>col LOC heading locationsql>select * from dept;DEPTNO DNAME location--------- ---------------------------- -----------10 ACCOUNTING NEW YORK2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:Sql>select * from empDepartment name Salary---------- ---------- ----------10 aaa 11SQL> COLUMN ENAME HEADING ’Employee|Name’Sql>select * from empEmployeeDepartment name Salary---------- ---------- ----------10 aaa 11note: the col heading turn into two lines from one line.3). 改变列的显示长度:FOR[MAT] formatSql>select empno,ename,job from emp;EMPNO ENAME JOB---------- ---------- ---------7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMANSql> col ename format a40EMPNOENAME JOB ---------- ---------------------------------------- --------- 7369SMITH CLERK 7499ALLEN SALESMA 7521WARD SALESMAN4). 设置列标题的对齐方式JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}SQL> col ename justify centerSQL> /EMPNO ENAME---------- ---------------------------------------- --------- 7369SMITH CLERK 7499ALLEN SALESMA 7521WARD SALESM 对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边5). 不让一个列显示在屏幕上NOPRI[NT]|PRI[NT]SQL> col job noprintSQL> /EMPNO ENAME---------- ----------------------------------------7369 SMITH7499 ALLEN7521 WARD6). 格式化NUMBER类型列的显示:SQL> COLUMN SAL FORMAT $99,990SQL> /EmployeeDepartment Name Salary Commission---------- ---------- --------- ----------30 ALLEN $1,600 3007). 显示列值时,如果列值为NULL值,用text值代替NULL值COMM NUL[L] textSQL>COL COMM NUL[L] text8). 设置一个列的回绕方式WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]COL1--------------------HOW ARE YOU?SQL>COL COL1 FORMAT A5SQL>COL COL1 WRAPPEDCOL1-----HOW ARE YOU?SQL> COL COL1 WORD_WRAPPEDCOL1-----HOWAREYOU?SQL> COL COL1 WORD_WRAPPEDCOL1-----HOW A9). 显示列的当前的显示属性值SQL> COLUMN column_name10). 将所有列的显示属性设为缺省值SQL> CLEAR COLUMNS8. 屏蔽掉一个列中显示的相同的值BREAK ON break_columnSQL> BREAK ON DEPTNOSQL> SELECT DEPTNO, ENAME, SALFROM EMPWHERE SAL < 2500ORDER BY DEPTNO;DEPTNO ENAME SAL---------- ----------- ---------10 CLARK 2450MILLER 130020 SMITH 800ADAMS 11009. 在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n个空行BREAK ON break_column SKIP nSQL> BREAK ON DEPTNO SKIP 1SQL> /DEPTNO ENAME SAL---------- ----------- ---------10 CLARK 2450MILLER 130020 SMITH 800ADAMS 110010. 显示对BREAK的设置SQL> BREAK11. 删除6、7的设置SQL> CLEAR BREAKS12. Set 命令:该命令包含许多子命令:SET system_variable valuesystem_variable value 可以是如下的子句之一:APPI[NFO]{ON|OFF|text}ARRAY[SIZE] {15|n}AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}AUTOP[RINT] {ON|OFF}AUTORECOVERY [ON|OFF]AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]] BLO[CKTERMINATOR] {.|c}CMDS[EP] {;|c|ON|OFF}COLSEP {_|text}COM[PATIBILITY]{V7|V8|NATIVE}CON[CAT] {.|c|ON|OFF}COPYC[OMMIT] {0|n}COPYTYPECHECK {ON|OFF}DEF[INE] {&|c|ON|OFF}DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}] ECHO {ON|OFF}EDITF[ILE] file_name[.ext]EMB[EDDED] {ON|OFF}ESC[APE] {\|c|ON|OFF}FEED[BACK] {6|n|ON|OFF}FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}FLU[SH] {ON|OFF}HEA[DING] {ON|OFF}HEADS[EP] {||c|ON|OFF}INSTANCE [instance_path|LOCAL]LIN[ESIZE] {80|n}LOBOF[FSET] {n|1}LOGSOURCE [pathname]LONG {80|n}LONGC[HUNKSIZE] {80|n}MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]NEWP[AGE] {1|n|NONE}NULL textNUMF[ORMAT] formatNUM[WIDTH] {10|n}PAGES[IZE] {24|n}PAU[SE] {ON|OFF|text}RECSEP {WR[APPED]|EA[CH]|OFF}RECSEPCHAR {_|c}SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_ WRAPPED]|TRU[NCATED]}]SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}SHOW[MODE] {ON|OFF}SQLBL[ANKLINES] {ON|OFF}SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}SQLCO[NTINUE] {> |text}SQLN[UMBER] {ON|OFF}SQLPRE[FIX] {#|c}SQLP[ROMPT] {SQL>|text}SQLT[ERMINATOR] {;|c|ON|OFF}SUF[FIX] {SQL|text}TAB {ON|OFF}TERM[OUT] {ON|OFF}TI[ME] {ON|OFF}TIMI[NG] {ON|OFF}TRIM[OUT] {ON|OFF}TRIMS[POOL] {ON|OFF}UND[ERLINE] {-|c|ON|OFF}VER[IFY] {ON|OFF}WRA[P] {ON|OFF}1). 设置当前session是否对修改的数据进行自动提交SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句SQL> SET ECHO {ON|OFF}3).是否显示当前sql语句查询或修改的行数SQL> SET FEED[BACK] {6|n|ON|OFF}默认只有结果大于6行时才显示结果的行数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(经典)感觉很有用.Oracle 创建删除用户、角色、表空间、导入导出、备份命令总结导入导出实用程序用于实施数据库的逻辑备份和恢复导出实用将数据库中的对象定义和数据备份到一个操作系统二进制文件中导入使用程序读取二进制导出文件并将对象和数据载入数据库中导出额导入实用程序的特点有:1.可以按时间保存表结构和数据2.允许导出指定的表,并重新导入到新的数据库中3.可以吧数据库迁移到另外一台异构服务器上4.在两个不同版本的Oracle数据库之间传输数据5.在联机状态下进行备份和恢复6.可以重新组织表的存储结构,减少链接及磁盘碎片调用导入导出的三种方法:在命令执行程序的参数和参数值已交互的方式提示用户逐个输入参数的值允许用户将运行参数和参数值存储在参数文件中,以便重复使用参数导入导出数据库对象的四种模式:完全数据库、表、用户、表空间导入导出整个数据库的所有对象导入导出一个或多个指定的表或表空间导入导出一个用户模式中的所有对象导入导出一个或多个指定的表空间中的所有对象导出使用程序有以下常用的命令参数参数说明USERID 确定执行导出实用程序的用户名和口令BUFFER 确定导出数据时所使用的缓冲区大小,其大小用字节表示FILE 指定导出的二进制文件名称,默认的扩展名是.dmpFULL 指定是否以全部数据库方式导出,只有授权用户才可使用此参数OWNER 要导出的数据库用户列表HELP 指定是否显示帮助消息和参数说明ROWS 确定是否要导出表中的数据TABLES 按表方式导出时,指定需导出的表和分区的名称PARFILE 指定传递给导出实用程序的参数文件名TABLESPACES 按表空间方式导出时,指定要导出的表空间名导出实用程序按用户方式导出数据exp gmd/gmd@oracle file=d:/1.dmp owner=gmd按表方式导出数据exp gmd/gmd@oracle tables=(GRP_PROVINCE,GRP_CITY,GRP_AREA) file=d:/2.dmp按表空间方式导出数据exp system/oracle@oracle tablespaces=(gmd) file=d:/3.dmp使用参数文件导出数据exp system/oracle@oracle parfile='d:\parameters.txt'导入使用程序有以下常用的命令参数参数说明USERID 指定执行导入的用户名和密码BUFFER 指定用来读取数据的缓冲区大小,以字节为单位COMMIT 指定是否在每个数组(其大小由BUFFER参数设置)插入后进行提交FILE 指定要导入的二进制文件名FROMUSER 指定要从导出转储文件中导入的用户模式TOUSER 指定要将对象导入的用户名。
FROMUSER与TOUSER可以不同FULL 指定是否要导入整个导出转储文件TABLES 指定要导入的表的列表ROWS 指定是否要导入表中的行PARFILE 指定传递给导入实用程序的参数文件名,此文件可以包含这里列出的所有参数IGNORE 导入时是否忽略遇到的错误,默认为NTABLESPACES 按表空间方式导入,列出要导入的表空间名导入实用程序按整个文件导入数据库imp gmd/gmd@oracle file=d:1.dmp ignore=y full=y按halibut用户的表导入到fantasy用户imp gmd/gmd@oracle file=2.dmp fromuser=halibut touser=fantasy tables=(t_user,role)使用参数文件导入数据imp system/oracle@oracle parfile='d:\paramenters.txt'--------------------------create temporary tablespace zfmi_temptempfile 'D:\oracle\oradata\zfmi\zfmi_temp.dbf'size 32mautoextend onnext 32m maxsize 2048mextent management local;//tempfile参数必须有//创建数据表空间create tablespace zfmiloggingdatafile 'D:\oracle\oradata\zfmi\zfmi.dbf'size 100mautoextend onnext 32m maxsize 2048mextent management local;//datafile参数必须有//删除用户以及用户所有的对象drop user zfmi cascade;//cascade参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数//删除表空间前提:删除表空间之前要确认该表空间没有被其他用户使用之后再做删除drop tablespace zfmi including contents and datafiles cascade onstraints;//including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数//including datafiles 删除表空间中的数据文件//cascade constraints 同时删除tablespace中表的外键参照如果删除表空间之前删除了表空间文件,解决办法:如果在清除表空间之前,先删除了表空间对应的数据文件,会造成数据库无法正常启动和关闭。
可使用如下方法恢复(此方法已经在oracle9i中验证通过):下面的过程中,filename是已经被删除的数据文件,如果有多个,则需要多次执行;tablespace_name是相应的表空间的名称。
$ sqlplus /nologSQL> conn / as sysdba;如果数据库已经启动,则需要先执行下面这行:SQL> shutdown abortSQL> startup mountSQL> alter database datafile 'filename' offline drop;SQL> alter database open;SQL> drop tablespace tablespace_name including contents;//创建用户并指定表空间create user zfmi identified by zfmidefault tablespace zfmi temporary tablespace zfmi_temp;//identified by 参数必须有//授予message用户DBA角色的所有权限GRANT DBA TO zfmi;//给用户授予权限grant connect,resource to zfmi; (db2:指定所有权限)导入导出命令: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=y2 将数据库中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.dmpimp 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 - ProductionWith the Partitioning optionJServer Release 8.1.7.0.0 - Production经由常规路径导出由EXPORT:V08.01.07创建的文件已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入导出服务器使用UTF8 NCHAR 字符集(可能的ncharset转换). 正在将AICHANNEL的对象导入到AICHANNEL. . 正在导入表"INNER_NOTIFY" 4行被导入准备启用约束条件...成功终止导入,但出现警告。