首页数据库exp导出数据库 如何在Oracle中使用exp和imp导出,导入dmp数据库文件

exp导出数据库 如何在Oracle中使用exp和imp导出,导入dmp数据库文件

编程之家2023-10-1887次浏览

今天给各位分享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;

exp导出数据库 如何在Oracle中使用exp和imp导出,导入dmp数据库文件

该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用。

3、可以使用手工为空表分配Extent的方式,来解决导出之前建立的空表的问题。说明如下:

3.1使用ALLOCATE EXTENT的说明

使用ALLOCATE EXTENT可以为数据库对象分配Extent。其语法如下:

-----------

ALLOCATE EXTENT{ SIZE integer [K| M]| DATAFILE'filename'| INSTANCE integer}

exp导出数据库 如何在Oracle中使用exp和imp导出,导入dmp数据库文件

-----------

可以针对数据表、索引、物化视图等手工分配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,本文到此结束,如果可以帮助到大家,还望关注本站哦!

sql server导出数据库(sqlserver怎么导出数据库)单机数据库?单机数据库的特征