【dump文件】dmp文件导入到Oracle数据库

2010年5月12日

SQL> alter user scott account unlock;

SQL> alter user scott identified by pan;

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)

基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

2010年5月12日

析Oracle用户解锁命令的两则实现方法 2009-11-3 作者: 编辑:崔晓帆 点击进入论坛

关键词:Oracle 解锁

在安装完Oracle 10g之后,想打开sql*plus来学习,然后按照书上的步骤用scott用户来连接数据库,可输了好几次都提示一个错误。

error: the account is locked

然后上网查了一下之后发现这个用户被锁定了,至于它为什么被锁定,可能是下面几个原因。

1.尝试多次登录未成功.(可能密码不正确)

2.此用户被管理员手工锁定.

3.用户密码到期.未按时修改密码.等等...

这个用户肯定是登陆不了了,然后我用system这个用户登录,可是登了半天都没有进去,又去网上查,网上面大都是关于 oracle 9i的用户和密码,后来我记得在安装的时候就提示输入了,用那个试了一下就连接上了,所以在oracle 10g的system这个用户的密码不是默认的,而是安装的时候自己设定的。

拿system登录进去之后,执行下面的命令:

SQL> alter user scott account unlock;

用户已更改。

这样就完成解锁的操作。接下来,你还可以重新给scott这个用户设定密码

修改scott的登录密码

SQL> alter user scott identified by pan;

用户已更改。

ok了,你再拿scott 和 pan来登录就可以了!

SQL> conn scott/pan

2010年5月12日

已连接。

新装完Oracle 10g后,用system/password可以正常登录,而使用scott/tiger用户却不能登录:

conn scott/tiger error:Oracle 10g the account is locked Oracle 10g the password has expired

原因:默认Oracle 10g的scott不能登陆。被禁用了。

解决方法:

首先确认已经安装oracle 数据库和客户端

.在客户端DOS下执行如下语句:

注意提示符号

c:\sqlplus /nolog sqlp\ conn sys/system@oracle10 as sysdba // sys为当前的oracle 用户 system 为该用户密码 oracle10 为SID # alter user soctt account lock; // 把 scott用户锁定 # alter user scott account unlock; //把scott用户解锁 # alter user scott identified by scott //修改scott用户密码为 scott,scott用户默认密码为 tiger

1 Dos下输入C:\sqlplus /nolog

2 以DBA的身份登录

conn sys/password as sysdba;

3 解锁

alter user scott account unlock;

4 弹出一个修改密码的对话框,修改密码

conn scott/tiger SQL> conn sys/sys as sysdba; Connected. SQL> alter user scott account unlock; User altered. SQL> commit; Commit complete. SQL> conn scott/tiger//请输入新密码,并确认后OK Password changed Connected.

oracle 10g数据泵之impdp

2010年5月12日

(2008-08-18 08:47:50)

转载

标签: 分类: 数据库

程序

it

要了解impdp,请先了解导出,我之前作过导出的笔记:oracle 10g数据泵之expdp。这两个笔记也许只对程序员有用,通常用于把正式区的数据导入到测试区,对数据库管理员也许帮助不大,他们使用这些工具大多是用于数据备份。

impdp可以将数据加载到整个数据库、特定的方案(也就是用户)、特定的表空间或者特定的表,也可以将表空间传输到数据库。impdp支持网络模式操作,即从另一个数据库加载数据。

使用impdp导入数据

1.指定转储文件(存放导出数据的文件)存放的目录

SQL>connect sys/password as sysdba;

SQL>create directory dump_dir as ?d:\dump?;

2.使用impdp命令

开始-->运行-->cmd

impdp username/password parameter1[,parameter2,….]

其中,username表示用户名;password表示用户密码;parameter1和parameter2表示参数。参数的类型有近40个,可以使用命令impdp help=y查看所有参数和参数的含义。下面介绍一些对导入数据库和表需要的常用参数,它们的含义和在expdp中的含义完全相同。

content :指定导入的内容。语法格式:content={all| data_only|metadate_only}。其中all表示导入对象定义及其数据,data_only表示只导入对象数据,metadate_only表示只导入对象定义。默认为all

directory:指定转储文件和日志文件所在的默认位置(也就是保存数据的文件位置)。语法格式:directory=direcotry_object。direcotry_object 是create directory语句创建的目录对象。

dumpfile:指定转储文件的名称。语法格式:dumpfile=[ direcotry_object:]file_name[,….]。direcotry_object默认为上面directory参数指定的目录对象。file_name默认名称是expdat.dmp。如果导入文件过大,可以指定多个文件名,如direcotry_object:mydb_%U.dmp。”%U”是一个占位符,使用这种方式不会出现同名的文件。

logfile:指定日志文件的名称。语法格式:logfile=[ direcotry_object:]file_name。direcotry_object默认为directory参数指定的目录对象。file_name日志文件,默认名称是export.log。

