- 浏览: 1098611 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
skyesx:
这是2PC实现,更常用的是一个柔性事务的实现,可以参考http ...
Spring分布式事务实现 -
ddbird:
这第一句就不严谨“分布式事务是指操作多个数据库之间的事务”,显 ...
Spring分布式事务实现 -
呵呵6666:
基于互联网支付系统的微服务架构分布式事务解决方案http:// ...
Spring分布式事务实现 -
小黄牛:
写得不错,交流群:472213887
Spring分布式事务实现 -
jiaoqf321456:
这明明是用的apache的压缩,给ant.jar有半毛钱关系吗 ...
使用ant.jar进行文件zip压缩
一、数据导入导出命令
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)权限,其他人没有访问对象的权限。
格式:
说明:
privilege:
SELECT 访问声明的表/视图的所有列/字段.
INSERT 向声明的表中插入所有列字段.
UPDATE 更新声明的所有列/字段.
DELETE 从声明的表中删除所有行.
RULE 在表/视图上定义规则 (参见 CREATE RULE 语句).
ALL 赋予所有权限.
object 赋予权限的对象名.可能的对象是:
table (表) view (视图)、sequence (序列)、index (索引)。
PUBLIC: 代表是所有用户的简写.
GROUP group: 将要赋予权限的组 group
username: 将要赋予权限的用户名.
三、Oracle创建用户/密码并授权,创建表空间:
1.创建用户
2.授权给某个用户
3.授DBA 权限
4.撤权:
5.创建表空间
6.设置表空间自动增长
7.创建临时表空间
8.创建用户并指定表空间
9.删除表空间
10.给用户授予权限
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 如何扩展表空间
2013-09-26 14:29 0一、查看Oracle表空间的使用情况 select dbf ... -
Oracle之自定义聚合函数
2013-08-18 14:56 0一、聚合字符串 CREATE OR REPLACE FUN ... -
SQL Plus 命令及使用
2011-09-20 17:09 0一、登录到数据库 1.直接敲sqlplus并回车就是启动SQ ... -
Oracle数据字典/字段注释/分布式事务故障
2011-03-16 21:55 0一、Java 获取表的属性可以通过ResultSetMetaD ... -
Oracle中常用SQL
2010-05-28 12:49 01、求出本星期第一天和第七天的日期 select tru ... -
Oracle Errors收集
2010-05-23 23:21 2354一、ORA-01652无法通过128(在temp表空间中)扩展 ... -
oracle自动备份数据
2010-02-04 15:19 0一、自动备份脚本(backup.bat) @ECHO OF ... -
oracle实例内存(SGA和PGA)调整
2010-01-04 14:24 53806一、名词解释 (1)SGA:System Global Are ... -
PL/SQL集合类型
2009-11-20 13:57 5389PL/SQL集合类型是类似于高级语言数组的一种复合数据 ... -
java oracle clob
2009-06-26 21:59 6300create table TEST_CLOB ( ... -
oracle blob数据存取
2009-06-26 21:58 6089Oracle中的lob (Large Object)可 ... -
PL/SQL的异常处理/光标/数据链路/导入导出存储过程
2009-06-26 21:57 2533一、PL/SQL的异常 1.处理异常: EXCEPTIO ... -
oracle 管道化表函数(Pipelined Table)
2009-06-18 20:37 9558在实际的应用中,为了让PL/SQL 函数返回数据的多个 ... -
ORACLE批量绑定FORALL与BULK COLLECT
2009-06-18 20:36 19967FORALL与BULK COLLECT的使用方法: 1. ... -
oracle 统计/分析函数
2009-06-09 14:42 6403Oracle从8.1.6开始提供分析函数,分析函数 ... -
PL/SQL开发中动态SQL的使用与过程分页
2009-06-01 11:45 2195在Oracle数据库开发 ... -
Oracle格式化函数
2009-04-02 14:52 6285格式化函数 函数 返回类型 描述 ... -
JDBC驱动类型的区别
2009-03-31 08:31 3286jdbc-odbc桥:将JDBC调用转换到ODBC调用。 ... -
Java程序使用OCI驱动连接Oracle数据库
2009-03-31 08:00 4558根据oracle的说法,ja ... -
oracle之spfile与pfile
2009-01-20 15:19 14578pfile(Initialization Paramet ...
相关推荐
Oracle 数据导入导出 imp/exp 命令是 Oracle 数据库管理系统的重要组件之一,用于实现数据的导入和导出。imp/exp 命令可以将数据从远程数据库服务器导出到本地的 dmp 文件,或者将 dmp 文件从本地导入到远程的数据库...
Oracle 数据库提供了多种工具和技术来支持这些需求,其中 imp/exp 命令是用于数据导入导出的经典方法之一。本文将详细介绍 imp/exp 的工作原理、应用场景以及具体的命令使用方法。 #### 二、Oracle imp/exp 概述 ...
例如,使用`exp_full_database`和`imp_full_database`权限可以进行整个数据库的导出和导入。 ```sql GRANT EXP_FULL_DATABASE, IMP_FULL_DATABASE TO 用户名; ``` - **检查连接**: 确保能够连接到目标数据库。...
Oracle 的数据库导入导出(imp/exp)是数据库管理员经常使用的两个命令,它们分别用于数据库的导出和导入。本文档总结了 Oracle 数据库的完全导入导出、imp 和 exp 命令的使用方法,以及本机和异机恢复的步骤。 一...
本文将详细介绍如何使用 Oracle 的 `exp` 和 `imp` 命令进行数据的导入和导出。 #### 二、基本概念 - **exp (Export)**: 这个命令用于从远程数据库服务器导出数据到本地的一个 `.dmp` 文件中。 - **imp (Import)**...
Oracle 数据库的导入导出(IMP/EXP)是一种重要的数据管理和维护工具,主要用于实现数据的备份与恢复。这种工具允许用户将数据库中的数据导出为二进制格式的文件(.dmp 文件),并且可以在需要的时候将这些数据再...
Oracle 11G 导入导出(imp 和 exp)少表解决方法 Oracle 11G 是一个功能强大且复杂的数据库管理系统,它提供了多种方式来导入和导出数据。然而,在使用 Oracle 11G 时,用户可能会遇到一些问题,例如无法导出空表...
### Oracle 数据导入导出 imp/exp 命令详解 #### 一、概述 在数据库管理领域,Oracle 提供了强大的工具来支持数据的备份与恢复,其中 `imp`(Import)与 `exp`(Export)命令是进行数据迁移时常用的工具之一。本文...
Oracle 11G 的导入导出工具 exp 和 imp 是数据库管理员进行数据迁移、备份和恢复的重要工具。然而,在11G R2 版本中,由于一个新特性,空表在没有数据的情况下不会分配 segment,导致无法通过 exp 导出。这个问题...
其中,`exp_full_database`和`imp_full_database`权限分别允许用户对整个数据库进行导出和导入操作。 #### 二、数据库的导入导出 在Oracle中,导入导出是一种常见的数据迁移手段,主要用于备份数据、恢复数据或在...
Oracle数据库中的Imp和Exp命令是用于数据导入和导出的工具,它们是逻辑备份的重要组成部分。在Oracle环境中,这些命令对于数据迁移、备份和恢复操作至关重要。 **Exp(Export)命令**用于将数据库对象如表、索引、...
Oracle数据库的导入导出涉及多个命令和选项,熟练掌握这些命令对于数据库管理和维护至关重要。通过理解不同参数的含义和用途,可以有效地管理数据,并确保在各种场景下的数据安全和一致性。在实际操作中,务必确保有...
下面我们将详细介绍如何通过Oracle的`imp`和`exp`工具来进行数据库的数据导入导出。 ### 一、Oracle数据库导入导出概述 #### 1. 导入数据库(IMP) Oracle的`imp`工具用于将之前使用`exp`命令导出的数据文件重新...
之后,使用 `GRANT` 命令赋予用户相应的角色权限(如 connect、exp_full_database、imp_full_database、resource 等)和系统权限(如 create synonym、create view、unlimited tablespace 等)。 最后,导入数据库...
总结以上知识点,我们可以了解到Oracle数据库导入导出过程包括了用户管理、权限分配、以及使用exp和imp命令进行数据的导出和导入操作。在执行这些操作时,DBA需要确保操作与本地数据库的版本保持一致,避免因版本不...
Oracle提供了多种备份方式,包括传统的`EXP`命令和更先进的`EXPDP`(数据泵)。 ##### 1. 导出数据 **(1)EXP导出** - **命令格式**:`exp username/password@service_name file=path_to_file` 其中,`...