❶ 数据库运维服务具体有哪些
数据库运维服务是指:针对用户数据库开展的软件安装、配置优化、备份策略选择及实施、数据恢复、数据迁移、故障排除、预防性巡检等一系列服务。
主要服务内容如下:
1、数据库安装与配置;主要指定制数据库安装配置方案,检查软件安装环境,安装数据库软件,完成数据库配置,并测试之;
2、数据库性能优化: 主要是指核心参数调优,sql语句调优,性能评估方案的提供。
3、数据库备份与恢复;主要是指本地、异地、同步、实时的分级备份与恢复方案及实施;
4、数据迁移:不同版本、不同厂商、不同结构数据库间的数据迁移;
5、故障排除;通过远程、上门等方式按服务级别实施故障排除
6、预防性巡检;定期提供预防性巡检,并完成系统参数、配置调优,及补丁分发、安装服务。
❷ 如何检查oracle数据库性能
这种问题要回答好要求知识比较全面。
1 从操作系统层次上看
看CPU 内存 swqp(交换分区)等使用率
2 从磁盘上看
主要看磁盘读写。可以用dd测磁盘读写的速度 也可以在业务高峰期检测磁盘的速率。
3 从数据库本身来看。
先要看数据库各个参数的值 。 如sga的大小,process的大小,redo日志的个数与大小等这些关系到性能的参数是否设置合理。
长期观察的方式就是看各个时期的AWR报告。里面有各种性能指标,以及按执行时间或资源排列的sql ,以及各种等待时间的排名。从这里面可以掌握数据库的长期的性能变化。
即时观察的方式就是利用各种sql 查询 数据库在当前时间的各个性能指标(AWR报告里面的各种指标也都是通过sql查询出来的)
还有对数据库整体的一个检查:
如 表的大小,表是否需要分区而没有分区,索引是否创建,索引是否失效,开发人员写的sql是否正确使用到了索引,频繁使用的sql是否有绑定变量,有频繁大批量增删改的表是否存在高水位。。。
额 总之,这个话题涉及的知识非常多,尽可能多的学习一些东西,祝你好运。
❸ Oracle数据库检查点问题
不能说是有哪些类型的checkpoint,应该说在什么情况下会发生checkpoinnt这个动作。
以下情况会触发checkpoinnt动作:
1.当发生日志组切换的时候
2.当符合LOG_CHECKPOINT_TIMEOUT,LOG_CHECKPOINT_INTERVAL,fast_start_io_target,fast_start_mttr_target参数设置的时候
3.当运行ALTER SYSTEM SWITCH LOGFILE的时候
4.当运行ALTER SYSTEM CHECKPOINT的时候
5.当运行alter tablespace XXX begin backup,end backup的时候
6.当运行alter tablespace ,datafile offline的时候;
需要注意的是:
1.CKPT一定是是在checkpoint发生的时候将数据库当前的SCN更新入数据库文件头和控制文件当中,同时DBWn进程将buffer cache中的脏数据块(dirty block)写到数据文件当中(这个脏数据也一定是当前online redo log保护的那一部分)。
2.同时CKPT进程还会在控制文件当中记录(redo block address)RBA,这个地址用来标志恢复的时候需要从日志中的那个位置开始。
❹ Oracle数据库一些维护性文档怎么写
你说的这个是数据库开发,和DBA的事情。
1,安装配置文档 ----DBA或者运维人员
2,web系统操作手册---测试人员编写
3,数据字典文档---开发提供详细内容,DBA整理标准文档
4,故障处理----一般是记录发生过的故障
5,巡检文档----DBA
6,操作记录文档---- DBA or 运维人员,记录服务器所有的操作。
7,备份定时任务。。。。等等
❺ 如何巡检带asm的oracle数据库
ASM全称为Automated Storage Management,即自动存储管理,它是自Oracle10g这个版本Oracle推出的新功能。这是Oracle提供的一个卷管理器,用于替代操作操作系统所提供的LVM,它不仅支持单实例配置,也支持RAC这样的多实例配置。将给Oracle数据库管理员带来极大的方便,ASM可以自动管理磁盘组,并提供数据冗余和优化。特别是对于企业极的大型数据库管理员来说,可以使
❻ 如何对Oracle进行健康检查
看 oracle监听是否启动 在CMD下运行如下命令就可以
lsnrctl status
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=spcc)(PORT=1525)))
TNS-12541: TNS:无监听器
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监听器
32-bit Windows Error: 61: Unknown error
LSNRCTL> start listener1
启动tnslsnr:请稍候...
这表示没有启动。。
方法2:
如果是LINUX系统可以通过如下命令看进程在不在
ps -ef|grep lsn
看 oracle监听是否启动 在CMD下运行如下命令就可以
lsnrctl status
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=spcc)(PORT=1525)))
TNS-12541: TNS:无监听器
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监听器
32-bit Windows Error: 61: Unknown error
LSNRCTL> start listener1
启动tnslsnr:请稍候...
这表示没有启动。。
方法2:
如果是LINUX系统可以通过如下命令看进程在不在
ps -ef|grep lsn
启动步骤:注意$代表shell命令提示符,这里的oracle是9.0以上版本。
1.$ su - oracle
2.$ sqlplus / nolog
3.sql> conn / as sysdba
4.sql> startup (一般不需要加参数,只要设置好环境变量)
5.sql> quit (退出sql模式)
6.$ lsnrctl start (启动监听器)
关闭oracle
1.$ lsnrctl stop(关闭监听器,在这之前,应该先关闭应用程序)
2.$ sqlplus /nolog
启动步骤:注意$代表shell命令提示符,这里的oracle是9.0以上版本。
1.$ su - oracle
2.$ sqlplus / nolog
3.sql> conn / as sysdba
4.sql> startup (一般不需要加参数,只要设置好环境变量)
5.sql> quit (退出sql模式)
6.$ lsnrctl start (启动监听器)
关闭oracle
1.$ lsnrctl stop(关闭监听器,在这之前,应该先关闭应用程序)
2.$ sqlplus /nolog
3.sql>shutdown 其参数 :shutdown有四个参数,四个参数的含义如下:
Normal 需要等待所有的用户断开连接
Immediate 等待用户完成当前的语句
Transactional 等待用户完成当前的事务
Abort 不做任何等待,直接关闭数据库
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
abort 执行强行断开连接并直接关闭数据库。
前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用!
2经常遇到的问题:
1)权限问题,解决方法,切换到oracle用户;
2)没有关闭监听器 ,解决方法:关闭监听器
3)有oracle实例没有关闭,解决办法:关闭oracle实例
4)环境变量设置不全,解决办法:修改环境变量
❼ oracle数据库日常健康检查会检查哪些内容使用哪些命令
oracle检测坏块的方式:
1、利用oracle的RMAN工具
2、利用dbv工具检测
3、利用 exp/imp工具检测
其中2、3的方式无法彻底检测所有坏块,所以重点介绍下RMAN方式
RMAN>backup check logical validate datafile n ;
可以检查数据文件是否包含坏块,同时并不产生实际的备份输出。
而且当使用Recovery Manager进行实际的数据库备份时,同时也就进行了坏块
检查。但要注意的是,在线使用Recovery Manager扫描坏块和备份时,需要数
据库运行在归档模式(archive log),否则只能在数据库未打开的情况下进行。
❽ oracle 检查数据库设置哪些event
如何查询会话 event
很多时候,我们在数据库中设置了event,如何确认设置的event生效或者如何确认你的库中设置了什么event.下面的文章测试了在11g中比较方便的方法数据库版本
[sql] view plain 在CODE上查看代码片派生到我的代码片SQL>select*fromv$version;
BANNER
--------------------------------------------------------------------------------OracleDatabase11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProctionPL/SQL Release 11.2.0.3.0 - Proction
CORE 11.2.0.3.0 Proction
TNSforSolaris: Version 11.2.0.3.0 - ProctionNLSRTL Version 11.2.0.3.0 - Proction
设置测试event
[sql] view plain 在CODE上查看代码片派生到我的代码片SQL>alter session set events '10510 trace name context forever,level 1';Session altered.
SQL>alter session set events '10046 trace name context forever,level 4';Session altered.
SQL>alter system set events '60025 trace name context forever';System altered.
SQL>alter system set events '10513 trace name context forever,level 2';System altered.
测试spfile参数中是否有event
[sql] view plain 在CODE上查看代码片派生到我的代码片SQL>create pfile='/tmp/pfile'fromspfile;
File created.
solaris*orcl-/home/oracle$ grep -i event /tmp/pfile--无记录
SQL> show parameter event;
NAME TYPE VALUE------------------------------------ ----------- -----------------event stringxml_db_events string enable证明设置event不会在spfile中记录
查询会话event
[sql] view plain 在CODE上查看代码片派生到我的代码片--dbms_system实现
SQL> set serveroutput on size 1000000
SQL> declare
2 event_level number;
3 begin
4 for i in 1..100000 loop
5 sys.dbms_system.read_ev(i,event_level);6 if (event_level > 0) then
7 dbms_output.put_line('Event '||to_char(i)||' set at level '||8 to_char(event_level));
9 end if;
10 end loop;
11 end;
12 /
Event 10510 set at level 1
Event 10513 set at level 2
Event 60025 set at level 1
PL/SQL procere successfully completed.
--oradebug实现
SQL> oradebug SETMYPID
Statement processed.
SQL> oradebug eventmp session
10510 trace name context forever,level 1
10513 trace name context forever,level 2
60025 trace name context forever
sql_trace level=4
测试证明使用dbms_system可以捕获到event,oradebug可以捕获到本身会话,还可以通过setospid/setorapid来跟踪其他会话的event设置情况.event 10046对应的本质是sql_trace所以使用dbms_system不能捕获到10046经过学习和测试,总结可以使用oradebug来实现:
[sql] view plain 在CODE上查看代码片派生到我的代码片SQL> oradebug SETMYPID
Statement processed.
SQL> oradebug eventmp session
或
SQL> oradebug eventmp system
就可以查看系统级或会话级的事件设置了
❾ 做oracle数据库运维的,主要工作的内容是什么。
最主要的工作就是1、监控oracle系统是否正常。2、数据备份,并监控数据备份是否正常。
❿ 如何实现定时检查oracle数据库中的表是否被改动
其实你可以在user_tables表上建立触发器,当这个表的数据发生变化时,你用触发器往记录表里插入数据。