当前位置:文档之家› oracle常见问题分析

oracle常见问题分析

oracle常见问题分析
oracle常见问题分析

第一楼目录

故障分类一数据库挂起故障

1 由于ARCHIVE挂起导致数据库挂死

2 NIT文件中SGA区设置太大,导致内存不够用,数据库和系统都挂死

3 由于临时表空间无法扩展导致数据库被挂起

4由于未打补丁导致RMAN备份时将数据库挂起

故障分类二数据库功能/性能异常

5由于BLOB类型的表记录数太多操作又太频繁导致数据库效率急差

6由于未对特大表(达到或超过100万条记录)定期做表分析导致数据库操作特别慢

7由于空间不够导致插入数据时扩展索引失败

8由于REDOLOG破坏导致数据库异常

9由于控制文件被破坏导致数据库无法正常启动

10由于数据文件丢失或破坏导致数据库无法正常启动

11由于空间参数设置不合理导致扩展表空间、索引等失败

12由于时间格式的环境变量设置问题导致话单无法入库

13由于大事务未使用大回滚段导致事务挂起

14由于数据库连接数太多导致服务器进程数多或内存耗尽

15由于使用了MTS方式,导致数据库操作特别慢(包括备份)

16由于存在一个大事务操作,导致数据库性能特别差或产生频繁日志切换

17由于没有COMMIT,导致数据库表被锁住

18索引创建不合理,导致数据库查询特别慢

19 由于BUFFER参数设置不合理导致EXP失败

20由于EXP不向上兼容,语言不兼容,导致不同版本、不同字符集的数据库无法导入

21 由于创建表空间时误将其创建在以‘本地管理’,导致在表空间上的所有对象无法修改其存储参数

22 错误地在系统表空间上建无关的数据文件

23 ORACLE客户端在P4上安装不成功

24由于LISTENER.ORA或TNSNAMES.ORA配置问题导致网络问题

25由于环境变量设置问题导致VERSOIN版本启动问题

26用户数据、表破坏下的数据恢复

27 由于OS层问题导致数据库ORA-600错误

故障分类三将导致数据库安装失败或打补丁失败的情况

28 由于环境变量或没有安装MAKE文件导致数据库安装失败

29 由于/TMP等文件系统设置太小导致数据库无法正常安装

30 HPUX上由于核心参数设置不对导致数据库无法正常启动

31 在64位的ORACLE817上打32的补丁失败

32由于安装备机数据库时是使用的拷贝方式,所以导致在备机上安装补丁失败

33由于安装ORACLE时错误地在$ORACLE_HOME目录下创建LINK,导致将打过补丁后的版本拷贝到备机失败

第一种数据库挂起故障

1 由于archive挂起导致数据库挂死

故障现象:

数据库挂起,sqlplus无法登录,alert_zxin.log中有如下信息报出:

Sat Jul 13 21:48:01 2002

ARC0: Beginning to archive log# 1 seq# 61

Current log# 2 seq# 62 mem# 0: /zxindata/oracle/redolog/redo0log

ARC0: Error 19504 creating archivelog file '/zxindata/zxinbak/arch/1_61.dbf'

ARC0: Archiving not possible: error count exceeded

ARC0: Failed to archive log# 1 seq# 61

ARCH: Archival stopped, error occurred. Will continue retrying

Sat Jul 13 21:48:01 2002

ORACLE Instance zxin - Archival Error

ARCH: Connecting to console port...

Sat Jul 13 21:48:01 2002

ORA-16014: log 1 sequence# 61 not archived, no available destinations

ORA-00312: online log 1 thread 1: '/zxindata/oracle/redolog/redo01.log'

ARCH: Connecting to console port...

ARCH:

ORA-16014: log 1 sequence# 61 not archived, no available destinations

ORA-00312: online log 1 thread 1: '/zxindata/oracle/redolog/redo01.log'

Sat Jul 13 21:50:37 2002

ARC0: Beginning to archive log# 1 seq# 61

ARC0: Archiving not possible: No primary destinations

ARC0: Failed to archive log# 1 seq# 61

故障原因:

一般是archive所在的文件系统满或无操作权限引起的。

故障解决:

检查/zxindata/zxinbak文件系统,是否已经达到或接近100%,另外确定其对oracle 用户有可写权限。

如果文件系统已经满,请执行

手工删除/zxindata/zxinbak/arch下的arch文件

使用sqlplus /nolog登录,执行:

SQL> alter system archive log start;

进一步检查/zxindata/zxinbak文件系统为什么满:

查zxin10用户下的checkpsfs.sh oracle任务有没有执行:crontab –l |grep checkpsfs,看是否有...checkpsfs.sh oracle...的返回,如没有,表示定期检查空间是否满的任务没有执行,需要启动该任务

查zxin10用户对/zxindata/zxinbak/arch目录下文件有没有删除权限:ls –l /zxindata/zxinbak/arch 对dba组需要有可读可写权限

查数据库备份任务有没有正常执行:crontab –l如果不存在rman或exp方式的数据库备份,则表示没有执行数据库备份任务,需要加上

是否是/zxindata/zxinbak文件系统太小,不符合备份和呼叫模型下的最小大小配置。

如果文件系统大小不能满足每天产生的arch日志和两个全备份的总空间,则需要扩展/zxindata/zxinbak文件系统,aix下可以直接扩,hpux下则需要将该文件系统umount以后再扩

2 init文件中SGA区设置太大,导致内存不够用,数据库和系统都挂死

故障现象:

操作系统无法使用telnet或ftp登录,数据库挂起,sqlplus无法登录

故障原因:

只能通过维护台登录到主机(很有可能维护台也无法登录),如果可以登录,则在aix上使用lsps –a 检查paging space是否使用超过50%,hpux下可使用vmstat 看内存是否已经很少。

故障解决:

如不可以登录,则强制关电重起机器以触发主备双机倒换;如果可以登录,则手工以shutdown abort方式停止数据库引发双机倒换。

然后调整initzxin.ora文件中SGA区大小,主要是减少db_block_buffers的配置,如果物理内存小于1G,建议该值配置为:1024*1024/4/4

注意同时调整主备机配置,然后做双机倒换是配置生效。

3 由于临时表空间无法扩展导致数据库被挂起

故障现象:

数据库挂起,sqlplus无法登录,alert_zxin.log中看:先是zxin_temp临时表空间扩展失败,数据库异常退出

故障原因:

这是ORACLE817的一个bug,当一个统计任务操作一个大表时,其临时数据使用了zxin_temp临时表空间,而该临时表空间太小自动扩展,扩展受文件系统大小限制和pctincrease参数限制而失败时,将引发数据库挂起。

故障解决:

将oracle817的补丁打到8.1.7.4

手工扩充zxin_temp表空间并增加其所在文件系统大小

检查zxin¬_temp临时表空间的pctincrease的值,需要配置为0

4由于未打补丁导致RMAN备份时将数据库挂起

故障现象:

数据库挂起,sqlplus无法登录。由于原来使用rman备份方式,当这种故障发生时,数据库备份日志:dbak.log中将有以下信息:

RMAN-03022: compiling command: backup

RMAN-03026: error recovery releasing channel resources

RMAN-08031: released channel: ch1

RMAN-00571: ======================================================

