桌面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:\Users\aibair>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:\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 =1
SELECT COUNT(*) FROM t_part


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM