exp导出数据库 如何在Oracle中使用exp和imp导出,导入dmp数据库文件
今天给各位分享exp导出数据库的知识,其中也会对如何在Oracle中使用exp和imp导出,导入dmp数据库文件进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
如何用EXP导出oracle数据库中没有记录的表
1、Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。
2、设置deferred_segment_creation参数为FALSE后,无论是空表还是非空表,都分配segment。
在sqlplus中,执行如下命令:
SQL>alter system set deferred_segment_creation=false;
查看:
SQL>show parameter deferred_segment_creation;
该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用。
3、可以使用手工为空表分配Extent的方式,来解决导出之前建立的空表的问题。说明如下:
3.1使用ALLOCATE EXTENT的说明
使用ALLOCATE EXTENT可以为数据库对象分配Extent。其语法如下:
-----------
ALLOCATE EXTENT{ SIZE integer [K| M]| DATAFILE'filename'| INSTANCE integer}
-----------
可以针对数据表、索引、物化视图等手工分配Extent。
ALLOCATE EXTENT使用样例:
ALLOCATE EXTENT
ALLOCATE EXTENT(SIZE integer [K| M])
ALLOCATE EXTENT(DATAFILE'filename')
ALLOCATE EXTENT(INSTANCE integer)
ALLOCATE EXTENT(SIZE integer [K| M] DATAFILE'filename')
ALLOCATE EXTENT(SIZE integer [K| M] INSTANCE integer)
针对数据表操作的完整语法如下:
-----------
ALTER TABLE [schema.]table_name ALLOCATE EXTENT [({ SIZE integer [K| M]| DATAFILE'filename'| INSTANCE integer})]
-----------
故,需要构建如下样子简单的SQL命令:
-----------
alter table aTabelName allocate extent
-----------
3.2构建对空表分配空间的SQL命令,
查询当前用户下的所有空表(一个用户最好对应一个默认表空间)。命令如下:
-----------
SQL>select table_name from user_tables where NUM_ROWS=0;
-----------
根据上述查询,可以构建针对空表分配空间的命令语句,如下:
-----------
SQL>Select'alter table'||table_name||' allocate extent;' from user_tables where num_rows=0
-----------
批量输出上述生成的SQL语句,建立C:\createsql.sql,其内容如下:
-----------
set heading off;
set echo off;
set feedback off;
set termout on;
spool C:\allocate.sql;
Select'alter table'||table_name||' allocate extent;' from user_tables where num_rows=0;
spool off;
-----------
执行C:\createsql.sql,命令如下:
-----------
SQL>@ C:\createsql.sql;
-----------
执行完毕后,得到C:\allocate.sql文件。
打开该文件会看到,已经得到对所有空表分配空间的命令SQL语句。
3.4执行SQL命令,对空表分配空间:
执行C:\allocate.sql,命令如下:
-----------
SQL>@ C:\allocate.sql;
-----------
执行完毕,表已更改。
3.4此时执行exp命令,即可把包括空表在内的所有表,正常导出。
另外:Oracle11g中,对密码是大小写敏感的,即密码中的字母是区分大小写的。
在Oracle10g中及以前,密码中的字母大小写无所谓。
oracle数据库备份exp命令
oracle数据库备份exp命令:
第一个,表模式,备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。若备份到本地文件,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_csd_yyyymmdd.dmp
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
若直接备份到磁带设备,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。出于速度方面的考虑,尽量不要直接备份到磁带设备。
第二个,用户模式,备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式。若备份到本地文件,使用如下命令:
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_yyyymmdd.dmp
log=exp_icdmain_yyyymmdd.log
若直接备份到磁带设备,使用如下命令:
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_yyyymmdd.log
注:如果磁盘有空间,建议备份到磁盘,然后再拷贝到磁带。如果数据库数据量较小,可采用这种办法备份。
第三个,完全模式,备份完整的数据库。业务数据库不采用这种备份方式。备份命令为:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y
file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0)
log=exp_fulldb_yyyymmdd.log
对于数据库备份,建议采用增量备份,即只备份上一次备份以来更改的数据。增量备份命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y inctype=incremental
file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0)
log=exp_fulldb_yyyymmdd.log
扩展资料:
关于增量备份必须满足下列条件:
1、只对完整数据库备份有效,且第一次需要full=y参数,以后需要inctype=incremental参数
2、用户必须有EXP_FULL_DATABASE的系统角色。
3.、话务量较小时方可采用数据库备份。
4、如果磁盘有空间,建议备份到磁盘,然后再备份到磁盘。
版权声明:本文为CSDN博主「kalogen」的原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
参考资料来源:Oracle数据库备份(exp/imp命令)
如何在Oracle中使用exp和imp导出,导入dmp数据库文件
在Oracle中使用exp和imp导出,导入dmp数据库文件:
一,oracle数据库导出工具 exp:
1.它是一个可执行的文件存放目录/ORACLE_HOME/bin
exp导出工具将数据库中数据备份压缩成一个二进制系统文件.它有三种模式:
a.用户模式:导出用户所有对象以及对象中的数据;
b.表模式:导出用户所有表或者指定的表;
c.整个数据库:导出数据库中所有对象。
2.导出工具exp交互式命令行方式的使用的例子
$exp test/test123@appd
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>回车wQeLin
Compress extents(yes/no): yes>回车
Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set
About to export specified tables via Conventional Path...wQeLinux联盟
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非交互式命令行方式的例子
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"打头的数据导出
二,oracle数据库导入工具 imp:
1.它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/bin
imp导入工具将EXP形成的二进制系统文件导入到数据库中.
它有三种模式:
a.用户模式:导出用户所有对象以及对象中的数据;
b.表模式:导出用户所有表或者指定的表;
c.整个数据库:导出数据库中所有对象。
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行被导入
成功终止导入,但出现警告。
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!