RMAN-00569:========= ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571:====================================================

RMAN-03002: failure during compilation of command

RMAN-03013: command type: backup

RMAN-06003: ORACLE error from target database: RMAN-20242: specification does not match

any archivelog in the recovery catalog

故障原因:

是ORACLE817的一个bug

故障解决:

将补丁打到oracle8.1.7.4就可以了。另外建议将数据库备份改为exp方式

第二种数据库功能/性能异常

5由于BLOB类型的表记录数太多操作又太频繁导致数据库效率急差

故障现象:

操作系统CPU占有率很高,数据库操作响应很慢。

故障原因:

这种故障发生时,数据库能登录也能操作,但响应时间很长,从日志中也看不出什么异常。所以只能使用我们定制的oratool工具,先找出CPU占有率高的语句,再进一步分析,当时的情况是,发现version对一个有blob类型的表写很频繁,耗去了大量CPU资源,导致数据库总体性能下降。

故障解决:

a.不建议使用blob类型的表

b.如果非要使用blob类型,则要定期进行数据备份和清理,记录数不能太多

c.对blob类型的表的操作,在记录数多的情况下不能写的太频繁,会占用大量的系统资源

6由于未对特大表(达到或超过100万条记录)定期做表分析导致数据库操作特别慢

故障现象:

执行某个存储过程或执行某个表的数据库操作时,操作系统CPU占有率明显升高,数据库操作响应很慢。

故障原因:

对一个数据量比较大的表(达到或超过100万),经过长期的读写操作后,其索引和数据分布没有及时更新给数据库,导致读时性能下降。

故障解决:

对这种类型的表,需要写任务定期对表做分析,由于分析比较耗时和耗资源,建议在系统闲时做,频率不能太高,如每月执行一次,分析可以使用5%或10%的抽样进行,如:analyze table table1 sample estimate statistics 5 percent;

7由于空间不够导致插入数据时扩展索引失败

故障现象:

alert_zxin.log日志将报扩展表空间失败的日志,zxcom.log中有扩展索引失败的记录。

故障原因:

一般是表所在的表空间不够,空间扩展失败的情况造成的。

故障解决:

手工扩展表空间所在的文件系统,扩展表空间

如果是表空间的pctincrease设置的不是0,则将其改为0

必要的时候需要rebuild一下扩展索引失败的索引

8由于redolog破坏导致数据库异常

故障现象:

如果是数据库启动情况下redolog被破坏,则alert_zxin.log中会报如下错误:ORA-00313: open failed for members of log group 2 of thread 1

ORA-00312: online log 2 thread 1: '/zxindata/oracle/zxin/redo0log'

ORA-27037: unable to obtain file status

将导致数据库操作异常。sqlplus可以登录

如果是启动时候redolog损坏,将报:

ORA-00313: 无法打开日志组1 (线程1) 的成员

ORA-00312: 联机日志1 线程1: '/zxindata/oracle/zxin/redo01.log'

故障原因:

redolog破坏,一般是由于:

人为误删或物理损坏

发生了主备倒换,备机的共享VG信息不全

故障解决:

人为误删或物理损坏

如果未启动数据库,则启动到mount状态,重建日志:(如第1组日志有问题)

alter database drop logfile group 1;

alter database add logfile group 1 '/zxindata/oracle/redolog/redo01.log' size 250M ;

alter database open;

如果数据库启动着,则查看一下损坏文件是否是活动(active)的日志:

select * from v$log;

如果是激活的,则进行日志切换:alter system switch logfile;

如果不是激活的,则执行重建:

alter database drop logfile group 1;

alter database add logfile group 1 '/zxindata/oracle/redolog/redo01.log' size 250M ;

发生了主备倒换,备机的共享VG信息不全

将共享VG信息导入到备机,并修改共享文件系统和裸设备属性,使其对oracle用户具有读写权限

9由于控制文件被破坏导致数据库无法正常启动

故障现象:

数据库操作将异常,sqlplus可以登录。

故障原因:

control文件被物理损坏或人为损坏。一般会报:ORA-00210/ ORA-00202/ORA-27041/ORA-27037等错误,所以数据库事务将挂起

故障解决:

a.只要CONTROL_FILE中还有好的control文件,则只要

将其拷贝多份就可以了

b.如果以前做过备份,不能再使用该备份控制文件,因为control

文件和数据文件会不一致。启动时报:

ORA-01589: 要打开数据库则必须使用RESETLOGS 或NORESETLOGS

选项

SQL> alter database open resetlogs;

ORA-01152: 文件1 没有从完备的旧备份中恢复

ORA-01110: 数据文件1: '/zxindata/oracle/zxin/system01.dbf'

c.只要丢失了所有的备份或修改maxlogfiles或修改数据库名等情况则要重新

创建一个control file,方式如下:

startup mount

alter database backup controlfile to trace;

alter database open;

到$udump目录下查看最新的文件中包含两份重建controlfile 的语句,

其一是online logs都完好的情况下进行数据库完全恢复的情况

其二是online logs损坏,则所有的在线日志都将丢失,所有的备份

都将失效。

10由于数据文件丢失或破坏导致数据库无法正常启动

故障现象:

一般会导致操作到与该文件有关的数据都将失败,一般报:ORA-01110/ ORA-01116/ ORA-27041等错误,严重一点的报ORA-03113后数据库异常退出

故障原因:

故障解决:

如果只是将数据文件挪了位置,则只要将其mv到原来的位置即可

如果确实损坏了,建议使用数据库备份进行恢复。具体恢复时,可以尝试使用:手工创建数据文件->自动恢复模式,如果不行,只能使用表空间全部恢复方式了。

11由于空间参数设置不合理导致扩展表空间、索引等失败

故障现象:

数据库表空间或索引扩展失败。

故障原因:

可能是表空间的storage参数设置的不合理引起的。

故障解决:

我们一般要求使用如下storage参数:

STORAGE ( INITIAL 20K NEXT 20K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 )

12由于时间格式的环境变量设置问题导致话单无法入库

故障现象:

在zxcom.log报时间格式问题导致话单插入失败。导致话单既要到bill文件中

故障原因:

跟zxin10用户的NLS_DATE_FORMAT参数设置不正确有关

故障解决:

需要将zxin10用户下.profile文件中NLS_DATE_FORMAT设置为:

NLS_DATE_FORMAT="YYYY.MM.DD HH24:MI:SS"

13由于大事务未使用大回滚段导致事务挂起

故障现象:

大事务运行失败,表现为表空间用满(ORA-01560错误),回滚段扩展到达参数MAXEXTENTS的值(ORA-01628)。

故障原因:

回滚段设置的太小

故障解决:

由于一个事务只能使用一个回滚段来存放它的回滚信息,所以建议给大事务创建专用会滚段创建时将回滚段表空间设置的大一点;增加MAXEXTENTS的值。

14由于数据库连接数太多导致服务器进程数多或内存耗尽

故障现象:

使用ps –ef检查时有很多oracle进程(包含local关键字),使用内存检查命令看可用内存已经很少。

故障原因:

使用DEDICATED方式连接到数据库的客户端一般在服务器端都对应一个进程,该进程将消耗3~4M的内存空间。如果客户端连接数比较多,则内存将耗尽,进程数也将达到系统极限或数据库极限。

