Oracle报错

1.报错:ORA-01516: nonexistent log file, data file, or temporary file "o1_mf_tms5_tab_twindexes.dbf"
解决方法
1,先关闭数据库
SQL> shutdown immediate -----报错
SQL> shutdown abort --停用数据库
2,启动数据库到挂载模式
SQL>startup mount
SQL>alter database datafile '/hot/oradata/SMSDBMT_INDX01.dbf' offline drop; -----删除表空间文件 成功
3, 打开数据库
SQL>alter database open;
4,删除表空间
SQL>drop tablespace SMSDBMT_INDX including contents and datafiles;---删除表空间
alter database open;
2.报错:
ORA-01157: cannot identify/lock data file 7 - see DBWR trace file
ORA-01110: data file 7:'/home/oracle/app/oracle/oradata/CMADB/o1_mf_tms5_tab_twindexes.dbf'
解决方法
alter database datafile 7 offline drop;
alter database open;
3.报错:
sql developer链接不上oracle 报 The Network Adapter could not establish the connection 网上建议查看tns配置
解决方法
1、后来想到 我安装oracle时添加了一个虚拟网卡解决DHCP的问题,后来看了一下 tns配置文件

(HOST = 192.168.0.26)(PORT = 1521)) 这里是我当时设置的Ip 不是本地的Localhost 我把主机名的localhost改成 192.168.0.26就好使了
2、把本机对应的主机名添加到/etc/hosts。
4.报错:
ORA-04098: trigger 'SYS.XDB_PI_TRIG' is invalid and failed re-validation
解决方法
alter trigger SYS.XDB_PI_TRIG disable;


删除数据库用户的时候经常会遇到这样的错误;

ORA-01940: cannot drop a user that is currently connected

原因是有程序在连接我们需要删除的用户,我们删除用户之前一定要先把连接断掉;

1、查找帐号下哪些连接在运行:

SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='NAMEMATCHER';

注意:此处需要大写

SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='NAMEMATCHER';   

      SID    SERIAL#
---------- ----------
      137 41813

8 rows selected.

2、删除用户进程;

SQL>ALTER  SYSTEM  KILL SESSION '137,41813';

System altered.

3、重新查看用户连接,并确认无连接在使用

SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='NAMEMATCHER';   

4、删除用户

drop  user NAMEMATCHER cascade ;

posted @ 2019-11-08 10:36  liutoliu  阅读(1242)  评论(0编辑  收藏  举报