Oracle运维详细手册文档格式.docx
《Oracle运维详细手册文档格式.docx》由会员分享,可在线阅读,更多相关《Oracle运维详细手册文档格式.docx(35页珍藏版)》请在冰豆网上搜索。
Ø
显示SQL缓冲区命令
L
修改SQL命令
首先要将待改正行变为当前行
n
用CHANGE命令修改内容
c/旧/新
重新确认是否已正确
使用INPUT命令可以在SQL缓冲区中增加一行或多行
i
输入内容
2.6调用外部系统编辑器
edit
文件名
可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型,在login.sql文件中定义如下一行
DEFINE_EDITOR=vi
2.7运行命令文件
START
test
@test
2.8关于侦听
1、新建/修改/删除侦听
以oracle用户登录,运行netca,会跳出图形配置界面。
2、打开侦听
lsnrctlstart
3、查看侦听
Lsnrctlstatus
4、关闭侦听
lsnrctlstop
3.ORACLE的启动和关闭
3.1在单机环境下
要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下
su
-
oracle
启动oracle数据库命令:
$sqlplus/nolog
SQL*Plus:
Release10.2.0.1.0-Productionon星期一7月1616:
09:
402007
Copyright(c)1982,2005,Oracle.Allrightsreserved.
conn/assysdba
已连接到空闲例程。
startup
ORACLE例程已经启动。
TotalSystemGlobalArea369098752bytes
FixedSize1249080bytes
VariableSize201326792bytes
DatabaseBuffers159383552bytes
RedoBuffers7139328bytes
数据库装载完毕。
数据库已经打开。
关闭oracle数据库命令:
$sqlplus/nolog
08:
102007
已连接。
shutdownimmediate
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
3.2在双机环境下
要想启动或关闭crs服务必须首先切换到root用户,如下
root
启动crs服务:
启动CRS
#$CRS_HOME/crs/bin/crsctlstartcrs
查看CRS状态
#$CRS_HOME/crs/bin/crsctlcheckcrs
关闭CRS
#$CRS_HOME/crs/bin/crsctlstopcrs
查看CRS内部各资源状态
#$CRS_HOME/crs/bin/crs_stat–t
启动数据库服务
#srvctlstart
database-dtdb#tdb为数据库名
4.数据库管理员日常工作
4.1检查alterSID.log
这个日志文件位于参数BACKGROUND_DUMP_DEST指定的目录,可能通过以下命令来查看。
SHOWPARAMETERbackground_dump_dest
在出现大故障前,数据库有可能会报一些警告或错误信息,应该充分重视这些信息,未雨绸缪,避免更大错误的发生。
检查alterSID.log的什么内容。
检查数据库是否出现过宕机(可能在晚间重启而维护人员不知道)
Oracle出错信息,通过$grepORA-alterSID.log查找
产品有关的问题:
ORA-00600/ORA-07445等错误
相应的TRACE文件
4.2环境确认
数据库实例是否正常工作
SQL>
selectstatusfromv$instance;
数据库监听器是否正常工作
-$lsnrctlstatus
是否存在故障表空间
-SQL>
selecttablespace_name,statusfromdba_tablespace;
控制文件、日志文件是否正常
select*fromv$controlfile;
select*fromv$log;
select*fromv$logfile;
性能监测
每天按业务峰值情况,对数据库性能数据进行定时采集
每天检查数据库的主要性能指标
每天检查最消耗资源的SQL语句变化情况。
每天检查是否有足够的资源
检查所有表空间的剩余情况
识别出一些异常的增长
检查CPU、内存、网络等是否异常
5.数据库日常操作SQL
5.1查看表空间物理文件的名称及大小
selecttablespace_name,
file_id,
file_name,
round(bytes/(1024*1024),0)filesize
fromdba_data_files
orderbytablespace_name;
5.2查询表空间使用情况
selecta.tablespace_name"
表空间名称"
100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2)"
占用率(%)"
round(a.bytes_alloc/1024/1024,2)"
容量(M)"
round(nvl(b.bytes_free,0)/1024/1024,2)"
空闲(M)"
round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2)"
使用(M)"
to_char(sysdate,'
yyyy-mm-ddhh24:
mi:
ss'
)"
采样时间"
from(selectf.tablespace_name,
sum(f.bytes)bytes_alloc,
sum(decode(f.autoextensible,'
YES'
f.maxbytes,'
NO'
f.bytes))maxbytes
fromdba_data_filesf
groupbytablespace_name)a,
(selectf.tablespace_name,sum(f.bytes)bytes_free
fromdba_free_spacef
groupbytablespace_name)b
wherea.tablespace_name=b.tablespace_name
orderby2desc;
5.3查询表空间的碎片程度
selecttablespace_name,count(tablespace_name)
fromdba_free_space
groupbytablespace_name
havingcount(tablespace_name)>
10;
altertablespaceHS_USER_DATAcoalesce;
altertablenamedeallocateunused;
5.4碎片程度
altertablespacenamecoalesce;
createorreplaceviewts_blocks_vas
selecttablespace_name,block_id,bytes,blocks,segment_name
unionall
fromdba_extents;
select*fromts_blocks_v;
selecttablespace_name,sum(bytes),max(bytes),count(block_id)
groupbytablespace_name;
查看碎片程度高的表
SELECTsegment_nametable_name,COUNT(*)extents
FROMdba_segments
WHEREownerNOTIN('
SYS'
'
SYSTEM'
)
GROUPBYsegment_name
HAVINGCOUNT(*)=(SELECTMAX(COUNT(*))
GROUPBYsegment_name);
5.5查看回滚段名称及大小
selectsegment_name,
tablespace_name,
r.status,
(initial_extent/1024)InitialExtent,
(next_extent/1024)NextExtent,
max_extents,
v.curextCurExtent
Fromdba_rollback_segsr,v$rollstatv
Wherer.segment_id=v.usn(+)
orderbysegment_name;
5.6查看控制文件
selectnamefromv$controlfile;
5.7查看日志文件
selectmemberfromv$logfile;
5.8查看表空间的使用情况
selectsum(bytes)/(1024*1024)asfree_space,tablespace_name
SELECTA.TABLESPACE_NAME,
A.BYTESTOTAL,
B.BYTESUSED,
C.BYTESFR