一:启动oracle后,执行命令后,出现无监听程序
解决方法:
1):检查listener.ora文件是否正确,如下:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = LENOVO-B6370F22)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = boway)
(ORACLE_HOME = D:\app\ibm\product\11.1.0\db_1)
(SID_NAME = ORCL)
)
)
2:是否启动监听服务
二:在CMD中不能执行sqlplus、tnsping、lsnrctl等命令
解决方法:
将%ORACLE_HOME%/bin加入至系统变量中(PATH)
三:常用命令
1)lsnrctl status 数据库实例
2)tnsping 数据库连接
3)lsnrctl stop 数据库实例
4)lsnrctl start 数据库实例
5) select * from v$instance
6)show parameter share/spfile
7)alter table 表 modify 列 null;
8)alter table 表 rename column 列 to 列2;
9)alter table 表 add constraint pk_student primary key(SERVICEID, ITEMID);
10)select CONSTRAINT_NAME from all_constraints a,all_tables b where a.table_name=b.table_name and a.CONSTRAINT_TYPE = 'P' and a.table_name=upper('表');
11)rename 表1 to 表2
四:启动实例报ORA-01078: failure in processing system parameters
原来打不开initDATATEST.ora,于是进入/u01/app/oracle/product/11.1.0/db_1/dbs/目录,
[oracle@datatest ~]$ cd /u01/app/oracle/product/11.1.0/db_1/dbs/
[oracle@datatest dbs]$ ls
hc_datatest.dat hc_mm.dat initdw.ora init.ora lkMM orapwmm spfilemm.ora
原来是没有initDATATEST.ora文件
解决此问题的方法就是到cd /u01/app/oracle/admin/datatest/pfile/目录下,将ora.1114201016265复制到dbs目录下:
cp init.ora.1114201016265 /u01/app/oracle/product/11.1.0/db_1/initDATATEST.ora
五:Oracle服务器正常启动,监控正常,PLSQL连接均正常,但是通过SQLPLUS操作数据库失败。
现象:.profile中环境变量和.base_profile中的ORACLE_SID不一致,导致上述问题。linux切换用户时使用的是.base_profile.数据库问题:ORA-01034: ORACLE not available Process ID: 0 Session ID: 0 Serial number: 0
最终解决:是由于oracle用户环境变量中指定的ORACLE_SID和实际安装的实例不一致。
修改环境变量中ORACLE_SID对应配置保持同实际实例名。
六:ORA-00257: archiver error. Connect internal only解决方法
删除归档日志
1:进入rman执行目录(opt/oracle/product/11g/bin)
2: 登录
connect target/
3:
crosscheck archivelog all;
delete archivelog all;
delete expired archivelog all;
report obsolete;
delete obsolete;
archive log list;
七:系统表空间占
1:首先用下列SQL语句查看表空间的使用情况
1)select username,default_tablespace,temporary_tablespace from dba_users where (default_tablespace='SYSTEM' or temporary_tablespace='SYSTEM') and username not in ('SYSTEM','SYS');
2)select tablespace_name,(bytes/1024/1024) M from dba_data_files;
2:处理表空间已满
1)通过PLSQL先查看下数据文件存放的目录:
select b.file_name 物理文件名,b.tablespace_name 表空间,b.bytes/1024/1024 大小M,(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M,substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率 from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_name,b.file_name,b.bytes order by b.tablespace_name
2)更改system表空间的数据文件SYSTEM分配空间。
alter database datafile '上面语句执行结果中SYSTEM表空间路径' resize 5524M;
解决方法:
1):检查listener.ora文件是否正确,如下:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = LENOVO-B6370F22)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = boway)
(ORACLE_HOME = D:\app\ibm\product\11.1.0\db_1)
(SID_NAME = ORCL)
)
)
2:是否启动监听服务
二:在CMD中不能执行sqlplus、tnsping、lsnrctl等命令
解决方法:
将%ORACLE_HOME%/bin加入至系统变量中(PATH)
三:常用命令
1)lsnrctl status 数据库实例
2)tnsping 数据库连接
3)lsnrctl stop 数据库实例
4)lsnrctl start 数据库实例
5) select * from v$instance
6)show parameter share/spfile
7)alter table 表 modify 列 null;
8)alter table 表 rename column 列 to 列2;
9)alter table 表 add constraint pk_student primary key(SERVICEID, ITEMID);
10)select CONSTRAINT_NAME from all_constraints a,all_tables b where a.table_name=b.table_name and a.CONSTRAINT_TYPE = 'P' and a.table_name=upper('表');
11)rename 表1 to 表2
四:启动实例报ORA-01078: failure in processing system parameters
原来打不开initDATATEST.ora,于是进入/u01/app/oracle/product/11.1.0/db_1/dbs/目录,
[oracle@datatest ~]$ cd /u01/app/oracle/product/11.1.0/db_1/dbs/
[oracle@datatest dbs]$ ls
hc_datatest.dat hc_mm.dat initdw.ora init.ora lkMM orapwmm spfilemm.ora
原来是没有initDATATEST.ora文件
解决此问题的方法就是到cd /u01/app/oracle/admin/datatest/pfile/目录下,将ora.1114201016265复制到dbs目录下:
cp init.ora.1114201016265 /u01/app/oracle/product/11.1.0/db_1/initDATATEST.ora
五:Oracle服务器正常启动,监控正常,PLSQL连接均正常,但是通过SQLPLUS操作数据库失败。
现象:.profile中环境变量和.base_profile中的ORACLE_SID不一致,导致上述问题。linux切换用户时使用的是.base_profile.数据库问题:ORA-01034: ORACLE not available Process ID: 0 Session ID: 0 Serial number: 0
最终解决:是由于oracle用户环境变量中指定的ORACLE_SID和实际安装的实例不一致。
修改环境变量中ORACLE_SID对应配置保持同实际实例名。
六:ORA-00257: archiver error. Connect internal only解决方法
删除归档日志
1:进入rman执行目录(opt/oracle/product/11g/bin)
2: 登录
connect target/
3:
crosscheck archivelog all;
delete archivelog all;
delete expired archivelog all;
report obsolete;
delete obsolete;
archive log list;
七:系统表空间占
1:首先用下列SQL语句查看表空间的使用情况
1)select username,default_tablespace,temporary_tablespace from dba_users where (default_tablespace='SYSTEM' or temporary_tablespace='SYSTEM') and username not in ('SYSTEM','SYS');
2)select tablespace_name,(bytes/1024/1024) M from dba_data_files;
2:处理表空间已满
1)通过PLSQL先查看下数据文件存放的目录:
select b.file_name 物理文件名,b.tablespace_name 表空间,b.bytes/1024/1024 大小M,(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M,substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率 from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_name,b.file_name,b.bytes order by b.tablespace_name
2)更改system表空间的数据文件SYSTEM分配空间。
alter database datafile '上面语句执行结果中SYSTEM表空间路径' resize 5524M;