`
log_cd
  • 浏览: 1089206 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Oracle数据导入导出imp/exp命令和grant命令

阅读更多
一、数据导入导出命令

   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所包裹的类,完成导入导出功能。

exp参数:

buffer:下载数据缓冲区,以字节为单位,缺省依赖操作系统
consistent:下载期间所涉及的数据保持read only,缺省为n;自export启动后,consistent=y冻结来自其它会话的对export操作的数据对象的更新,这样可以保证dump结果的一致性。但这个过程不能太长,以免回滚段和联机日志消耗完
direct:使用直通方式 ,缺省为n;direct=y,取代buffer选项,query选项不可用
有利于提高速度
feeback:显示处理记录条数,缺省为0,即不显示
file:输出文件,缺省为expdat.dmp
filesize:输出文件大小,缺省为操作系统最大值
indexes:是否下载索引,缺省为n,这是指索引的定义而非数据,exp不下载索引数据
log:log文件,缺省为无,在标准输出显示
owner:指明下载的用户名
query:选择记录的一个子集
rows:是否下载表记录
tables:输出的表名列表

imp参数:

buffer:上载数据缓冲区,以字节为单位,缺省依赖操作系统
commit:上载数据缓冲区中的记录上载后是否执行提交
feeback:显示处理记录条数,缺省为0,即不显示
file:输入文件,缺省为expdat.dmp
filesize:输入文件大小,缺省为操作系统最大值
fromuser:指明来源用户方
ignore:是否忽略对象创建错误,缺省为n,在上载前对象已被建立往往是一个正常现象,所以此选项建议设为y
indexes:是否上载索引,缺省为n,这是指索引的定义而非数据,如果上载时索引已建立,此选项即使为n也无效,imp自动更新索引数据
log:log文件,缺省为无,在标准输出显示
rows:是否上载表记录
tables:输入的表名列表
touser:指明目的用户方

下面介绍的是导入导出的实例。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
   exp system/manager@TEST file=d:\daochu.dmp full=y
2 将数据库中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 来实现。
  对于在客户端导出时:
C:\>exp db_user/db_user@195.2.199.169/orcl owner=db_user file=d:/db_user.
dmp
  sysdba用户导出其他用户的表,注意单引号的作用范围:
c:\>exp 'sys/sys@195.2.199.169/orcl as sysdba' owner=scott file=d:\xxxx.dmp

数据导入:
1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
   imp system/manager@TEST  file=d:\daochu.dmp
   imp 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)

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

注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用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:\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行被导入
准备启用约束条件...
成功终止导入,但出现警告。


附录二:
Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
  先建立import9.par,
  然后,使用时命令如下:imp parfile=/filepath/import9.par
  例 import9.par 内容如下:
        FROMUSER=TGPMS       
        TOUSER=TGPMS2     (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)          
        ROWS=Y
        INDEXES=Y
        GRANTS=Y
        CONSTRAINTS=Y
        BUFFER=409600
        file==/backup/ctgpc_20030623.dmp
        log==/backup/import_20030623.log

二、GRANT命令

      GRANT:赋予一个用户,一个组或所有用户访问权限。GRANT 允许对象的创建者给某用户或某组或所有用户(PUBLIC)某些特定的权限。对象创建后,除了创建者外,除非创建者赋予(GRANT)权限,其他人没有访问对象的权限。
格式:
    GRANT privilege [, ...] ON object [, ...]
    TO { PUBLIC | GROUP group | username }

说明:
privilege:
SELECT 访问声明的表/视图的所有列/字段.
INSERT 向声明的表中插入所有列字段.
UPDATE 更新声明的所有列/字段.
DELETE 从声明的表中删除所有行.
RULE 在表/视图上定义规则 (参见 CREATE RULE 语句).
ALL 赋予所有权限.
object 赋予权限的对象名.可能的对象是: 
table (表) view (视图)、sequence (序列)、index (索引)。

PUBLIC: 代表是所有用户的简写.
GROUP group: 将要赋予权限的组 group
username: 将要赋予权限的用户名.

三、Oracle创建用户/密码并授权,创建表空间:

1.创建用户
Create user 用户名 identified by 密码;
(如果是数字则要加双引号”,如果是字母就不用)
2.授权给某个用户
Grant connect,resource to 用户名;
(只有用户有了connect 和 resource后才能操作其他表)
3.授DBA 权限
Grant dba to 用户名;

4.撤权:
revoke   权限...   from  用户名;

5.创建表空间
create tablespace test datafile 'E:\oracle\product\10.2.0\oradata\orcl\test.dbf' size 200m autoextend on next 10m maxsize unlimited;

6.设置表空间自动增长
alter database datafile 'E:\oracle\product\10.2.0\oradata\orcl\test.dbf' autoextend on;

7.创建临时表空间
create temporary tablespace test_temp tempfile 'E:\oracle\product\10.2.0\oradata\orcl\test_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local;

8.创建用户并指定表空间
create user test identified by test default tablespace test temporary tablespace test_temp;

9.删除表空间
drop tablespace testdb INCLUDING CONTENTS;

10.给用户授予权限
-- Grant/Revoke role privileges
grant connect,resource to test;
grant exp_full_database to test;
grant imp_full_database to test;
-- Grant/Revoke system privileges
grant create procedure to test;
grant create trigger to test;
grant execute any procedure to test;
grant grant any privilege to test;
grant restricted session to test;
grant select any table to test;
grant unlimited tablespace to test;
grant create any view to test;
分享到:
评论

相关推荐

    oracle数据库导入导出命令

    给用户增加导入数据权限的操作 第一,启动sql*puls 第二,以system/manager登陆 第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略) 第四,GRANT CREATE USER,DROP USER,ALTER ...

    oracle数据库数据泵的导入导出功能 expdp

    oracle数据库数据泵的导入导出功能 expdp create directory DATA_PUMP_DIR as '/home/oracle/amber2dmp'; dba授权DATA_PUMP_DIR grant read,write on directory DATA_PUMP_DIR to public;

    oracle安装及备份

    Oracle数据导入导出imp/exp命令 --如何在oracle中导入dmp数据库文件? 2006/2/16 zhanghua first create Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地...

    最全的oracle常用命令大全.txt

    列出全部SQL命令和SQL*Plus命令 SQL>help 列出某个特定的命令的信息 SQL>help 命令名 c、显示表结构命令DESCRIBE SQL>DESC 表名 d、SQL*Plus中的编辑命令 显示SQL缓冲区命令 SQL>L 修改SQL命令 首先要将待改正行...

    Oracle expdp-impdp 数据泵导入导出(远程)

    ...sqlplus HADOOP/Mthgh456 2、创建逻辑目录用于导出导入数据(目录一定要真实存在) create or replace directory out_dir as 'C:\out';...导出本地数据(在系统命令下执行,不能在数据库里执行,注意命令

    T100 数据还原.txt

    1、找到昨晚备份,用root用户解压:gunzip -d exp_hc01.dmp.gz 2、如果toptet数据库开了就进...imp test/test@toptst file=/u3/imp/exp_hc01.dmp log=/tmp/imp_pia.log fromuser=hc01 touser=test tables=pia_file

    oracle用imp导入dmp文件的方法

    oracle命令行登录 ...创建用户 ... 创建表空间 create tablespace 表空间名 datafile 'D:\oracle11\oradata\库名\XXX.pdf' size 200M autoextend on next 50m maxsize 1000m ; 用户授权 ...用创建的用户名和密码登录...imp导入d

    oracle导入数据库方法

    -- remap_schema=EAMS_X:EAMS_NWPU_0913 从EAMS_X用户导出的数据,想要导入到EAMS_NWPU_0913用户中去 -- remap_tablespace=JIAOWU:USERS 数据库对象本来存在于JIAOWU表空间,现在你不想放那儿了,想换到USERS,就用...

    oracle详解

    导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理...

    windows下oracle11g数据泵自动备份脚本

    windows下oracle11g数据泵自动备份脚本含删除过期备份和使用方法 1、先建备份用的路径对象:(注:此处认为用来做备份的用户backupuser已经建好了,且已经有连接数据库的相应权限) sqlplus / as sysdba CREATE OR ...

    MySQL的Grant命令

    MySQL的Grant命令详解

    oracle 11g安装配置

    使用impdp工具导入数据库 [root@dbserver ~]# impdp lisi/123456 DIRECTORY=dmpdir DUMPFILE=lisi-20111014.dmp REUSE_DATAFILES=Y TABLE_EXISTS_ACTION=REPLACE #恢复用户lisi的数据库 [root@dbserver ~]# ...

    Oracle 主要配置文件介绍

    如果设置为 N 表示不通过 dbstart 和 dbshut 启动和关闭实例数据库 CAMS 系统要求在 安装完 ORACLE 后要求将该参数修改为 Y 以保证 ORACLE 数据库自启动 和关闭 1.2.3 数据库实例初始化...

    深入了解Oracle数据字典

    首先,Oracle的字典表和视图基本上可以分为三个层次。 1.1 X$表 这一部分表是Oracle数据库的运行基础,在数据库启动时由Oracle应用程序动态创建。 这部分表对数据库来说至关重要,所以Oracle不允许SYSDBA之外的用户...

    数据库建库指令

    数据库导出路径为oracle数据库备份/导入设置路径:E:\app\Hejiah\admin\orcl\dpdump exp username/password@sid file=d:\exp.dmp full=y imp wenhb/1@orcl file=D:\app\Hejiah\admin\orcl\dpdump\wenhb.dmp full=y ...

    oracle数据库创建表空间和用户

    oracle数据库导入、导出数据、创建表空间、创建用户、用户授权等操作

    MySQL-Grant命令说明

    MySQL-Grant命令说明,管理用户,分配权限

    Oracle11g从入门到精通2

    10.2.1 使用expdp导出数据 10.2.2 使用impdp导入数据 10.3 使用OEM中进行备份与恢复 10.3.1 通过导出文件来备份 10.3.2 通过导入来恢复 10.4 脱机备份与恢复 10.4.1 脱机备份 10.4.2 脱机恢复 10.5 ...

    exp转换表空间

    在使用EXP/IMP进行数据的迁移,经常会需要转换表空间的操作,简单记录一下,EXP过程碰到表空间的转换时需要注意的问题。 如果不是分区表、不包含LOB字段,且不含索引组织表的OVERFLOW段,那么可以通过下面的方法将...

Global site tag (gtag.js) - Google Analytics