故障解决:

增加系统的硬件配置,如增加CPU或扩内存

增加系统最大进程数限制,aix和hpux下都有方法设置

增加oracle进程数,在init文件中的processes参数项

15由于使用了MTS方式,导致数据库操作特别慢(包括备份)

故障现象:

使用MTS连接方式的数据库操作将比较慢,尤其是系统资源吃紧的情况下。

故障原因:

智能网前期对smap等客户端的策略是使用MTS(共享进程)解决方案,后发现该方案不可行,主要是该连接方式下的数据库操作性能太差。

故障解决:

共享进程只能支持更多的并发用户访问数据库,但不能提高执行速度, 所以我们商用局中已经取消了这种方式。具体可通过检查initzxin.ora中的配置确认。应该不包含任何含mts关键字的配置

16由于存在一个大事务操作,导致数据库性能特别差或产生频繁日志切换

故障现象:

数据库性能下降,观察alert_zxin.log发现切换日志很频繁

故障原因:

肯定存在一个与呼叫无关的大事务在不停的运行,导致产生大量日志,引起日志切换。

故障解决:

使用oratool工具中的sp_who找出活动sql语句

通过命令找出消耗cpu、IO资源最大的10条语句

查出该语句操作的表的数据量和读写频率,检查是否有应用类逻辑性异常并给予纠正。

17由于没有commit,导致数据库表被锁住

故障现象:

操作某个表的记录时长时间无响应,通过sdf进行的数据库操作则表现为超时,导致sdf进程run too too long

故障原因:

一般跟该表被锁住有关

故障解决:

使用oratool工具中的sp_lock命令查看该表是否有锁

检查是否在某个SQL语句中对该表进行事务类操作时,没有使用commit,这种情况一般发生在手工通过sqlplus修改数据的场合,sdf不会出现

及时进行commit或rollback,解除表锁,如果不能解除的话,则将与该锁有关的进程强制杀掉。

18索引创建不合理,导致数据库查询特别慢

故障现象:

表现为查询特别慢,如果是通过sdf操作,返回超时或触发:sdf run too too long 故障原因:

有可能是在表的数据量比较大的情况下,该表的索引设置不合理造成的。

故障解决:

请使用explain plan查看其查询计划,看是否使用了全表扫描或不适合的索引,据此调整索引或查询语句。

19 由于buffer参数设置不合理导致exp失败

故障现象:

使用exp导出某个表不成功

故障原因:

跟buffer设置有关

故障解决:

一般要求设置比较大的buffer进行exp备份,但当物理内存不够的情况下,buffer

设置要合理,这种情况下,可尝试不设置buffer进行备份

20由于exp不向上兼容,语言不兼容,导致不同版本、不同字符集的数据库无法导入

故障现象:

进行imp导入时报数据格式不正确,数据导入失败

故障原因:

目前了解816/817数据库导出的格式不兼容,但oracle9i可以向下兼容,导出和导入环境的字符集不一致,也不能完成导入,但字符集一致、版本一致的数据库在不同的OS 平台上可以互导。

故障解决:

保证数据库版本的一致性,保证字符集的一致。或使用其他工具。

21 由于创建表空间时误将其创建在以‘本地管理’,导致在表空间上的所有对象无法修改其存储参数

故障现象:

无法修改该表空间及在该表空间上创建的所有对象的storage参数。

故障原因:

只有在‘字典中管理’的表空间才可以设置手工设置STORAGE参数

故障解决:

编辑initzxin.ora,修改参数compatible=”8.1.0”修改成compatible=”8.1.6”,

执行:$sqlplus sys/change_on_install

sql>exec dbms_space_admin.Tablespace_Migrate_FROM_Local(‘ZXIN_BILL’);

sql>commit;

sql>exit

c.这样,表空间就从‘本地管理’修改成DMT数据字典管理方式了,然后再手工修改表空间存储参数和对象存储参数即可

22 错误地在系统表空间上建无关的数据文件

故障现象:

系统表空间上存在着无关的数据文件

故障原因:

错误地在系统表空间上建了无关的数据文件

故障解决:

如果是创建在OEM_REPOSITORY表空间上,则可以将该表空间删除后重建,注意不要再包含错建的数据文件

如果是其他系统表空间,可以使用:

alter database datafile ‘.....’ resize to 1M;

命令尽量减少空间浪费。

23 oracle客户端在p4上安装不成功

故障现象:

奔四的机器无法安装oracle8i客户端

故障原因:

oracle8i的一个bug

故障解决:

1、将ORACLE软件拷贝到硬盘。

2、将硬盘目录文件\stage\Components\oracle.swd.jre\1.1.7.30/1

\DataFiles\Expanded\jre\win32\bin\symcjit.dll 的文件改名为

symcjit.old

3.从\install\win32 目录下运行SETUP.exe 文件进行安装。

24由于listener.ora或tnsnames.ora配置问题导致网络问题

故障现象:

lsnrctl start启动数据库网络服务不成功;使用tnsping无法ping通数据库服务器;sdf无法登录数据库

故障原因:

listener.ora或tnsnames.ora配置不正确

故障解决:

请按如下模板配置listener.ora:

LISTENER =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = version_svc)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = version_svc)(PORT = 1522))

(address= (protocol=ipc) (key=extproc))

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = zxin)

(ORACLE_HOME = /home/oracle/oracle81)

(SID_NAME = zxin)

)

(SID_DESC =

(SID_NAME = extzxin)

(ORACLE_HOME = /home/oracle/oracle81)

(PROGRAM = extproc)

)

)

请按如下模板配置tnsnames.ora:

ZXIN =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = version_svc)(PORT = 1522)) )

(CONNECT_DATA =

(SERVICE_NAME = zxin)

)

)

zx10_40_57_163=

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = version_svc)(PORT = 1522)) )

(CONNECT_DATA =

(SERVICE_NAME = zxin)

(SERVER = DEDICATED)

)

)

extproc_connection_data=

(description=

(address=(protocol=ipc)(key=extproc))

(connect_data=

(sid=extzxin)))

25由于环境变量设置问题导致VERSOIN版本启动问题

故障现象:

如果没有正确配置ORACLE环境变量,将导致version启动时sdf进程无法正常启动或无法正常连接数据库

故障原因:

请按要求配置zxin10用户与ORACLE相关的环境变量

故障解决:

请检查$ORACLE_HOME、$ORACLE_BASE、$LIBPATH、$SHLIB_PATH、$LD_LIBRARY_PATH 等环境变量是否正确。

26用户数据、表破坏下的数据恢复

故障现象:

某一个用户的所有数据或单个表的数据全部丢失,无法读取相关数据

故障原因:

由于人为误操作或硬件问题导致用户数据或单个表的数据全部丢失

故障解决:

使用imp命令将备份出的数据恢复(注意,只能恢复到备份时间点)

对于单表恢复的命令为:

imp system/manager fromuser=zxin touser= zxin tables=oper_dbuser file=zxindb.dmp

对于整个用户数据丢失恢复的情况

将该用户删除重建:

drop user zxin CASCADE;

create user zxin defaule tablespace ... temporary tablespace;

然后使用imp导入:

imp system/manager fromuser=zxin touser= zxin file=zxindb.dmp

