SELECT a.ADDRESS,
sql_text,
executions,
rows_processed,
cpu_time,
a.DISK_READS,
a.BUFFER_GETS,
a.ELAPSED_TIME,
a.*
from V$SQLAREA a
WHERE sql_text LIKE '%mazhanling%'
AND sql_text NOT LIKE '%SQLAREA%';
select lpad(' ', 2 * (level - 1)) || operation "Operation",
options "Options",
decode(to_char(id),
'0',
'Cost=' || nvl(to_char(position), 'n/a'),
ob ......
DBA 职责及日常工作职责:
1.安装和升级数据库服务器,以及应用程序工具构建和配置网络环境.
2.熟悉数据库系统的存储结构预测未来的存储需求,制订数据库的存储方案.
3.根据开发人员设计的应用系统需求创建数据库存储结构.
4.根据开发人员设计的应用系统需求创建数据库对象
5.根据开发人员的反馈信息,在必要的时候修改数据库的结构
6.管理数据库的用户维护数据库的安全性
7.控制和监控用户对数据库的存取访问
8.监控和优化数据库的性能
9.制定数据库备份计划,灾难出现时对数据库信息进行恢复
10.备份和恢复数据库
11.联系数据库系统生产厂商,跟踪技术信息
12.解决客户端中间层和服务器的链接问题
13.保证安全连接
每日工作:
1 确保服务器工作状态正常,各类数据库状态正常
2 检查硬盘空间是否够用
3 查看数据库日志,查看跟踪文件,检查 ......
以下是在后台更新易拓ERP数据库时遇到的一个问题:
1.在DB14数据库中将料件号P44开头,并且品名为"塑料袋"的料件改为消耗性料件.
这个简单: UPDATE DB14.ima_file SET ima70 = ‘Y’ WHERE ima01 like ‘P44%’ AND ima02 = ‘塑料袋’;
2.在以B021开头的工单中,相应的下介料件的消耗性状态也作相应变更. 这个麻烦涉及bmb表和ima表才能确定要更改的记录(因为限定了品名).不能直接用UPDATE,最后写了一个存储过程如下:
DECLARE CURSOR my_table IS (SELECT bmb01,bmb03
from DB14.bmb_file,DB14.ima_file
WHERE bmb03 = ima01
AND bmb01 LIKE 'B021%'
AND bmb03 LIKE 'P44%' AND ima02 = '塑料袋');
BEGIN
FOR tab IN my_table LOOP
UPDATE DB14.bmb_file
SET bmb15 = 'Y'
&nbs ......
首先来复习一下行级锁的机制。当一个事务开始时必选先申请一个TX锁(保护回滚段、回滚数据块),只有先申请到回滚段资源后才能开始一个事务,才能进行DML操作。这个动作完成后,事务就可以开始修改数据了。当修改数据表的记录时,遵循以下的操作顺序。
1.获得表的TM锁(保护事务执行过程中其它用户不能修改表结构)
2.在要修改的数据块头部的ITL表中申请一个空闲表项,记录事务号,实际记录的是这个事务要使用的回滚段地址。
3.修改数据块的某条记录时,设置该记录头部的ITL索引指向第2步申请的表项,然后再修改记录内容。修改前需要在回滚段对记录修改前的记录状态做一个copy。
4.当其它用户想并发修改这条记录时,会根据记录头的ITL索引读取数据块头部ITL表项的内容,查看这个事务是否已经提交。
5.如果没有提交,这个用户会等待前一个用户的TX锁的释放。
从上面的工作机制可以看出,无论一个事务修改多少个表的多少记录,该事务真正需要的只是一个TX锁和每个表的TM锁,内存开销非常小。所谓的行级锁只是数据块头、数据记录头的一些字段。所以ORACLE的行级锁虽然有锁的功能,但是没有锁的开销。
举例证明一下:
会话1:
SQL> select * from test;
  ......
今天看到一篇关于ORA_ROWSCN的文章,虽然简短,没有什么实例,但是已经把ORA_ROWSCN大概是怎么回事介绍清楚了。记录一下。
=================================================================================
默认的情况下,每个块中所有的记录的ORA_ROWSCN都是相同的,当块中任意一条记录发生改变的情况下,块中所有记录的ORA_ROWSCN都会变化为最新值,ORA_ROWSCN的最小粒度是块。
当我们使用create table …… rowdependencies;建表的时候,每条记录会有自己的ORA_ROWSCN段,在这种情况下块内的一条记录的更改仅仅会影响该记录的ORA_ROWSCN,不会对块内其他记录的ORA_ROWSCN产生影响。这个时候,ORA_ROWSCN的最小粒度是记录。
这个功能比较适合那些需要做增量刷新的操作,通过ORA_ROWSCN来迅速的找到那些发生变化的块,忽略那些没有发生变化的块,提高了刷新的效率。
写到这的时候,不知道大家有没有想另外的一个问题,那就是ORA_ROWSCN是怎么实现的,使用ORA_ROWSCN有什么注意的事项么?这是我们大家共同的一个问题,仅仅注意到一个功能积极的部分,很少想这个功能是否适合我,使用这个功能会给系统带来什么样子的风险,而往往风险才是我们需要更多 ......
Oracle 10G 数据库文件目录结构
在Oracle Database 10g中,Oracle的目录结构是由Oracle_Base及其子目录Oracle_Home、admin、flash_recovery_area和oradata目录构成的。为方便讨论,用Oracle_Base代表Oracle目录树的根,用Oracle_Home表示根目录下的主目录。
1.Oracle_Base目录
Oracle_Base代表Oracle目录树的根。如果使用Oracle Universal Installer进行安装,则Oracle_Base是指system_drive:\oracle\product\10.2.0。
2.Oracle_Home目录
Oracle_Home主目录位于system_drive:\Oracle_Base之下,它包含与Oracle软件运行有关的子目录和网络文件以及选定的组件等;若在主机上第一次且只安装了Oracle数据库,没有其他Oracle产品,则使用默认的主目录\db_1;如果在同一台主机的同一个根目录下安装多个产品或安装了第2次,则Oracle_Home主目录会以db_n的形式出现,即db_2、db_3等。这也是为什么在Oracle_Base目录可以有多个Oracle_Home目录的缘故。
Oracle_Home目录中包括的主要子目录有:
?\BIN——主要包含用于数据库管理的各种命令等。
?\css——与Oracle Cluster Synchronization服务有关的文件。
?\dbs——存放数据库服务器端 ......