您的位置:首页 > 数据库 > Oracle

Oracle日常维护

2008-02-20 09:20 344 查看

1         Oracle Enterprise Manager基本使用

1.1     启动连接

输入选择配置后看到下图的基本界面:

 

从上面的界面得知,该实例。

 

1.2     察看表空间

维护工作需要周期性的察看表空间,以避免表空间满后,表现出一些莫名的故障出现,如下图,表空间ccatsdialindex接近满的状态,必须为此表空间增加数据文件来扩充其空间。

 

1.3     察看会话

1.3.1    察看所有会话

通过下面的操作可以看到基本的会话。

 

1.3.2    有可疑的会话

想了解占用CPU、内存、I/O占用资源较大的会话,可以有针对性的通过界面的选项可以察看前10大占用资源的信息,如下图。

2         表空间的扩充方法

2.1.1    使用 oracle 企业管理器

第一步:

如下图,假设需要扩充某个表空间,以表空间ccatsdialindex为例,我们对此处进行鼠标双击操作,

第二步:

如下图,现在我们需要增加表空间,首先我们需要和之前的目录一致,否则如果搞错了表空间所在的位置,很可能出现新增加的表空间将增加在本地磁盘的情况,那么在主机切换的时候,在磁盘阵列当中找不到这个数据文件报错,业务将会出现异常情况。所以保险的方法在文件目录直接copy即可。

第三步骤:

填写数据文件名,如下图,文件目录缺省和上面相同,数据文件名不要重复(否则创建将会失败)填写上数据文件的大小,此时可以点击应用(需要SYSDBA权限才有效),那么此时在正常情况下可以创建数据文件,扩展了此表空间,如果不想在此环境下执行,而希望在plsql下面执行,请继续看下面步骤。

 

第四步:

我们点击上面图形的最后一行的按钮“现实SQL”,将会出现下图,执行的DDL命令将会出现在最后的小窗口的最下面,那么可以复制此DDL再在SQL PLUS/PL SQL的命令窗口下以SYSDBA的角色执行也可以扩展表空间,此方法和后面介绍的方法相同。

 

 

2.1.2    使用语句的方法

CREATE TABLESPACE ccatsdialindex DATAFILE  'd:/ccatsdb/ccatsindex/ccatsdialindex01.dbf' SIZE 1000 M;

 

ALTER TABLESPACE ccatsdialindex  ADD DATAFILE 'd:/ccatsdb/ccatsindex/ccatsdialindex02.dbf' SIZE 500 M,'d:/ccatsdb/ccatsindex/ccatsdialindex03.dbf' SIZE 500 M;

 

3         如何解决死锁

3.1     察看锁的视图

在Oracle系统视图 v$locked_object,所有加锁的信息都在这个视图可以找到。

在SQL命令下执行 SELECT * FROM v$locked_object;如果记录一直长期存在并且locked_mode字段值是3,表示对此对象一直存在更新锁,有可能对业务有所影响。

3.2     找出被锁对象

第一步:
如下图,下面被锁对象的字段Object_id,值对象55266。

 

找出object_id后执行SQL,定位被锁对象
SELECT * FROM  Dba_Objects  WHERE object_id = 55266,如下图,ACTSMSENDOBJECT就是被锁对象。

 

3.3     释放死锁的资源

3.3.1    得到会话的ID

上面的对象被确定需要释放的情况下,我们将要进一步做释放的工作,看下面图的session_id字段值是98

3.3.2    找出会话信息

通过刚才得出的会话session_id=98;我们再从oracle的会话视图进一步得到会话信息。

Select * from  v$session WHERE sid='98'

3.3.3    杀掉死锁的会话

根据上图被圈住的两个字段,可以在有权限的用户杀掉死锁的会话。

一般的语法为:

Alter system kill session ‘<sid,serial#>’

我们执行以下DDL即可:

Alter system kill session '98,8761';

3.3.4    通过界面释放