27 由于os层问题导致数据库ORA-600错误

故障现象:

启动数据库时报:ORA-600

故障原因:

ORA-600错误一般跟os层的错误有关,比如文件、内存、I/O问题、硬件故障

故障解决:

碰到此类错误,请检查:

所做的操作

目前os层有没有各类报错

解决os层问题后再重试

如果还是不行,只能重装系统,重装数据库

将导致数据库安装失败或打补丁失败的情况

第三种将导致数据库安装失败或打补丁失败的情况

28 由于环境变量或没有安装make文件导致数据库安装失败

故障现象:

安装oracle时进行到link阶段时报:找不到make文件

故障原因:

没有安装包含make文件的软件包

故障解决:

安装包含make文件的软件包后重试。(aix下的软件包为:bos.adt.base)

29 由于/tmp等文件系统设置太小导致数据库无法正常安装

:故障现象:

安装oracle时进行到link阶段时,在进行某个模块的make时报错,查看文件系统大小,发现/tmp文件系统已满

故障原因:

/tmp文件系统已满

故障解决:

请安装前保证/tmp文件系统有500M剩余空间

30 HPUX上由于核心参数设置不对导致数据库无法正常启动

故障现象:

oracle安装到Link阶段时报错

故障原因:

hpux上安装oracle数据库时,一定要先调整好核心参数再安装,否则将无法成功

安装

故障解决:

按照安装手册调整hpux的核心参数(一般是通过setup脚本做的,无需手工配置,请检查setup是否成功执行并成功修改了核心参数)

31 在64位的oracle817上打32的补丁失败

故障现象:

安装补丁时,在Link阶段报错,通过安装日志检查,发现连接的动态库是32位的故障原因:

补丁也分oracle817(64位)和oracle817(32位)的,请下载和打补丁时注意一一匹配。

故障解决:

将打补丁前的oracle817备份文件恢复,选择匹配的补丁重新安装。

32由于安装备机数据库时是使用的拷贝方式,所以导致在备机上安装补丁失败

故障现象:

在备机上使用oracle正常打补丁方式时报版本不对,无法正常打补丁。

故障原因:

由于外面大部分机器备机oracle的安装是通过从主机拷贝的方式完成的,而部分如/etc目录下的文件没有同步到备机,所以导致oracle补丁安装程序读不到相关版本信息,无法完成补丁安装。

故障解决:

可以采取将主机打完补丁后将$ORACLE_HOME目录拷贝到备机的方式

可以将/etc下的oratab和oraInst.loc拷贝到备机,再重试补丁安装

33由于安装oracle时错误地在$ORACLE_HOME目录下创建link,导致将打过补丁后的版本拷贝到备机失败

故障现象:

主机打完oracle补丁后,将主机$ORACLE_HOME文件同步到备机时间非常长!

故障原因:

使用rcp命令同步时,将导致ln下的东西拷双份

故障解决:

请检查主机上是否有不适合的ln连接,连接目标是一个目录(该目录下有大量文件),检查连接的方法是:

find . -type l -exec ls -l {} \;

34 oracle下的字符集问题

故障现象:

一般中文、英文环境都可以将oracle服务器字符集安装成ZHS16GBK。如果不小心装成英文字符,则会无法输入中文字符

故障原因:

一般是手工建库的情况导致的,通过crdb.sh执行建库的,不存在这个问题。

故障解决:

首先安装oracle的时候必须选择安装中文字符集的支持

由于中文字符集是英文字符集的超集,所以如果已经安装英文数据库字符集的话,可以用如下方式转换:

SQL> SHUTDOWN IMMEDIATE; -- or NORMAL

SQL> STARTUP MOUNT;

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

SQL> ALTER DATABASE OPEN;

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;

SQL> SHUTDOWN IMMEDIATE; -- or NORMAL

SQL> STARTUP;

Oracle常见错误汇总

1.Oracle ORA-01555快照过旧的错误 首先了解Oracle在什么情况下会产生ORA-01555错误: 假设有一张6000万行数据的testdb表,预计testdb全表扫描1次需要2个小时,参考过程如下: 1、在1点钟,用户A发出了select * from testdb;此时不管将来testdb怎么变化,正确的 结果应该是用户A会看到在1点钟这个时刻的内容。 2、在1点30分,用户B执行了update命令,更新了testdb表中的第4100万行的这条记录, 这时,用户A的全表扫描还没有到达第4100万条。毫无疑问,这个时候,第4100万行的这条记录是被写入了回滚段,假设是回滚段UNDOTS1,如果用户A的全表扫描到达了第4100万行,是应该会正确的从回滚段UNDOTS1中读取出1点钟时刻的内容的。 3、这时,用户B将他刚才做的操作提交了,但是这时,系统仍然可以给用户A提供正确的数据, 因为那第4100万行记录的内容仍然还在回滚段UNDOTS1里,系统可以根据SCN到回滚段里找到正确的数据,但要注意到,这时记录在UNDOTS1里的第4100万行记录已经发生了重大的改变:就是第4100万行在回滚段UNDOTS1里的数据有可能随时被覆盖掉,因为这条记录已经被提交了! 4、由于用户A的查询时间漫长,而业务在一直不断的进行,UNDOTS1回滚段在被多个不同的 transaction使用着,这个回滚段里的extent循环到了第4100万行数据所在的extent,由于这条记录已经被标记提交了,所以这个extent是可以被其他transaction覆盖掉的!5、到了1点45分,用户A的查询终于到了第4100万行,而这时已经出现了第4条说的情况, 需要到回滚段UNDOTS1去找数据,但是已经被覆盖掉了,这时就出现了ORA-01555错误。

Oracle常见问题及其解决方法(doc 10页)

Oracle常见问题及其解决方法(doc 10页)

iSQL*Plus URL:http://10.10.43.137:5560/isqlplus Enteprise Manager 10g Database Control URL: http://information:5500/em OracleDBConsoleorcl不能启动,报错误码2解决策略 解决策略一: 修改你的主机参数文件 修改一下: C:\WINDOWS\system32\drivers\etc下的host文件. 如果没有的话就自己加一个IP和你的计算机名对应,如果已有了就把你的IP地址和你的计算机名对应起来. 如: # copyright (c) 1993-1999 microsoft corp. # # this is a sample hosts file used by microsoft tcp/ip for windows. # # this file contains the mappings of ip addresses to host names. each # entry should be kept on an individual line. the ip address should # be placed in the first column followed by the corresponding host name. # the ip address and the host name should be separated by at least one # space. # # additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # for example: # # 102.54.94.97 https://www.doczj.com/doc/5c13958981.html, # source server # 38.25.63.10 https://www.doczj.com/doc/5c13958981.html, # x client host 127.0.0.1 localhost 10.10.43.137 information 解决策略二: 启动电脑,到登陆界面,电脑报有个服务启动失败,电脑没有新装软件,周六还没有问题,怎么突然报这个错误?于是到事件查看器中看看什么问题,显示是OracleDBConsoleorcl启动失败,到服务里一看,确实没有启动。手动启动一下,报错误码2 我装的是10g,于是到ORACLEproduct10.2.0db_1test_orclsysmanlog目录看一下log里写了什么,打开OracleDBConsoleorclsrvc.log. log最后记录的是: 日志让看emdbconsole.nohup文件,目录里没有这个文件呀。 手动执行一下emctl.bat,于是启动控制台,执行emctl.bat istart dbconsole,报错,ORACLE_SID 没有定义,打开emctl.bat看看,这里是定义环境变量的地方,其中已经设置了这些:if not defined REMOTE_EMDROOT (set ORACLE_HOME=Ec:oracleproduct10.2.0db_1)

