oracle调整记录
- 格式:doc
- 大小:130.50 KB
- 文档页数:7
oracle19c redolog 切换机制标题:Oracle 19c Redo日志切换机制:解析与实施步骤引言Redo日志是Oracle数据库系统中非常重要的组成部分,它记录了对数据库进行的重要操作,以便在发生故障时进行恢复。
在Oracle 19c版本中,改进了Redo 日志的性能和稳定性,并提供了一种新的Redo日志切换机制。
本文将逐步探讨Oracle 19c Redo日志切换机制的实施步骤,帮助读者更好地理解和使用这一功能。
1. Redo日志简介Redo日志是Oracle数据库的重要组成部分,它记录了数据库的变更操作,以便在发生故障时进行恢复。
Redo日志包含了数据库中发生的所有变更操作,例如插入、更新和删除操作,以及对索引和表空间的结构修改等。
通过不断地刷新Redo日志,Oracle数据库确保了数据的持久性和一致性。
2. Oracle 19c Redo日志切换机制的意义在之前的Oracle版本中,Redo日志切换是依靠日志组中的日志序列号的连续递增来实现的。
当当前日志组快要用完时,Oracle会自动切换到下一个可用的日志组并递增日志序列号。
然而,在高负载的数据库环境中,频繁的Redo日志切换可能导致性能下降,因为切换操作会引起额外的IO开销。
为了解决这个问题,Oracle 19c引入了新的Redo日志切换机制,该机制可以根据数据库的负载情况来进行切换,以最小化额外的IO开销。
这个新机制将在下面的步骤中详细解释。
3. 步骤一:启用自动切换在Oracle 19c中,需要先启用自动切换功能才能使用新的Redo日志切换机制。
可以通过以下命令启用自动切换:ALTER DATABASE ENABLE THREAD SPIN这个命令会开启一个线程监控数据库的负载情况,并在必要时触发Redo日志的切换。
4. 步骤二:配置自动切换的阈值在默认情况下,Oracle 19c使用了一组预定义的阈值来监控数据库的负载情况,然后触发Redo日志的切换。
一、概述Oracle中的prior关键字是一种用于处理树形结构数据的特殊语法,它常常用于对自身表进行递归查询,或者在连接查询中使用。
在实际应用中,prior关键字的使用可以帮助我们快速有效地处理复杂的数据结构,并且提高查询效率。
二、递归查询1. prior关键字在递归查询中的使用在处理树形结构数据时,通常需要进行递归查询以获取整个树的数据。
这时,prior关键字就可以派上用场了。
通过在查询语句中使用prior关键字,我们可以实现从父节点向子节点的递归查询,轻松地获取整个树形结构的数据。
2. 使用prior关键字实现递归查询的示例我们有一个部门表,表中包含部门ID和上级部门ID两个字段。
如果我们想要查询某个部门及其所有下属部门的信息,可以使用prior关键字来实现递归查询。
示例代码如下:```sqlselect *from departmentstart with department_id = :dept_idconnect by prior department_id = parent_department_id;```以上代码中,我们通过start with指定了起始部门ID,然后通过connect by prior指定了递归关系,从而实现了部门及其所有下属部门的查询。
三、连接查询1. prior关键字在连接查询中的使用除了在递归查询中的应用,prior关键字还可以在连接查询中发挥作用。
通过在连接查询中使用prior关键字,我们可以实现对历史数据的查询、版本间的比较等功能,极大地丰富了数据查询的灵活性和功能性。
2. 使用prior关键字实现连接查询的示例假设我们有一个员工表,表中包含员工ID、入职日期和离职日期等字段。
如果我们想要查询某个员工在入职后的所有薪资记录,可以使用prior关键字来实现连接查询。
示例代码如下:```sqlselect *from salary_historywhere employee_id = :emp_idand salary_date > (select hire_date from employees where employee_id = :emp_id)start with salary_date = hire_dateconnect by prior salary_date = prior_salary_date;```在以上示例中,我们通过start with和connect by prior关键字,实现了对员工在入职后所有薪资记录的查询,从而满足了具体业务需求。
ORACLE新增记录更新记录在ORACLE数据库中,新增记录和更新记录是两个主要的操作。
新增记录是将新的数据插入到数据库中,而更新记录是修改现有数据的内容。
下面将详细介绍如何在ORACLE中进行新增记录和更新记录的操作。
新增记录:在ORACLE数据库中新增记录有以下几种方式:1.使用INSERTINTO语句:INSERTINTO是最常用的新增记录的方法。
语法如下:```sqlINSERT INTO table_name (column1, column2, column3, ...)VALUES (value1, value2, value3, ...);```其中,table_name是要插入记录的表名,column1, column2, column3是要插入记录的列名,value1, value2, value3是要插入的值。
例如,要向名为"employees"的表中新增一条员工记录,可以使用以下语句:```sqlINSERT INTO employees (employee_id, first_name, last_name, hire_date)VALUES (1, 'John', 'Doe', SYSDATE);```这将向"employees"表中插入一行包含员工ID为1,名为"John",姓为"Doe",雇佣日期为当前日期的记录。
2.使用SELECTINTO语句:SELECTINTO语句可以从一个表中选择数据并插入到另一个表中。
语法如下:```sqlSELECT column1, column2, column3, ...INTO new_tableFROM old_tableWHERE condition;```其中,column1, column2, column3是要插入的列名,new_table是要插入记录的表名,old_table是要选择数据的表名,condition是选择数据的条件。
ORACLE触发器实现记录对表的INSERT、UPDATE、DELETE操作创建表建立测试源表EMP1CREATE TABLE EMP1 AS SELECT * FROM SCOTT.EMP;这样可以建立一个带有一定测试数据的EMP1表建立修改日志表:-- Create tablecreate table MODI_EMP1_LOG(modi_time TIMESTAMP(6),table_id VARCHAR2(20),empno VARCHAR2(20),modi_type VARCHAR2(20),empname_old VARCHAR2(20),empname_new VARCHAR2(20),data_date DATE);-- Add comments to the tablecomment on table MODI_EMP1_LOGis '修改EMP1表日志表';-- Add comments to the columnscomment on column MODI_EMP1_LOG.modi_timeis '修改时间';comment on column MODI_EMP1_LOG.table_idis '修改的表名';comment on column MODI_EMP1_LOG.empnois '修改的员工号';comment on column MODI_EMP1_LOG.modi_typeis '修改类型';comment on column MODI_EMP1_LOG.empname_oldis '修改前的员工名';comment on column MODI_EMP1_LOG.empname_newis '修改后的员工名';comment on column MODI_EMP1_LOG.data_dateis '修改日期';创建触发器CREATE OR REPLACE TRIGGER MODI_EMP1_1BEFORE UPDATE OR INSERT OR DELETE ON EMP1REFERENCING NEW AS NEW OLD AS OLDFOR EACH ROW--DECLARE MODITIME TIMESTAMP;--TABLEID VARCHAR2(20);--MODI_TYPE VARCHAR2(20);--DATA_DATE DATE;BEGIN--SELECT SYSDATE INTO MODITIME FROM DUAL;--SELECT 'EMP1' INTO TABLEID FROM DUAL;--SELECT 'UPDATE' INTO MODI_TYPE FROM DUAL;--SELECT TRUNC(SYSDATE) INTO DATA_DATE FROM DUAL;IF UPDATING THENIF :OLD.ENAME<>:NEW.ENAME THENINSERT INTO MODI_EMP1_LOGVALUES(SYSDATE,'EMP1',:OLD.EMPNO,'UPDATE',:OLD.ENAME,:NEW.ENAME,TRUNC(SYSDATE));--INSERT INTO MODI_EMP1_LOGVALUES(MODITIME,TABLEID,:NEW.EMPNO,MODI_TYPE,:OLD.ENAME,:NEW.ENAME,DATA_DATE);END IF;END IF;IF INSERTING THENINSERT INTO MODI_EMP1_LOGVALUES(SYSDATE,'EMP1',:NEW.EMPNO,'INSERT',NULL,:NEW.ENAME,TRUNC(SYSDATE));END IF;IF DELETING THENINSERT INTO MODI_EMP1_LOGVALUES(SYSDATE,'EMP1',:OLD.EMPNO,'DELETE',:OLD.ENAME,NULL,TRUNC(SYSDATE));END IF;END;测试select * from MODI_EMP1_LOG;insert into emp1 values(8888,'test','tjob',9999,date'2018-07-10',9999,8888,66);commit;select * from MODI_EMP1_LOG;delete from emp1 where empno=8888;commit;select * from MODI_EMP1_LOG;。
oracle sql操作日志概述及解释说明1. 引言1.1 概述Oracle SQL操作日志是一种记录数据库系统中执行的SQL语句细节和相关信息的功能。
通过启用和配置SQL操作日志,我们可以跟踪和监控数据库的操作行为,包括查询、更新和删除等操作。
这对于系统维护人员和开发人员来说非常重要,因为它们可以帮助我们理解数据库系统中发生的事情,并且在故障排查和性能优化方面提供有价值的信息。
1.2 文章结构本文将从多个方面详细介绍Oracle SQL操作日志。
首先,我们将解释SQL操作日志的含义,并阐明其在数据库系统中的作用。
接着,我们将讨论开启和配置SQL操作日志功能的方法。
然后,我们将深入探讨SQL操作日志中涉及的关键要点,如记录SQL语句执行细节的作用、日志文件保存路径和格式说明,以及使用SQL操作日志进行故障排查和性能优化的方法。
最后,在结论部分,我们将总结文章主要内容及观点,并对Oracle SQL操作日志未来的发展趋势进行展望。
1.3 目的本文旨在向读者提供关于Oracle SQL操作日志的全面概述及解释说明。
通过阅读本文,读者将了解到SQL操作日志的重要性和作用,以及如何开启和配置该功能。
此外,读者还将熟悉SQL操作日志中涉及的关键要点,并学习到使用SQL 操作日志进行故障排查和性能优化的方法。
最终,读者将对Oracle SQL操作日志有一个清晰的认识,并能够在实际工作中灵活应用该功能。
2. 正文正文部分将深入探讨Oracle SQL操作日志的概念、功能以及使用方法。
本节将具体介绍SQL操作日志的基本原理和应用场景。
2.1 Oracle SQL操作日志的基本原理在Oracle数据库中,SQL操作日志被用于记录对数据库进行的每个操作。
这些操作包括查询、更新、插入和删除等。
当用户执行一个SQL语句时,Oracle会自动将该SQL语句以及其执行结果等相关信息记录到日志文件中。
2.2 Oracle SQL操作日志的主要作用SQL操作日志起着重要的作用,尤其在故障排查和性能优化方面。
oracle取随机记录的几种方法一、前言在实际开发中,随机取记录是一个常见的需求。
Oracle数据库提供了多种方法来实现这个目标。
本文将介绍Oracle取随机记录的几种方法,并分别进行详细说明。
二、使用ROWNUM和ORDER BY RAND()1. 使用ROWNUM和ORDER BY RAND()的原理ROWNUM是Oracle数据库中自带的一个伪列,它可以用来对查询结果进行编号。
ORDER BY RAND()是MySQL中随机排序的方式,但在Oracle中并没有原生支持。
因此,我们可以通过使用ROWNUM和ORDER BY RAND()结合起来使用来实现随机取记录的功能。
2. 使用ROWNUM和ORDER BY RAND()的步骤(1)首先,我们需要查询出所有符合条件的记录,并按照RAND()函数进行排序:SELECT * FROM table_name ORDER BY dbms_random.value;(2)然后,在查询结果上应用ROWNUM条件:SELECT * FROM (SELECT * FROM table_name ORDER BY dbms_random.value) WHERE ROWNUM <= num;其中num表示需要取出的记录数。
3. 使用ROWNUM和ORDER BY RAND()需要注意的问题由于使用了子查询,所以效率相对较低。
此外,如果表中存在大量数据,则可能会导致性能问题。
三、使用DBMS_RANDOM包1. 使用DBMS_RANDOM包的原理DBMS_RANDOM包是Oracle数据库提供的一个随机数生成器。
它可以生成伪随机数序列,并且具有高度的随机性。
因此,我们可以使用DBMS_RANDOM包来实现随机取记录的功能。
2. 使用DBMS_RANDOM包的步骤(1)首先,我们需要查询出所有符合条件的记录,并对其进行编号:SELECT ROWID, column1, column2, ... FROM table_name;(2)然后,使用DBMS_RANDOM包生成一个随机数作为查询条件:SELECT ROWID, column1, column2, ... FROM table_name WHERE DBMS_RANDOM.VALUE(0, 1) <= probability;其中probability表示需要取出的记录数与总记录数之间的比例。
oracle 表结构变动日志Oracle表结构变动日志在Oracle数据库中,表结构的变动是非常常见的操作,包括新增、修改或删除表的列、索引或约束等。
对于这些表结构的变动,我们需要及时记录并进行日志管理,以便后续的查询、跟踪和恢复。
本文将介绍如何使用Oracle数据库的特性来记录和管理表结构的变动日志。
1. 表结构变动日志的需求表结构变动日志记录的主要目的有:- 追踪表结构变动的历史记录,方便进行历史查询和回滚操作;- 提供给开发人员、DBA等相关人员查看和分析表结构的变动情况;- 保留对表结构变动的审计跟踪,便于监控和追责。
2. 使用DDL触发器记录表结构变动Oracle数据库可以使用DDL触发器(DDL trigger)来捕捉表结构的变动,并记录到指定的日志表中。
DDL触发器可以在表创建、修改或删除时触发,我们可以通过定义触发器来实现表结构变动的日志记录。
以下是一个DDL触发器的示例:```CREATE OR REPLACE TRIGGER log_table_structure_changes AFTER CREATE OR ALTER OR DROP ON SCHEMADECLAREv_sql_text VARCHAR2(4000);BEGINv_sql_text := ORA_SQL_TXT;INSERT INTO table_structure_log(table_name, operation_type, ddl_sql_text, change_timestamp)VALUES(ora_describe(table_name), ora_sysevent, v_sql_text, SYSDATE);END;/```上述触发器在表结构变动时会将变动信息记录到名为table_structure_log的日志表中,其中包含表名、操作类型、DDL语句文本和变动时间戳等信息。
3. 日志表结构设计为了存储表结构变动的日志信息,我们需要设计合适的日志表结构。
一、了解归档日志归档日志是Oracle数据库中一种重要的日志记录方式,它记录了数据库中所有发生的修改操作,包括插入、更新、删除等。
归档日志的作用是用于数据库的恢复和回滚操作,确保数据库的完整性和可靠性。
二、启用归档模式1. 确认数据库当前日志模式在连接数据库后,可以使用以下SQL语句确认当前的数据库日志模式:```SELECT log_modeFROM v$database;```如果返回结果为ARCHIVELOG,则表示数据库已经处于归档模式;如果返回结果为NOARCHIVELOG,则表示数据库尚未启用归档模式。
2. 修改数据库为归档模式如果数据库尚未启用归档模式,可以使用以下步骤将数据库修改为归档模式:```SHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;```通过以上步骤,数据库将被修改为归档模式,并可以开始处理归档日志。
三、配置归档参数1. 确认归档目标归档目标是指归档日志文件的存储位置。
可以使用以下SQL语句确认当前的归档目标:```SHOW PARAMETER LOG_ARCHIVE_DEST;```如果没有设置归档目标,需要通过以下SQL语句进行设置:```ALTER SYSTEM SETLOG_ARCHIVE_DEST_1='LOCATION=/archivelog';```其中,/archivelog为归档日志存储的路径,可以根据实际情况进行调整。
2. 确认归档模式归档模式是指数据库在何种情况下触发归档日志的记录。
可以使用以下SQL语句确认当前的归档模式:```SHOW PARAMETER LOG_ARCHIVE_START;```如果归档模式未启用,需要通过以下SQL语句进行设置:```ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE;```通过以上步骤,归档参数将被正确配置,数据库可以开始处理归档日志。
oracle 调整记录顺序的方法【实用版3篇】《oracle 调整记录顺序的方法》篇1在Oracle 中,有多种方法可以调整记录顺序。
以下是一些常用的方法:1. 使用`SELECT` 语句和`ORDER BY` 子句:这是最简单的方法,通过`SELECT` 语句和`ORDER BY` 子句对查询结果进行排序。
例如,要按照`id` 列升序排列记录:```sqlSELECT * FROM your_table ORDER BY id;```2. 使用`SELECT` 语句和`DESC` 或`ASC` 关键字:使用`DESC` 或`ASC` 关键字可以分别实现降序和升序排列。
例如,要按照`id` 列升序排列记录:```sqlSELECT * FROM your_table ORDER BY id ASC;```3. 使用`UPDATE` 语句和`SET` 子句:如果需要将表中的记录按照某个列进行排序,可以使用`UPDATE` 语句和`SET` 子句,将表中的记录按照指定列的值进行排序。
例如,要将`your_table` 表按照`id` 列升序排序:```sqlUPDATE your_table SET id = CASE WHEN id < (SELECT MIN(id) FROM your_table) THEN id ELSE id - 1 END;```这段SQL 语句会将`your_table` 表中的每个记录的`id` 值减去一个值,使得`id` 列的值升序排列。
4. 使用`INSERT` 语句和`SELECT` 子句:如果需要将表中的记录按照某个列进行排序,可以使用`INSERT` 语句和`SELECT` 子句,将表中的记录按照指定列的值进行排序。
例如,要将`your_table` 表按照`id` 列升序排序:```sqlINSERT INTO your_table_sorted (SELECT * FROM your_table ORDER BY id ASC);```这段SQL 语句会创建一个名为`your_table_sorted` 的新表,并将`your_table` 表中的记录按照`id` 列的值升序排列插入到新表中。
Oracle查询今日昨日本周本月和本季度的所有记录对于Oracle数据库,查询今日、昨日、本周、本月和本季度的所有记录可以使用以下SQL语句:1.查询今日的所有记录:```SELECT * FROM your_tableWHEREDATE_COLUMN>=TRUNC(SYSDATE)ANDDATE_COLUMN<TRUNC(SYSDATE +1);```这个查询使用了TRUNC函数将当前日期截断为整天,并使用>=和<操作符筛选出日期是今天的所有记录。
2.查询昨日的所有记录:```SELECT * FROM your_tableWHEREDATE_COLUMN>=TRUNC(SYSDATE-1)ANDDATE_COLUMN<TRUNC(SYSDATE);```这个查询使用了TRUNC函数将当前日期减去1天,然后使用>=和<操作符筛选出日期是昨天的所有记录。
3.查询本周的所有记录:```SELECT * FROM your_tableWHEREDATE_COLUMN>=TRUNC(SYSDATE,'IW')ANDDATE_COLUMN<TRUNC(SY SDATE+7,'IW');```这个查询使用了TRUNC函数的第二个参数'IW',它表示将日期截断为当前周的第一天(星期日)。
使用>=和<操作符筛选出日期是本周的所有记录。
4.查询本月的所有记录:```SELECT * FROM your_tableWHEREDATE_COLUMN>=TRUNC(SYSDATE,'MM')ANDDATE_COLUMN<ADD_MONT HS(TRUNC(SYSDATE,'MM'),1);```这个查询使用了TRUNC函数的第二个参数'MM',它表示将日期截断为当前月的第一天。
Oracle 10g升级历史回顾
背景:
为适应GUIDER及EDI Gateway新系统需要,升级以下内容:
-服务器:
Windows 2000 Enterprise → Windows 2003 Standard Enterprise
Oracle 8i → Oracle 10g R2-10.2.0.1
-客户端:
OS → Windows XP2
Connect → Oracle client 8i
-升级日期:
2007-03-26 9:00~03-27 03h
-配置概述
数据库配置:高级自定义配置
访问方式:DEDICATE(专用)
INSTANCE:PROD
无OracleServiceProd服务、无3个Rescover(只有1个)
2007-03-27
增加webuse用户及专用tablespace,在oracle 10g中,不能用独立temp space,共用已安装temp space,名称:TEMP
Webuse数据库空间专用IES_WEB_PROD_DEF,Profile文件专用IES_WEB_PROD,临时表空间共用TEMP
试访问网站,发现速度比以前慢了很多。
2007-03-28
Alter_prod.log出现以下错误:listener could not hand off client connection,但使用正常,没有注意它
ERROR2:28-MAR-2007 18:50:31
08-APR-2007 15:15:21 * (CONNECT_DA TA=(SERVICE_NAME=prod)(CID=(PROGRAM=D:\ctms_pb10\exe\hutc hison.exe)(HOST=MBD5F-OP-12)(USER=OP164))) * (ADDRESS=(PROTOCOL=tcp)(HOST=128.6.2.24)(PORT=1543)) * establish * prod * 12518
TNS-12518: TNS:listener could not hand off client connection
TNS-12560: TNS:protocol adapter error
TNS-00530: Protocol adapter error
32-bit Windows Error: 233: Unknown error
2007-03-29
用户反映,使用查询比以前慢了很多,试一下网站查询,确实是比之前慢了很多,调了initxx.ora很多参数,最后设置parallel_max_server=7(数值=CPU数量*2-1),问题解决
2007-03-30
修改SGA内存为1.2G(原默认892M),未弄清服务器访问是哪种方式情况下,改大SGA 是错误的,DEDICATE方式SESSION主要是用PGA内存,而不是SGA内存。
2007-04-05
出现hand off client connection,认为是PB transaction编程有问题,试把系统管理transaction改为PB管理transaction,设置this.settranspool(12,20,8)
2007-04-10
EDI Getway开始投入使用,开始使用情况看起来正常
2007-04-11
EDI试导入COSC大船EDI资料,导入过程正常,但导入内容为空;且在开发环境可以看到导入内容,但在运行环境导入内容为空
经检查,PB档所有资料库需要全部编译才能正常
2007-04-13
Guider开始投入使用,使用过程正常。
MARK香港一行回去后中午,所有客户机突然都挂机,出现TNS-12518: TNS:listener could not hand off client connection现象,怀疑process正常太小,超出范围所致,重设置process=400(原250)。
经检查,用户对话使用数大约在200个左右会经常出现此类情况。
修改后,hand off现象好一点,但出现下列新错误现象:
ERROR1:Fri Apr 13 17:00:04 2007
出现不频繁,没有注意它。
2007-04-22
出现hand off、out of process memory错误比较多,一直认为是内存问题,一直在SGA 及PGA二个参数中调整。
24日开始出现新错误:
ERROR3:Tue Apr 24 14:59:57 2007
Fri Apr 27 11:00:31 2007
Process startup failed, error stack:
Fri Apr 27 11:00:31 2007
Errors in file d:\oracle\product\10.2.0\admin\prod\bdump\prod_psp0_2276.trc: ORA-27300: OS system dependent operation:spcdr:9261:4200 failed with status: 997 ORA-27301: OS failure message: 重叠 I/O 操作在进行中。
ORA-27302: failure occurred at: skgpspawn
现在出现以上问题都很频繁了,一天可以出现几十次,严重影响了码头操作。
2007-04-25
网上也有介绍’hand off client connection’这个问题是由于客户是XP2防火墙所致,试去掉客户端防火墙,问题依然存在。
也有介绍’hand off client connection’这个问题是由于频繁使用动态端口所致,在注册表中修改1521端口在防火墙通过,且固定使用1521这个端口,还是不能解决问题。
注册表修改内容:
2007-04-26
擦看系统->我的电脑->属性,发现报告内存只有3.5G(物理内存应该是4G),以为是一条512M内存坏所致,在下午3点(汕头举行‘同一首歌’封场)准备清理离开办公室情况下,把4条512M内存都拨出来,重新设置Oracle使用内存大小,SGA=500M(原 1.2G),PGA=163M(之前300M),错误现象依旧。
情况报告香港MARK,MARK认为现在应该是内存不够问题,应该快速检测退下来内存是否有问题及准备采购问题。
按MARK要求,设置parallel_max_server=5试一试,还是没有效果。
联系HP在汕头工程师,答应29日下午1点到2点之间测试。
2007-04-28
27、28日出现客户端错误退出现象非常频繁,用户到了不可忍受程度,都是提示out of process memory,干脆改大PGA到一个很大值800M。
2007-04-29
错误依然发生,只有一个办法增大内存试一试了。
下午1点,HP工程师准时到场,测试后硬件应该没有问题,重新插回2G内存,系统还是显示3.5G内存,询问HP工程师,HP工程师认为是512M被陈列卡等占用所致,且刚好在4G内存才会出现这种情况,2G不会。
趁可以停机一个钟头机会,设置其它参数:
⏹在boot.ini加入/3GB参数,使用PGA虚拟内存可以用到3G,而不局限于2G
⏹修改listener.ora加入DIRECT_HANDOFF_TTC_LISTENER = OFF,禁止跟踪
⏹SGA=800M,PGA=620M
控制上网访问配置:旧配置:
新配置:
修改后观察,问题没有再出现,访问对话达到250个(之前不到200个问题已发生了),系统还应该是正常了。
2007-04-30
情况比较稳定,询问用户,再也没有之前发生错误,看到真的是内存方面为主要原因,且Oracle 10g占用内存比较多,2G虽然表面看起来够用,但实际是不够用的,内存多还是好事。
DIRECT_HANDOFF_TTC_LISTENER = OFF是什么意思,需要再弄明白,总之网上介绍可用方法都用上先。
看来可以安心过个‘五一’了。
错误列表:
1、主要错误号:TNS-12518
2、主要错误号:ORA-04030
3、主要错误号:ORA-27300
发生以上问题,先从内存方面分析原因,再从系统、Oracle配置方面分析原因,内存方面察看:
-是否有足够内存应付安装Oracle版本?
-足够情况下,操作系统分配Oracle可用内存是多少?
-在OS报告3.5G(物理4G)是否正常?。