3.3.4.1     察看界面锁

打开企业管理器,选择例程->锁,看到如下信息。

3.3.4.2     中断会话

选择需要中断的会话后,点击按钮“中断会话”将会出现以下界面,确定后将会把占用资源的会话中断。

 

4         SPFILE/PFILE的应用

4.1     简介

Oracle 9i中,引入一个新的文件spfile,该文件用于服务器端,管理初始化参数。在9i以前oracle使用pfile存储初始化参数设置,在启动时候读取,pfile的所有修改都需要在启动后才能生效;而使用spfile可以使用 ALTER SYSTEM或者ALTER SESSION命令来动态修改参数,修改后立即生效。
1) Pfile(Parameter File)文件是基于文本格式的参数文件,含有数据库的配置参数。

    Oracle 9i在安装时为每个数据库建立了一个Pfile,默认的名称为“init+例程名.ora”,这是一个文本文件,可以用任何文本编辑工具打开。

 

2) SPfile文件

    SPfile(Server Parameter File,服务器参数文件)是基于二进制格式的参数文件,含有数据库及例程的参数和数值,但不能用文本编辑工具打开。
    下面对两种初始化参数文件进行比较如表6.2所示。
下表Spfile和Pfile文件的比较

 

比较内容

SPfile

Pfile

格式

二进制格式

文本格式

编辑方式

(1)利用企业管理器对Pfile进行修改,然后转换为Spfile (2)在SQL Plus里使用ALTER SYSTEM语句进行修改

(1)利用文本工具直接进行修改 (2)在企业管理器里修改配置后导出形成

默认名称

SPfile+例程名.ora

Init+例程名.ora 实际参数文件Init.ora

默认路径

{Oracle_HOME}/ora92/database/

{Oracle_HOME}/ora92/database/ Init.ora位于Oracle/admin/数据库例程名/pfile/

启动次序

SPfile优先于Pfile

Pfile低于Spfile

 

4.2     产生spfile

在pfile启动的方式下,使用SYSDBA或者SYSOPER权限的登录,执行以下命令:

Create spfile from pfile

语法如下:CREATE SPFILE[='SPFILE-NAME'] FROM PFILE[='PFILE-NAME']

例:

SQL> create spfile from pfile;

缺省的,spfile创建到系统缺省目录

(Unix: $ORACLE_HOME/dbs; NT: $ORACLE_HOME/database)

如果SPFILE已经存在,那么创建会返回以下错误:

4.3     重要参数的基本含义

db_cache_size

说明: 为高速缓存指定标准块大小的缓冲区。

值范围: 至少 16M。

默认值: 48M

 

Large_pool_size:

说明 : 指定大型池的分配堆的大小, 它可被共享服务器用作会话内存, 用作并行执行的消息缓冲区以及用作 RMAN

备份和恢复的磁盘 I/O 缓冲区。

值范围: 600K (最小值); >= 20000M (最大值是根据操作系统而定的)。

默认值 : 0, 除非配置了并行执行或 DBWR_IO_SLAVES

 

pga_aggregate_target

说明: 指定连接到例程的所有服务器进程的目标 PGA 总内存。请在启用自动设置工作区之前将此参数设置为一个正数。这部分内存不驻留在

SGA 中。数据库将此参数值用作它所使用的目标 PGA 内存量。设置此参数时, 要将 SGA 从可用于 Oracle

例程的系统内存总量中减去。然后可将剩余内存量分配给 pga_aggregate_target。

值范围: 整数加字母 K, M 或 G, 以将此限值指定为千字节, 兆字节或千兆字节。最小值为 10M, 最大值为 4000G

默认值: "未指定", 表示完全禁用对工作区的自动优化。

 

shared_pool_size

说明: 以字节为单位, 指定共享池的大小。共享池包含如: 共享游标, 存储的过程,

控制结构和并行执行消息缓冲区等对象。较大的值能改善多用户系统的性能。