Oracle数据库常见异常的诊断方法

目录 第1章 Oracle数据库常见问题诊断方法 (1) 1.1 常见错误篇 (1) 1.1.1 ORA-12571、ORA-03113、ORA-03114、ORA-01041 (1) 1.1.2 ORA-01000 (1) 1.1.3 ORA-01545 (2) 1.1.4 ORA-0165x (2) 1.1.5 ORA-01555 (3) 1.1.6 ORA-04031 (3) 1.1.7 ORA-04091 (3) 1.1.8 ORA-01242、ORA-01113 (4) 1.2 内部错误篇 (4) 1.2.1 ORA-00600【12330】错误 (4) 1.2.2 ORA-00604【xxx】错误 (5) 1.2.3 ORA-00600【3339】错误 (5) 1.2.4 ORA-00600【13004】错误 (5) 1.3 分布式事务篇 (6) 1.3.1 诊断分布式事务 (6) 1.3.2 检查其它节点的事务(DBA_2PC_NEIGHBORS) (6) 1.3.3 通过DBA_2PC_PENDING字典表检查事务的状态 (6) 1.3.4 检查处理结果 (7) 1.3.5 COMMIT FORCE或ROLLBACK FORCE命令 (7) 1.4 OPS或RAC篇 (8) 1.4.1 准备工作 (8) 1.4.2 紧急情况下的状态备份 (8) 1.4.3 OPS设计、配置准则 (9) 1.4.4 OPS常见问题 (9) 1.4.5 诊断分析步骤 (9) 1.5 非OPS篇 (18) 1.5.1 ORACLE数据库系统常见问题:空间方面问题 (18) 1.5.2 ORACLE数据库系统常见问题:性能方面问题 (18) 1.5.3 ORACLE数据库系统常见问题:锁争用方面问题 (19) 1.5.4 ORACLE数据库系统常见问题:内存方面问题 (20) 1.5.5 ORACLE问题分析脚本 (20) 1.5.6 SQL*NET篇 (24) 1.5.7 TNS-12154 Error 或ORA-12154 (24) 1.5.8 NL-00462 Error 或ORA-00462 (25) 1.5.9 NL-00405 Error 或ORA-00405 (26)

oracle操作常见错误

1.[Err] ORA-02438: Column check constraint cannot reference other columns ORA-02438: 列检查约束条件无法引用其它列 --通常可能是constraint 拼写错误 2. [Err] ORA-02250: missing or invalid constraint name 约束条件名缺失或者无效。 比如: alter table tbl_school add s_level number(7) constraint unique; //错误的 ====add s_level number(7) unique; 正确的 4. [Err] ORA-01861: literal does not match format string ORA-01861: 文字与格式字符串不匹配 比如: insert into tbl_school(id,s_name,address,establish_time,style) values(1,'清华','北京','1976-05-05','理'); 日期的输入,要有固定的格式 =====values(1,'清华','北京',to_date('1976-05-01','rrrr-mm-dd'),'理'); 5:select index_name,table_name from user_indexes Where table_name=’s_emp’; 提示错误:为选定行。 ‘’里面的就变成了字符串,是区分大小写的, select index_name,table_name from user_indexes Where table_name=’S_EMP’; 6:Ora-02290【】违反检查约束条件 可能原因:check里面出错,在传值的时候,出现乱码了,只能重建表

Oracle常见问题解决

问题一:注册表相关项被优化软件优化(删除) 对于系统的每一个服务,在注册表中都有所保存: 监听服务的注册表项 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\OracleOraDb10g_home1TNSListener 里面有一个"ImagePath"项,内容是: D:\server\oracle\product\10.2.0\db_1\BIN\TNSLSNR 这一项可能会在使用优化软件的时候被自动删除 如果被删除了,应该按照下面的方式建立一个新的项 如图: 问题二:网络环境发生改变 Oracle 10g中,如果网络环境发生了改变,有可能原始配置网络无法正常运行,此时必须手动进行网络配置的修改 网络环境的改变,最多的是指计算机名称的改变。 【我的电脑】-【属性】-【计算机名】-【更改计算机名】

计算机名一旦更改,这样一来实际的计算机网络名称已经发生变化,如果在Oracle 11g中,这个问题可以帮助用户自动配置,但在Oracle 10g中必须手动配置 监听服务(OracleOraDb10g_home1TNSListener)就会启动失败 解决办法分两步: 第一步:分别修改D:\server\Oracle\product\10.2.0\db_1\NETWORK\ADMIN目录下的连个文件:tnsnames.ora和listener.ora tnsnames.ora(把红色加粗的地方修改成当前的计算机名) -------------------------------------------------------------------------------- # listener.ora Network Configuration File: D:\server\oracle\product\10.2.0\db_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER =

oracle常见等待事件及处理方法

我们可以通过视图v$session_wait来查看系统当前的等待事件,以及与等待事件相对应的资源的相关信息 看书笔记db file scattered read DB ,db file sequential read DB,free buffer waits,log buffer space,log file switch,log file sync 我们可以通过视图v$session_wait来查看系统当前的等待事件,以及与等待事件相对应的资源的相关信息,从而可确定出产生瓶颈的类型及其对象。v$session_wait的p1、p2、p3告诉我们等待事件的具体含义,根据事件不同其内容也不相同,下面就一些常见的等待事件如何处理以及如何定位热点对象和阻塞会话作一些介绍。 <1> db file scattered read DB 文件分散读取(太多索引读,全表扫描-----调整代码,将小表放入内存) 这种情况通常显示与全表扫描相关的等待。当全表扫描被限制在内存时,它们很少会进入连续的缓冲区内,而是分散于整个缓冲存储器中。如果这个数目很大,就表明该表找不到索引,或者只能找到有限的索引。尽管在特定条件下执行全表扫描可能比索引扫描更有效,但如果出现这种等待时,最好检查一下这些全表扫描是否必要。因为全表扫描被置于LRU(Least Recently Used,最近最少适用)列表的冷端(cold end),所以应尽量存储较小的表,以避免一次又一次地重复读取它们。 ================================================== 该类事件的p1text=file#,p1是file_id,p2是block_id,通过dba_extents即可确定出热点对象(表或索引) select owner,segment_name,segment_type from dba_extents

oracle常见问题分析

