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;
其它备份与恢复命令请参考有关文档说明,这里不再作详细介绍。