zoukankan      html  css  js  c++  java
  • 桌面oracle 11g导入多年库的dump备忘

    接到客户6G的dump文件。先导入桌面orcale ,imp提示出错,执行impdp后如下

    连接到: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

    已成功加载/卸载了主表 "test"."SYS_IMPORT_FULL_02"
    启动 "test"."SYS_IMPORT_FULL_02": test/******** DIRECTORY=dpdir DUMPFILE=test_14.dmp FULL=y;
    处理对象类型 TABLE_EXPORT/TABLE/TABLE
    处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
    ORA-02374: conversion error loading table "test"."T_OUTBODY"
    ORA-12899: value too large for column DESCRITION (actual: 44, maximum: 40)

    ORA-02372: data for row: DESCRITION : 0X'BAF3CAD3BEB528D7F32CB5A5C7FAC2CA2CCAD6D5DBB5FE2CC0'


    ORA-02374: conversion error loading table "test"."T_OUTBODY"
    ORA-12899: value too large for column DESCRITION (actual: 41, maximum: 40)

    ORA-02372: data for row: DESCRITION : 0X'BBFAD3CDC2CBD0BE28CEDE3CC3DCB7E2C8A6484230302D3134'

    Import> exit

    C:Usersaibair>sqlplus /nolog

    SQL*Plus: Release 11.2.0.2.0 Production on 星期三 10月 14 16:26:08 2015

    Copyright (c) 1982, 2014, Oracle. All rights reserved.

    SQL> conn /as sysdba
    已连接。
    SQL> shutdown immediate;
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup mount;
    ORACLE 例程已经启动。

    Total System Global Area 1068937216 bytes
    Fixed Size 2260048 bytes
    Variable Size 687866800 bytes
    Database Buffers 373293056 bytes
    Redo Buffers 5517312 bytes
    数据库装载完毕。
    SQL> alter system enable restricted session;

    系统已更改。

    SQL> alter system set job_queue_processes=0;

    系统已更改。

    SQL> alter system set aq_tm_processes=0;

    系统已更改。

    SQL> alter database open;

    数据库已更改。

    SQL> alter database character set zhs16gbk;
    alter database character set zhs16gbk
    *
    第 1 行出现错误:
    ORA-12712: 新字符集必须为旧字符集的超集


    SQL> alter database character set internal_use zhs16gbk;

    数据库已更改。

    SQL> shutdow immediate;
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup;
    ORACLE 例程已经启动。

    Total System Global Area 1068937216 bytes
    Fixed Size 2260048 bytes
    Variable Size 687866800 bytes
    Database Buffers 373293056 bytes
    Redo Buffers 5517312 bytes
    数据库装载完毕。
    数据库已经打开。
    SQL>
    SQL> drop tablespace testdb including contents and datafiles cascade constraints ;

    表空间已删除。

    SQL> create tablespace testdb datafile'C: est estdb.DBF' size 7024m autoextend on next 1000m UNIFORM SIZE 128k;

    表空间已创建。

    SQL> exit
    从 Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production 断开

    C:Usersaibair>impdp DIRECTORY=dpdir DUMPFILE=test_14.dmp FULL=y;

    Import: Release 11.2.0.2.0 - Production on 星期三 10月 14 16:37:16 2015

    Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

    用户名: test
    口令:

    连接到: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
    已成功加载/卸载了主表 "test"."SYS_IMPORT_FULL_03"
    启动 "test"."SYS_IMPORT_FULL_03": test/******** DIRECTORY=dpdir DUMPFILE=test_14.dmp FULL=y;
    处理对象类型 TABLE_EXPORT/TABLE/TABLE
    处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
    . . 导入了 "test"."T_OUTBODY" 1.305 GB 25042554 行
    ORA-31693: 表数据对象 "test"."C_PROCESSHEAD" 无法加载/卸载并且被跳过, 错误如下:
    ORA-02354: 导出/导入数据时出错
    ORA-39776: 加载表 "test"."C_PROCESSHEAD" 时出现致命的直接路径 API 错误
    ORA-12953: 请求超出了允许的最大数据库大小 11 GB
    ORA-31693: 表数据对象 "test"."C_PROCESSBODY" 无法加载/卸载并且被跳过, 错误如下:
    ORA-02354: 导出/导入数据时出错
    ORA-39776: 加载表 "test"."C_PROCESSBODY" 时出现致命的直接路径 API 错误
    ORA-12953: 请求超出了允许的最大数据库大小 11 GB

     //ps:超过Oracle Database 11g Express库最大11GB, 卸掉 后安装oracle 11g R2 继续

    SQL> create user test identified by test;

    用户已创建。

    SQL> grant dba to test;

    授权成功。

    SQL> drop user scott cascade;

    * ERROR 位于第 1 行:
    ORA-00604: 递归 SQL 层 1 出现错误
    ORA-24005: 必须使用 DBMS_AQADM.DROP_QUEUE_TABLE 删除队列表
    需先执行这条语句:alter session set events'10851 trace name context forever,level 2';
     

    SQL> create directory dumpdir as 'c:dump';

    目录已创建。

    执行之前的导入操作。后出现...

    处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
    ORA-39171: 作业出现可恢复的等待。
    ORA-01652: 无法通过 16 (在表空间 TEST 中) 扩展 temp 段

    //ps:ORA-01652: 是临时表空间占满,检查c: est est_14.dbf文件,数据文件已达33G.

    使用如下语句a查看一下认谁在用临时段

    SELECT 
           sid,
           serial#,
           sql_address,
           machine,
           program,
           tablespace,
           segtype,
           contents 
      FROM v$session se,
           v$sort_usage su
    WHERE se.saddr=su.session_addr;

    确定TEMP表空间的ts#
    SQL>select ts#, name from sys.ts$ ;       

    说明: 
    temp表空间的TS# 为 3*, So TS#+ 1= 4

    查看表空间状态

    SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
           D.TOT_GROOTTE_MB "表空间大小(M)",
           D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
           TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
                         2),
                   '990.99') "使用比",
           F.TOTAL_BYTES "空闲空间(M)",
           F.MAX_BYTES "最大块(M)"
      FROM (SELECT TABLESPACE_NAME,
                   ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
                   ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
              FROM SYS.DBA_FREE_SPACE
             GROUP BY TABLESPACE_NAME) F,
           (SELECT DD.TABLESPACE_NAME,
                   ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
              FROM SYS.DBA_DATA_FILES DD
             GROUP BY DD.TABLESPACE_NAME) D
    WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
    ORDER BY 4 DESC

    SQL> create temporary tablespace TEMP3 TEMPFILE 
    'c: estTEMP3.dbf' size 1000m reuse autoextend on next 200m maxsize 4000m; 
    把缺省临时表空间指向这个新建的TEMP3。 
    SQL>alter database default temporary tablespace "TEMP3" 删除原有的临时表空间文件和操作系统中的对应物理文件,释放磁盘空间 SQL>drop tablespace temp2 including contents and datafiles;  
    再查看表空间状态  
    select TABLESPACE_NAME from dba_tablespaces;  
    select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from 
    dba_temp_files; 

    当前用户所有表的统计 SELECT *
    FROM USER_TABLES order by num_rows desc;

    //SELECT * FROM USER_TABLES where table_name like '%PART%' order by num_rows desc;
    //select * from (select LNO from t_part order by LNO ) where rownum =1
    SELECT COUNT(*) FROM t_part

  • 相关阅读:
    测试 多线程 实现 callable 带返回值
    给定一个 hashMap 最终输出最大值的键
    正则判断输入的字符(英文、数字、空格、其他)的个数
    当返回值为json字符串时 如何获得其中的json数组
    thread run 和 start 的区别
    docker 构建dockerfile
    jsonp 跨域
    springsession 实现session 共享
    通过反射获得 spring 的 RequestMapping value值
    redis 集群搭建 以及 报错解决
  • 原文地址:https://www.cnblogs.com/runfeng/p/4877993.html
Copyright © 2011-2022 走看看