第一楼目录 故障分类一数据库挂起故障 1 由于ARCHIVE挂起导致数据库挂死 2 NIT文件中SGA区设置太大,导致内存不够用,数据库和系统都挂死 3 由于临时表空间无法扩展导致数据库被挂起 4由于未打补丁导致RMAN备份时将数据库挂起 故障分类二数据库功能/性能异常 5由于BLOB类型的表记录数太多操作又太频繁导致数据库效率急差 6由于未对特大表(达到或超过100万条记录)定期做表分析导致数据库操作特别慢 7由于空间不够导致插入数据时扩展索引失败 8由于REDOLOG破坏导致数据库异常 9由于控制文件被破坏导致数据库无法正常启动 10由于数据文件丢失或破坏导致数据库无法正常启动 11由于空间参数设置不合理导致扩展表空间、索引等失败 12由于时间格式的环境变量设置问题导致话单无法入库 13由于大事务未使用大回滚段导致事务挂起 14由于数据库连接数太多导致服务器进程数多或内存耗尽 15由于使用了MTS方式,导致数据库操作特别慢(包括备份) 16由于存在一个大事务操作,导致数据库性能特别差或产生频繁日志切换 17由于没有COMMIT,导致数据库表被锁住 18索引创建不合理,导致数据库查询特别慢 19 由于BUFFER参数设置不合理导致EXP失败 20由于EXP不向上兼容,语言不兼容,导致不同版本、不同字符集的数据库无法导入 21 由于创建表空间时误将其创建在以‘本地管理’,导致在表空间上的所有对象无法修改其存储参数 22 错误地在系统表空间上建无关的数据文件 23 ORACLE客户端在P4上安装不成功 24由于LISTENER.ORA或TNSNAMES.ORA配置问题导致网络问题 25由于环境变量设置问题导致VERSOIN版本启动问题 26用户数据、表破坏下的数据恢复 27 由于OS层问题导致数据库ORA-600错误 故障分类三将导致数据库安装失败或打补丁失败的情况 28 由于环境变量或没有安装MAKE文件导致数据库安装失败 29 由于/TMP等文件系统设置太小导致数据库无法正常安装 30 HPUX上由于核心参数设置不对导致数据库无法正常启动 31 在64位的ORACLE817上打32的补丁失败 32由于安装备机数据库时是使用的拷贝方式,所以导致在备机上安装补丁失败 33由于安装ORACLE时错误地在$ORACLE_HOME目录下创建LINK,导致将打过补丁后的版本拷贝到备机失败

Oracle常见错误代码的分析与解决

Oracle常见错误代码的分析与解决 作者:chensheng 发文时间:2005.06.15 在使用ORACLE的过程中,我们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可能一时不知怎么去处理产生的这些错误,本人就使用中出现比较频繁的错误代码一一做出分析,希望能够帮助你找到一个合理解决这些错误的方法,同时也希望你能够提出你的不同看法。毕竟作为一种交流的手段,个人意见难免过于偏颇,而且也必定存在着不足,出错之处在所难免。写这篇文章的目的就是想通过相互之间的交流共同促进,共同进步。 ORA-01650: unable to extend rollback segment NAME by NUM intablespace NAME 产生原因:上述ORACLE错误为回滚段表空间不足引起的,这也是ORACLE数据管理员最常见的ORACLE错误信息。当用户在做一个非常庞大的数据操作导致现有回滚段的不足,使可分配用的回滚段表空间已满,无法再进行分配,就会出现上述的错误。 解决方法:使用“ALTER TABLESPACE tablespace_name ADD DATAFILE filename SIZE size_of_file”命令向指定的数据增加表空间,根据具体情况可以增加一个或多个表空间。当然这与还与你主机上的裸盘设备有关,如果你主机的裸盘设备已经没有多余的使用空间,建议你不要轻意增加回滚段表空间的大小,可使用下列语句先查询一下剩余的tablespace空间有多少: select user_name,sql_text from V$open_cursor where user_name=''; 如果多余的空间比较多,就可以适当追加一个大的回滚段给表空间使用,从而避免上述的错误。你也可以用以下语句来检测一下rollback segment的竞争状况: 和

Oracle常见问题及解决方法(个人遇到问题解决经验)

iSQL*Plus URL:http://10.10.43.137:5560/isqlplus Enteprise Manager 10g Database Control URL: http://information:5500/em OracleDBConsoleorcl不能启动,报错误码2解决策略 解决策略一: 修改你的主机参数文件 修改一下: C:\WINDOWS\system32\drivers\etc下的host文件. 如果没有的话就自己加一个IP和你的计算机名对应,如果已有了就把你的IP地址和你的计算机名对应起来. 如: # copyright (c) 1993-1999 microsoft corp. # # this is a sample hosts file used by microsoft tcp/ip for windows. # # this file contains the mappings of ip addresses to host names. each # entry should be kept on an individual line. the ip address should # be placed in the first column followed by the corresponding host name. # the ip address and the host name should be separated by at least one # space. # # additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # for example: # # 102.54.94.97 https://www.doczj.com/doc/5c13958981.html, # source server # 38.25.63.10 https://www.doczj.com/doc/5c13958981.html, # x client host 127.0.0.1 localhost 10.10.43.137 information 解决策略二: 启动电脑,到登陆界面,电脑报有个服务启动失败,电脑没有新装软件,周六还没有问题,怎么突然报这个错误?于是到事件查看器中看看什么问题,显示是OracleDBConsoleorcl启动失败,到服务里一看,确实没有启动。手动启动一下,报错误码2 我装的是10g,于是到ORACLEproduct10.2.0db_1test_orclsysmanlog目录看一下log里写了什么,打开OracleDBConsoleorclsrvc.log. log最后记录的是: 日志让看emdbconsole.nohup文件,目录里没有这个文件呀。 手动执行一下emctl.bat,于是启动控制台,执行emctl.bat istart dbconsole,报错,ORACLE_SID 没有定义,打开emctl.bat看看,这里是定义环境变量的地方,其中已经设置了这些:if not defined REMOTE_EMDROOT (set ORACLE_HOME=Ec:oracleproduct10.2.0db_1)

Oracle经验分享-常用报错及解决办法

问题一、监听器未能启动专用的服务器进程 今天通信频道,在更新代码后,出现WEB或PLSQL客户端连接数据库连接不上。重启下数据库和TOMCA T后正常一段后又出现此故障。监听器日志后面都提示:08-1月 -2010 14:10:59 * (CONNECT_DATA=(SID=vnet)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=某IP)(PORT=3947)) * establish * fjroom * 12500 TNS-12500: TNS:监听器未能启动专用的服务器进程 TNS-12560: TNS: 协议适配器错误 TNS-00530: 协议适配器错误 PLSQL客户端连接的时候提示: 监听器未能启动专用的服务器进程 原因: ORACLE数据库所在服务器的防火墙被启动,之前是关着(不知被谁启起来的)。而且防火墙仅开放1521端口。 分析: 服务器A安装有:ORACLE数据库和运行WEB程序(连接本台数据库)。同样的WEB 程序在服务器B运行并连接服务器A的数据库。 问题出现在12月31号,应该是防火墙被启起来时候。由于防火墙只开放1521监听器端口。由于ORACLE用到不止一个端口(还有一个随机端口),所有服务器B程序虽然可以监听到ORACLE可就是获取不上数据库的连接!(之前,我查看ORACLE监听日志有从服务器B过来的记录,我错以为服务器B有连接上数据库。另外,服务器B程序访问少,所以我没去在意他是否连接程序)这样服务器B程序可以监听到但获取不到数据库连接,故导致死循环:监听->获取不到连接->再监听->获取不到连接。在监听日志有大量这样连接记录: 08-1月 -2010 12:14:02 * (CONNECT_DATA=(SID=vnet)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=某IP)(PORT=4280)) * establish * fjroom * 0 时间过去几个小时候后,便会出现上面所说的故障。 疑问: 如何配置防火墙?不想去改ORACLE数据库相关配置。或者服务器如何把自己的端口全部开放给另外一台服务器。 问题二、请问oracle数据库的日志文件会一直增大吗?如果一直增大肯定不合理,他是什么机制呢? 1、Oracle 数据库默认情况下,在安装的时候,会有三个重做日志文件。 2、当第一个重做日志文件达到一定容量时,就会停止写入,而会转向第二个日志文件。 3、第二个也满时,就会转向第三个,当第三个满时,就会往第一个日志文件中写入。 4、在往这原来的纪录中写入重做日志文件的时候,是否需要对原有的纪录进行备份则是根据用户需求的不同,存在两种处理模式。 一种是不需要数据库进行自动备份,这种模式就叫做非归档模式;