exclude:导入时要排除的对象。语法格式: exclude=object_type[:name_clause][,….]。object_type表示对象类型,如table、view、index、function、preocedure,name_clause表示使用SQL语句,指定对象名的筛选条件,如table:”like ?emp%?”表示排除emp开始的任何表。

include:导入时要包含的对象。语法格式:include =object_type[:name_clause][,….]。object_type

2010年5月12日

和name_clause含义同exclude参数解释一样。include和exclude不可以同时使用。当一个对象被包含时,所有相关对象也被包含。

network_link:指定网格导入时的数据库链接名。语法格式:network_link=database_link。database_link表示远程数据库链接名。

query:指定导入数据的where条件。语法格式:query=[schema.][table_name:]query_clause。其中schema表示方案名,也就是用户名,table_name表示表名,query_clause表示条件子句,即where子句。

tables:指定导入表。语法格式:tables=[schema.]table_name[,….]。schema表示方案名,table_name表示表名

full:指定是否将整个数据库导入。语法格式:full={y|n}。y表示执行数据库导入,n表不执行。默认为n。

parfile:指定导入参数文件名。把impdp命令所需的参数写在一个文件中,执行impdp命令时指定这个文件,而不用指定各种参数

导入实例

顺便把expdp命令也写进来,以方便对比。为了不和上一篇导出笔记重复,这里以导入远程数据库的数据到本地数据库为例。

导出远程数据库

1.估算转储文件大小

如果数据库很大,这个过程也许会执行很久。在导出数据库之前,最好先估算一下转储文件(导出到的文件)的大小,以便确定合适filesize参数值,和确定是否有足够的磁盘空间。使用语法:

expdp username/password@234DB full=y estimate_only=y nologfile=y;

其中estimate_only=y表示只估算转储文件的占的磁盘空间,不执行导出操作;@234DB表示远程数据库,它是在tnsnames.ora文件中定义的。

2.导出数据库

expdp username/password@234DB directory=dump_dir dumpfile=mydb_%U.dmp logfile=mydb.log filesize=200m full=y

其中dump_dir表示导出文件的目录,由于这里是导出远程数据库,所以这个目录是在远程机子中的;%U是一个占位符,表示01~99的两位数,这时执行会创建如MYDB_21.DMP之类的文件

3.导入整个数据库

impdp username/password directory=dump_dir dumpfile=mydb_%U.dmp full=y;

其中dump_dir表示入出文件的目录,这里要把远程导出的文件拷贝到本地机子上

导入远程表

2010年5月12日

1.导出表

expdp username/password@234DB directory=dump_dir dumpfile=mytable.dmp tables=schemas.emp

其中schemas表示方案(即用户),emp表示远程数据库名。使用这种方式转储文件将保存在远程服务器的操作系统中。如果要把转储文件保存到本地机子,使用以下语法:

expdp

username/password directory=dump_dir dumpfile=mytable.dmp tables=schemas.emp network_link=to234db

其中username/password分别是本机数据库用户名和密码,to234db是本地数据库指向远程数据库的database link。这种方式可以把数据保存到本机中,但是会产生网络流量。

2.导入表

impdp username/password directory=dump_dir dumpfile=mytable.dmp tables=schemas.emp

其中schemas要和远程用户名相同,也就是说如果本地没有这个用户,要先创建用户,格式如:

grant connect,resource to schemas identified by password。emp是要导入的表,如果本地schemas方案已经存在要导入的表,可以指定tables_exists_action参数,使用格式是tables_exists_action={skip|append|truncate|replace}这四个参数值分别表示忽略这个表、把记录追加到该表后面、先删除表数据再追加记录和使用新表替代已经存在的表。

向Oracle数据库导入DMP文件

说明:dmp文件为Oracle数据库备份文件。

命令: imp:导入

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. 导入一个表

2010年5月12日 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=y

7. 使用参数文件

imp system/manager parfile=bible_tables.par

bible_tables.par 参数文件:

#Import the sample tables used for the Oracle8i Database Administrator's

Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import

8. 增量导入

imp system./manager inctype= RECTORE FULL=Y FILE=A

C:Documents and Settingsadministrator>exp help=y

Export: Release 9.2.0.1.0 - Production on 星期三 7 月 28 17:04:43 2004 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

通过输入 EXP 命令和用户名 / 口令,您可以

后接用户名 / 口令的命令 :

例程 : EXP SCOTT/TIGER

或者,您也可以通过输入跟有各种参数的 EXP 命令来控制 “ 导出 ” 按照不同参数。要指定参数,您可以使用关键字 :

格式 : EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN) 例程 : EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR) 或 TABLES=(T1: P1,T1: P2) ,如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字 说明 ( 默认 ) 关键字 说明 ( 默认 )

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

USERID 用户名 / 口令 FULL 导出整个文件 (N)

