oracle导入【导出】BMP
- 格式:docx
- 大小:1.34 MB
- 文档页数:12
()在Oracle中导出和导入数据:准备:1.运行命令行cmd;2.Sqlplus看看能否连接到数据库;3.提示输入用户名和密码,能够连接到数据库;4.连接到数据库则可以退出Sqlplus(用Ext就可以退出);导出数据:5.同样运行命令行cmd;6.将数据库TEST完全导出,用户名system 密码manager 导出到D:\db.dmp中exp system(用户名)/manager(密码)@TEST(数据库名称) file=d:\db.dmp full=y7.将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)8.将数据库中的表inner_notify、notify_staff_relat导出Exp aichannel/aichannel@TESTDB2 file=d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)9.将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"导入数据:10.将D:\db.dmp 中的数据导入TEST数据库中。
imp system/manager@TEST file=d:\db.dmpimp aichannel/aichannel@HUST full=y file=file= d:\data\newsmgnt.dmp ignore=y上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上ignore=y 就可以了。
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的数据库的导入导出从一个用户expdp导出再impdp导入到另一个用户(示例:讲scott用户里面的表全部迁移到新建的test用户里面)如果想导入的用户已经存在:1.导出之前需要做的一些操作,进入数据库,默认为sys用户SQL> create directory dumpdir as '/home/oracle/test_bk ';(该备份路径是需要手动创建的)SQL> grant read,write on directory dumpdir to scott(scott为源用户);导出用户expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp 示例:expdp scott/tiger directory=dumpdir dumpfile=scott.dmp2.导入之前需要做一些操作,进入数据库,默认为sys用户SQL> create directory dumpdir as '/home/oracle/test_bk ';(该备份路径是需要手动创建的)SQL> grant read,write on directory dumpdir to test(test为目标用户);导入用户impdp test/test directory=dumpdir dumpfile=scott.dmp REMAP_SCHEMA=scott:test full=y;如果想导入的用户不存在:1. 导出用户expdp user1/pass1 directory=dumpdirdumpfile=user1.dmp2. 导入用户impdp system/passsystem directory=dumpdirdumpfile=user1.dmp REMAP_SCHEMA=user1:user2 full=y;3. user2会自动建立,其权限和使用的表空间与user1相同,但此时用user2无法登录,必须修改user2的密码impdp遇到的错误C:\Documents and Settings\Administrator>impdp aaa/ccc directory=data_dump dumpfile=fromaaa.dmp logfile=IMP_DATA_20100618.LOG连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsORA-39001: 参数值无效ORA-39000: 转储文件说明错误ORA-39143: 转储文件"F:\ora10G_expdp\ic_price_fromlufang.dmp" 可能是原始的导出转储文件可恶的提示让我一直以为是版本的的问题,因为是同事给的dmp文件,用的又都是10.2.0版本,自然以为用的是expdp,所以一直用impdp导入,其他的权限都没问题,所以最后怀疑同事用的是exp,所以试了下imp导入,成功执行了。
Oracle数据库导入导出命令总结Oracle数据库导入导出命令总结执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle中,安装目录\\ora9i\\BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例。
数据导出:1将数据库zxcc完全导出,用户名kf密码zx导出到D:\\zxcc.dmp中expkf/zx@zxccfile=d:\\zxcc.dmpfull=yfull=y表示全库导出。
full总共有2个可选项yes(y)/no(n),缺省情况下full=no,这时只会将该用户下的对象导出。
2将数据库zxcc中kf用户与cc用户的表导出expkf/zx@zxccfile=d:\\zxcc_ur.dmpowner=(kf,cc)full方式可以备份所有用户的数据库对象,包括表空间、用户信息等,owner=XX只能备份指定用户的对象,其他用户下的就不备份了,EXP中full=y和owner=XX是不能同时使用的。
3将数据库zxcc中的表kf_operator、kf_role导出expkf/zx@zxccfile=d:\\zxcc_tb.dmptables=(kf_operator,kf_role)tables=xx表示备份相关表,不能同时和owner、full使用。
4将数据库中的表kf_operator中的字段oper_id以"00"打头的数据导出expkf/zx@zxccfile=d:\\zxcc_t.dmptables=(kf_operator)query=\\"whereop er_idlike"00%"\\"query主要是导出合适条件的数据。
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中,导⼊导出数据的⽅法有两种,⼀种是使⽤cmd命令⾏的形式导⼊导出数据,另⼀种是使⽤PL/SQL⼯具导⼊导出数据。
1,使⽤cmd命令⾏导⼊导出数据 1.1整库导出 整库导出:exp 管理员账号/密码 full=y;//参数full表⽰整库导出。
导出后会在当前⽬录下⽣成⼀个EXPDAT.DMP的⽂件,此⽂件为备份⽂件。
如果想导出数据到指定位置,并且取个名字,需要添加file参数。
例如:exp system/123456 file= C:\person.dmp full=y。
1.2整库导⼊ 整库导⼊:imp 管理员账号/密码 full=y file=C:\person.dmp。
1.3使⽤cmd命令按⽤户导出导⼊ 1.3.1 按⽤户导出:exp 管理员账号/密码 owner=⽤户名 file=C:\person.dmp。
1.3.2 按⽤户导⼊:imp 管理员账号/密码 file=C:\person.dmp fromuser=⽤户名。
1.4使⽤cmd命令按表导出导⼊ 1.4.1按表导出:exp 管理员账号/密码 file=person.dmp tables=t_person,t_student。
1.4.2按表导⼊:imp 管理员账号/密码 file =person.dmp tables=t_person,t_student。
2.)使⽤PL/SQL 开发⼯具导出导⼊数据 pl/sql⼯具包含三种⽅式导出oracle表结构和表数据,分别为:oracle export,SQL inserts,pl/sql developer。
它们的含义如下: 第⼀种oracle export:导出的是.dmp格式的⽂件,.dmp⽂件是⼆进制⽂件,可以跨平台,包含权限等。
第⼆种SQL inserts :导出的是.sql格式的⽂件,可以⽤⽂本编辑器查看,通⽤性⽐较好,效率不如第⼀种,适合⼩数据量的导⼊导出。
Oracle 数据导入导出详细步骤说明:1.请先设置好 oracle 实例的环境变量 [grneas 是当前已安装的数据库实例名 ]Windows 下在 cmd 命令窗口执行: set ORACLE_SID=grneas Linux/AIX 下在终端窗口执行: exportORACLE_SID=grneasWindows 下查看该变量是否正确的命令:echo %ORACLE_SID%Linux/AIX 下查看该变量是否正确的命令: echo $ORACLE_SID 2.进入 sqlplus 窗口的命令:所有操作系统都用: sqlplus /nologconn / as sysdba 一、 Oracle 数据导出(备份)1.创建目录(导出文件存放位置)在 sqlplus 窗口下执行:grant read,write on directory expdpdir to system,grneas;其中: expdpdir 为目录名, grneas 是 EAS 用户名3.数据导出windows 在 cmd 窗口, linux 、AIX 在终端 ssh 窗口直接执行:(不要进入 sqlplus 窗口)expdp grneas/kingdee@grneas schemas=grneasdirectory=expdpdirdumpfile=grneas_20110706.dmplogfile=grneas_20110706.log 说明: 1).以上命令要在同一行输入再回车2).其中的 grneas/kingdee@grneas 是指要连接的数据库实例、用户及密码,若已在前面设置好环境变量 ORACLE_SID 为当前要导出的实例,则可不加 @grneas3).schemas=grneas表示要导出的 EAS 用户(方案)为 grneas, 在oracle 下,数据库对象在不同用户间是隔离的,每个用户都有自己的一些表、视图等,所以我们只要导出 EAS 用户的数据就可以了4).directory=expdpdir 表示导出时使用的目录,也就是文件存放的位置5).dumpfile=grneas_20110706.dmp 表示导出的数据文件名6).logfile=grneas_20110706.log 表示导出日志文件名,也存放在相同目录下二、 Oracle 数据导入(还原)以下是将原 grneas 数据备份还原到新账套 grneas21.创建表空间在 sqlplus 窗口下执行:create tablespaceEAS_D_grneas2_STANDARD datafile'/oradata/test/EAS_D_grneas2_STANDARD.dbf' size 2000m;以上命令创建数据表空间,要在同一行下回车执行 create temporarytablespace EAS_T_grneas2_STANDARD tempfile'/oradata/test/EAS_T_grneas2_STANDARD.dbf' size 500m;以上命令创建临时表空间,要在同一行下回车执行2.设置表空间自动增长在 sqlplus 窗口下执行:alter database datafile'/oradata/test/EAS_D_grneas2_STANDARD.dbf' autoextend on;alter database tempfile'/oradata/test/EAS_T_grneas2_STANDARD.dbf' autoextend on;3.创建目录(若目录已创建,可以略去不做,准备导入的备份文件要放在此目录下)在 sqlplus 窗口下执行: create user grneas2 identified by kingdee default tablespace EAS_D_grneas2_STANDARD temporary tablespace EAS_T_grneas2_STANDARD; 说明:identified by kingdee 表示密码为 kingdee 5.用户授权grant connect,resource,dba to grneas2;6.目录授权grant read,write on directory expdpdir tosystem,grneas2;7•数据导入(将原grneas账套恢复到一个新的 grneas2账套)impdp grneas2/kingdee@grneas directory=expdpdirdumpfile=grneas_20110706.dmplogfile=impgrneas_20110706.l og schemas=grneasremap_schema=grneas:grneas2remap_tablespace=EAS_D_grneas_STANDARD:EAS_D_grneas2_STANDARD,EAS_T_grneas_STANDARD:EAS_T_grneas2_STANDARD--sqlfile=script.sql ( 生成 SQL 脚本 )说明: 1).以上命令要在同一行输入再回车2).其中的grneas2/kingdee@grneas是指要连接的数据库实例、用户及密码,若已在前面设置好环境变量 ORACLE_SID 为当前要导入的实例,则可不加 @grneas3).schemas=grneas表示要导入的原 EAS 用户(方案)为grneas4).directory=expdpdir 表示导入时使用的目录,也就是文件存放的位置5).dumpfile=grneas_20110706.dmp 表示要导入的数据文件6).logfile=impgrneas_20110706.log 表示导入时产生的日志文件7).remap_schema=grneas:grneas2表示导入的数据也由原来的 EAS_D_grneas_STANDARD 改为存储到 EAS_D_grneas2_STANDARD 表空间9).--sqlfile=script.sql ( 生成 SQL 脚本)表示只生成脚本,有加这个参数就只生成脚本没有导入数据,要查看脚本才加这个参数,否则在导入的时候,就不要加这个参数注意区别大小写……其它 oracle 命令查看用户与表空间Select * from dba_users;查看锁表进程 SQL 语句 1:select sess.sid,sess.serial#,lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_modefrom v$locked_object lo,dba_objects ao, v$session sesswhere ao.object_id = lo.object_id andlo.session_id = sess.sid;查看锁表进程 SQL 语句 2:select * from v$session t1, v$locked_objectt2 where t1.sid = t2.SESSION_ID;杀掉锁表进程:如有記錄則表示有 lock ,記錄下 SID 和 serial# ,將記錄的ID 替換下面的 738,1429,即可解除 LOCK alter system kill session '738,1429';数据库用户被锁定时解锁命令alter user theas account unlock;启动 EMemctl start dbconsole。
Oracle怎么导入数据Oracle导出命令介绍(2)三.使用示例3.1 数据导出:1 将数据库SampleDB完全导出,用户名system 密码manager 导出到E:\SampleDB.dmp中exp system/manager@TestDB file=E:\sampleDB.dmp full=y2 将数据库中system用户与sys用户的表导出exp system/manager@TestDB file=E:\sampleDB.dmp owner=(system,sys)3 将数据库中的表 TableA,TableB 导出exp system/manager@TestDB file=E:\sampleDB.dmp tables=(TableA,TableB)4 将数据库中的表tableA中的字段filed1 值为 "王五" 的数据导出exp system/manager@TestDB file=E:\sampleDB.dmp tables=(tableA) query=' where filed1='王五'如果想对dmp文件进行压缩,可以在上面命令后面加上 compress=y 来实现。
3.2 数据的导入1 将备份数据库文件中的数据导入指定的数据库SampleDB 中,如果 SampleDB 已存在该表,则不再导入;imp system/manager@TEST file=E:\sampleDB.dmp full=y ignore=y2 将d:\daochu.dmp中的表table1 导入imp system/manager@TEST file=E:\sampleDB.dmp tables=(table1)3. 导入一个完整数据库imp system/manager file=bible_db log=dible_db full=y ignore=y4. 导入一个或一组指定用户所属的全部表、索引和其他对象imp system/manager file=seapark log=seapark fromuser=seapark impsystem/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold) 5. 将一个用户所属的数据导入另一个用户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)6. 导入一个表imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)7. 从多个文件导入imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)log=paycheck, filesize=1G full=y。
Oracle提供两个工具imp.exe 和exp.exe分别用于导入和导出数据。
这两个工具位于Oracle_home/bin目录下。
导出数据exp1 将数据库ATSTestDB完全导出,用户名system 密码123456 导出到c:\export.dmp中exp system/123456@ATSTestDB file=c:\export.dmp full=y其中ATSTestDB为数据库名称,system为该数据库里的账户,123456为其密码。
2 将数据库中system用户与sys用户的所有相关资源导出(表,存储过程,方法,视图等等)exp system/123456@ATSTestDB file= c:\export.dmp owner=(system,sys)3 将数据库中的表sys.table1、owbsys.table2导出exp system/123456@ATSTestDB file= c:\export.dmp tables=( sys.table1, owbsys.table2)注意,需要加上表的schema名称,如果没有加的话默认是导当前connected用户的表,当然你连接上去的账户要对相应的表有权限。
4 将数据库中的表table1中的字段Title以"GangGe"打头的数据导出exp system/123456@ATSTestDB file= c:\export.dmp tables=(table1) query=\" where Title like 'GangGe%'\"斜杠“\”后面跟冒号是为了转义字符冒号”““用的,因为后面是一条条件查询语句。
Query参数只能指定一个,如果Query要为多张表,所以同样,tables里面也只能有一张表,或者多张表,然后query里面的条件在这些表上面都可以运行。
否则只好多写几条exp语句了。
Oracle数据导入导出及常见问题一,背景说明:Oracle的备份是Oracle操作中常见的工作,常见的备份方案有:逻辑备份(IMP&EXP命令进行备份)、物理文件备份(脱机及联机备份)、利用RMAN(Recovery Manager)的增量物理文件系统备份。
ORACLE数据库的逻辑备份分为四种模式:表空间备份(tablespace)、表备份(table)、用户备份(user)和完全备份(full)。
Oracle的逻辑备份是使用IMP&EXP命令进行数据导入导出的操作。
使用EXP命令导出或者使用IMP命令导入时,需要Create Session系统权限,但是如果要导出其他的表,必须拥有权限:EXP_FULL_DATABASE。
调用导入导出命令时,首先要估计所需的空间。
EXP命令导出的文件是二进制文件(*.dmp)只能由对应的IMP命令进行读取恢复。
导入导出的用途是:备份与恢复Oracle平台更换:可以在相同版本之间进行备份与恢复,Oracle较低版本的export数据文件可以import到高版本的Oracle数据库中,但是Oracle的版本只能是相邻的,不能垮版本。
二. EXP导出数据EXP命令可以在交互环境下导出数据库中的数据,也可以在非交互环境下执行命令。
交互环境下的命令执行,是一步一步执行的过程。
代码演示:exp的交互环境D:\>exp scott/tiger@my_orcl ①Export: Release 10.2.0.3.0 - Production on 星期一10月19 17:04:14 2009Copyright (c) 1982, 2005, Oracle. All rights reserved.连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - ProductionWith the Partitioning, OLAP and Data Mining options输入数组提取缓冲区大小: 4096 > ②导出文件: EXPDAT.DMP > scott.dmp ③(2)U(用户), 或(3)T(表): (2)U > 2 ④导出权限(yes/no): yes > yes ⑤导出表数据(yes/no): yes > yes ⑥压缩区(yes/no): yes > no ⑦已导出ZHS16GBK 字符集和AL16UTF16 NCHAR 字符集. 正在导出pre-schema 过程对象和操作. 正在导出用户SCOTT 的外部函数库名. 导出PUBLIC 类型同义词. 正在导出专用类型同义词. 正在导出用户SCOTT 的对象类型定义即将导出SCOTT 的对象.... 正在导出数据库链接. 正在导出序号. 正在导出簇定义. 即将导出SCOTT 的表通过常规路径.... . 正在导出表BONUS导出了0 行. . 正在导出表DEPT导出了10 行. . 正在导出表EMP导出了14 行. . 正在导出表SALGRADE导出了 5 行. . 正在导出表TBLSTUDENT导出了 3 行. 正在导出同义词. 正在导出视图. 正在导出存储过程. 正在导出运算符. 正在导出引用完整性约束条件. 正在导出触发器. 正在导出索引类型. 正在导出位图, 功能性索引和可扩展索引. 正在导出后期表活动. 正在导出实体化视图. 正在导出快照日志. 正在导出作业队列. 正在导出刷新组和子组. 正在导出维. 正在导出post-schema 过程对象和操作. 正在导出统计信息成功终止导出, 没有出现警告。
ORACLE数据导出和导入Cd\回到根目錄分类:技术积累2007.3.4 20:14 作者:海之声| 评论:0 | 阅读:0一. 导出工具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=2000M log=/directory2/username_exp.log参数文件username.par内容userid=username/userpasswordbuffer=8192000compress=ngrants=y说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改filesize指定生成的二进制备份文件的最大字节数(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)二.导入工具imp1. 它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/binimp导入工具将EXP形成的二进制系统文件导入到数据库中.它有三种模式:a. 用户模式:导出用户所有对象以及对象中的数据;b. 表模式:导出用户所有表或者指定的表;c. 整个数据库:导出数据库中所有对象。
导入ORACLE数据库
1.使用Net Configuration Assistant配置服务名
团队开发只需要安装一个ORACLE数据库服务器即可,每一个人只需要配置客户端,方式有两种:一种是Net Configuration Assistant,另一种是Net Manager,Net Configuration Assistant基于向导,方便。
步骤:oracle配置与移除工具——>Net Configuration Assistant——> 本地Net服务名配置——》添加——>服务名——>TPC——>主机名
见下图:
选择“本地Net服务名配置”点击下一步
选择“添加”
“服务名”是数据库实例名(SID)
选择“TCP”
键入主机名,选择默认端口或者其他端口号
不进行测试
“网络服务名”在保证客户端不重复的情况下可以和服务器实例名同名,点击下一步,直到完成配置。
建好的服务名在Net Manager显示如下,此处服务命名存在和服务实例名不一致情况。
服务命名或者通过查看配置文件tnsnames.ora:
参考网址:/fengyedqg/article/details/6200223
/s/blog_4d711da701000kap.html
2.创建用户和表空间,配置权限
可以选择sqldeveloper或者PL SQL Developer来实现新建用户和表空间,也可以通过图形界面工具或者SQL语句来实现,此处我们已PL SQL Developer做为讲解。
步骤:Pl sql developer用具有DBA权限的“sys/密码”登陆,其他用户下创建用户,表空间可以用已建好表空间,临时表空间可以用temp,勾选角色权限,但是特定库要对应
导出空间
见下图
具有DBA权限的用户sys/密码登陆,点击确定
在Users建立新的拥有此数据库的用户,右键点击新建,如下图:
“名称”为用户名,“口令”为用户密码,“默认表空间”请选择已建好的表空间,要与导入文件表空间名一致(建表空间见下),点击“应用”按钮保存。
Tablespaces下不能通过“右键”建立表空间,建表空间SQL语句如下,一般只需要修改表空间名称tablespace和存放路径datafile:
create tablespace khpt1
logging
datafile 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\NX\khpt1.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
备注:1) DATAFILE: 表空间数据文件存放路径,此为数据库服务器存放地址
2) SIZE: 起初设置为200M
3) UNIFORM: 指定区尺寸为128k,如不指定,区尺寸默认为64k
4) 空间名称MOF_TEMP与数据文件名称MOF_TEMP.dbf 不要求相同,可随意命名.
5) AUTOEXTEND ON/OFF 表示启动/停止自动扩展表空间
6) alter database datafile ' D:\oracle\product\10.2.0\oradata\orcl\MOF_TEMP.dbf ' resize 500m; //手动修改数据文件大小为500M
配置角色权限,一般需要如上
备注:connect权限如下图,
参见网址:/zhangjian_sundun/blog/static/77097301200806113124695/
配置系统权限如上
3.导入BMP文件SQL语句
DOS中cmd
1)imp javaoa/javaoa@ORCL_172 file=C:\javaoa_2014_05_026.dmp full=y
备注: imp 登录名/密码@数据库实例名file=文件地址full(全部表)
2)i g n o r e=y
备注:忽略已存在表
3)t a b l e s=(t a b l e1)
备注:只导入某一张表
4) fromuser=javaoa touser=nx_test3
备注:如果bmp文件导入导出“用户”不同时加此句
5)
4.报错
1.1.
@orcl写错
1.2 版本不同问题
11G导入10G请用工具AlxcTools修改BMP版本,如下图
选择“修改DMP版本”选项卡,输入要转换版本号,点击“修改版本”按钮,执行转换,用SQL语句导入此文件.
网址参见:/loadrunn/article/details/6589753
1.3 项目启动缺少某个字段请查看用户权限
导出exp
导出语句:exp gongzhchx/gongzhchx@orcl file=e:\gongzhchx.dmp log=e:\gongzhchx_exp.log feedback=10000 buffer=524288000
备注:其中gongzhchx是用户名,gongzhchx是密码,orcl是数据库名称,file=后面是导出为哪个文件
1.报错信息:在客户端配置TNS测试报错ORA-12170:TNS:连接超时
在Red Hat Enterprise Linux Server Releae 5.5 成功安装ORACLE 10g 后,在客户端配置TNS后,测试是否可以连接到数据块服务器,结果报错: ORA-12170:TNS:连接超时 1:首先检查网络是否能ping通,如下所示,网络是畅通的 2:检查TNS配置(TNS配置也没有问题)fancy =
(DESCRIPTION = (ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.3)(PORT = 1521)) )
(CONNECT_DATA =
(SERVER=DEDICATED) (SERVICE_NAME = fancy) ) )
3:查看服务器监听服务是否启动
首先进入oracle用户下:通过如下命令查看oracle监听是否启动
[oracle@localhost ~]$ lsnrctl status
注:如果oracle监听没有启动的话:执行如下语句启动oracle监听程序
[oracle@localhost ~]$ lsnrctl start
4:使用tnsping命令检查
通过在本机CMD中执行tnsping命令,报TNS-12535: TNS: 操作超时,这时我们可以肯定是防火墙的问题了执行tnsping命令如下:
C:\users\fancy\tnsping 192.168.3.3
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 14-12月-2012 15:47:15 Copyright (c) 1997, 2010, Oracle. All rights reserved. 已使用的参数文件:
E:\app\kerry\product\11.2.0\dbhome_1\network\admin\sqlnet.ora 已使用 EZCONNECT 适配器来解析别名尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=172.2 0.32.79)(PORT=1521))) TNS-12535: TNS: 操作超时
对于防火墙问题,我们可以有两种解决方案:
1):关闭防火墙(这种方案不怎么好,关闭防火墙,会带来许多安全隐患)
[oracle@localhost ~]$ service iptables stop;
2):修改iptables,开放1521端口,允许1521端口被连接通过如下命令,打开1521端口iptables -I INPUT -p tcp --dport 1521 -j ACCEPT iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
通过如下命令,保存刚才的端口设置,以免关机失效
[root@localhost ~]# service iptables save
通过如下命令重新启动防火墙设置服务
[root@localhost ~]# service iptables start
通过如下命令查看1521端口是否开放,允许连接
[root@localhost ~]# iptables -L -n
5:检查oracle客户端是否连接成功
C:\users\fancy\tnsping 192.168.3.3
到此为止,从oracle客户端连接,通过PL/SQL Developer连接数据库问题,解决。