导入时, 如果不存在连续一个大数据块, 则会导入失败.
导出80M以上的大表时, 记得compress= N, 则不会引起这种错误.
(5) imp和exp使用的字符集不同
如果字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.
导入完成后再改回来.
(6) imp和exp版本不能往上兼容
imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件
使用方法:
例题格式及说明:
1.普通数据库全部导出和导入
exp 用户/密码@dbName file=路径.dmp full=y--还有其他的参数,看需要进行填写
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log full=y commit=y ignore=y--全部导出
$ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2 --全部导入
2.指定用户全部导出
/home/oracle/product/9.2.0.4/bin/exp userid=用户/密码--说明:本地的数据库登入(可以指定其他数据库 , 则需添加@dbName)
owner=导出的用户名 file=导出路径存放目录.dmp log=导出的日志信息.log--主要:这是不能使用full=y或则会出错(默认该用户全导出)
3.文件参数导出
$ exp parfile=username.par // 在参数文件中输入所需的参数
参数文件username.par 内容
userid=username/userpassword
buffer=8192000
compress=n
grants=y
file=/oracle/test.dmp
full=y
4.制定表导出(分区表导出及条件表导出)
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2 --或tables(table1,table2,.....)
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=(T1: table1,T2: table2,.....) --T1是分区表
$ exp scott/tiger tables=emp query=/"where job=/'salesman/' and sal/1600/" file=/directory/scott2.dmp 或根据参数文件进行导出
5.导入(一张或多张表)
$ imp user/pwd file=/dir/xxx.dmp log=xxx.log tables=(table1,table2) fromuser=dbuser
touser=dbuser2 commit=y ignore=y
$ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2
commit=y ignore=y
6.只导出数据对象不导出数据
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=user rows=n --rows=n/y说明是否导出数据行
7.分割多个文件导出和导入
$ exp user/pwd file=1.dmp,2.dmp,3.dmp,… filesize=1000m log=xxx.log full=y
$ imp user/pwd file=1.dmp,2.dmp,3.dmp,… filesize=1000m tables=xxx fromuser=dbuser
touser=dbuser2 commit=y ignore=y
8.增量导出和导入
a.完全增量导出(inctype=complete) // 备份整个数据库
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=complete
b.增量型增量导出 导出上一次备份后改变的数据(inctype=incremental) 。
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=incremental
c.累计型增量导出(Cumulative) 只导出自上次"完全"导出之后数据库中变化的信息 。
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=cumulative
d.增量导入:
$ imp usr/pwd FULL=y inctype=system/restore/inctype --(SYSTEM: 导入系统对象,RESTORE: 导入所有用户对象)
9.使用sysdba进行导出和导入
1. 命令行方式:
A: Windows平台:
C:/ exp 'sys/sys@instance as sysdba' tables=scott.emp file=e:/emp.dmp
B: UnixLinux平台(这时的"'"需要用到转义字符"/"):
$ exp /'sys/change_on_install@instance as sysdba/' tables=scott.emp file=/home/oracle/emp.dmp
C: 表空间导入和导出
$ imp /'usr/pwd@instance as sysdba/' tablespaces=xx transport_tablespace=y
file=xxx.dmp datafiles=xxx.dbf
2. 交互输入方式:
exp tables=scott.emp --不输入连接字符串,直接回车
Export: Release 10.2.0.3.0 - Production on Fri Jun 25 07:39:46 2004Copyright (c) 1982, 2005, Oracle. All rights reserved.
Username: sys/change_on_install@instance as sysdba--输入连接字符串.
推荐阅读
- 区块链银行开通要钱吗,区块链银行是什么
- html5浏览器静音,浏览器网页静音怎么办
- word文档如何更改页宽,如何修改word页面大小
- 康耐视app虚拟机,康耐视visionpro安装教程
- c语言随机函数指针在哪 c语言中,产生随机数的函数及其应用代码举例
- 微博直播用什么应用看,微博的直播在哪里
- 阿里云租赁服务器,阿里云租赁服务器怎么用
- excel如何等比放大,等比缩放表格
- c语言队列函数的测试 c语言实现队列算法