资源描述
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
展开阅读全文