记录oracle使用中遇到的问题:
命令行cmd,输入sqlplus没有反应
oracle 安装有问题,或者path 环境变量有问题。
Oracle 接入 sqlplus "/as sysdba"
查看数据库字符集 SELECT * FROM NLS_DATABASE_PARAMETERS where PARAMETER='NLS_CHARACTERSET'
修改数据库字符集
alter database character set internal_use ZHS16GBK ;
Oracle系统做过双机备份后起不来。
Oracle startup 错误:
ORACLE instance started.
lsnrctl 查看数据库监听 status
Total System Global Area 8589934592 bytes
Fixed Size 2086552 bytes
Variable Size 1358956904 bytes
Database Buffers 7214202880 bytes
Redo Buffers 14688256 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '/dev/rlv_sys_10g_01'
后来发现是IBM磁盘卷出现问题,导致数据库的文件找不到了。
ORA-01157 的错误一般为数据库文件错误,或者找不到了。
解决问题的步骤如下(AIX):
cd /usr/sbin/cluster
./clstat 检测cluster的状态 返回正常
lsvg -o 查看AIX的分卷命令
lsvg vpnvg1 查看某个分卷
0516-1201 lsvg: Warning: Volume group vpnvg1 is locked. This command will continue retries until lock is free. If lock is inadvertent and needs to be removed, execute 'chvg -u vpnvg1'.
表示分卷已经被损坏了。
ORA-01102 cannot mount database in EXCLUSIVE mode
解决方法:
1.如果是HA系统,检查其他节点是否已经启动实例;
2.检查 oracle 进程是否存在,如果存在则杀掉进程;
3.检查信号量是否存在,如果存在,则清除信号量;
4.检查共享内存段是否存在,如果存在,则清除共享内存段;
5.检查锁内存文件lk<sid>和sgadef<sid>.dbf是否存在,如果存在,则删除。
[url]http://www.hellodba.com/cases/case-unexception_down.htm[/url]
[url]http://www.dbifan.com/200704/ora-01102-cannot-mount-database-in-exclusive-mode.html[/url]
死锁
检测语句
select * from v$lock ,dba_objects,v$session where object_id=v$lock.id1 and v$lock.sid=v$session.sid
杀掉被锁住的SID即可。
查询有没有死锁
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
杀死死锁的进程
alter system kill session '49,11989';
命令行cmd,输入sqlplus没有反应
oracle 安装有问题,或者path 环境变量有问题。
Oracle 接入 sqlplus "/as sysdba"
查看数据库字符集 SELECT * FROM NLS_DATABASE_PARAMETERS where PARAMETER='NLS_CHARACTERSET'
修改数据库字符集
alter database character set internal_use ZHS16GBK ;
Oracle系统做过双机备份后起不来。
Oracle startup 错误:
ORACLE instance started.
lsnrctl 查看数据库监听 status
Total System Global Area 8589934592 bytes
Fixed Size 2086552 bytes
Variable Size 1358956904 bytes
Database Buffers 7214202880 bytes
Redo Buffers 14688256 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '/dev/rlv_sys_10g_01'
后来发现是IBM磁盘卷出现问题,导致数据库的文件找不到了。
ORA-01157 的错误一般为数据库文件错误,或者找不到了。
解决问题的步骤如下(AIX):
cd /usr/sbin/cluster
./clstat 检测cluster的状态 返回正常
lsvg -o 查看AIX的分卷命令
lsvg vpnvg1 查看某个分卷
0516-1201 lsvg: Warning: Volume group vpnvg1 is locked. This command will continue retries until lock is free. If lock is inadvertent and needs to be removed, execute 'chvg -u vpnvg1'.
表示分卷已经被损坏了。
ORA-01102 cannot mount database in EXCLUSIVE mode
解决方法:
1.如果是HA系统,检查其他节点是否已经启动实例;
2.检查 oracle 进程是否存在,如果存在则杀掉进程;
3.检查信号量是否存在,如果存在,则清除信号量;
4.检查共享内存段是否存在,如果存在,则清除共享内存段;
5.检查锁内存文件lk<sid>和sgadef<sid>.dbf是否存在,如果存在,则删除。
[url]http://www.hellodba.com/cases/case-unexception_down.htm[/url]
[url]http://www.dbifan.com/200704/ora-01102-cannot-mount-database-in-exclusive-mode.html[/url]
死锁
检测语句
select * from v$lock ,dba_objects,v$session where object_id=v$lock.id1 and v$lock.sid=v$session.sid
杀掉被锁住的SID即可。
查询有没有死锁
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
杀死死锁的进程
alter system kill session '49,11989';