值范围:300 KB - 根据操作系统而定。

默认值: 如果是 64 位操作系统, 值为 64MB; 其他情况下, 值为 16MB。

Java_pool_size

说明: 以字节为单位, 指定 Java 存储池的大小, 它用于存储 Java 的方法和类定义在共享内存中的表示法,

以及在调用结束时移植到 Java 会话空间的 Java 对象。

5         数据库备份

按照备份方式可以分为逻辑备份、冷备份(脱机备份)、热备份(联机备份),其中冷备份与热备份可以合称为物理备份。
按照本份工具,可以分EXP/IMP备份,OS拷贝、RMAN、第三方工具如VERITAS。

5.1     逻辑备份

使用exp/imp 命令,这里由于使用频率较高,暂不做介绍。

5.2     OS备份数据

5.2.1    冷备数据库

冷备也称为脱机备份,需要在完全关闭数据库的情况下执行。
数据库使用的每个文都被备份,文件包括
1)  所有数据文件(DATA FILE)
2)  所有控制文件(CONTROL FILE)
3)  所有联机日志文件(REDO LOG)

5.2.2    热备份

此方式又称为联机备份,只能用于ArchiveLog (归档模式)的数据库。
热备份的优点:
1)  可在表空间或数据文件级上备份,高效率
2)  备份时候数据库仍然可用。
3)  可恢复到某个时间点,达到秒级的恢复
4)  几乎可以对所有数据库实体作为恢复
 

热备份增加部分I/O并且耗费大量的I/O,所以一般建议把热备份放到数据库最空闲的时间,如凌晨1:00。
 

使用方法
一般步骤如下:
1)  将备份的表空间设置为备份方式
ALTER TABLESPACE ccatspub BEGIN backup;
2)  复制ccatspub表空的数据文件到新的目标目录
3)  复制完成后,恢复原来的非备份状态
ALTER TABLESPACE ccatspub END backup;
4)  如果需要备份其它的方式,重复1-3步骤。
5)  使用如下命令备份控制文件
备份为二进制:
ALTER DATABASE backup CONTROLFILE TO ‘New ContrilFile’;
备份为文本文件:
ALTER DATABASE backup CONTROLFILE TO  TxtFile;
 

5.3     Rman备份

Recovery Manager (RMAN) 提供的DBA工具,用于管理备份和恢复操作。Rman只能用于Oracle 8或更高的版本中。可以备份整个数据库或者数据库部件,包括表空间、数据文件、控制文件和归档文件。Rman可按要求存取和执行备份和恢复。
 

 

本次仅仅介绍基本的概念,不做详细介绍。
Rman备份的优点:
1)  支持在线热备份
2)  支持多级增量备份
3)  支持并行备份与恢复
4)  减少所需备份量
5)  数据文件的块检查
6)  备份、恢复比较简单
 

使用rman备份/恢复需要创建恢复目录,否则在没有恢复目录(NOCATALOG)下运行,备份信息保存在控制文件下,如果控制文件有所损坏就比较危险。而且没有备份目录,很多rman命令不被支持。
 

Rman可以在
创建RMAN目录的过程
1.         为目录创建单独表空间
Create tablespace  back datafile ‘filename’ siez 100M;
2.         创建rman用户
Create user RMAN identified by RMAN default tablespace back temporary tablespace temp;
3.         授权RMAN用户
 Grant connect,resource, recover_catalog_owner to rman;
4.         打开rman
运行 RMAN
$> RMAN
5.         连接数据库
RMAN> connect catalog rman/rman
 

 

6.         创建恢复目录
 RMAN> create catalog tablespace back;
 

成功创建会副目录后,就可以注册目标数据库,目标数据库就是需要备份的数据。一个恢复目录可以注册多个目标数据库。注册命令如下:
RMAN target intername/password catalog rman/rman@rcdb;
RAMN> register database;
 

其它备份与恢复命令请参考有关文档说明,这里不再作详细介绍。
 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息