针对Oracle数据迁移,我们可能会用到expdp/impdp的方式,有时候需要大表、lob字段等可能会消耗过大的临时表空间和undo表空间,所以一般我们根据导出日志,在导入前适当调整表空间大小。否则我们可能会遇到以下问题:

1、临时表空间爆满,无法扩展

ORA-1652: unable to extend temp segment by 128 in tablespace TEMP

解决方案如下:

(1)临时表空间使用情况查看:
col file_name for a85;
set line 200;
select file_name, BYTES/1024/1024/1024 Size_GB, MAXBYTES/1024/1024/1024 Msize_GB, AUTOEXTENSIBLE from dba_temp_files; (2)使用临时段session查看:
SELECT se.username,
se.sid,
se.serial#,
se.machine,
se.program,
su.segtype,
su.contents
FROM v$session se,
v$sort_usage su
WHERE se.saddr=su.session_addr ; USERNAME SID SERIAL# MACHINE PROGRAM SEGTYPE CONTENTS
--------------- ---------- ---------- -------------------- ----------------------------------- --------- ---------
impdpuser 5 28002 test.localhost.com oracle@test.localhost.com (DW00) LOB_DATA TEMPORARY
impdpuser 5 28002 test.localhost.com oracle@test.localhost.com (DW00) SORT TEMPORARY
impdpuser 5 28002 test.localhost.com oracle@test.localhost.com (DW00) SORT TEMPORARY
impdpuser 5 28002 test.localhost.com oracle@test.localhost.com (DW00) SORT TEMPORARY (3)增加临时表空间数据文件:
alter tablespace temp add TEMPFILE '/home/U01/app/oracle/oradata/testdb/temp01.dbf ' size 50M autoextend on next 50M;

2、查看impdp进度情况

)登陆交互模式
impdp impdpuser/impdpuser@service_name directory=datadump_dir dumpfile=impdp.dmp logfile=impdp.log attach=SYS_IMPORT_FULL_01 使用status查看进度信息 Import> status Job: SYS_IMPORT_FULL_01
Operation: IMPORT
Mode: FULL
State: EXECUTING
Bytes Processed: 0
Current Parallelism: 1
Job Error Count: 0
Dump File: /home/oracle/data.dmp Worker 1 Status:
Instance ID: 1
Instance name: testdb
Host name: test.localhost.com
Process Name: DW00
State: EXECUTING
Object Schema: USERNAME01
Object Name: TABLE_T1
Object Type: SCHEMA_EXPORT/TABLE/TABLE_DATA
Completed Objects: 1
Total Objects: 34
Completed Rows: 816,282,438
Completed Bytes: 64,412,720,616
Percent Done: 99
Worker Parallelism: 1
()数据字典查看
select * from dba_datapump_jobs ;

3、undo表空间爆满

    ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'

解决方案:

)查看undo表空间使用情况
col file_name for a85;
set line 200;
select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like 'UNDOTBS%'; SELECT UPPER(F.TABLESPACE_NAME) AS "TABLESPACE_NAME",
ROUND(D.MAX_BYTES,2) AS "TBS_TOTAL_SIZE" ,
ROUND(D.AVAILB_BYTES ,2) AS "TABLESPACE_SIZE",
ROUND(D.MAX_BYTES - D.AVAILB_BYTES +USED_BYTES,2) AS "TBS_AVABLE_SIZE",
ROUND((D.AVAILB_BYTES - F.USED_BYTES),2) AS "TBS_USED_SIZE",
TO_CHAR(ROUND((D.AVAILB_BYTES - F.USED_BYTES) / D.AVAILB_BYTES * 100,2),'999.99') AS "USED_RATE(%)",
ROUND(F.USED_BYTES, 6) AS "FREE_SIZE(G)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024 * 1024), 6) USED_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024 * 1024), 6) MAX_BYTES
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024 * 1024), 6) AVAILB_BYTES,
ROUND(SUM(DECODE(DD.MAXBYTES, 0, DD.BYTES, DD.MAXBYTES))/(1024*1024*1024),6) MAX_BYTES
FROM DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
AND D.TABLESPACE_NAME=&UNDO_TABLESPACE_NAME
ORDER BY 5 DESC; )查看undo段使用情况
select s.username, u.name from v$transaction t,v$rollstat r, v$rollname u,v$session s
where s.taddr=t.addr and t.xidusn=r.usn and r.usn=u.usn order by s.username; select usn,xacts,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks
from v$rollstat order by rssize; )查看归档日志切换情况
SELECT to_char(trunc(first_time),'DD-Mon-YY') "Date",
to_char(first_time, 'Dy') "Day",
'|' separator,
count(1) Total,
'|' separator,
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h0",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h1",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h2",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h3",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h4",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h5",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h6",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h7",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h8",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h9",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h10",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h11",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h12",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h13",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h14",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h15",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h16",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h17",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h18",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h19",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h20",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h21",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h22",
SUM(decode(to_char(first_time, 'hh24'),'',1,0)) "h23"
from v$log_history
-- where standby_dest = 'NO'
-- and CREATOR IN ('ARCH' , 'FGRD')
group by trunc(first_time), to_char(first_time, 'Dy')
order by trunc(first_time);
--logswitchfreq.sql