BUFFER 数据缓冲区大小 OWNER 所有者用户名列表

FILE 输出文件 (EXPDAT.DMP) TABLES 表名称列表

COMPRESS 导入到一个区 (Y) RECORDLENGTH IO 记录的长度 GRANTS 导出权限 (Y) INCTYPE 增量导出类型

INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y)

DIRECT 直接路径 (N) TRIGGERS 导出触发器 (Y)

LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE) ROWS 导出数据行 (Y) PARFILE 参数文件名

2010年5月12日 CONSISTENT 交叉表的一致性 (N) CONSTRAINTS 导出的约束条件 (Y)

OBJECT_CONSISTENT 只在对象导出期间设置为读的事务处理 (N)

FEEDBACK 每 x 行的显示进度 (0)

FILESIZE 每个转储文件的最大大小

FLASHBACK_SCN 用于将会话快照设置回以前状态的 SCN

FLASHBACK_TIME 用于获取最接近指定时间的 SCN 的时间

QUERY 用于导出表的子集的 select 子句

RESUMABLE 遇到与空格相关的错误时挂起 (N)

RESUMABLE_NAME 用于标识可恢复语句的文本字符串

RESUMABLE_TIMEOUT RESUMABLE 的等待时间

TTS_FULL_CHECK 对 TTS 执行完整的或部分相关性检查

TABLESPACES 要导出的表空间列表

TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)

TEMPLATE 调用 iAS 模式导出的模板名

在没有警告的情况下成功终止导出。

==================================================

C:Documents and Settingsadministrator>imp help=y

Import: Release 9.2.0.1.0 - Production on 星期三 7 月 28 17:06:54 2004

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

可以通过输入 IMP 命令和您的用户名 / 口令

后接用户名 / 口令的命令 :

例程 : IMP SCOTT/TIGER

或者 , 可以通过输入 IMP 命令和各种参数来控制 “ 导入 ”

按照不同参数。要指定参数,您可以使用关键字 :

格式 : IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)

例程 : IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N

或 TABLES=(T1: P1,T1: P2) ,如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字 说明(默认) 关键字 说明(默认)

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

USERID 用户名 / 口令 FULL

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

2010年5月12日

执行环境:可以在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)

基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

数据泵导入:

指令 impdp

一:数据库所有对象的导入:

impdp system/tiger dumpfile=pump_dir:mydatabase_%.dat

filesize=100m nologfile=y job_name=zhang full=y estimate_only

二:用户数据的导入:

2010年5月12日

impdp system/tiger dumpfile=pump_dir:mydatabase_%.dat

filesize=100m nologfile=y job_name=zhang schemas=scott

三:导入特定的表:

impdp system/tiger dumpfile=pump_dir:mydatabase_%.dat

filesize=100m nologfile=y job_name=zhang tables=scott.emp,scott.dept

数据泵导出:

指令 expdp

一:数据库所有对象的导出:

expdp system/tiger dumpfile=pump_dir:mydatabase_%.dat

filesize=100m nologfile=y job_name=zhang full=y estimate_only

二:用户数据的导出:

expdp system/tiger dumpfile=pump_dir:mydatabase_%.dat

filesize=100m nologfile=y job_name=zhang schemas=scott

三:导出特定的表:

expdp system/tiger dumpfile=pump_dir:mydatabase_%.dat

filesize=100m nologfile=y job_name=zhang tables=scott.emp,scott.dept 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。

2010年5月12日

!!!若导入时出现有个别表不能成功导入时,只能在数据库里新建表结构,再通过imp命令导入。

1. 根据导入表时在SQL*PLUS中的提示,会说什么表不能正确创建,在列出相应表的所有表结构。

2. 在SQL*PLUS里复制表结构到TXT文档,设置好格式,放在C:\1.txt下。

3. 在SQL*PLUS里通过@ C:\1.txt 运行,提示表创建结构成功。

4. 向新创建的表导入数据。Imp system/sql@orcl file=d:\0955.dmp tables=(table1,table2,table3)

ignore=y

5. 观察提示,成败在此一举。

注意:

操作者要有足够的权限,权限不够它会提示。

数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

附录一: 给用户增加导入数据权限的操作

第一,启动sql*puls

第二,以system/sql登陆

第三,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/sql full=y file=*.dmp

或者 imp userid=system/sql full=y file=filename.dmp

执行示例:

F:\Work\Oracle_Data\backup>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 - Production

With the Partitioning option

JServer Release 8.1.7.0.0 - Production

经由常规路径导出由EXPORT:V08.01.07创建的文件

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

导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)

. 正在将AICHANNEL的对象导入到 AICHANNEL

. . 正在导入表 "INNER_NOTIFY" 4行被导入

准备启用约束条件...

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

原文:http://www.niubb.net/a/2015/09-27/1015489.html

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值