当前位置: 首页 > 编程日记 > 正文

利用外部命令Oralce数据库导入导出

1--数据库导出(exp)

首先进入命令行

导出数据库

在命令行中输入如下命令:

exp   c2j/c2j@c2j

file=c:/table.dmp

tables=jbitaku,jbitakum

grants=y

然后按回车键

说明:

c2j/c2j@c2j  分别表示用户名,密码和服务名

file:输出文件的位置和文件名

tables:输出的表名列表,多个表中间用逗号隔开

2--数据库导入(imp)

首先进入命令行

数据库导入(imp)

在命令行中输入如下命令:

imp   c2j/c2j@c2j

file=c:/table.dmp

fromuser=c2j   ignore=y

commit=y   grants=y

然后按回车键

说明: c2j/c2j@c2j  分别表示用户名,密码和服务名

file:要导入的文件的全路迳

fromuser:指明来源用户方

ignore:是否忽略对象创建错误

commit:上载数据缓冲区中的记录,上载后是否执行提交

出现 正常终了表示导入成功

打开数据库,看是否导入成功

注:Oralce数据库导入导出时要确保Oralce服务启动

以下参考自:http://www.matrix.org.cn/thread.shtml?forumId=36&topicId=23332

一. 导出工具 exp

1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin

exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移

它有三种模式:

a. 用户模式: 导出用户所有对象以及对象中的数据;

b. 表模式: 导出用户所有表或者指定的表;

c. 整个数据库: 导出数据库中所有对象。

2. 导出工具exp交互式命令行方式的使用的例子

$exp test/test123@appdb

Enter array fetch buffer size: 4096 > 回车

Export file: expdat.dmp > m.dmp  生成导出的文件名

