ITPub博客

首页 > 数据库 > Oracle > 阅读sg日记

阅读sg日记

原创 Oracle 作者:sembh 时间:2010-07-09 22:58:54 0 删除 编辑

5月23日成果:

共享池:库缓存区:存储最近执行的代码。

数据字典缓存区:存储最近使用的对象定义。

高速缓存区:Oracle执行sql的工作区,所有被频繁访问的数据都位于此。

日志缓冲区:高速缓存区的一个分级区域。

SMON(系统监视),PMON(进程监视),DBWN(数据写入器),LGWR(日志写入器),CKPT(检查点),其中LGWR是把数据变化实时写入联机重做日志文件,这样就保证了不丢失任何数据。

对控制文件的添加,删除,移动操作,必须在停机时间进行。一个数据库一个控制文件,但一般必须创建其副本。

联机重做日志文件的大小固定,当前组的文件成员会满,所以必须执行日志切换。每个联机日志重做日志文件组的成员数取决于适当的容错级别。对联机重做日志文件的添加,删除,移动操作,可以在联机时间进行。一个数据库,至少两组重做日志文件,每组至少具有一个成员。但一般必须增加组和组的成员。


一个数据库,至少创建两个数据文件,较大的数据库可以具有数千个数据文件,大小只受主操作系统和硬件性能的限制,对数据文件的操作,也应该在停机时进行。

在数据库创建阶段,必须创建system,sysaux表空间,并为每个表空间至少创建一个数据文件。

USER_ 用户拥有的对象。ALL_ 用户拥有的对象,给定可视权限的对象。DBA_ 数据库中所有对象。

数据库外部存在的3种文件:参数文件,口令文件,归档日志文件。

参数文件:控制各种存储结构的大小以及后台进程的行为,还有限制特定的限制。

创建数据库之前,必须创建一个参数文件,用来构建实例:需要设置29个基本参数,高级参数采用默认值。

静态参数文件可以用文本文件编辑,动态参数文件需要命令进行维护。

口令文件:是一个操作系统文件,独立于数据库而存在。

归档日志文件:以填满的联机重做日志文件的副本。

创建数据库方法:使用DBCA生成参数文件,口令文件和脚本,然后再从SQL*PLUS运行之前查看和编辑这些文件和脚本。

DDL:create,alter,drop。  DML:select,update,delete,insert,commit,rollback,savepoint。

DCL:grant,revoke。

严格说来,实例可以被启动和停止,数据库可以被加载和打开,随后数据库可以被关闭和卸载。


首先在SGA中创建实例,接着,通过加载数据库来支持与实例的连接;然后数据库被打开,接着数据库被关闭,然后卸载,最后实例停止。


Shutdown:与数据库相关的所有文件都被关闭,实例并不存在。

Nomount:实例被构建在SGA中,但并没有连接任何数据库。常说的连接数据库指的是实例连接数据库。

Mount:实例定位并读取数据库的控制文件。

Open:所有数据库文件都被定位和打开,并且终端用户能使用数据库。


执行startup命令,oracle尝试定位参数文件,包括spfile.ora. spfile.ora. init.ora

其中spfile.ora最适宜做参数文件。Spfile.ora适宜在RAC环境。Init.ora是静态参数文件,可以用文本文件进行人工编辑。


告警日志文件位于background_dump_dest参数做指定的位置。如果出现问题,那么还会在相同的位置生成跟踪文件。


数据文件又头部和空间组成。空间被用于分配组成段的区间。数据库至少具有下列3个表空间:system,sysaux,撤消表空间,此外,还需要一个临时表空间。


表空间内的区间管理有限考虑本地区间管理:注意数据文件的REUSE属性。


执行commit命令时发生的物理操作是LGWR将变化写入联机重做日志文件。DBWN没有执行任何操作。


产生针对一个实例的服务器进程需要使用侦听器,所以需要注册,使侦听器找到所连接的实例。


因为能够确保只向侦听器注册运行的实例而且实例名与服务名不存在错误,所以动态注册比静态注册更好。Listern.ora. lsnrctl命令。


为了使实例能够查找到进行注册的侦听器,侦听器的逻辑名称需要被解析为网络地址。Tnsname.ora.


配置服务别名:net manager,Sqlnet.ora.


