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.EXEIMP.EXE文件被用来执行导入导出。
oraclejava编写,SQLPLUS.EXEEXP.EXEIMP.EXE这两个文件有可能是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXEIMP.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 将数据库中的table1table2导出
exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=( table1table2)

4 将数据库中的table1中的字段filed1"00"打头的数据导出
exp system/sql@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"

上面是常用的导出,对于压缩,既用winzipdmp文件可以很好的压缩。
也可以在上面命令后面 加上 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)
基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。
Oracle用户解锁命令的两则实现方法
2009-11-3    作者:        编辑:崔晓帆  点击进入论坛
关键词:Oracle  解锁
  在安装完Oracle 10g之后,想打开sql*plus来学习,然后按照书上的步骤用scott用户来连接数据库,可输了好几次都提示一个错误。
  error the account is locked
  然后上网查了一下之后发现这个用户被锁定了,至于它为什么被锁定,可能是下面几个原因。
  1.尝试多次登录未成功.(可能密码不正确)
  2.此用户被管理员手工锁定.
  3.用户密码到期.未按时修改密码.等等...
  这个用户肯定是登陆不了了,然后我用system这个用户登录,可是登了半天都没有进去,
又去网上查,网上面大都是关于 oracle 9i的用户和密码,后来我记得在安装的时候就提示输入了,用那个试了一下就连接上了,所以在oracle 10gsystem这个用户的密码不是默认的,而是安装的时候自己设定的。
  拿system登录进去之后,执行下面的命令:
  SQL> alter user scott account unlock;
  用户已更改。
  这样就完成解锁的操作。接下来,你还可以重新给scott这个用户设定密码
  修改scott的登录密码
  SQL> alter user scott identified by pan;
  用户已更改。
  ok了,你再拿scott pan来登录就可以了!
  SQL> conn scott/pan
  已连接。
  新装完Oracle 10g后,用system/password可以正常登录,而使用scott/tiger用户却不能登录:
  conn scott/tiger errorOracle 10g the account is locked Oracle 10g the password has expired
  原因:默认Oracle 10gscott不能登陆。被禁用了。
  解决方法:
  首先确认已经安装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
 (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表示用户密码;parameter1parameter2表示参数。参数的类型有近40个,可以使用命令impdp help=y查看所有参数和参数的含义。下面介绍一些对导入数据库和表需要的常用参数,它们的含义和在expdp中的含义完全相同。


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

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

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

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

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

include:导入时要包含的对象。语法格式:include =object_type[:name_clause][,….]object_typename_clause含义同exclude参数解释一样。includeexclude不可以同时使用。当一个对象被包含时,所有相关对象也被包含。

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

query:指定导入数据的where条件。语法格式:query=[schema.][table_name:]query_clau
se。其中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表示远程数据库,它是在a文件中定义的。

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表示入出文件的目录,这里要把远程导出的文件拷贝到本地机子上

导入远程表
1.导出表
expdp  username/password@234DB   directory=dump_dir  dumpfile=mytable.dmp  p
其中schemas表示方案(即用户),emporacle10g客户端安装步骤表示远程数据库名。使用这种方式转储文件将保存在远程服务器的操作系统中。如果要把转储文件保存到本地机子,使用以下语法:
expdp username/password   directory=dump_dir  dumpfile=mytable.dmp  p network_link=to234db
其中username/password分别是本机数据库用户名和密码,to234db是本地数据库指向远程数据库的database link。这种方式可以把数据保存到本机中,但是会产生网络流量。


2.导入表
impdp username/password directory=dump_dir dumpfile=mytable.dmp  p
其中schemas要和远程用户名相同,也就是说如果本地没有这个用户,要先创建用户,格式如:
grant connect,resource to  schemas identified by  passwordemp是要导入的表,如果本地schemas方案已经存在要导入的表,可以指定tables_exists_action参数,使用格式是tables_exists_action={skip|append|truncate|replace}这四个参数值分别表示忽略这个表、把记录追加到该表后面、先删除表数据再追加记录和使用新表替代已经存在的表。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。