《数据库运维管理作业项目.doc》由会员分享,可在线阅读,更多相关《数据库运维管理作业项目.doc(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库运维管理作业项目1.1 Oracle数据库序号工作内容工作内容及方法注意事项1单台服务器的数据库启动1. 启动操作系统2. 启动数据库监听程序AIX或linux操作系统:#su - oracle$lsnrctl startWindows操作系统:使用cmd命令进入控制台输入lsnrctl start并回车3.启动数据库AIX或linux操作系统:$sqlplus / as sysdbaSQLstartupWindows操作系统:C: sqlplus / as sysdbaSQLstartup4. 检查实例状态SQLselect * from gv$instance;若正常启动,下列字段结
2、果为:INST_ID 字段显示所有实例IDSTATUS字段的值等于OPENLOGINS字段的值等于ALLOWEDDATABASE_STATUS字段的值等于ACTIVEACTIVE_STATE字段的值等于NORMAL2单台服务器的数据库停止1. 登录数据库实例并检查实例状态AIX或linux操作系统:#su - oracle$sqlplus / as sysdbaSQLselect * from gv$instance;Windows操作系统:C: sqlplus / as sysdbaSQLselect * from gv$instance;2. 停止监听SQLlsnrctl stop3.关闭
3、数据库实例SQLshutdown immediate3数据库集群启动1. 启动操作系统略2. 启动数据库集群软件AIX或linux操作系统:#su - oracle(适用oracle10g)#su - grid (适用oracle 11g)$crsctl start crsWindows操作系统:C: crsctl start crs3. 启动数据库实例AIX或linux操作系统:#su - oracle (适用oracle10g)#su - grid (适用oracle10g $sqlplus / as sysdbaSQLstartupWindows操作系统:C: sqlplus / as
4、sysdbaSQLstartup 4. 检查实例状态SQLselect * from gv$instance;若正常启动,下列字段结果为:INST_ID 字段显示所有实例IDSTATUS字段的值等于OPENLOGINS字段的值等于ALLOWEDDATABASE_STATUS字段的值等于ACTIVEACTIVE_STATE字段的值等于NORMAL5. 启动应用略6. 检查应用状态略4集群数据库停止1.检查集群状态AIX或linux操作系统:su - oracle$crs_stat tWindows操作系统:C: $crs_stat t2.查看数据库状态AIX或linux操作系统:su - ora
5、cle$sqlplus / as sysdbaSQLselect * from gv$instance;Windows操作系统:C: sqlplus / as sysdbaSQL select * from gv$instance;3.停止应用略4.停止监听AIX或linux操作系统:$ srvctl stop listener -n /所有节点执行5.停止实例 $ srvctl stop database -d -i /所有节点执行或执行$ srvctl stop database -d /在其中一节点执行,同时停止双节点实例Windows操作系统:C: srvctl stop listen
6、er -n /所有节点执行5.停止实例 C: srvctl stop database -d -i /所有节点执行或执行C: srvctl stop database -d /在其中一节点执行,同时停止双节点实例6.停止集群应用AIX或linux操作系统:$ srvctl stop nodeapps -n Windows操作系统:C: srvctl stop nodeapps -n 5数据备份有效性检查数据库备份步骤:1.RAMN备份RMAN backup database plus archivelog delete input;/备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删
7、除旧的归档日志数据库备份有效性检查指导1. 检查热备份日志信息AIX或linux操作系统:$more /.log查看是否存在error/warning关键字Windows操作系统:C: type /.log查看是否存在error/warning关键字2. 检查主数据库的归档日志AIX或linux操作系统:ls -l 查看是否缺失归档Windows操作系统:进入 查看是否缺失归档3. 检查备份路径下文件产生的时间AIX或linux操作系统:ls -l 查看产生时间与备份时间是否匹配Windows操作系统:进入 查看产生时间与备份4. 检查备份集的相关备份内容AIX或linux操作系统:e$rma
8、n target /RMANlist backup 查看备份是否完整Windows操作系统:C: rman target /RMANlist backup 查看备份是否完整5.查看RMAN日志查看rman所有备份的历史信息SELECT j.session_key, TO_CHAR (J.START_TIME, yyyy-mm-dd hh24:mi:ss) start_time, TO_CHAR (j.end_time, yyyy-mm-dd hh24:mi:ss) end_time, J.TIME_TAKEN_DISPLAY, J.INPUT_BYTES_DISPLAY INPUT(SUM),
9、 J.OUTPUT_BYTES_DISPLAY OUTPUT(SUM), J.OUTPUT_DEVICE_TYPE, J.STATUS, J.INPUT_TYPE, J.INPUT_BYTES_PER_SEC_DISPLAY INPUT(s), J.OUTPUT_BYTES_PER_SEC_DISPLAY OUTPUT(s) FROM V$rman_Backup_Job_Details j;查看rman的日志信息set lines 120 set pages 200 set feedback off set verify off set scan on select output from v
10、$rman_output o where o.session_key=&1; 6数据恢复1.imp/impdp数据导入方式创建数据库AIX或linux操作系统:#su - oracle$dbca /进入图形化界面创建数据库Windows操作系统:C: dbca /进入图形化界面创建数据库创建相关表空间AIX或linux操作系统:#su - oracle$sqlplus / as sysdbaWindows操作系统:C: sqlplus / as sysdbaSQLcreate tablespace datafile /.dbf size k /最大不超多(32*1024*1024-1)K 创建
11、用户AIX或linux操作系统:#su - oracle$sqlplus / as sysdbaWindows操作系统:C: sqlplus / as sysdbaSQLcreate user defualt tablespace ;逻辑备份导入方式AIX或linux操作系统:# su - oracle 注意区分操作系统$ imp / file= full=y ignore=yWindows操作系统:C: imp / file= full=y ignore=y2、RMAN 恢复方式登录RMAN窗口AIX或linux操作系统:$ rman target /Windows操作系统:C: rman
12、target / 启动数据库到MOUNT状态RMAN startup mount; 还原数据库RMAN restore database; 恢复数据RMAN recover database; 启动数据库RMAN alter database open; 7日常巡检1. 确认所有的数据库状态正常AIX或linux操作系统:su - oracle$sqlplus / as sysdbaSQLselect * from gv$instance;Windows操作系统:C: sqlplus / as sysdbaSQLselect * from gv$instance;2. 检查文件系统的使用(剩余
13、空间)AIX或linux操作系统:#df -g /IBM-AIX#bdf /HP-UNIX#df -h /linuxWindows操作系统:打开我的电脑查看磁盘状态 /windows3. 检查日志文件和告警文件记录AIX或linux操作系统:more /crsd.logmore /alter_.logWindows操作系统:C: type /crsd.logC: type /alter_.log4. 检查数据库当日备份的有效性请看第5点5. 检查数据文件的状态AIX或linux操作系统:#su - oracle$sqlplus / as sysdbaWindows操作系统:C: sqlplus
14、 / as sysdbaSQLselect * from dba_data_files; 查看online_status字段,是否正常6. 检查表空间的使用情况查看是否存在使用率超于80%7. 检查数据库系统性能到处AWR报告分析SQL?/rdbms/admin/awrrpt.sql8深度巡检每月一次或重大项目上线之前的例行检查,收集系统配置、数据库配置、存储情况、备份有效性、性能状况等信息,分析系统现状,对内存效率、I/O效率、等待事件、TOP SQL等进行分析,发现潜在问题并完成调整。1.检查数据库程序文件和数据库文件的完整性,对数据库表空间的碎片情况进行检查;select a.table
15、space_name ,count(1) 碎片量 from dba_free_space a, dba_tablespaces b where a.tablespace_name =b.tablespace_name and b.extent_management = DICTIONARYgroup by a.tablespace_name having count(1) 20 order by 2;2. 检查数据文件是否存在坏块;$rman target /RMANbackup validate datafile n;RMANselect * from v$database_block_co
16、rruption;3.检查数据库备份的完整和有效;请查看第五点4. 解决数据库的无效对象的问题;查看select owner,object_name,object_type from dba_objects where status=INVALID and owner not in (SYS,SYSTEM,SCOTT,PERFSTAT);修复?/rdbms/admin/utlrp.sql5. 对数据库进行全方位的安全检查,包括安全补丁、安全隐患、用户权限、数据库程序文件和数据文件的权限等。6. 对数据库的性能评估;检查并分析数据库的参数设置、文件和数据分布、操作系统、硬件、系统资源的使用情况和
17、SQL代码等方面性能状况。7周定期维护每周对数据库对象的空间扩展情况、数据的增长情况进行监控、对数据库做健康检查、对数据库对象的状态做检查。1. 监控数据库对象的空间扩展情况SQL SET LINESIZE 500 SET PAGESIZE 1000 SELECT D.TABLESPACE_NAME,SPACE SUM_SPACE(M),BLOCKS SUM_BLOCKS,SPACE - NVL(FREE_SPACE, 0) USED_SPACE(M), ROUND(1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) USED_RATE(%), FREE_SPA
18、CE FREE_SPACE(M) FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE, SUM(BLOCKS) BLOCKS FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) D, (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) FREE_SPACE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F WHERE D.TABLESPACE_N
19、AME = F.TABLESPACE_NAME(+) ORDER BY USED_RATE(%) DESC;2. 监控数据量的增长情况SQLselect * from dba_data_files;3. 处理无效的数据库对象?/rdbms/admin/utlrp.sql4. 处理失效的约束?/rdbms/admin/utlrp.sql5. 处理无效的触发器?/rdbms/admin/utlrp.sql8月定期维护每月对表和索引等进行分析、检查表空间碎片、寻找数据库性能调整的机会、进行数据库性能调整、提出下一步空间管理计划。对数据库状态进行一次全面检查1. 对索引进行维护和管理select OW
20、NER,TRIGGER_NAME,replace(TRIGGER_TYPE, ,/) TRIGGER_TYPE,replace(TRIGGERING_EVENT, ,/) TRIGGERING_EVENT from dba_triggers where status=DISABLED and ownerSYS;2. 对于频繁更新的表,需进行索引重建alter index rebuild tablespace 3. 对一些运行非常慢的查寻语句进行分析SQL?/rdbms/admin/awrrpt.sql4. 数据库高水位回收SQLalter table xxx shrink space;5. 比
21、较每天对数据库性能的监控报告,确定是否有必要对数据库性能进行调整6. 根据表空间增长情况提出空间管理计划7. 提出下一步空间管理计划8. 数据库健康检查9其他数据库运维工作1.回收站管理使用purge recyclebin命令定期清理回收站 SQLpurge recyclebin;2.统计信息收集BEGIN DBMS_STATS.GATHER_TABLE_STATS(ownname = ,tabname = ,estimate_percent = DBMS_STATS.AUTO_SAMPLE_SIZE,method_opt = for all columns size repeat,degre
22、e =DBMS_STATS.AUTO_DEGREE,cascade=TRUE );END;/执行频率3.无效对象整理SQL?/rdbms/admin/awrrpt.sql4. 数据库碎片整理SQLalter table xxx shrink space;10安全基线配置1. 数据库用户基线配置 定期检查数据库用户数量,配置数据库用户基线select count(*) from v$session;2. 数据库权限基线配置定期检查数据库权限分配,配置数据库权限基线select a.* from dba_role_privs a ,dba_users b where b.username=a.gr
23、antee and b.account_status=OPEN and a.granted_role in (DBA,SYSDBA,SYSOPER,EXP_FULL_DATABASE,DELETE_CATALOG_ROLE) order by a.GRANTED_ROLE;3. 数据库容量基线配置定期检查数据库表空间容量,配置数据库容量基线SQL SET LINESIZE 500 SET PAGESIZE 1000 SELECT D.TABLESPACE_NAME,SPACE SUM_SPACE(M),BLOCKS SUM_BLOCKS,SPACE - NVL(FREE_SPACE, 0) U
24、SED_SPACE(M), ROUND(1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) USED_RATE(%), FREE_SPACE FREE_SPACE(M) FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE, SUM(BLOCKS) BLOCKS FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) D, (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024)
25、, 2) FREE_SPACE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+) ORDER BY USED_RATE(%) DESC;1.2 SQL SERVER数据库序号工作内容工作内容及方法注意事项1系统启动数据库系统启动过程1. 启动操作系统2. 启动集群应用3. 启动数据库方法、使用命令行启动数据库:net start mssqlserver方法、使用 SQL Server 配置管理器启动数据库:通过程序菜单找到“SQL Server配置管理器”
26、,找到SQL Server服务中的 SQL Server(MSSQLSERVER),右击选择 “启动”用以启动服务。4. 系统状态检查5. 启动应用6. 检查应用状态2系统停止数据库系统停止过程1. 系统状态检查2. 停止应用3. 停止数据库方法、使用命令行启动数据库:net stop mssqlserver方法、使用 SQL Server 配置管理器启动数据库:通过程序菜单找到“SQL Server配置管理器”,找到SQL Server服务中的 SQL Server(MSSQLSERVER),右击选择 “停止”用以停止服务。4. 停止集群应用5. 停止操作系统3数据备份有效性检查数据库备份有
27、效性检查指导1. 检查热备份日志信息检查备份日志信息和文件产生时间详见支持文件中的1.4.3数据库备份完成情况2. 检查备份路径下文件产生的时间3. 检查备份集的相关备份内容客户端登录SQL SERVER,在资源对象管理器选择需要检查的数据库,右键选择“任务”-“备份”,查看“目标”选项,点击“内容”即可查看备份集相关信息。4数据恢复1. 逻辑备份导入主要根据建库脚本完成库的创建(建库脚本包括数据、日志文件、恢复模式、字符集等信息)还原的界面、命令操作详见支持文档的1.4.4数据库的恢复章节。用户关联通常在恢复后数据库中的用户也随之恢复过来,但是数据库中并未将其和登录名进行关联,此时需要修复这
28、些孤立用户,相关脚本如下:切换到当前库查看孤立用户sp_change_users_login report修复sp_change_users_login Auto_Fix, test, NULL, password其中test 为账号名,password为密码2. 物理备份恢复如果只有数据库的数据文件和日志文件(后缀名为mdf和ldf),则采取附加的方式进行还原,登录资源管理器,选择“数据库”,右键选择“附加数据库”,添加mdf文件即可,需要注意的是不可缺少ldf文件,否则恢复无法完成。附加完成后切换到当前库查看孤立用户sp_change_users_login report修复sp_chan
29、ge_users_login Auto_Fix, test, NULL, password其中test 为账号名,password为密码5日常巡检每天对数据库的运行状态、日志文件、备份情况、数据库的空间使用情况、系统资源的使用情况进行检查,发现并解决问题。1. 确认所有的数据库状态正常select * from sysdatabases 查看数据库运行状态,查询出结果中有一列名为:status 值为512 则处于offline状态2. 检查文件系统的使用(剩余空间)通常windows中,SQLSERVER数据库对数据、日志文件的大小不进行限制,所以所在的盘剩余的空间为空余的,此时只能通过查看数
30、据文件的增长策略的评估剩余的空间是否满足近期要求,如果对数据、日志文件设置了限制文件大小则可以通过Exec sp_spaceused 查看当前数据库的磁盘使用情况进行评估3. 检查日志文件和告警文件记录主要检查日志文件的大小是否过大,DBCC SQLPERF(LOGSPACE)即可查看各库的日志,如果日志过大则考虑对日志进行收缩4. 检查数据库当日备份的有效性主要通过检查备份文件大小(日志是否收缩)备份的时长以及ERRORLOG 文件中是否含有备份失败信息进行判断,如果环境允许的话可以进行恢复测试5. 检查空间的使用情况Exec sp_spaceused 查看当前数据库的磁盘使用情况DBCC
31、SQLPERF(LOGSPACE)查看日志文件使用情况6. 检查数据库系统性能登录数据库资源管理器,右键选择“活动和监视器”,可以查看 进程 、I/O、CPU使用以及近期耗费大量资源的SQL脚本或者在特定时间内使用SQL SERVER PROFILER工具对该时间段内执行的SQL脚本执行计划进行监控7. 日常出现问题的处理。通常主要是性能、安全问题,解决这类问题主要通过统计更新、tempdb调整、日志收缩等方式来进行优化统计更新:ALTER INDEX indexname ON tablename+ REBUILD PARTITION = ALL WITH ( PAD_INDEX = OFF,
32、 STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, ONLINE = OFF, SORT_IN_TEMPDB = OFF )建议通过定期做ALTER INDEX REBUILD来提高性能Tempdb调整:可以根据数据库的性质对tempdb进行调整,合理初始化tempdb的大小以及相应的位置存放,存放至I/O较高,I/O较少的存储上,并建议创建与CPU逻辑数目1/4、1/2比例的文件个数,提高性能。日志清理、收缩:Sql server 2008版本脚本USE masterGOALTER DATAB
33、ASE DNName SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE DNName SET RECOVERY SIMPLEGOUSE DNName GOBACKUP LOG DNName to disk=d:worklog1.bakgoDBCC SHRINKFILE (NLogFileName , 11,TRUNCATEONLY)GOUSE masterGOALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE DNName SET RECOVERY FULLGO
34、先备份日志,然后进行收缩。6深度巡检每月一次或重大项目上线之前的例行检查,收集系统配置、数据库配置、存储情况、备份有效性、性能状况等信息,分析系统现状,对内存效率、I/O效率、等待事件、TOP SQL等进行分析,发现潜在问题并完成调整。健康性检查检查涉及到以下三个方面,数据库的稳定、安全和性能,具体包括:1. 检查数据库程序文件和数据库文件的完整性,对数据库表空间的碎片情况进行检查 完整性主要通过检查SQL SERVER服务的状态来进行判断,并结合操作系统中的事件查看器查看“windows日志”下的“应用程序“日志中SQL SERVER相关日志信息进行收集,确保数据库服务的状态是否正常。 检查
35、数据库碎片情况主要通过命令进行 DBCC ShowContig(表名)检查索引碎片情况2. 检查数据库对象物理关系和逻辑关系的完整性;查看数据库数据、日志文件列表select * from dbo.sysfiles3. 检查数据文件是否存在坏块;查看近期日志是否含有823、824、825级别的I/O错误4. 检查数据库备份的完整和有效;查看备份文件大小查看备份耗时查看相应时间点的日志信息有无异常对备份文件进行还原验证5. 检查和解决数据库告警日志所示错误。通过 “事件查看器”查看“windows日志”下的“应用程序“中SQL SERVER相关告警信息,根据详细的错误号查看官方文档进行解决6.
36、对数据库进行全方位的安全检查,包括安全补丁、安全隐患、用户权限、数据库程序文件和数据文件的权限等。定期进行补丁修复以及系统用户权限检查7. 对数据库的性能评估; 通过SQL SERVER PROFILERT工具以及资源管理器中的“活动和监视器”检查系统在高峰期资源使用情况以及耗费较大资源SQL代码执行计划,记录相关的执行语句以及是否存在硬件上的瓶颈7周定期维护每周对数据的增长情况进行监控、对数据库做健康检查、对数据库对象的状态做检查。1. 监控数据量的增长情况Exec sp_spaceused 查看当前数据库的磁盘使用情况并记录各阶段的增长情况2. 处理无效的数据库对象EXEC sp_reco
37、mpile 存储过程、触发器、表、视图8月定期维护每月对表和索引等进行分析、检查表空间碎片、寻找数据库性能调整的机会、进行数据库性能调整、提出下一步空间管理计划。对数据库状态进行一次全面检查1. 对索引进行维护和管理使用数据库自带的计划服务进行定期的“统计更新”详见 支持文件中1.3.5统计更新策略 章节2. 对于频繁更新的表,需进行索引重建对于更新频繁的表可以采用ALTER INDEX REBUILD,详见支持文件中1.3.5统计更新策略 章节3. 数据库健康检查检查数据库服务的状态检查操作系统日志中SQL SERVER的相关日志检查SQL SERVER近期的ERRORLOG日志9其他数据库
38、运维工作无10安全基线配置1. 数据库用户基线配置在Microsoft sql server management studio 里改,先登录,进入“安全性”、“登录名”,在用户名的属性页里将Sa或者其他用户账号密码修改成符合下列要求:8位字符须有大小写须有字母与数字2. 数据库权限基线配置禁止GUEST用户访问数据库:REVOKE CONNECT FROM GUEST 同时定期检查数据库用户是否拥有public以外的角色3. 数据库安全防护基线删除pubsNorthWind 数据库DROP DATABASE pubsGoDROP DATABASE NorthWindGo修改默认服务端口143
39、3在程序安装目录中选择“sql server configration manager”,然后选择“sql server网络配置”,点击MSSSQLSERVER协议中的TCP/IP协议属性,选择“IP”选项,在IPALL一栏中修改成其他端口后重启SQL SERVER服务11数据库安装配置1. 数据库安装准备数据库软件名称数据库软件安装环境详见支持文件中1.1.1操作系统的准备工作2. 数据库安装规划详见支持文件中1.2.1现场创建数据库的规划3. 数据库产品安装过程检查操作系统环境,详见支持文件中1.1.2现场创建数据库的规划数据库产品的配置过程 数据库数据、日志文件设置 Tempdb调整 系
40、统库调整 内存调整 资源调控器 统计更新策略 备份策略详见支持文件中1.2.2现场数据文件的设置1.3数据库优化1.4.1备份策略(自带计划任务)1.4.2备份策略(操作系统)1.3 MY SQL序号工作内容工作内容及方法注意事项1系统启动数据库系统启动过程1. 启动操作系统2. 启动集群应用3. 启动mysql数据库Windows下:使用命令行启动数据库:net start mysqlLinux下:方法/etc/rc.d/init.d/mysqld start;方法service mysqld start4. 系统状态检查5. 启动应用6. 检查应用状态注意启动时使用的操作系统账户应具有管理
41、员权限2系统停止数据库系统停止过程1. 系统状态检查2. 停止应用3. 停止mysql数据库Windows下:使用命令行启动数据库:net stop mysqlLinux下:方法/etc/rc.d/init.d/mysqld stop;方法service mysqld stop4. 停止集群应用5. 停止操作系统注意停止时使用的操作系统账户应具有管理员权限3数据备份有效性检查1. 检查备份出来的文本文件中是否有错误信息Windows或Linux下,命令行进入MySQL/bin/目录调用mysqldump,以Linux系统为例:/binmysqldump -ptest -uroot tab=/b
42、ackup/mysqldb_bk mysqldb/bincat /tmp/mysqldb.txt | grep error-tab选项可以在备份目录/backup/mysqldb_bk下生成后缀为*.sql和*.txt的两类文件。其中,.sql保存了创建表的SQL语句,而.txt保存着原始数据。4数据恢复1数据库重建情况下的数据恢复创建数据库mysqladmin -ptest -uroot create mysqldb创建表cat /backup/mysqldb/*.sql | mysql -ptest -uroot mysql导入数据mysqlimport mysqldb /backup/mysqldb_bk/*.txt2只恢复表数据的恢复导入数据mysqlimport d mysqldb /backup/mysqldb_bk/*.txt5日常巡检每天对数据库的健康状态、可用性、日志文件、备份情况、数据库的空间使用情况、系统资源的使用情况进行检查,发现并解决问题。1、 确认所有的数据库状态正常ps -ef | grep my