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 ;