查询无效的对象:select * from dba_object where status =’invalid’;

然后对无效的对象进行编辑操作:alter 对象类型 对象名 compile;

如果编译失败,查看dba_dependencies.


查询无用索引:select * from dba_indexes where status = ‘unusable’;

使用alter index.. rebuilder,重新创建该索引,原来索引被删除。


Analyze table tablename compute statistics;


V$ 念 “vee dollar”


V$system_wait_class:可能导致会话或整个数据库运行缓慢的各种问题。

Oracle收集大量与性能和动作相关的统计信息,这些信息在内存中累加,并且有规律的写入磁盘中的arw的表中。默认1小时写一次。这些信息会默认保留7天后被重写。Awr是位于sysaux表空间内的一组表。


SQLtuning Advisor用于标识负载较高的SQL语句与监狱和改进措施来探测问题并有可能修正这些问题。


高警具有两种形式:阀值或无阀值,告警通过MMON进程发送,可以在database control中看到告警信息。

备份和恢复的目标:减少mttr(平均恢复时间)和数据损失的同时增加mtbr(平均失败时间)。


失败类别和对应的措施:

1 语句失败

无效数据:非dba 错误,但必须与用户一起处理问题,使数据正确有效。

缺少权限:考虑授予适当的系统权限和对象权限。

空间分配问题:前摄地监视空间的使用。

逻辑错误:编程人员引起,如死锁。


空间分配问题:例如表空间已满而无力扩展某个段;耗尽撤消表空间;运行使用磁盘排序的查询临时空间不足;某个用户达到配额;某个对象达到其最大区间限制。

措施:database control的撤消顾问程序,段顾问程序,addm以及告警机制,帮助出现与空间问题之间找到这些问题,在理想情况下,永远不应该出现空间问题。


2 用户进程失败:dba应当监视表明用户缺乏软件编程经验以及可能出现网络或硬件问题的各种措施。


3 网络失败:措施:通过配置oracle net 杜绝网络失败。考虑三个方面:侦听器(每个位于不同的地址/端口组合上,以及使用连接时负载均衡,分散用户大量的连接请求),网络接口卡(2个以上,为每个网卡创建一个或多个侦听器),路由。


4 用户错误:如commit了没有where字句的update语句。

措施:闪回查询、闪回删除、LogMiner、不完全恢复、闪回数据库。


5 介质失败:意味着对磁盘的损坏,上面存储的文件受到损坏,同时也包含一种特殊的用户错误,系统管理员或dba意外地删除了文件。

措施:1 控制文件(应当位于raid 0+1)、联机重做日志文件(位于raid0)通过复用技术进行保护,即在不同磁盘上,应当都有其多个副本。数据文件一般不需要被复用(位于raid5)。

2 在备份中还原数据文件,复用对其无用,必须通过raid或asm受到保护。

3 注意归档日志的管理,也应当被复用。

这里的复用指的是在不同磁盘上,创建某个文件的多个副本。

4 备份控制文件,数据文件,归档日志文件,但不需要备份重做日志文件。

这里的备份和复用的定义不一样。


6 实例失败:实例的无序关闭,称为崩溃(crash),如发生断电的情况下,重启服务器。

实例失败=shutdown abort,实例失败后,可能丢失已经提交的事务以及存储了未提交的事务,这种现象称为数据库讹误。

措施:进行实例恢复:使用联机重做日志文件的内容将数据库高速缓存区重新构建到崩溃之前的状态,使用startup命令.


存储结构:

1如何查看数据文件是否可自动扩展?

Select File_name,bytes,autoextensible,increment_by,maxbytes from dba_data_file;

2 监视表空间使用的告警:

Select tablespace_name,sum(bytes) from dba_free_space group by tablespace_name;

Dba_alert_history:查看已被解决的告警信息

Dba_outstanding_alert:查看还没有被解决的告警信息

3 统计段的大小方法:使用database control能估计表,索引所需要的空间大小,只要输入记录数,就会自动计算出大致的表大小。

4 查看sga的总大小

Select sum(bytes) / (1024*1024) size_in_mb from v$sgastat,不能超过sga_max_size参数值,实例所使用的区组大小,查看v$sgainfo.

5 为了帮助估计数据库高速缓存区应当具有的大小,可以参阅 database buffer cache advisor和v$db_cache_advice。

