oracle报错汇总
1. ORA-01589 启动报错
解决方法:alter database open resetlogs;
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2. impdp/expdp导入导出出现ORA-39006 ORA-39213错误
impdp sys/oracle SCHEMAS=EARADMIN directory=PUMP_DIR dumpfile=EARADMIN.dmp logfile=EARADMIN02.log
出现以上报错。要求进行以下操作修复
execute sys.dbms_metadata_util.load_stylesheets;
执行上述操作时,又有了另外一个报错
ORA-25153
**** 注意,这里 4 修改temp文件的时候 可以按上述直接创建一个dbf文件。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3. ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-39142: incompatible version number 5.1 in dump file "/oracle/oracle_data/dmp/heBei/dx/ecm20181226.dp"
dmp文件是exp导出的,但是却是用impdp导入
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4.ORA-00020: maximum number of processes (1000) exceeded
这个报错是因为oralce的线程数太多了导致的,此时用:
ps -ef|grep LOCAL --可以看到很多连接
使用os命令kill掉一些进程以释放资源 --head 取前10条
ps -ef|grep LOCAL=NO|grep -v grep|awk '{print $2}'|head|xargs kill -9 --这样一次只能删10条。暂无其他好方法,执行多次后,sqlplus / as sysdba即可使用
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5. ORA-00844: Parameter not taking MEMORY_TARGET into account
ORA-00851: SGA_MAX_SIZE xxx cannot be set to more than MEMORY_TARGET xxx.
1. 简介
Oracle 11g中,ORACLE把SGA与PGA统一管理,总和为memory_target参数的设定,也就是MAX(SGA+PGA)<= memory_target(当然可以在创建新实例的时候确定是否使用这种方案,在10g中是没有的)。
如果错误设定sga_max_size>=memory_target(相等也不行,PGA至少需要大概十几M内存),则无法进行startup nomount,但是修改SGA命令又需要至少在startup nomount下面执行,所以必须使用另一种方式修改该参数。
2. 修改SGA与memory_target 大小
在SGA大于memory_target的情况下,使用startup nomount会出现异常:
ORA-00844: Parameter not taking MEMORY_TARGET into account
ORA-00851: SGA_MAX_SIZE 1073741824 cannot be set to more than MEMORY_TARGET 872415232.
这时候需要执行以下步骤:
SQL> create pfile='/home/oracle/init0321.ora' from spfile;
File created.
SQL> !vi /home/oracle/init0321.ora
然后修改:
*.memory_target=1073741824
*.sga_max_size=805306368
*.sga_target=805306368
sga_max_size等于memory_target会出现,
ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 1036M,
因为PGA还需要部分空间
SQL> startup pfile='/home/oracle/init0321.ora';
SQL> create spfile from pfile='/home/oracle/init0321.ora';
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
Pfile与spfile默认位置:
Spfile ${ORACLE_INSTALL_PATH}/product/11.2.0/dbh ome_1/dbs/spfileorcl.ora
如果参数没指定pfile位置,则默认使用下面文件
Pfile ${ORACLE_INSTALL_PATH}/product/11.2.0/dbhome_1/dbs/ initorcl.ora
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6.ORA-03113: 通信通道的文件结束解决方法一例————————
执行以下脚本出现 ORA-03113的错误
SELECT ROW_.*, ROWNUM ROWNUM_ FROM ( select XXXX FROM ASK_LEAVE_ORDER A where A.state = 1 AND A.audit_state = 0 AND A.AUDITOR_ID = 3 ) where 1=1 ORDER BY dispatchDate DESC ) ROW_ WHERE ROWNUM <= 57
解决办法:
1.输入“sqlplus” 账号 密码 登录出现问题的用户 2.输入“alter system set cursor_sharing=similar;” 3.show parameter cursor_sharing”,确认 cursor_sharing是否已修改
4.最后,执行“alter system flush shared_pool;”,即可修复“ORA-03113: 通信通道的文件结束”错误
7、ORA-01652: 无法通过128(在表空间TEMP中)扩展 temp 段————————
1)用户缺省表空间查询:
SQL>select username,temporary_tablespace from dba_users;
USERNAME TEMPORARY_TABLESPACE
------------------------------ ------------------------------
ISGIS TEMP
SCOTT TEMP
2)表空间包含的数据文件:
SQL>select name from v$tempfile;
NAME
-----------------------------------------------
/opt/ora10g/oradata/gis/temp01.dbf
3)创建新表空间:
SQL>create temporary tablespace TEMP2 TEMPFILE '/opt/oracle/database/oradata/gis/temp02.dbf ' SIZE 512M REUSE AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
4)修改系统默认表空间及确认:
SQL>alter database default temporary tablespace temp2;
Database altered
SQL>select username,temporary_tablespace from dba_users;
USERNAME TEMPORARY_TABLESPACE
------------------------------ ------------------------------
XMJL TEMP2
MDDATA TEMP2
5)删除旧表空间(可以不删):
SQL>drop tablespace temp including contents and datafiles;
Tablespace dropped
8、ORA-28040: No matching authentication protocol
出现此问题的原因是低版本的jdbc连接高版本oracle导致的。有2中解决办法:
1.可以修改oracle服务端的连接许可版本。-自行百度
2.升级客户端。
如果plsql出现此问题,下载新的instantclient_12_2。配置plsql启动项即可。如何配置百度
如果应用启动的时候出现此问题,升级ojdbc的jar包。比如我要连接12.2的oralce 但是使用ojdbc6进行连接,就会出现以上报错。升级到ojdbc7或者ojdbc8即可解决问题