oracle安装及使用常见问题及解决方案

第一部分: 1、win7_oracle11g_64位连接32位PLSQL_Developer 解决思路: 1)下载instantclient-basic-win32-11.2.0.1.0文件并解压。复制到数据库 安装的文件夹下的product文件夹下。 2)然后找到两个文件listener.ora和tnsnames.ora。 在…\product\11.2.0\dbhome_1\NETWORK\ADMIN里面。都复制 到…\product\instantclient_11_2的下面。 注意!!!以后使用的listener.ora和tnsnames.ora文件都是 instantclient_11_2路径下的。 3)然后找到PLSQL_Developer安装的目录,在里面新建一个记事本,写入 以下类似代码: @echo off set path=E:\app\Administrator\product\instantclient_11_2 set ORACLE_HOME=E:\app\Administrator\product\instantclient_11_ 2 set TNS_ADMIN=E:\app\Administrator\product\instantclient_11_2 set NLS_LANG=AMERICAN_AMERICA.AL32UTF8 start plsqldev.exe 注意!!!! 我的instantclient_11_2地址是: E:\app\Administrator\product\instantclient_11_2 而你的跟我的可能不一样,所以要修改成你的instantclient_11_2的路径! 写好后,将你的记事本名称改为start.bat然后点击运行。 如果PLSQL Developer没有打开,请仔细检查你上面的步骤和代码是否 正确,然后在运行start.bat。 4)打开PLSQL_Developer后,取消登陆,进入主界面。

Oracle常见错误

ORA-00911: 无效字符问题和解决 我今天写JDBC插入数据库数据时出现ORA-00911: 无效字符问题, 我把SQL打到控制台上面,然后COPY到SQL PULS中是可以插入数据的, 但是在ECLIPSE中执行就报ORA-00911: 无效字符的错误, 我查了一下, 我的是类似这种的insert into tablea(aaa) values('111'); 把最后面的;去掉,修改为 insert into tablea(aaa) values('111')就可以执行了。 原因:没有找到sql语句中要调用的表(可能根本不存在、可能表明不对,也可能没有区分大小写)。 解决方法:1、打断点,转到定义,在整个解决方案中搜索看sql语句的出处,然后排查具体原因。 第一、不存在:用plsql往里面导入表。 第二、表名不对,修改表的名字。 第三、没有区分大小写: https://www.doczj.com/doc/5c13958981.html,/jtmjx/archive/2012/07/03/2574766.html 采用Oracle数据库,使用Powerdesigner设计,生成Sql文件导入后查询出现 “ORA-00942: 表或视图不存在”,很是郁闷,这个问题以前出现过,当初解决了,但因好久没有使用,这次竟然忘了,害得我浪费了好些时间,为了避免再次忘记,将它记下来,同时和大家一起分享。 1、问题产生的原因 Oracle 是大小写敏感的,我们创自己写Sql脚本创建表的时候Oracle会自动将我们的表名,字段名转成大写, eg: createtable T_WindRadar (

wr_id VARCHAR2(64) not null, wr_reciveTime DATE, wr_image BLOB, constraint PK_T_WINDRADAR primarykey (wr_id) ); 但是Oracle 同样支持"" 语法,将表名或字段名加上""后,Oracle不会将其转换成大写eg: createtable "T_WindRadar" ( "wr_id" VARCHAR2(64) not null, "wr_reciveTime" DATE, "wr_image " BLOB, constraint PK_T_WINDRADAR primarykey (wr_id) ); 如果加上了"",那么我们采用一般的SQL语句查询则会产生“ORA-00942: 表或视图不存在”,因此SQL脚本中需要将表名也加上""。 eg: select*from "T_WindRadar"; 这种情况在我们手写SQL的时候一般不会发生,但是我们使用powerdesigner设计数据库的时候,由于不注意会经常出现此类问题,因为Powerdesigner生成的SQL文件默认是加""的。 2、解决的办法 因为我们使用的是Powerdesigner,所以可以不用手工改写SQL脚本,只要设置Powerdesigner重新生成即可。 在PowerDesiger中,在physical data model 中找到菜单中的Database下的Edit current DBMS中, 选择Script->Sql->Format,有一项CaseSensitivityUsingQuote,它的comment 为“Determines if the case sensitivity for identifiers is managed using double quotes”, 表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“YES”,改为“No”,点击【应用】按钮。 这样再生成sql语句时,表和字段名上是没有引号了。

oracle遇到的问题及答案

问题一:Oracle 11G用EXP时,空表不能导出解决方法 第一查询空表到底有多少张,也就是查询为分配分配segment的表有多少张 SQL> select table_name from user_tables where NUM_ROWS=0; TABLE_NAME ------------------------------ DATA_BACKUP EQUIPMENT FEEDBACK_ACCESSORIES SPECIALPIC TASK_THIRD TASK_THIRDBATCH TASK_THIRD_DATA TASK_THIRD_FEEDBACK TESTDATA_THIRD THIRD_ACCESSORIES 已选择10行。 第二查询在当前用户下有总的有多少张表 SQL> select count(*) FROM USER_TABLES; COUNT(*) ---------- 32 第三导出当前用户下的数据 C:\Users\Administrator>exp lcpt/lcpt file=E:\0702bj\lcpt.dmp wner=lcpt log=E 702bj\lcpt.log Export: Release 11.2.0.1.0 - Production on 星期一 7月 2 10:42:07 2012 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Productio With the Partitioning, OLAP, Data Mining and Real Application Testing options 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集 即将导出指定的用户... . 正在导出 pre-schema 过程对象和操作 . 正在导出用户 LCPT 的外部函数库名 . 导出 PUBLIC 类型同义词 . 正在导出专用类型同义词 . 正在导出用户 LCPT 的对象类型定义 即将导出 LCPT 的对象... . 正在导出数据库链接 . 正在导出序号

Oracle Enterprise Manager常见问题

