oracle怎么用exp,oracle怎么用sys用户登陆

如何用EXP导出oracle数据库中没有记录的表

1、Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。

创新互联是一家专注于做网站、网站设计与策划设计,承德县网站建设哪家好?创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:承德县等地区。承德县做网站价格咨询:18980820575

2、设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment。

在sqlplus中,执行如下命令:

SQLalter system set deferred_segment_creation=false;

查看:

SQLshow 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命令,

查询当前用户下的所有空表(一个用户最好对应一个默认表空间)。命令如下:

-----------

SQLselect table_name from user_tables where NUM_ROWS=0;

-----------

根据上述查询,可以构建针对空表分配空间的命令语句,如下:

-----------

SQLSelect '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数据库文件

1、EXP: 有三种主要的方式(完全、用户、表) 1、完全: EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y 如果要执行完全导出,必须具有特殊的权限 2、用户模式: EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC 这样用户SONIC的所有对象被输出到文件中。 3、表模式: EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC) 这样用户SONIC的表SONIC就被导出 2、IMP: 具有三种模式(完全、用户、表) 1、完全: IMP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y 2、用户模式: IMP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP FROMUSER=SONIC TOUSER=SONIC 这样用户SONIC的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。 3、表模式: EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC) 这样用户SONIC的表SONIC就被导入。

oracle中exp,imp的使用详解

单用户导出

exp datamasking1/****  file=singleUser.dmp buffer=64000 owner=datamasking1

表导出

exp datamasking1/****  file=singleUser.dmp buffer=64000 tables=AC43_20100811

多用户

Exp datamasking1/*****  file=singleUser.dmp buffer=64000 owner=datamasking1,datamasking2

imp datamasking1/**** buffer=64000 file=dmp_exp-exp_1.DMP FULL=y ignore=y

表导出

expdp test/test tables=RESULT2,R_JOB dumpfile=expdptable.dmp

单个用户

expdp abc/abc schemas=abc dumpfile=abc.dmp directory=DUMP_DIR

多用户

expdp test/test schemas=test,test2,test3 dumpfile=expdpMultiUser_fullType.dmp

impdp dumptest/**** remap_tablespace=dumptest:users remap_schema=dumptest:test2  dumpfile=****.DMP

如何正确使用ORACLE的exp和imp

使用方法及说明如下:

imp:

1.

获取帮助

imp

help=y

2.

导入一个完整数据库

imp

system/manager

file=bible_db

log=dible_db

full=y

ignore=y

3.

导入一个或一组指定用户所属的全部表、索引和其他对象

imp

system/manager

file=seapark

log=seapark

fromuser=seapark

imp

system/manager

file=seapark

log=seapark

fromuser=(seapark,amy,amyc,harold)

4.

将一个用户所属的数据导入另一个用户

imp

system/manager

file=tank

log=tank

fromuser=seapark

touser=seapark_copy

imp

system/manager

file=tank

log=tank

fromuser=(seapark,amy)

touser=(seapark1,

amy1)

5.

导入一个表

imp

system/manager

file=tank

log=tank

fromuser=seapark

TABLES=(a,b)

6.

从多个文件导入

imp

system/manager

file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)

log=paycheck,

filesize=1G

full=y

7.

使用参数文件

imp

system/manager

parfile=bible_tables.par

bible_tables.par参数文件:

#Import

the

sample

tables

used

for

the

Oracle8i

Database

Administrator's

Bible.

fromuser=seapark

touser=seapark_copy

file=seapark

log=seapark_import

8.

增量导入

imp

system./manager

inctype=

RECTORE

FULL=Y

FILE=A

exp:

1.

获取帮助

exp

help=y

2.

导出一个完整数据库

exp

system/manager

file=bible_db

log=dible_db

full=y

3.

导出数据库定义而不导出数据

exp

system/manager

file=bible_db

log=dible_db

full=y

rows=n

4.

导出一个或一组指定用户所属的全部表、索引和其他对象

exp

system/manager

file=seapark

log=seapark

owner=seapark

exp

system/manager

file=seapark

log=seapark

owner=(seapark,amy,amyc,harold)

注意:在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。解决方法是用以下的SQL*Plus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。

SET

LINESIZE

132

SET

PAGESIZE

SET

TRIMSPOOL

ON

SPOOL

c:\seapark.syn

SELECT

'Create

public

synonym

'||synonym_name

||'

for

'||table_owner||'.'||table_name||';'

FROM

dba_synonyms

WHERE

table_owner

=

'SEAPARK'

AND

owner

=

'PUBLIC';

SPOOL

OFF

5.

导出一个或多个指定表

exp

seapark/seapark

file=tank

log=tank

tables=tank

exp

system/manager

file=tank

log=tank

tables=seapark.tank

exp

system/manager

file=tank

log=tank

tables=(seapark.tank,amy.artist)

6.

估计导出文件的大小

全部表总字节数:

SELECT

sum(bytes)

FROM

dba_segments

WHERE

segment_type

=

'TABLE';

seapark用户所属表的总字节数:

SELECT

sum(bytes)

FROM

dba_segments

WHERE

owner

=

'SEAPARK'

AND

segment_type

=

'TABLE';

seapark用户下的aquatic_animal表的字节数:

SELECT

sum(bytes)

FROM

dba_segments

WHERE

owner

=

'SEAPARK'

AND

segment_type

=

'TABLE'

AND

segment_name

=

'AQUATIC_ANIMAL';

7.

导出表数据的子集(oracle8i以上)

NT系统:

exp

system/manager

query='Where

salad_type='FRUIT''

tables=amy.salad_type

file=fruit

log=fruit

UNIX系统:

exp

system/manager

query=\"Where

salad_type=\'FRUIT\'\"

tables=amy.salad_type

file=fruit

log=fruit

8.

用多个文件分割一个导出文件

exp

system/manager

file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)

log=paycheck,

filesize=1G

tables=hr.paycheck

9.

使用参数文件

exp

system/manager

parfile=bible_tables.par

bible_tables.par参数文件:

#Export

the

sample

tables

used

for

the

Oracle8i

Database

Administrator's

Bible.

file=bible_tables

log=bible_tables

tables=(

amy.artist

amy.books

seapark.checkup

seapark.items

)

10.

增量导出

“完全”增量导出(complete),即备份整个数据库

exp

system/manager

inctype=complete

file=990702.dmp

“增量型”增量导出(incremental),即备份上一次备份后改变的数据

exp

system/manager

inctype=incremental

file=990702.dmp

“累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据

exp

system/manager

inctype=cumulative

file=990702.dmp


分享文章:oracle怎么用exp,oracle怎么用sys用户登陆
文章地址:http://azwzsj.com/article/heshgj.html