桌面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
当前用户所有表的统计 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