()查看相关SQL
set line 200;
set pagesize 20000;
col sql_text for a45;
col elapsed_rank for 999; select *
from (select v.sql_id,
v.sql_text,
v.elapsed_time/1000000 elapsed_time ,
v.cpu_time/1000000 cpu_time,
v.disk_reads,
v.executions,
rank() over(order by v.disk_reads desc) elapsed_rank
from v$sqlarea v) a
where elapsed_rank <= 10; ()增加表空间数据文件
alter undo tablespace undotbs1 add datafile '/home/U01/oracle/oradata/test/UNDOTBS1a.dbf' size 100m reuse autoextend on next 100M;
()改变默认undo表空间
create undo tablespace undotbs2 datafile '/home/U01/oracle/oradata/test/UNDOTBS2.dbf' size 100m reuse autoextend on next 100m;
alter system set undo_tablespace=undotbs2 scope=both;

Oracle IMPDP导入数据案例之注意事项(undo/temp)的更多相关文章

  1. Oracle impdp导入数据临时表空间与undo表空间爆满解决实例

    Oracle impdp导入数据临时表空间与undo表空间爆满解决实例 [日期:2018-01-24] 来源:Linux社区  作者:rangle [字体:大 中 小]   针对Oracle数据迁移, ...

  2. ORACLE impdp 导入数据

    1 table_exists_action参数说明 使用imp进行数据导入时,若表已经存在,要先drop掉表,再进行导入. 而使用impdp完成数据库导入时,若表已经存在,有四种的处理方式: 1)  ...

  3. Oracle逻辑导入数据(IMP/IMPDP)

    使用IMPDP导入数据的前提是数据是使用EMPDP导出的,同样也是在DOS窗口下直接输入IMPDP和登录数据库的用户名,即可导人数据. impdp导到指定用户下: impdp student/1234 ...

  4. Oracle使用——impdp导入数据时数据表已经存在

    背景 在做数据迁移时,需要将不同地方的dmp文件整合到一个数据库中,在导入时,目标表已经存在,该如何把数据追加进入目标表中 方法介绍 当使用IMPDP完成数据库导入时,如遇到表已存在时,Oracle提 ...

  5. oracle impdp导入时 提示“ORA-39002: 操作无效 ORA-39070: 无法打开日志文件 ”

    第一步:首先使用DBA权限的用户创建directory,我使用system ,可以在服务器本地创建,也可以远程连接sqlplus进行创建,使用的将是服务器上面的路径.要确保创建directory时,操 ...

  6. oracle impdp 导入

    用imp语法导入dmp文件: imp mdm/mdm@SYSWARE  file= ‪E:\Product\9y5s\5.MDM\20161024.DMP  full=y 报错 IMP-00002:无 ...

  7. Oracle Sqlload 导入数据

    sqlload导入数据具有快,简单,无需校验等方便,多说无益 1 首先,oracle数据库要有这么个表,用来接收数据.我这里这个uuid是序列生成的,当然也可以sqlload导入时候分配uuid -- ...

  8. Oracle快速导入数据工具

    sqlldr是oracle自带的快速导入批量数据的工具,常用于性能测试.考虑手工构造控制文件较为繁琐,因此使用脚本完成批量数据的自动导入. 基本知识 sqlldr命令语法 sqlldr dbname/ ...

  9. Oracle导出导入数据

    Oracle数据导入导出imp/exp就相当与oracle数据还原与备份, 利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用. 可以在SQLPLUS.EXE或者DOS(命令行)中 ...

随机推荐

  1. 如何打开java监控

    直接在cmd中输入 1.jconsole 2.jvisualvm

  2. Java 数组实现堆栈操作

    class Stack { private int stck[] ; private int tos ; Stack(int size) { // 一个参数的构造参数 stck = new int[s ...

  3. reduce的用法

    在不增加变量的情况下,统计数组中各元素出现的次数. ```jsfunction countItem (arr) { // 写入你的代码}countItem(['a', 'b', 'a', 'c', ' ...

  4. Oracle 锁机制

    本文参考自:ORACLE锁机制 1.oracle是一个多用户使用的共享资源,当多个用户并发的操作同一数据行时,那么在oracle数据库中就会存在多个事务操作统一数据行的操作,如果不对并发操作进行控制, ...

  5. selenium中等待元素的加载

    在实际使用中,有时会出现一个元素还没有加载出来,导致无法获取,此时需要selenium处理来等待一段时间,此时处理方法有以下几种: 1.最笨.最简单但是最不推荐的方式: Thread.sleep(ti ...

  6. unity代码设置鼠标样式

    public class Main : MonoBehaviour { public Texture2D cursorTexture;//图片 public CursorMode cursorMode ...

  7. 获取单个checkbox选中项

    1.获取单个checkbox选中项(三种写法)$("input:checkbox:checked").val()或者$("input:[type='checkbox']: ...

  8. MVVM - 事件转命令2

    在使用MVVM模式时, 按照模式的规则是尽量不直接使用事件. 所以对于以前一直使用事件模式的同行来说确实有点头疼. 还好微软给我们提供了几种间接使用事件(命令)的方法, 下面我就来看看这几种方法: I ...

  9. 前端标注软件-pxcook像素大厨使用心得

    我们在日常开发过程中,设计师给提供的UI图,经常需要标注尺寸,有时候设计师难免会遗漏标注,这样就会大大的增加我们的沟通成本,因此,使用一款好用的标注软件就尤为重要,我推荐这款标注软件---pxcook ...

  10. git记住提交密码的技巧

    修改.git包里面的config文件,添加 [credential] helper = store