桌面oracle 11g導入多年庫的dump備忘

接到客戶6G的dump文件。先導入桌面orcale ,imp提示出錯,執行impdp後以下sql

鏈接到: 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)session

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


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

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

Import> exitspa

C:\Users\aibair>sqlplus /nolog操作系統

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

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:\test\testdb.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:\Users\aibair>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:\test\test_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:\test\TEMP3.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 =1SELECT COUNT(*) FROM t_part

相關文章
相關標籤/搜索