资源描述
Oracle 11gR2数据库系统日常维护操作手册
修订纪录:
版 本 号
日 期
作 者
修 订 纪 录
V1.0
-03-07
肖贤光
初稿
目录
一、 介绍 3
二、 维护 4
2.1 ASM管理和监控 4
2.1.1 磁盘创建(Linux) 4
2.1.2 查看磁盘(Linux) 4
2.1.3 删除磁盘 (linux) 5
2.1.4 创建磁盘组 5
2.1.5 磁盘组新增磁盘 5
2.1.6 磁盘组删除磁盘 5
2.1.7 磁盘组删除 5
2.1.8 磁盘组维护 5
2.1.9 磁盘组监控 6
2.2 OHAS服务管理和监控 6
2.2.1 启/禁用服务资源 6
2.2.2 开启/停止资源服务 8
2.2.3 监控/删除资源服务 9
2.3 表空间管理和监控 10
2.3.1 表空间管理 10
2.3.2 表空间监控 11
2.4 重做日志管理 12
2.5 日志维护 13
2.5.1定制GRID模块日志保留策略 13
2.5.2定制RDBMS模块日志保留策略 14
2.5.3 查看异常日志 14
2.5.4 手工清理日志 15
一、 介绍
Oracle 11g引进了些新特征,在日常维护方面也带来些改变和改善。日常维护工作中,大致上保持和延续了以前版本优良友好操作接口,只部分新特征下,增加或改善了操作交互方法。
二、 维护
日常维护工作中,关键有表空间、重做日志、归档、用户帐户、表、索引、簇表等管理维护;在Oracle 11gR2数据库,我们系统开始采取OracleASM组件来管理数据库存放,所以ASM管理存放也成了一项日常维护工作;另外,还采取了Oracle Restart功效来管理ASM、数据库、监听等数据库资源服务,故OHAS服务状态管理也是需要加以关注。
表空间、重做日志、归档通常管理和以前版本管理没有太多差异;只是包含新增和调整时,包含文件存放方面,因使用ASM部件,而需要做些操作命令语法上调整;
用户账户、表、索引、簇表等内部逻辑结构维护管理没有太多改变。
2.1 ASM管理和监控
ASM管理包含存放管理,关键有磁盘、磁盘组创建、新增、更新、删除等管理维护方面。
2.1.1 磁盘创建(Linux)
ASM磁盘创建,关键是使用ASMLib来管理磁盘配置,Oracle引进ASMLib在内核等级进行磁盘管理,便于ASM实例识别到磁盘,方面ASM创建、更新、删除磁盘组或组磁盘组员。
ASMLib管理磁盘,经过在系统等级识别到磁盘路径后,创建一部分名,来配置磁盘。
Redhat linux下经过多路径软件识别磁盘路径后,对磁盘进行分区后,就能够使用ASMLib来创建一个磁盘别名。
示例:Redhat ES 5下,采取DM管理磁盘
经过多路径软件识别并配置了一个磁盘路径,将在/dev/mapper目录生成一个设备文件,默认是:/dev/mapper/mpath[0~N]命名,但这个识别设备对应真实设备可能会随机器开启而发生改变;故能够经过wwwid号在/etc/multipath.conf文件配置别名,来固化设备和设备文件名对应;如配置一个设备别名为:asm_dsk_01,则在/dev/mapper目录生成一个文件名:/dev/mapper/asm_dsk_01,这么就能够使用fdisk或kpartx来划分分区,然后使用ASMLib来自动管理设备和生成另一部分名,便于Oracle ASMLib 来管理设备权限,而不随系统开启发生权限信息丢失问题。
创建语句:划分DM设备文件分区为:/dev/mapper/asm_dsk_01p1
/usr/sbin/oracleasm createdisk DISK01 /dev/mapper/asm_dsk_01p1
ASMLib创建磁盘别名后,会在/dev/oracleasm/disks目录生成一个给予ASM实例属主权限磁盘设备别名文件,如示例则生成一个设备文件: /dev/oracleasm/disks/DISK01,属主将是初始化ASMLib时配置属主: grid:asmadmin,ASMLib初始化配置,也能够经过配置文件进行调整:/etc/sysconfig/oracleasm
2.1.2 查看磁盘(Linux)
磁盘查看,经过oracleasm脚本,查看系统现在已经被ASMLib管理磁盘。
#查看创建ASMLib磁盘别名
/usr/sbin/oracleasm listdisks
#查看DM设备对应ASMLib磁盘
/usr/sbin/oracleasm querydisk /dev/mapper/asm_dsk_01p1
2.1.3 删除磁盘 (linux)
ASMLib删除磁盘,需要先从ASM磁盘组里把磁盘卸载后,再从ASMLib配置里把磁盘别名删除。
/usr/sbin/oracleasm deletedisk DISK01
2.1.4 创建磁盘组
ASM创建磁盘组,是在ASM实例里操作,以统计磁盘组使用磁盘和容量等元数据信息。能够经过SQLPLUS或ASMCMD,和ASMCA工具配置。
su - grid
sqlplus "/ as sysasm"
create diskgroup DATA01 external redundancy
disk 'ORCL:DISK01',
'ORCL:DISK02';
2.1.5 磁盘组新增磁盘
alter diskgroup DATA01
add disk 'ORCL:DISK03',
'ORCL:DISK04';
2.1.6 磁盘组删除磁盘
先查询出磁盘组里磁盘名
set linesize
set pagesize
col g_name for a30
col d_path for a60
col d_name for a30
select g.name grp_name,d.path d_path,d.name dsk_name
from v$asm_disk d,v$asm_diskgroup g
where d.group_number=g.group_number;
删除磁盘
alter diskgroup DATA01
drop disk 'DISK01',
'DISK02';
2.1.7 磁盘组删除
drop diskgroup DATA01 including contents;
2.1.8 磁盘组维护
磁盘组维护,关键包含加载、检验修复磁盘。
#加载磁盘组
alter diskgroup DATA01 mount;
#卸载磁盘组
alter diskgroup DATA01 dismount;
#检验修复磁盘
alter diskgroup DATA01 check all repair/norepair;
alter diskgroup DATA01 check disk 'DISK01' repair/norepair;
2.1.9 磁盘组监控
磁盘组监控,关键有:容量,磁盘加载状态,能够经过sqlplus登陆ASM实例查询视图,或在ASMCMD工具里查看。
查看磁盘组分配和使用情况:(若磁盘空闲空间不足,需要立即申请分配存放到主机)
select name,total_mb,free_mb,hot_used_mb,cold_used_mb
from v$asm_diskgroup;
查看磁盘组加载情况:
select name,state from v$asm_diskgroup;
经过ASMCMD工具查看
#查看磁盘组信息
su - grid
amscmd lsdg
#查看连接用户端信息
amscmd lsct
2.2 OHAS服务管理和监控
Oracle OHAS是Oracle 11g开始推出集成高可用处理方案一款管理工具,关键用来管理CRS,RAC,Oracle Restart,RAC On One Node,ASM,Listener等数据库资源服务守护进程管理工具。她能够经过crsctl工具作为管理接口,也能够经过srvctl进行接口管理服务资源。
包含日常管理工作部分有:启/禁用OHAS Deamon、ASM、磁盘组、监听、ONS、数据库、SERVICES;开启/停止OHAS Deamon、ASM、磁盘组、监听、ONS、数据库、SERVICES;监控/删除OHAS Deamon、ASM、磁盘组、监听、ONS、数据库、SERVICES.
2.2.1 启/禁用服务资源
启/禁用OHAS Deamon、ASM、磁盘组、监听、ONS服务需要在grid属主用户下实施;启/禁用数据库、SERVICES资源服务,既能够在grid属主用户,也能够在RDBMS用户下实施。
#启用 crs deamon服务
crsctl enable crs
#禁用 crs deamon服务
crsctl disable crs
#启用 has deamon服务
crsctl enable has
#禁用 has deamon服务
crsctl disable has
#启用ASM服务
srvctl enable asm
#禁用ASM服务
srvctl disable asm
#启用磁盘组资源
srvctl enable diskgroup -g <dg_name>
#禁用磁盘组资源
srvctl disable diskgroup -g <dg_name>
#启用监听资源
srvctl enable listener [-l <lsnr_name>]
#禁用监听资源
srvctl disable listener [-l <lsnr_name>]
#启用ons资源
srvctl enable ons [-v]
#禁用ons资源
srvctl disable ons [-v]
#启用数据库资源
srvctl enable database -d <db_unique_name>
#禁用数据库资源
srvctl disable database -d <db_unique_name>
#启用数据库服务
srvctl enable service -d <db_unique_name> -s "<service_name_list>"
#禁用数据库服务
srvctl disable service -d <db_unique_name> -s "<service_name_list>"
2.2.2 开启/停止资源服务
开启/停止OHAS Deamon、ASM、磁盘组、监听、ONS服务需要在grid属主用户下实施;开启/停止数据库、SERVICES资源服务,既能够在grid属主用户,也能够在RDBMS用户下实施。
#开启 crs deamon服务
crsctl start crs
#停止 crs deamon服务
crsctl stop crs
#开启 has deamon服务
crsctl start has
#停止 has deamon服务
crsctl stop has
#开启ASM服务
srvctl start asm [-o <start_options>]
#停止ASM服务
srvctl stop asm [-f]
#开启磁盘组资源
srvctl start diskgroup -g <dg_name>
#停止磁盘组资源
srvctl stop diskgroup -g <dg_name> [-f]
#开启监听资源
srvctl start listener [-l <lsnr_name>]
#停止监听资源
srvctl stop listener [-l <lsnr_name>] [-f]
#开启ons资源
srvctl start ons [-v]
#停止ons资源
srvctl stop ons [-v]
#开启数据库资源
srvctl start database -d <db_unique_name> [-o <start_options>]
#停止数据库资源
srvctl stop database -d <db_unique_name> [-f]
#开启数据库服务
srvctl start service -d <db_unique_name> -s "<service_name_list>" [-o <start_options>]
#停止数据库服务
srvctl stop service -d <db_unique_name> -s "<service_name_list>" [-f]
2.2.3 监控/删除资源服务
监控/删除OHAS Deamon、ASM、磁盘组、监听、ONS服务需要在grid属主用户下实施;监控/删除数据库、SERVICES资源服务,既能够在grid属主用户,也能够在RDBMS用户下实施。
#监控 crs deamon服务
crsctl check crs
crs_stat -t
#删除 crs deamon服务
$ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose
#监控 has deamon服务
crsctl check has
crs_stat -t
#删除 has deamon服务
$ORACLE_HOME/crs/install/roothas.pl -deconfig -force -verbose
#监控ASM服务
srvctl status asm [-a] [-v]
#删除ASM服务
srvctl remove asm [-f]
#监控磁盘组资源
srvctl status diskgroup -g <dg_name> [-a] [-v]
#删除磁盘组资源
srvctl remove diskgroup -g <dg_name> [-f]
#监控监听资源
srvctl status listener [-l <lsnr_name>] [-v]
#删除监听资源
srvctl remove listener [-l <lsnr_name> | -a] [-f]
#监控ons资源
srvctl status ons [-v]
#删除ons资源
srvctl remove ons [-f] [-v]
#监控数据库资源
srvctl status database -d <db_unique_name> [-f] [-v]
#删除数据库资源
srvctl remove database -d <db_unique_name> [-f] [-y] [-v]
#监控数据库服务
srvctl status service -d <db_unique_name> -s "<service_name_list>" [-f] [-v]
#删除数据库服务
srvctl remove service -d <db_unique_name> -s "<service_name_list>" [-f]
2.3 表空间管理和监控
2.3.1 表空间管理
表空间管理中创建、添加、删除操作和9i没有太大改变,改变就是在创建、添加指定数据文件名时,无须麻烦自己指定一个文件名或裸设备名,只需要明示datafile项,和大小和是否自动扩展即可;或有新磁盘组加入到ASM实例,并分配给这个数据库使用时,参数:db_create_file_dest 设置默认磁盘组非新加磁盘组名参数值时,需要在 datafile 后面带上新磁盘组名,如: datafile '+DATA02'即可。
创建表空间,假定数据库参数db_create_file_dest,设定了一个磁盘组: +DATA01,则:
#一般创建
crate tablespace ts_misc20
datafile size 1024m autoextend off
extent management local
segment space management auto;
#若创建到新加一个非参数db_create_file_dest指定磁盘组,如:DATA02,则
create tablespace ts_misc20_new
datafile '+DATA02' size 1024m autoextend off
extent management local
segment space management auto;
#一般添加数据文件
alter tablespace ts_misc20
add datafile size 1024m autoextend off,
size 2048m autoextend off,
size 4096m autoextend off;
#若添加到新加一个非参数db_create_file_dest指定磁盘组,如:DATA02,则
alter tablespace ts_misc20_new
add datafile '+DATA02' size 1024m autoextend off,
'+DATA02' size 2048m autoextend off,
'+DATA02' size 4096m autoextend off;
2.3.2 表空间监控
表空间监控在数据库里监控和9i一样,经过查询视图来获取使用和空闲情况;另外因现在数据库存放经过ASM来管理,一样为了确保系统能正常运行,也需要监控ASM管理磁盘组磁盘空间使用情况,避免磁盘组空间耗尽,造成系统宕机;监控ASM磁盘组方法,可按条目:2.1.9 磁盘组监控, 来获取信息。
数据库查询视图监控表空间SQL语句:
set linesize
set pagesize
select t.tablespace_name TableSpace_Name,
ROUND(t.Total_MB,2) Total_MB,
ROUND(t.Total_MB-NVL(f.Free_MB,0),2) Used_MB,
ROUND(NVL(f.Free_MB,0),2) Free_MB,
ROUND((t.Total_MB-NVL(f.Free_MB,0))*100/t.Total_MB,2) Used_Rate,
ROUND(NVL(f.Free_MB,0)*100/t.Total_MB,2) Free_Rate
from (select tablespace_name,sum(bytes)/1024/1024 Total_MB
from dba_data_files
group by tablespace_name
) t,
(select tablespace_name,sum(bytes)/1024/1024 Free_MB
from dba_free_space
group by tablespace_name
) f
where t.tablespace_name = f.tablespace_name(+)
union all
select dt.tablespace_name Tablespace_Name,
ROUND(dt.Total_Mb,2) Total_Mb,
ROUND(tp.Used_Mb,2) Used_Mb,
ROUND((dt.Total_Mb - NVL(tp.Used_Mb,0)),2) Free_Mb,
ROUND(NVL(tp.Used_Mb,0)/dt.Total_Mb,2)*100 Used_Rate,
ROUND((dt.Total_Mb - NVL(tp.Used_Mb,0))/dt.Total_Mb,2)*100 Free_Rate
from
(select tablespace_name,sum(bytes)/1024/1024 Total_Mb
from dba_temp_files
group by tablespace_name
) dt,
(select tablespace_name,sum(bytes_used)/1024/1024 Used_Mb
from v$temp_extent_pool
group by tablespace_name
) tp
where tp.tablespace_name (+) = dt.tablespace_name
order by TableSpace_Name;
2.4 重做日志管理
重做日志组管理,其它方面也是和9i操作无异,关键也是指定日志组员时,需要考虑使用ASM特征,默认路径是由参数:db_create_online_log_dest_n指定。
#一般创建
alter database add logfile group 4 size 256m;
#若创建到新加一个非参数db_create_online_log_dest_n指定磁盘组,如:DATA02,则:
alter database add logfile group 4 ('+DATA02','+DATA02','+DATA02') size 256m;
#一般添加
alter database add logfile member to group 4;
#若添加到新加一个非参数db_create_online_log_dest_n指定磁盘组,如:DATA02,则:
alter database add logfile member '+DATA02' to group 4;
2.5 日志维护
Oracle数据库在运行时,会生成部分日志、告警、监听、Coredump等日志信息文件,日常维护中需要对这些文件进行管理维护,避免文件大量耗用系统空间;11g以前,多数经过手工清理方法,进行日志文件删除清理,从11g开始,系统引进了ADR功效组件(Automatic Diagnostic Repository),能够定制化管理这些日志文件,包含保留策略,清理等功效,并能够搜集打包这些文件;访问调用这个功效,能够经过EM Grid Control或ADRCI命令行工具接口来配置管理。
为了充足发挥ADR自动管理功效,节省日常维护管理工作量,能够经过观察日志生成量和保留策略评定,来设置日志保留策略,方便ADR自动定时进行日志清理,避免耗用并撑爆空间,而影响系统正常运行。
Oracle 11g,我们系统布署单机和主机双机架构全部采取Oracle Restart+ASM体系,而且系统布署GRID和RDBMS时,是需要分开布署,所以有对不一样组件Home下日志信息,进行不一样策略定制。
2.5.1定制GRID模块日志保留策略
定制GRID模块日志保留策略,需要登陆到GRID模块软件属主用户下,调用adrci工具接口,进行配置。
#调用ADRCI工具
su - grid
adrci
# 在工具接口命令行,查看目前需要管理日志Home目录
adrci>show homes
#设置目前工作Home目录,Grid模块下,通常管理了ASM和监听器两个组件,故#有两个Home目录,所以需要分开设置,如这里先设置ASMHome目录
adrci> set home diag/asm/+asm/+ASM
#查看这个Home目录下目前保留策略设置
adrci> show control
#设置保留策略,策略设置值单位是:小时,可依据实际情况而定
adrci> set control (SHORTP_POLICY = 480)
adrci> set control (LONGP_POLICY = 720)
#设置后,再检测一遍
adrci> show control
#再设置监听目录
adrci> set home diag/tnslsnr/<hostname>/listener
adrci> show control
#设置策略,策略设置值单位是:小时,可依据实际情况而定
adrci> set control (SHORTP_POLICY = 240)
adrci> set control (LONGP_POLICY = 480)
#设置后,再检测一遍
adrci> show control
2.5.2定制RDBMS模块日志保留策略
定制RDBMS模块日志保留策略,需要登陆RDBMS模块属主用户下,调用adrci接口工具,进行定制化配置。
#调用ADRCI工具
su – oracle
adrci
#在工具接口命令行,查看目前需要管理日志Home目录
adrci>show homes
#设置目前工作Home目录,RDBMS模块下通常只有一个Home目录,所以也能够#不设置
adrci>set home diag/rdbms/<$ORACLE_SID>/<$ORACLE_SID>
#查看这个Home目录下目前保留策略设置
adrci> show control
#设置RDBMS目录策略, 策略设置值单位是:小时,可依据实际情况而定
adrci> set control (SHORTP_POLICY = 480)
adrci> set control (LONGP_POLICY = 720)
#设置后,再检测一遍
adrci> show control
2.5.3 查看异常日志
日常管理中,能够登录ADRCI工具,查看是否存在异常日志。
查看RDBMS日志信息示例:
su – oracle
adrci
adrci>show homes
adrci>set home diag/rdbms/<ORACLE_SID>/<ORACLE_SID>
# 查看异常问题号
adrci> show problem
#或则只查询某类错误号信息
adrci> show problem -p "problem_key='ORA 4031'"
#再查看这些异常摘要信息
adrci> show incident
#指定异常错误号
adrci> show incident -p "problem_key='ORA 4031'"
#指定时间范围
adrci> show incident -p "create_time > '-02-28 16:20:45'"
#再查看这些异常具体摘要信息
adrci> show incident -mode detail
adrci> show incident -mode detail -p "create_time > '-03-13 16:00:00'"
#再获取这些异常对应trace文件信息,方便去查看异常具体信息
#列出全部异常问题trace文件信息
adrci>show incdir
#列出指定事件trace文件信息,这里事件号,是前面摘要信息看到incdent_id号
adrci>show incdir 34177
#列出一个范围事件号trace信息,事件号也是前面摘要信息看到incdent_id号
adrci>show incdir 34000 35000
#查看告警日志
#查看整个告警日志文件内容,默认是打开文件后,是调用VI工具来操作文件,能够#使用VI命令查看alert信息
adrci>show alert
#指定只看最终300行
adrci>show alert -tail 300
[注]:一样,查看GRID模块下异常信息,也参考上面方法进行。
2.5.4 手工清理日志
手工清理日志,也能够在ADRCI工具里进行手工清理日志文件或统计。
#经过摘要事件号,进行清理
adrci>purge -i 0 1000
#经过日志老化,按时间来清理;这里age项指定时间单位是:分钟,即多少分钟之前;#type项指定是什么类型日志,类型:[ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP]
adrci>purge -age 60 -type ALERT
展开阅读全文