周六晚上还在办公室导入数据。
按schemas导入成功的关键是:导入的环境和源数据环境里面的表空间大小,表空间名字,需要一模一样
(当然,表空间大小创建到和源数据环境里面ues_size大小就可以了)
查询表空间总的大小、使用量,未使用量:
SELECT A.TABLESPACE_NAME,
A.FILENUMBER,
ROUND(A.TBSCURRENTSIZEINMB/1024, 2) TOTAL_SIZE_G,
ROUND(B.SEGMENTSIZEINMB/1024, 2) USED_SIZE_G,
ROUND((A.TBSCURRENTSIZEINMB-B.SEGMENTSIZEINMB)/1024, 2) FREE_SIZE_G,
ROUND(NVL(B.SEGMENTSIZEINMB, 0) / A.TBSCURRENTSIZEINMB, 4) * 100 CAPACITYUSED
FROM (SELECT TABLESPACE_NAME,
COUNT(1) FILENUMBER,
SUM(BYTES) / 1024 / 1024 TBSCURRENTSIZEINMB
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) A,
(SELECT TABLESPACE_NAME, SUM(BYTES) / 1024 / 1024 SEGMENTSIZEINMB
FROM DBA_SEGMENTS
GROUP BY TABLESPACE_NAME) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME(+)
--AND (A.TABLESPACE_NAME LIKE '%ODSREP%' OR A.TABLESPACE_NAME LIKE '%DMREP%' OR A.TABLESPACE_NAME LIKE '%BLREP%')
--AND B.SEGMENTSIZEINMB / A.TBSCURRENTSIZEINMB < 0.5
--AND A.TBSCURRENTSIZEINMB > 10 * 1024
--AND a.tablespace_name LIKE 'BLAP%'
AND A.TABLESPACE_NAME NOT LIKE '%UNDO%'
ORDER BY CAPACITYUSED
;
源数据环境和导入环境的表空间不一致,则需要创建,或者扩充。
创建表空间:
CREATE TABLESPACE test_data
LOGGING
DATAFILE ' /opt/oracle/OraBase/oradata/bean/TEST_DATA.dbf '
SIZE 20480M
AUTOEXTEND OFF;
注:关闭自动增长, datafile 是系统按照你给的路径自动创建的,(最大为 32000M-----这点不正确,但是我不知道怎么查询允许的最大数据文件的大小????????)
查询数据文件属于哪个表空间:
select file_name,file_id,tablespace_name,bytes/1024/1024 from dba_data_files order by file_name
扩充表空间:
1. 改变数据文件大小
SQL> alter database datafile '/home/ oracle /oradata/gldb/users01.dbf' resize 32000m;
Database altered.
2. 添加数据文件到表空间
SQL> alter tablespace users add datafile '/home/ oracle /oradata/gldb/users02.dbf' size 10000m;
Tablespace altered.
缩小表空间:
1.改变数据文件大小
2.删除表空间里面的数据文件
alter tablespace test drop datafile 'E:\oracle\product\10.2.0\oradata\orcl\test02.dbf' ;(这里就需要用到:查询数据文件属于哪个表空间)
两边的表空间环境调整为一致,接下来就可以impdp了!!
impdp '"/ as sysdba"' directory=dump_dir dumpfile=wtadmin_tcfg_20121123.dmp JOB_NAME=asu1 logfile=imp_wtadmin.log schemas=wtadmin parallel=1;
注意:查看日志文件! tail -f logfile