(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3

Export table data (yes/no): yes > 回车

Compress extents (yes/no): yes > 回车

Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set

About 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 exported

Table(T) or Partition(T:P) to be exported: (RETURN to quit) >要导出的表名n

Table(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/userpassword

buffer=8192000

compress=n

grants=y

说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改

filesize指定生成的二进制备份文件的最大字节数

(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)

二.导入工具 imp

1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin

imp导入工具将EXP形成的二进制系统文件导入到数据库中.

它有三种模式:

a. 用户模式: 导出用户所有对象以及对象中的数据;

b. 表模式: 导出用户所有表或者指定的表;

c. 整个数据库: 导出数据库中所有对象。

只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入

imp步骤:

(1) create table (2) insert data (3) create index (4) create triggers,constraints

2.导入工具imp交互式命令行方式的例子

$ imp

Import: Release 8.1.6.0.0 - Production on 星期五 12月 7 17:01:08 2001

(c) Copyright 1999 Oracle Corporation.  All rights reserved.

用户名:  test

口令:****

连接到: Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production

With the Partitioning option

JServer Release 8.1.6.0.0 - Production

导入文件: expdat.dmp> /tmp/m.dmp

输入插入缓冲区大小(最小为 8192 ) 30720>

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

警告: 此对象由 TEST 导出, 而不是当前用户

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

只列出导入文件的内容(yes/no):no>

由于对象已存在, 忽略创建错误(yes/no):no> yes

导入权限(yes/no):yes>

导入表数据(yes/no):yes>

导入整个导出文件(yes/no):no> yes

. 正在将TEST的对象导入到 SCOTT

. . 正在导入表 "CMAMENU" 4336行被导入

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

3.导入工具imp非交互式命令行方式的例子

$ imp system/manager fromuser=jones tables=(accts)

$ imp system/manager fromuser=scott tables=(emp,dept)

$ imp system/manager fromuser=scott touser=joe tables=emp

$ imp scott/tiger file = expdat.dmp full=y

$ imp scott/tiger file = /mnt1/t1.dmp show=n buffer=2048000 ignore=n

commit=y grants=y full=y log=/oracle_backup/log/imp_scott.log

$ imp system/manager parfile=params.dat

params.dat 内容

file=dba.dmp show=n ignore=n grants=y fromuser=scott tables=(dept,emp)

4.导入工具imp可能出现的问题

(1) 数据库对象已经存在

一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等;

数据库对象已经存在, 按缺省的imp参数, 则会导入失败

如果用了参数ignore=y, 会把exp文件内的数据内容导入

如果表有唯一关键字的约束条件, 不合条件将不被导入

如果表没有唯一关键字的约束条件, 将引起记录重复

(2) 数据库对象有主外键约束

不符合主外键约束时, 数据会导入失败

解决办法: 先导入主表, 再导入依存表

disable目标导入对象的主外键约束, 导入数据后, 再enable它们

(3) 权限不够

如果要把A用户的数据导入B用户下, A用户需要有imp_full_database权限

(4) 导入大表( 大于80M ) 时, 存储分配失败

默认的EXP时, compress = Y, 也就是把所有的数据压缩在一个数据块上.

导入时, 如果不存在连续一个大数据块, 则会导入失败.

导出80M以上的大表时, 记得compress= N, 则不会引起这种错误.

(5) imp和exp使用的字符集不同

如果字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.

导入完成后再改回来.

(6) imp和exp版本不能往上兼容

imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件

根据情况我们可以用

$ imp username/password@connect_string

说明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora

定义的本地或者远端数据库的名称

注意事项:

UNIX: /etc/hosts 要定义本地或者远端数据库服务器的主机名

win98: windows/hosts 和IP地址的对应关系

win2000: winnt/system32/drivers/etc/hosts

exp

将数据库内的各对象以二进制方式下载成damp文件,方便数据迁移。

buffer:下载数据缓冲区,以字节为单位,缺省依赖操作系统

consistent:下载期间所涉及的数据保持read only,缺省为n

direct:使用直通方式 ,缺省为n

feedback:显示处理记录条数,缺省为0,即不显示

file:输出文件,缺省为expdat.dmp

filesize:输出文件大小,缺省为操作系统最大值

indexes:是否下载索引,缺省为n,这是指索引的定义而非数据,exp不下载索引数据

log:log文件,缺省为无,在标准输出显示

owner:指明下载的用户名

query:选择记录的一个子集

rows:是否下载表记录

tables:输出的表名列表

导出整个实例

exp dbuser/oracle file=oradb.dmp log=oradb.log

full=y consistent=y direct=y

user应具有dba权限

导出某个用户所有对象

exp dbuser/oracle file=dbuser.dmp log=dbuser.log

owner=dbuser buffer=4096000 feedback=10000

导出一张或几张表

exp dbuser/oracle file=dbuser.dmp

log=dbuser.log tables=table1,table2

buffer=4096000 feedback=10000

导出某张表的部分数据

exp dbuser/oracle file=dbuser.dmp log=dbuser.log

tables=table1 buffer=4096000 feedback=10000 query=/”

where col1=/’…/’ and col2 /<…/”

不可用于嵌套表

以多个固定大小文件方式导出某张表

exp dbuser/oracle file=1.dmp,2.dmp,3.dmp,

… filesize=1000m tables=emp buffer=4096000 feedback=10000

这种做法通常用在:表数据量较大,单个dump文件可能会超出文件系统的限制

直通路径方式

direct=y,取代buffer选项,query选项不可用

有利于提高下载速度

consistent选项

自export启动后,consistent=y冻结来自其它会话的对export操作的数据对象的更新,这样可以保证dump结果的一致性。但这个过程不能太长,以免回滚段和联机日志消耗完

imp

将exp下载的dmp文件上载到数据库内。

buffer:上载数据缓冲区,以字节为单位,缺省依赖操作系统

commit:上载数据缓冲区中的记录上载后是否执行提交

feeback:显示处理记录条数,缺省为0,即不显示

file:输入文件,缺省为expdat.dmp

filesize:输入文件大小,缺省为操作系统最大值

fromuser:指明来源用户方

ignore:是否忽略对象创建错误,缺省为n,在上载前对象已被建立往往是一个正常现象,所以此选项建议设为y

indexes:是否上载索引,缺省为n,这是指索引的定义而非数据,如果上载时索引已建立,此选项即使为n也无效,imp自动更新索引数据

log:log文件,缺省为无,在标准输出显示

rows:是否上载表记录

tables:输入的表名列表

touser:指明目的用户方

导入整个实例

imp dbuser/oracle file=oradb.dmp log=oradb.log

full=y buffer=4096000 commit=y ignore=y feedback=10000

导入某个用户所有对象

imp dbuser/oracle file=dbuser.dmp log=dbuser.log

fromuser=dbuser touser=dbuser2 buffer=2048000 commit=y ignore=y feedback=10000

导入一张或几张表

imp dbuser2/oracle file=user.dmp log=user.log tables=table1,table2

fromuser=dbuser touser=dbuser2 buffer=2048000 commit=y ignore=y feedback=10000

以多个固定大小文件方式导入某张表

imp dbuser/oracle file=/(1.dmp,2.dmp,3.dmp,…/) filesize=1000m tables=emp

fromuser=dbuser touser=dbuser2 buffer=4096000 commit=y ignore=y feedback=10000

转载于:https://www.cnblogs.com/huozhicheng/archive/2011/06/30/2533139.html

相关文章:

LeetCode实战:子集

题目英文 Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solution set must not contain duplicate subsets. Example: Input: nums [1,2,3] Output: [[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[] ]题目中文 给定一组…

linux的挂载命令

在linux中所有的存储设备都必须挂载后才能使用&#xff0c;相当于windows的分配盘符 挂载命令 mount #查看系统中已经挂载好的设备 mount -a #根据/etc/fstab中的内容&#xff0c;自动挂载 /etc/fstab是系统开机的自动挂载文件 系统挂载时要自动检车测这个文件&#xff0c;如果…

软件测试需要学习什么技术

软件测试在近几年被很多企业都重视起来&#xff0c;互联网时代&#xff0c;APP种类越来越多&#xff0c;软件测试这一行业的发展前景是非常大的&#xff0c;那么想要学习软件测试需要学习什么技术呢?来看看下面的详细介绍。 软件测试需要学习什么技术? 每个软件在上线之前都离…

silverlight4.0 写文件不能设置默认文件名

Silverlight4.0 不提供SaveFileDialog的SafeFileName的写属性 Weve not exposed the "DefaultFileName" property on SaveFileDialog due to time constraints.Moe Elshall | Silverlight Development TeamMicrosoft Corporation等待5.0解决问题。转载于:https://www…

我是如何组织“算法刻意练习活动”的?

背景 在上个学期末&#xff0c;我们组织了一次团队的招新活动 – 如何加入 LSGO 软件技术团队&#xff1f;。 我们让预加入团队的同学在假期中完成以下两个任务之一&#xff1a; 学习 C# 语言&#xff1a; https://www.bilibili.com/video/av2357992/?p1学习 Python 语言&a…

[Ubuntu] ubuntu10.04系统维护之Wine的安装

在介绍安装wine之前&#xff0c;我想是有必要先介绍一下Wine的。当然&#xff0c;如果是Liunx的高手&#xff0c;我想是没必要看的&#xff0c;但是对于笔者这样的菜鸟级人物还是需要看一下的。 Wine是一款Liunx下的模拟器软件&#xff0c;但是Wine又不仅仅是一个模拟器软件&am…

Python培训教程:Python内置数据结构之双向队列

经常听说Python就是一门执行速度低的语言&#xff0c;可能是你的程序中使用了复杂的算法与数据结构&#xff0c;才会导致程序执行速率低的。在Python的标准库中提供了常见的数据结构工开发者使用&#xff0c;不仅执行速率比较快&#xff0c;还可以简化开发者的编程工作。下面我…

华为hybrid-vlan

华为hybrid-vlan、三层交换、DHCP拓扑&#xff1a;需求&#xff1a;1.路由器终结vlan2.交换机间以hybrid方式透传vlan3.PC以DHCP获取IP思路&#xff1a;1.PC的网关在路由器上2.配置hybrid-vlan3.配置DHCP步骤&#xff1a;路由器AR1&#xff1a;<Huawei>sy[Huawei]vlan 10…

android 按住拖动gallery防止马上加载数据导致gallery卡的方法

gallery菜单滑动有一个不好的效果就是每次经过中间的菜单都默认是被选中状态&#xff0c;同时会加载数据 以至于切换不流畅&#xff0c;有一种卡卡的感觉&#xff01;&#xff01;其实用线程来处理这个问题&#xff0c;一定的时间后如果选择的index值不变&#xff0c;说明已经稳…

LeetCode实战:买卖股票的最佳时机

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Say you have an array for which the ith element is the price of a given stock on day …

HTML5培训教程:HTML5基础介绍

HTML5发展史&#xff1a; HTML5草案的前身名为 Web Applications 1.0&#xff0c;于2004年被WHATWG提出&#xff0c;于2007年被W3C接纳&#xff0c;并成立了新的 HTML 工作团队。 • HTML 5 的第一份正式草案已于2008年1月22日公布。HTML5 仍处于完善之中。然而&#xff0c;大部…

LeetCode实战:买卖股票的最佳时机 II

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Say you have an array for which the ith element is the price of a given stock on day …

csdn模拟登陆

版权声明&#xff1a;原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan 首先声明本模拟不稳定,有时会出现登陆不进去.模拟的原理请参考bl…

Xcode 创建.a和framework静态库(转)

最近因为项目中的聊天SDK&#xff0c;需要封装成静态库&#xff0c;所以实践了一下创建静态库的步骤&#xff0c;做下记录。 库介绍 库从本质上来说是一种可执行代码的二进制格式&#xff0c;可以被载入内存中执行。库分静态库和动态库两种。iOS中的静态库有 .a 和 .framework两…

软件测试培训需要学习什么

软件测试在近几年引起了很多人的关注&#xff0c;不少人都想要学习软件测试&#xff0c;零基础的学员都会选择报软件测试培训机构学习&#xff0c;那么软件测试需要学习什么呢?来看看下面的详细介绍。 软件测试培训需要学习什么? 软件测试需要学测试环境(网络环境&#xff0c…

IL,Emit之OpCodes说明(备查)

名称说明Add将两个值相加并将结果推送到计算堆栈上。Add_Ovf将两个整数相加&#xff0c;执行溢出检查&#xff0c;并且将结果推送到计算堆栈上。Add_Ovf_Un将两个无符号整数值相加&#xff0c;执行溢出检查&#xff0c;并且将结果推送到计算堆栈上。And计算两个值的按位“与”并…

LeetCode实战:只出现一次的数字

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Given a non-empty array of integers, every element appears twice except for one. Find…

610D - Vika and Segments(线段树+扫描线+离散化)

扫描线&#xff1a;http://www.cnblogs.com/scau20110726/archive/2013/04/12/3016765.html 看图&#xff0c;图中的数字是横坐标离散后对应的下标&#xff0c;计算时左端点不变&#xff0c;右端点加1&#xff0c;所以总的更新的区间是l到r-1。 也可以理解为1代表的是&#xff…

UI设计比较流行的插画类型和运用

在当代平面设计中&#xff0c;插画是颇为经常使用的展现性元素&#xff0c;是视觉转达的紧张对象。插画在设计作品中&#xff0c;每每用来指导、开导和出现消息&#xff0c;更有针对性地、视觉化地同用户举行交换。真正高效的插画必然是有针对性的&#xff0c;易于辨认的&#…

poj 2362 Square

#include <iostream> //参照poj 1011 sticks#include <algorithm>using namespace std;int sticks[20],visited[20];int flag,total;int t,seg;int cmp(const void* a,const void* b){return (*(const int*)b)-(*(const int *)a);}void solve(int k,int…

Java BIO、NIO、AIO

同步与异步 同步与异步的概念, 关注的是 消息通信机制 同步是指发出一个请求, 在没有得到结果之前该请求就不返回结果, 请求返回时, 也就得到结果了.比如洗衣服, 把衣服放在洗衣机里, 没有洗好之前我们一直看着, 直到洗好了才拿出来晾晒. 异步是指发出一个请求后, 立刻得到了回…

LeetCode实战:数组中的第K个最大元素

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Find the kth largest element in an unsorted array. Note that it is the kth largest el…

热修复测试过程注意事项

软件测试行是近几年比较火热的技术岗位&#xff0c;想要学习软件测试的同学有很多&#xff0c;今天小编给你分析一下关于热修复测试过程注意事项的相关内容&#xff0c;如果你在一次测试中脱颖而出那将来的你一定很精彩! 基于tinker实际测试过程中遇到的问题&#xff0c;小编简…

LeetCode实战:存在重复元素

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Given an array of integers, find if the array contains any duplicates. Your function…

oracle exec 和 call 区别

转自&#xff1a;http://helloaq.iteye.com/blog/221614 exec 和 call 执行一个procedure时&#xff0c; exec是sqlplus的命令&#xff0c;只能在sqlplus中使用。 call是sql命令&#xff0c;任何工具都可以使用转载于:https://www.cnblogs.com/zerocc/archive/2011/07/27/21189…

html简单响应式滚动条置顶

简单响应式滚动条置顶 一般的&#xff0c;让页面出现滚动条的常见方法有&#xff1a; overflow:auto||overflow:scroll 或者overflow-x水平滚动条和overflow-y垂直滚动条那么现在要实现这样的一个效果&#xff1a; 直接在body中给一个header&#xff0c;后面一个Group盒子&…

UI设计培训之:5个小技巧快速学会PS抠图

一听到PS抠图&#xff0c;我们大家心里是不是产生了退却心理&#xff0c;害怕它过于复杂的操作。 那么现在有一种简单方法教给大家&#xff0c;如何在10分钟内快速学会ps抠图。 而你所需要准备的就是给自己10分钟的尝试时间。 你没有尝试过某件事情&#xff0c;就不要轻易说它难…

AIX VNC setup

1. 下载VNC for AIX虽然标明是for AIX51的&#xff0c;但AIX53和AIX61仍可用。 2. 安装RPM: rpm -Uhv vnc-3.3.3r2-3.aix5.1.ppc.rpm 3.编辑配置文件&#xff1a; # which vncserver/usr/bin/X11/vncserver #chmod 777 /usr/binX11/vncserver vi /usr/bin/X11/vncserver 更改前…

历史 history

题目描述 历史学家小&#xff21;正在研究一个奇怪的王国的历史。当前阶段的任务是研究该国的交通。 根据这个奇怪的王国的史书记载&#xff0c;史书开始记载前这个王国有 n 个城市&#xff08;城市从 0 开 始标号&#xff09; &#xff0c;但所有城市之间都没有道路相连。 …

LeetCode实战:Nim 游戏

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 You are playing the following Nim Game with your friend: There is a heap of stones on…