kup*_*upa 2 oracle export import
我有一个高度分散的数据文件。现在它的大小是10GB,实际使用的大小是2.5GB,所以7.5是免费的。
我决定导出数据,删除该数据文件,重新创建它并导入数据。
我应该提到什么?有没有机会丢失一些物体?删除数据文件后?
我有一个表空间,一个数据文件。请向我提供有关导出脚本的任何建议。
有一个选项:
TABLESPACES list of tablespaces to export
Run Code Online (Sandbox Code Playgroud)
如果我写这样的脚本
exp username/aaa file=a.dmp tablespaces=my_tb_name log=a.log grants=y indexes=y constraints=y triggers=y
Run Code Online (Sandbox Code Playgroud)
是否足以从该表空间导入所有内容以及与包含对象相关的任何内容(我的意思是授权、约束、触发器......)
是否有必要在数据库服务器上而不是在客户端上运行导出?
非常感谢,等你聪明的建议
您应该使用而不是导出/导入
alter table t shrink space;
Run Code Online (Sandbox Code Playgroud)
这样做的危险性要小得多,并且在重组过程中可以保持该表的可访问性。缩小后,您可以使用以下脚本(最初来自 Tom Kyte)来找出可以调整(缩小)数据文件的大小:
set verify off
column file_name format a50 word_wrapped
column smallest format 999,990 heading "Smallest|Size|Poss."
column currsize format 999,990 heading "Current|Size"
column savings format 999,990 heading "Poss.|Savings"
break on report
compute sum of savings on report
column value new_val blksize
select value from v$parameter where name = 'db_block_size'
/
select file_name,
ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) smallest,
ceil( blocks*&&blksize/1024/1024) currsize,
ceil( blocks*&&blksize/1024/1024) -
ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) savings
from dba_data_files a,
( select file_id, max(block_id+blocks-1) hwm
from dba_extents
group by file_id ) b
where a.file_id = b.file_id(+)
/
column cmd format a75 word_wrapped
select 'alter database datafile '''||file_name||''' resize ' ||
ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) || 'm;' cmd
from dba_data_files a,
( select file_id, max(block_id+blocks-1) hwm
from dba_extents
group by file_id ) b
where a.file_id = b.file_id(+)
and ceil( blocks*&&blksize/1024/1024) -
ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) > 0
/
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4475 次 |
最近记录: |