===========================================================
Managing Control Files
===========================================================
The current location of the controlfiles can be queried from the V$CONTROLFILE view, as shown below.
select name from v$controlfile;
NAME
---------------------------------------------------------------
/u01/app/oracle/product/9.2.0/oradata/DEVSOL/control01.ctl
/u01/app/oracle/product/9.2.0/oradata/DEVSOL/control02.ctl
/u01/app/oracle/product/9.2.0/oradata/DEVSOL/control03.ctl
In order to rename or move these files we must alter the value of the control_files instance parameter.
show parameter control_files
NAME VALUE
---------------- ------------------------------------------ ------------------------------
control_files /u01/app/oracle/product/9.2.0/oradata/DEVSOL/control01.ctl, /u01/app/oracle/product/9.2.0/oradata/DEVSOL/control02.ctl, /u01/app/oracle/product/9.2.0/oradata/DE
To move or rename a controlfile do the following:
* Alter the control_files parameter using the ALTER SYSTEM comamnd.
* Shutdown the database.
* Rename the physical file on the OS.
* Start the database.
The following SQL*Plus output shows how this is done for an instance using an spfile. For instances using a pfile replace the spfile manipulation steps with an amendment of the parameter in the init.ora file.
ALTER SYSTEM SET control_files='/new_path/control01.ctl', '/new_path/control02.ctl', '/new_path/control03.ctl' SCOPE=SPFILE;
SHUTDOWN IMMEDIATE!mv /old_path/control01.ctl /new_path/control01.ctl!mv /old_path/control02.ctl /new_path/control02.ctl!mv /old_path/control03.ctl /new_path/control03.ctl
STARTUP
Repeating the initial query shows that the the CONTROLFILES has been renamed in the data dictionary.
select name from v$controlfile;
2jliu
发表于:2008.07.03 14:45
::分类:
(
@EBS
)
::阅读:(6次)
::
评论
(0)
===========================================================
Managing Logfiles
===========================================================
The current location of the logfiles can be queried from the V$LOGFILE view, as shown below.
SELECT member FROM v$logfile;
MEMBER
--------------------------------------------------------
/u01/app/oracle/product/9.2.0/oradata/DEVSOL/redo01.log
/u01/app/oracle/product/9.2.0/oradata/DEVSOL/redo02.log
/u01/app/oracle/product/9.2.0/oradata/DEVSOL/redo03.log
To move or rename a logfile do the following:
* Shutdown the database.
* Rename the physical file on the OS.
* Start the database in mount mode.
* Issue the ALTER DATABASE RENAME FILE command to rename the file within the Oracle dictionary.
* Open the database.
The following SQL*Plus output shows how this is done.
SHUTDOWN IMMEDIATE!mv /old_path/redo01.log /new_path/redo01.log
!mv /old_path/redo02.log /new_path/redo02.log
!mv /old_path/redo03.log /new_path/redo03.log
STARTUP MOUNT
ALTER DATABASE RENAME FILE '/old_path/redo01.log'' TO '/new_path/redo01.log';
ALTER DATABASE RENAME FILE '/old_path/redo02.log'' TO '/new_path/redo02.log';
ALTER DATABASE RENAME FILE '/old_path/redo03.log'' TO '/new_path/redo03.log';
ALTER DATABASE OPEN;
Repeating the initial query shows that the the logfile has been renamed in the data dictionary.
SELECT member FROM v$logfile;
2jliu
发表于:2008.07.03 14:43
::分类:
(
@EBS
)
::阅读:(6次)
::
评论
(0)
===========================================================
回味奥运前期发生的种种怪象
===========================================================
是谁在丢人,是谁在撒谎,是谁在统治,是谁在挣扎,是谁在无助...
----非政府也?
俯卧撑名人语录
1.给我做三下俯卧撑,我也能推动地球。——阿基米得
2.如果我曾经看得远一点,是因为我比别人多做了三下俯卧撑。——牛顿
3.做俯卧撑时运动速度大小,取决于你选取的参照物。——爱因斯坦
4.天才就是百分之九十九的汗水加上三个俯卧撑。——爱迪生
5.俯卧撑即合理。——黑格尔
6.做俯卧撑还是立卧撑,这是个问题。——哈姆雷特
7.俯卧撑尚未完成,同志们仍需努力。——孙中山
8.我撑故我在。——笛卡尔
9.俯卧撑已经做三下了,胜利还会远吗?——雪莱
10.世界上本来是没有路的,做俯卧撑的人多了,也就成了路。——鲁迅
11.做自己的俯卧撑,让别人说去吧!——但丁
12.我有一个梦想,有这麽一天,每一个黑人都可以自由地做俯卧撑,而没有人去问他们为什么!——马丁.路德.金
13.俯,我所欲也;撑,亦我所欲也!——孟子
14.轻轻的我撑起来了,正如我轻轻地俯下,我挥一挥衣袖,不带走一丝尘土!——徐志摩
2jliu
发表于:2008.07.03 13:07
::分类:
(
生活的味道
)
::阅读:(4次)
::
评论
(0)
===========================================================
Finding the Object
===========================================================
db file sequential read
db file scattered read
buffer busy waits
Use the following query to find the object being accessed:
SELECT segment_owner, segment_name
FROM DBA_EXTENTS
WHERE file_id = &p1
AND &p2 between block_id AND block_id + blocks - 1 ;
2jliu
发表于:2008.06.30 17:15
::分类:
(
@EBS
)
::阅读:(8次)
::
评论
(0)
===========================================================
如何确定一条SQL为何没有使用MV进行查询重写
===========================================================
有时候我们在使用MV进行查询重写时,会发现某条SQL应该使用MV重写,但是却没有重写。没有进行查询重写的原因很多,要找出其中的原因,还是要花一些功夫的。为此,oracle提供了dbms_mview.explain_rewrite过程来帮助我们确定为何一条SQL语句没有进行查询重写。
查看全文
2jliu
发表于:2008.06.30 16:35
::分类:
(
@EBS
)
::阅读:(10次)
::
评论
(0)
===========================================================
swap概念理解
===========================================================
作用
Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。这种现象对于计算机使用者是经常遇到的。
有一点要声明的是,并不是所有从物理内存中交换出来的数据都会被放到Swap中(如果这样的话,Swap会不堪重负),有相当一部分的数据直接交换到文件系统。例如,有的程序会打开一些文件,对文件进行读写(其实每个程序都至少打开一个文件,那就是运行程序本身),当这些程序的内存空间需要交换出去时,文件部分的数据就没有必要放到Swap空间中了,如果是读文件操作,那么内存数据直接就释放了,不需要交换出来,因为下次需要时,直接从文件系统就能恢复;如果是写文件,只需要将变化的数据保存到文件中,以便恢复。但是那些用malloc(3C)和new函数生成的对象的数据则不同,需要Swap空间,因为它们在文件系统中没有相应的“储备”文件,因此被称为“匿名”(Anonymous)的内存数据,这类数据还包括堆栈中的一些状态和变量数据等,所以说,Swap空间是“匿名”数据的交换空间。
Swap的配置对性能的影响
太多的Swap空间会浪费磁盘的空间,而太少的Swap空间,系统则会发生错误。
如果系统的物理内存用光了,你的系统就会跑得慢,但仍能运行;如果Swap空间用光了,那么系统就会发生错误。例如,Web服务器能根据不同的请求数量衍生出多个服务进程(或线程),如果Swap空间用完,则服务进程无法进动,通常会出现"
application is out of memory"的错误,严重时会造成服务进程的死锁。因此Swap空间的分配是很重要的。
通常情况下,Swap空间应大于或等于物理内存的大小,最小不应小于64M,通常Swap空间的大小应是物理内存的2-2.5倍(Solaris 2以上的版本有所变化,见下文)。但根据不同的应用,应有不同的配置:如果是小的桌面系统,只需要较小的Swap空间,而大的服务器系统则视情况不同需要不同大小的Swap空间。特别是
数据库服务器和Web服务器会随着访问量的增加,对Swap 空间的要求也会增加,具体配置参见各自服务器产品的说明。
另外,Swap分区的数量对性能也有很大的影响。因为Swap交换的操作是磁盘I/O的操作,如果有多个Swap交换区,Swap空间的分配会以轮流的方式操作于所有的Swap,这样会大大均衡I/O的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间位于等待状态,效率很低,用性能监视工具就会发现,此时的CPU并不很忙,而系统却慢,这说明,瓶颈在I/O上,依靠提高CPU的速度是解决不了问题的。
查看全文
2jliu
发表于:2008.06.30 12:45
::分类:
(
Linux/Unix
)
::阅读:(4次)
::
评论
(0)
===========================================================
solaris10中增加swap空间
===========================================================
添加swap文件:
1、鉴别一个文件系统是否有足够的空间来创建swap空间;
2、创建一个swap文件目录:
# mkdir -p /usr/local/swap
3、在 /usr/local/swap目录里创建一个大约20MB的swap文件,命名为 swapfile。
# mkfile 20m /usr/local/swap/swapfile
4、向系统swap空间中添加swap文件:
# swap -a /usr/local/swap/swapfile
5、列出修改后的swap空间信息:
# swap -l
swapfile dev swaplo blocks free /dev/dsk/c0t0d0s1 136,9 16 1048304 1048304 /usr/local/swap/swapfile - 16 40944 40944
6、列出修改后的swap空间信息:
# swap -s total: 41672k bytes allocated + 5416k reserved = 47088k used, 901200k available。
7、当系统重启后自动加载新swap空间信息: # vi /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options ... /usr/local/swap/swapfile - - swap - no -
二,删除创建的swap片:
# swap -d /dev/dsk/c1t3d0s1或者从/etc/vfstab 文件中删除
三、删除swap文件:
1、从当前的swap配置文件中删除swap文件:
# swap -d /usr/local/swap/swapfile
2、删除swap文件占用的磁盘空间:
# rm /usr/local/swap/swapfile
3、编辑/etc/vfstab文件以删除当系统重启时启用自定义的swap空间。
查看全文
2jliu
发表于:2008.06.30 10:31
::分类:
(
Linux/Unix
)
::阅读:(6次)
::
评论
(0)
===========================================================
使用dbms_stats包收集统计数据
===========================================================
dbms_stats包问世以后,Oracle专家可通过一种简单的方式来为CBO收集统计数据。目前,已经不再推荐你使用老式的分析表和dbms_utility方法来生成CBO统计数据。那些古老的方式甚至有可能危及SQL的性能,因为它们并非总是能够捕捉到有关表和索引的高质量信息。CBO使用对象统计,为所有SQL语句选择最佳的执行计划。
查看全文
2jliu
发表于:2008.06.25 16:00
::分类:
(
@EBS
)
::阅读:(8次)
::
评论
(0)
===========================================================
关于数据库与数据仓库的区别详细介绍
===========================================================
简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。
数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。
数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID。
单从概念上讲,有些晦涩。任何技术都是为应用服务的,结合应用可以很容易地理解。以银行业务为例。数据库是事务系统的数据平台,客户在银行做的每笔交易都会写入数据库,被记录下来,这里,可以简单地理解为用数据库记帐。数据仓库是分析系统的数据平台,它从事务系统获取数据,并做汇总、加工,为决策者提供决策的依据。比如,某银行某分行一个月发生多少交易,该分行当前存款余额是多少。如果存款又多,消费交易又多,那么该地区就有必要设立ATM了。
显然,银行的交易量是巨大的,通常以百万甚至千万次来计算。事务系统是实时的,这就要求时效性,客户存一笔钱需要几十秒是无法忍受的,这就要求数据库只能存储很短一段时间的数据。而分析系统是事后的,它要提供关注时间段内所有的有效数据。这些数据是海量的,汇总计算起来也要慢一些,但是,只要能够提供有效的分析数据就达到目的了。
数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它决不是所谓的“大型数据库”。那么,数据仓库与传统数据库比较,有哪些不同呢?让我们先看看W.H.Inmon关于数据仓库的定义:面向主题的、集成的、与时间相关且不可修改的数据集合。
“面向主题的”:传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据;数据仓库侧重于数据分析工作,是按照主题存储的。这一点,类似于传统农贸市场与超市的区别—市场里面,白菜、萝卜、香菜会在一个摊位上,如果它们是一个小贩卖的;而超市里,白菜、萝卜、香菜则各自一块。也就是说,市场里的菜(数据)是按照小贩(应用程序)归堆(存储)的,超市里面则是按照菜的类型(同主题)归堆的。
“与时间相关”:数据库保存信息的时候,并不强调一定有时间信息。数据仓库则不同,出于决策的需要,数据仓库中的数据都要标明时间属性。决策中,时间属性很重要。同样都是累计购买过九车产品的顾客,一位是最近三个月购买九车,一位是最近一年从未买过,这对于决策者意义是不同的。
“不可修改”:数据仓库中的数据并不是最新的,而是来源于其它数据源。数据仓库反映的是历史信息,并不是很多数据库处理的那种日常事务数据(有的数据库例如电信计费数据库甚至处理实时信息)。因此,数据仓库中的数据是极少或根本不修改的;当然,向数据仓库添加数据是允许的。
数据仓库的出现,并不是要取代数据库。目前,大部分数据仓库还是用关系数据库管理系统来管理的。可以说,数据库、数据仓库相辅相成、各有千秋。
查看全文
2jliu
发表于:2008.06.23 09:46
::分类:
(
@EBS
)
::阅读:(21次)
::
评论
(0)
===========================================================
ORADEBUG使用详解
===========================================================
今天有朋友问起,好久没用,也都忘了差不多了.
SQL> oradebug setmypid //This will set the current session's pid.
SQL> oradebug dump events 1 //This will dump the events information in the tracefile based on the level
SQL> oradebug tracefile_name //This will return the trace file generated for this event.
查看全文
2jliu
发表于:2008.06.17 11:17
::分类:
(
@EBS
)
::阅读:(76次)
::
评论
(0)
===========================================================
histogram与10053
===========================================================
histogram是oracle为cbo提供更精确的成本估计而设计的一种直方图数据。histogram能提供列的数据分布,每次分析表后列的分布信息将会被保存在统计表里面,分析时默认的histogram size是75,意思就是采用75个buckets来表示数据分布。
histogram分为2种类型,基于高度的histogram和基于值的histogram
查看全文
2jliu
发表于:2008.06.12 14:43
::分类:
(
@EBS
)
::阅读:(23次)
::
评论
(0)
===========================================================
ORACLE的表分析策略
===========================================================
2jliu
发表于:2008.06.10 11:44
::分类:
(
@EBS
)
::阅读:(41次)
::
评论
(0)