网站首页 > 文章中心 > 其它

oracle如何导出空库

作者:小编 更新时间:2023-08-20 14:03:57 浏览量:74人看过

Oracle的导入导出命令是什么?

用exp、imp试试

oracle如何导出空库-图1

导出全库

导入:导入之前需创造一个空库(可以和前一个库名不一样)、一个一样的用户

cmd

导出:

我导出的时候文件直接设成.sql,蛮好

导出部分表

打开cmd

导出表,确定监听是否开启,数据库服务是否开启

导入表,确定新数据库服务是否开启

oracle怎么导出数据

Oracle导出导出有两中方式:第一段:利用exp imp导出导入;第二段:利用Oracel数据泵expdp impdp导出导入.

第一段:利用exp imp导出导入

exp imp 语法如下:

exp:

①.) 将数据库orcl完全导出

imp:

①.) 将备份文件bak.dmp导出数据库

如果数据表中表已经存在,会提示错误,在后面加上ignore=y就可以了.

解决办法:

①.、设置deferred_segment_creation参数为false后,无论是空表,还是非空表,都分配segment.

在sqlplus中,执行如下命令:

SQLalter system set deferred_segment_creation=false;

查看:

SQLshow parameter deferred_segment_creation;

该值设置后,只对后面新增的表起作用,对之前建立的空表不起作用,并且注意要重启数据库让参数生效.

使用 ALLOCATE EXTEN可以为数据库对象分配Extent,语法如下:

alter table table_name allocate extent

构建对空表分配空间的SQL命令:

SQLselect 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0

批量生成要修改的语句.

然后执行这些修改语句,对所有空表分配空间.

此时用exp命令,可将包括空表在内的所有表导出.

第二段:利用expdp impdp导出导入

在Oracle10g中exp imp被重新设计为Oracle Data Pump(保留了原有的 exp imp工具)

数据泵与传统导出导入的区别;

expdp导出数据:

①.、为输出路径建立一个数据库的directory对象.

create or replace directory dumpdir as 'd:\';

可以通过:select * from dba_directories;查看.

grant read,write on directory dumpdir to test_expdp;

expdp test_expdp/test_expdp directory=dumpdir dumpfile=test_expdp_bak.dmp logfile=test_expdp_bak.log schemas=test_expdp

注意:这句话在cmd窗口中运行,并且最后不要加分号,否则会提示错误.因为这句话是操作系统命令而不是SQL.

impdp导入数据:

①.、给将要进行数据导入的用户授权访问.

grant read,write on directory dumpdir to test_impdp;

impdp test_impdp/impdp directory=dumpdir dumpfile=test_expdp_bak.dmp remap_schema=test_expdp:test_impdp

oracle11g导出数据库时怎么设置把空表也导出

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

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

使用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

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

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语句.

执行C:\allocate.sql,命令如下:

SQL@ C:\allocate.sql;

执行完毕,表已更改.

另外:Oracle11g中,对密码是大小写敏感的,即密码中的字母是区分大小写的.

在Oracle10g中及以前,密码中的字母大小写无所谓.

怎样导出oracle整个数据库?

①. 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中

上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩.

不过在上面命令后面 加上 compress=y 就可以了

oracle想导出空数据库及里面的空表

设置导出表的rows字段值为n(不导出)就可以了.

命令行执行:

备注:rows默认为y,也就是说默认是导出数据的,如果想同时导出数据,那么不加这个字段就可以了.

以上就是土嘎嘎小编为大家整理的oracle如何导出空库相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章