Oracle Enterprise Manager常见问题 2010-06-03 00:06 Oracle Enterprise Manager(Oracle企业管理器,简称OEM)是通过一组Oracle程序,为管理分布式环境提供了管理服务。OEM包括了一组DBA工具,一个 repository,以及一个图形化显示的控制台。OEM控制台与每一个服务器上的智能化代理(IntelligentAgent)相对应。 智能化代理能够监控系统的特定事件并且执行任务(作业)就象你在系统本地一样。事件和作业的结果会被送回控制台,这样可以在一个地方管理所有的系统。 OEM与Server Manager Motif相比,有以下优点: 1)从适用范围看,OEM可以同时监控管理多个系统上的多个数据库,因而特别适合分布式环境;而Server Manager只能监控管理一个数据库。 2)从管理对象看,OEM可以监控管理节点,数据库和监听进程(listener),而Server Manager只能监控数据库。 3)从适用版本看,OEM可以同时监控管理Oracle7.x和8.x,而从8版开始,Server Manager已不存在。 本文主要介绍一些OEM的常见问题及其解决方法。 Q:OEM数据库工具组的功能是什麽?? A:OEM数据库工具组是一组使DBA能够通过GUI界面管理Oracle数据库的工具。包括以下工具: Data Manager(数据管理器):这工具使你能够象加载数据一样执行数据的export/import。 Schema Manager:这工具使你能够在数据库中管理对象。可以用于创建,修改,和删除 tables,indexes,views,snapshots,sequences等等。 Security Manager(安全性管理器):这工具使你能够管理用户,角色,权限及profiles。 StorageManager(存储管理器):这工具允许你创建和修改表空间,数据文件和回滚段. InstanceManager(实例管理器):这工具允许你关闭,启动实例并且存储和管理数据库参数。 SQL*Worksheet:这工具使你能够运行或创造SQL脚本并且存储在硬盘上。

ORACLE面试常见的问题及回答

1.冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2.如果你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file子句的recover命令恢复数据库。 3.如何转换init.ora到spfile? 解答:使用create spfile from pfile命令. 4.解释data block,extent和segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent.一个数据库对象拥有的所有extents被称为该对象的segment. 5.给出两个检查表结构的方法 解答:1.DESCRIBE命令 2.DBMS_METADATA.GET_DDL包 6.怎样查看数据库引擎的报错 解答:alert log. 7.比较truncate和delete命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要rollback segment.而Delete是DML操作,需要rollback segment 且花费较长时间.

oracle常见错误及代码

1、ORA-12541:TNS:没有监听器 原因:没有启动监听器或者监听器损坏。若是前者,使用命令net start OracleOraH ome10gTNSListener(名字可能有出入)即可;如果是后者,则使用“Net Configuration Assistant”工具向导之“监听程序配置”增加一个监听器即可(基本不用写任何信息,一路O K。在添加之前可能需要把所有的监听器先删!) 2、ORA-12500:TNS:监听程序无法启动专用服务器进程或ORA-12560:TNS:协议适配器错误 原因:ORACLE的数据库服务没有启动。使用命令net start ORACLESERVICEORA DB(ORADB为数据库名字)即可。如果仍没有解决,请继续向下看。 3、如果数据库服务启动失败,则很有可能是其注册表项值损坏,最好的做法是以下两步: 1)ORADIM -DELETE -SID oradb 删除数据库服务项 2)ORADIM -NEW -SID oradb 新增数据库服务项 注:这个过程中如果出错,就重启计算机! 4、ORA-12154:TNS:能解析服务名 原因:ORACLE的网络服务名没有正确配置。请使用“Net8 Configuration Assistan t”工具向导之“本地网络服务名配置”配置TNS即可。如果仍没有解决,请继续向下看。 5、ORA-1034 :TNS:ORACLE不可用 原因:ORACLE的数据库服务正确启动,但是数据库没有打开! 使用命令: 1)svrmgrl 启动服务管理器

2)connect internal 以internal身份登陆 3)startup 打开数据库 6、ORA-12560:TNS:协议适配器错误(顽固性的) 原因:未知。 解决:必杀技--打开“Windows任务管理器”,杀死ORACLE.exe及ORADIM.exe进程,书写自己的ora_startup.bat,执行之! PS: 1、ora_startup.bat: net start OracleOraHome81TNSListener net start ORACLESERVICEORADB svrmgrl 一般情况下不用,不过有时少不了它的,具体步骤见第5步。 2、ora_shutdown.bat: net stop OracleOraHome81TNSListener net stop ORACLESERVICEORADB 3、ORACLE相关服务名请参见“管理工具”之“服务”中以ORACLE开头的服务名 1、TNS-12154 Error 或ORA-12154 特征:SQL*NET没有找到连接串或别名 原因1:(1)没有找到TNSNAMES.ORA文件,该文件的缺省路径为: windows 95/98 client sql*Net 2.x - ORAWIN95NETWORKADMIN Net8 - ORAWIN95NET80admin

orcel常见问题解决方法

Orcel学习——常见问题解决方法 1、登录oracle过程报错: ORA-12526:TNS:listener:all appropriate instances are in restricted mode。 问题原因: 数据库维护时执行了下面的语句限制用户登陆: Sql代码 ALTER SYSTEM ENABLE RESTRICTED SESSION; 解决办法: Sql代码 ALTER SYSTEM DISABLE RESTRICTED SESSION; 2、设置sga_target非正常值导致ORA-00093 新装了一台oracle服务器 装好后修改参数,结果一不小心 SQL> alter system set sga_target = 1320 scope = spfile; System altered sga_target漏了内存单位M 结果shutdown immediate再startup

SQL> startup; ORA-00093: _shared_pool_reserved_min_alloc must be between 4000 and 0 解决办法 SQL> create pfile = '/oracle/tmp_init.ora' from spfile; File created. SQL> !echo '*.sga_target=200m' >> '/oracle/tmp_init.ora'; SQL> create spfile from pfile = '/oracle/tmp_init.ora'; File created. SQL> startup; ORA-00093: _shared_pool_reserved_min_alloc must be between 4000 and 0 SQL> startup ORA-00093: _shared_pool_reserved_min_alloc must be between 4000 and 0 SQL> exit Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining options [oracle@CallCenter-Data tmp]$ sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production

oracle中常出现的错误信息及解决方案

Oracle中常出现的错误信息及解决方案错误信息一:ORA-00001 违反唯一约束条件 最常见的问题原因是:主键序列化问题,即ORACLE表主键ID突然从已经存在的ID值开始自动生成,导致违反主键唯一性约束; 解决方案,修改序列值,将序列最小值值设置的大一些。如果在修改的时候出现违反唯一约束,说明你对主键值进行修改时出现重复,或者没加where条件。 错误信息二:oracle ORA-01745: 无效的主机/绑定变量名最常见的原因:sql语句中语法错误太多,例:多写了一个冒号或逗号,或者变量名称使用了oracle关键字 解决方案:审查sql语句,更改为正确的sql语句。 错误信息三:ORA-01460: 转换请求无法实现或不合理 常见原因有一下几种: 1.读入到数据库中的字符过长无法实现。 解决方案:将字符串(只有4000)类型改为clob类型 2.客户端和服务端字符集不一致。

解决方案: step1、通过执行select * from V$NLS_PARAMETERS查看服务端字符集 PARAMETER VALUE NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN NLS_CHARACTERSET ZHS32GB18030 NLS_SORT BINARY NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR NLS_DUAL_CURRENCY $ NLS_NCHAR_CHARACTERSET UTF8 NLS_COMP BINARY

相关主题
文本预览
相关文档 最新文档