6 日志缓冲区大小,由log_buffer参数控制.

7 assm 的4个调整组建:db_cache_size,shared_pool_size,large_pool_size,sava_pool_size.

8 针对pga的2个参数:workarea_size_policy:auto,Pga_aggregate_target:默认为sga的20%.两个视图:v$pgastat,v$pga_target_advice.虽然sga与pga都可以进行手动配置,但是我们最好还是使用自动管理。


Asm(管理磁盘)

V$ask_disk,asm实例如何理解?

P663定位目录到asm磁盘组。

备份数据库

工具:rman,能够备份数据文件,控制文件,归档日志文件以及服务器参数文件(spfile),rman具有自己独立的脚本语言。


全备:备份整个数据库,可以在noarchivelog模式下,也可以在archivelog下。

部分备份:一个或多个数据文件以及控制文件,位于archivelog模式下才有效。

完整备份:一个或多个数据文件的一个完整副本,这个副本可以是全部备份,也可以是部分备份。

增量备份:数据文件的某些数据块的一个备份,位于archivelog或noarchivelog模式都可以,但只有rman才能进行.

脱机备份:关闭备份,冷备份,一致备份.

联机备份:开启备份,热备份,非一致备份,可以是全部备份,也可以是部分备份,必须位与archivelog模式下进行,可以是完整备份,也可以是增量备份.

映像副本:某个文件的备份,并且每个字节都与源文件相同.

备份集:由rman生成的一种专有结构,是一种由一个或多个被称为片的物理文件组成的逻辑结构,可以拥有增量备份.

诊断数据库的问题

1 跟踪文件何时生成?各种后台进程在遇到特定的错误条件时会生成,跟踪文件与告警日志相互关联.

2 告警日志的名称为alert_.log.跟踪文件始终意味着错误(比较重要的错误),后缀为.trc.

Max_dump_file_size参数指定了跟踪文件的最大大小.

3 告警形式:阀值,非阀值(如ora_01555,所需撤消数据已经被重写从而导致查询失败).

Sid家中的Oracle文件

Oracle数据库中的文件同Sid家中使用来保存相片的笔记本和墙壁相比较,它们被用来存储照片,标记改变,存储进程和清单。

数据文件:sid的妻子把照片放到家里墙上的框架里。每个墙壁就像一个数据文件。数据文件把数据存储在数据块中。

联机重做日志文件 Sid的照相机产生底片,sid把这些底片放在一个架子上。Logan把这些底片插入笔记本以保护他们以备将来使用。联机重做日志文件把数据库的执行动作保存为更改矢量。日志写入进程将log_buffer中的内容刷新到当前的联机重做文件里。

控制文件 sid和他的家人使用控制笔记本来管理所有的位置清单:所有墙壁上照片的位置,联机底片笔记本,放在地下室的归档底片。这个笔记本同时追踪每一个这些位置的目录号。一个数据库控制文件追踪所有数据文件的位置,联机重做日志和归档重做日志。使用数据库的系统更改号,控制文件可以确保所有的数据库文件保持同步。

归档重做日志文件 当logan装满一个底片笔记本以后,他把底片放到一个新的笔记本里。当发生笔记本切换时,archie制作整个笔记本的拷贝,并且把它放到后院的地下室。一个归档重做日志文件由arch进程产生,它拷贝了一个联机重做日志文件的内容。

参数文件 开始新的一天时,sid阅读他的参数文件内容。这个列表提供他和家庭一天的活动指南。数据库参数文件在数据库启动是被读取。

告警日志文件 当sid和他的家人在处理家务事遇到问题时,他们在告警笔记本里制作一个记录。Oracle数据库在告警日志文件记录进程记录和一些错误信息。

跟踪文件 当Sid或他的家人需要详细记录某项情况的时候,他们建立一个新的更踪笔记本并且记录详细情况。Oracle进程把详细资料写入硬盘上的跟踪文件里。

口令文件 Sid的家里没有口令文件。一个Oracle数据库拥有口令文件以便子设备的远程管理。

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24214296/viewspace-1035116/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 4个问题与解答
请登录后发表评论 登录
全部评论

注册时间:2010-07-08

  • 博文量
    70
  • 访问量
    589246