Oracle日常维护命令

合集下载

Oracle DBA 数据库日常维护手册 常用SQL 脚本

Oracle DBA 数据库日常维护手册 常用SQL 脚本

Oracle数据库日常维护【版本整理日期:2011/02/26 】版本整理人:1634068400@本文档包含以下内容:1.Oracle数据库日常维护2.Oracle DBA 常用管理脚本3.Oracle DB 常用SQL 语句/******************************************************** (若跳转不成功,请复制到浏览器或联系Q) /item.htm?id=7437120468Metalink Sharing ********************************************************/在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题。

一、Oracle警告日志文件监控Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况:l数据库的启动、关闭,启动时的非缺省参数;l数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因;l对数据库进行的某些操作,如创建或删除表空间、增加数据文件;l数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA -600)DBA 应该定期检查日志文件,根据日志中发现的问题及时进行处理问题处理 启动参数不对 检查初始化参数文件因为检查点操作或归档操作没有完成造成重做日志不能切换 如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率;有人未经授权删除了表空间 检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限出现坏块 检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建表空间不够增加数据文件到相应的表空间 出现ORA-600 根据日志文件的内容查看相应的TRC文件,如果是Oracle 的bug ,要及时打上相应的补丁二、数据库表空间使用情况监控(字典管理表空间)数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA 应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。

oracle日常运维操作总结

oracle日常运维操作总结

oracle日常运维操作总结一、硬件维护1.确保服务器硬件运行正常,定期检查硬件设备,如服务器、存储设备、网络设备等。

2.根据需要及时更新硬件设备,包括升级内存、硬盘等。

3.确保服务器周边设备运行正常,如UPS电源、空调等。

二、软件维护1.确保Oracle数据库软件运行正常,定期检查软件版本、补丁等。

2.更新Oracle数据库软件,包括升级Oracle版本、打补丁等。

3.定期清理无用文件,包括日志文件、临时文件等。

4.定期备份数据库,确保数据安全。

三、性能优化1.定期检查数据库性能,包括CPU使用率、内存使用率等。

2.根据性能检查结果,进行性能优化,如调整数据库参数、优化SQL语句等。

3.定期对数据库进行优化,包括重建索引、优化表空间等。

四、安全加固1.配置Oracle数据库的安全设置,如用户密码、权限管理等。

2.确保数据库账户的安全性,如定期修改密码、禁用无效账户等。

3.防止SQL注入等攻击行为,如使用参数化查询、限制用户输入等。

4.定期检查数据库的安全日志,包括登录日志、操作日志等。

五、数据备份1.制定数据备份计划,并按照计划执行备份操作。

2.采用多种备份方式,如全备份、增量备份等。

3.确保备份数据的可用性和完整性,如定期测试备份数据的恢复能力。

4.对备份数据进行存储和管理,确保数据安全。

六、故障处理1.建立故障处理流程,明确故障处理责任人和流程步骤。

2.对发生的故障进行及时处理,如系统崩溃、网络故障等。

3.对故障进行分类和总结,建立故障处理知识库。

4.定期对系统进行健康检查和性能测试,预防故障发生。

七、监控管理1.建立监控管理体系,包括监控指标、监控周期等。

2.使用监控工具,如OracleEnterpriseManager、Nagios等,对系统进行实时监控。

3.对监控数据进行分析和处理,及时发现和处理潜在问题。

4.定期对监控数据进行存储和管理,方便后续查询和分析。

八、应急预案1.制定应急预案,明确应急响应流程和责任人。

Oracle运维详细手册簿

Oracle运维详细手册簿

Oracle运维手册目录文档修改记录 .................................................................................................. 错误!未定义书签。

1. 前言: (4)2. 简单命令使用 (4)2.1进入SQL*Plus (4)2.2退出SQL*Plus (4)2.3在sqlplus下得到帮助信息 (4)2.4显示表结构命令DESCRIBE (4)2.5SQL*Plus中的编辑命令 (4)2.6调用外部系统编辑器 (5)2.7运行命令文件 (5)2.8关于侦听 (5)3. ORACLE的启动和关闭 (6)3.1在单机环境下 (6)3.2在双机环境下 (7)4. 数据库管理员日常工作 (8)4.1检查alterSID.log (8)4.2环境确认 (8)5. 数据库日常操作SQL (9)5.1查看表空间物理文件的名称及大小 (9)5.2查询表空间使用情况 (9)5.3查询表空间的碎片程度 (10)5.4碎片程度 (10)5.5查看回滚段名称及大小 (11)5.6查看控制文件 (11)5.7查看日志文件 (11)5.8查看表空间的使用情况 (11)5.9查看数据库对象 (12)5.10查看数据库的版本 (12)5.11查看Oracle字符集 (12)5.12在某个用户下找所有的索引 (12)5.13表、索引的存储情况检查 (12)5.14查看数据库的创建日期和归档方式 (13)5.15显示所有数据库对象的类别和大小 (13)5.16设置RAC为归档模式? (13)6. AWR报告 (14)7. Troubleshooting (14)7.1监控事务的等待 (14)7.2查看一些等待信息: (14)7.3查看等待(wait)情况 (15)7.4回滚段查看 (15)7.5回滚段的争用情况 (15)7.6监控表空间的 I/O 比例 (16)7.7监控文件系统的 I/O 比例 (16)7.8监控 SGA 的命中率 (16)7.9监控 SGA 中字典缓冲区的命中率 (16)7.10监控 SGA 中共享缓存区的命中率,应该小于1% (17)7.11临控 SGA 中重做日志缓存区的命中率,应该小于1% (17)7.12监控内存和硬盘的排序比率,最好使它小于 0.10,增加 sort_area_size . 177.13监控当前数据库谁在运行什么SQL语句 (17)7.14监控字典缓冲区 (18)7.15查看Lock (18)7.16捕捉运行很久的SQL (19)7.17查看数据表的参数信息 (20)7.18 查看还没提交的事务 (20)7.19查找object为哪些进程所用 (20)7.20查看catched object (21)7.21查看V$SQLAREA (21)7.22有关connection的相关信息 (22)8. 备份 (23)8.1数据逻辑备份 (23)8.1.1 exp (23)8.1.2 imp (24)8.2控制文件备份 (25)8.3初始参数备份 (25)8.4其它 (26)9. 常见问题解决 (26)9.1安装后常用参数设置 (26)9.2杀死僵死连接 (27)9.3AIX内存溢出 (27)9.4某一功能特别慢 (29)9.5统计信息失效导致执行计划走全表扫瞄 (29)9.6中银............................................................................................... 错误!未定义书签。

最详细的oracle rac日常基本维护命令

最详细的oracle rac日常基本维护命令

最详细的oracle rac日常基本维护命令以下是一些使用Oracle RAC进行日常基本维护的常用命令:1. CRSCTL命令:- crsctl check crs:检查集群资源状态。

- crsctl start crs:启动整个集群资源服务。

- crsctl stop crs:停止整个集群资源服务。

- crsctl disable crs:禁用整个集群资源服务。

- crsctl enable crs:启用整个集群资源服务。

2. SRVCTL命令:- srvctl start instance -db <database_name> -instance<instance_name>:启动指定的实例。

- srvctl stop instance -db <database_name> -instance<instance_name>:停止指定的实例。

- srvctl status instance -db <database_name> -instance<instance_name>:检查指定实例的状态。

- srvctl start service -db <database_name> -service <service_name>:启动指定的服务。

- srvctl stop service -db <database_name> -service <service_name>:停止指定的服务。

- srvctl status service -db <database_name> -service<service_name>:检查指定服务的状态。

3. SQL*Plus命令:- sqlplus / as sysdba:以SYS用户身份登录数据库。

- startup:启动数据库实例。

Oracle Rac日常维护操作手册

Oracle  Rac日常维护操作手册

Oracle Rac日常维护操作手册一、关闭服务器1.1关闭数据库实例在DBSERVER01和DBSERVER02服务器上分别运行以下命令:在cmd命令行中运行C:\Documents and Settings\Administrator>d:D:\>cd D:\oracle\product\10.2.0\crs\BIND:\oracle\product\10.2.0\crs\BIN>crs_stat –t (检查oracle数据库运行状态)名称类型目标状态主机------------------------------------------------------------ora....S1.inst application ONLINE ONLINE dbserver01ora....S2.inst application ONLINE ONLINE dbserver02ora.HBHIS.db application ONLINE ONLINE dbserver02ora....01.lsnr application ONLINE ONLINE dbserver01ora....r01.gsd application ONLINE ONLINE dbserver01ora....r01.ons application ONLINE ONLINE dbserver01ora....r01.vip application ONLINE ONLINE dbserver01ora....02.lsnr application ONLINE ONLINE dbserver02ora....r02.gsd application ONLINE ONLINE dbserver02ora....r02.ons application ONLINE ONLINE dbserver02ora....r02.vip application ONLINE ONLINE dbserver02D:\oracle\product\10.2.0\crs\BIN>sqlplus sys/sys as sysdbaSQL>shutdown immediateSQL>exitD:\oracle\product\10.2.0\crs\BIN>crs_stat –t (再次检查oracle数据库运行状态) 名称类型目标状态主机------------------------------------------------------------ora....S1.inst application OFFLINE OFFLINEora....S2.inst application OFFLINE OFFLINEora.HBHIS.db application OFFLINE OFFLINEora....01.lsnr application ONLINE ONLINE dbserver01ora....r01.gsd application ONLINE ONLINE dbserver01ora....r01.ons application ONLINE ONLINE dbserver01ora....r01.vip application ONLINE ONLINE dbserver01ora....02.lsnr application ONLINE ONLINE dbserver02ora....r02.gsd application ONLINE ONLINE dbserver02ora....r02.ons application ONLINE ONLINE dbserver02ora....r02.vip application ONLINE ONLINE dbserver021.2关闭CRS集群服务在DBSERVER01或DBSERVER02服务器上运行以下命令:C:\Documents and Settings\Administrator>srvctl stop nodeapps -n dbserver01C:\Documents and Settings\Administrator>srvctl stop nodeapps -n dbserver02D:\oracle\product\10.2.0\crs\BIN>crs_stat –t (再次检查oracle数据库运行状态) 名称类型目标状态主机------------------------------------------------------------ora....S1.inst application OFFLINE OFFLINEora....S2.inst application OFFLINE OFFLINEora.HBHIS.db application OFFLINE OFFLINEora....01.lsnr application OFFLINE OFFLINEora....r01.gsd application OFFLINE OFFLINEora....r01.ons application OFFLINE OFFLINEora....r01.vip application OFFLINE OFFLINEora....02.lsnr application OFFLINE OFFLINEora....r02.gsd application OFFLINE OFFLINEora....r02.ons application OFFLINE OFFLINEora....r02.vip application OFFLINE OFFLINE1.3关闭服务器操作系统先关DBSERVER01,在关闭DBSERVER02;二、开启服务器2.1DBSERVER02服务器开机DBSERVER02服务器操作系统启动后待网卡服务全部启动,执行以下命令验证oracle服务启动情况C:\Documents and Settings\Administrator>d:D:\>cd D:\oracle\product\10.2.0\crs\BIND:\oracle\product\10.2.0\crs\BIN>crs_stat –t (检查oracle数据库运行状态)名称类型目标状态主机------------------------------------------------------------ora....S1.inst application OFFLINE OFFLINEora....S2.inst application ONLINE ONLINE dbserver02ora.HBHIS.db application ONLINE ONLINE dbserver02ora....01.lsnr application OFFLINE OFFLINEora....r01.gsd application OFFLINE OFFLINEora....r01.ons application OFFLINE OFFLINEora....r01.vip application OFFLINE OFFLINEora....02.lsnr application ONLINE ONLINE dbserver02ora....r02.gsd application ONLINE ONLINE dbserver02ora....r02.ons application ONLINE ONLINE dbserver02ora....r02.vip application ONLINE ONLINE dbserver02待DBSERVER02上oracle服务全部启动后再开启DBSERVER01。

Oracle常用命令大全(很有用,做笔记)

Oracle常用命令大全(很有用,做笔记)

Oracle常⽤命令⼤全(很有⽤,做笔记)⼀、ORACLE的启动和关闭1、在单机环境下要想启动或关闭ORACLE系统必须⾸先切换到ORACLE⽤户,如下su - oraclea、启动ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>startupSVRMGR>quitb、关闭ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>shutdownSVRMGR>quit启动oracle9i数据库命令:$ sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL> connect / as sysdbaConnected to an idle instance.SQL> startup^CSQL> startupORACLE instance started.2、在双机环境下要想启动或关闭ORACLE系统必须⾸先切换到root⽤户,如下su - roota、启动ORACLE系统hareg -y oracleb、关闭ORACLE系统hareg -n oracleOracle数据库有哪⼏种启动⽅式说明:有以下⼏种启动⽅式:1、startup nomount⾮安装启动,这种⽅式启动下可执⾏:重建控制⽂件、重建数据库读取init.ora⽂件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora⽂件。

2、startup mount dbname安装启动,这种⽅式启动下可执⾏:数据库⽇志归档、数据库介质恢复、使数据⽂件联机或脱机,重新定位数据⽂件、重做⽇志⽂件。

Oracle数据库维护手册范本

Oracle数据库维护手册范本

数据库维护手册目录1前言 (3)2ORACLE维护方法 (3)2.1 数据库启动 (3)2.2 数据库停止 (3)2.3 监听器的启停 (4)2.4 用户管理 (4)2.5 数据库参数文件 (5)2.6 数据库概况的查询 (6)2.7 常用对象的创建和使用 (7)2.8 失效数据库对象的检测和编译 (7)2.9 数据备份的技巧 (8)2.10 数据库命中率的监测 (10)2.11 最消耗资源进程的检测 (11)2.12 锁的监测及处理 (12)2.13 SQL语句执行技巧 (12)2.14 表空间的管理 (13)2.15 数据文件I/O的统计优化 (14)2.16 错误号的跟踪出理 (14)3日常问题处理流程 (15)3.1 ORACLE数据库日常检查 (15)3.2 会话连接日志的清理 (15)3.3 数据库hang住时的停止和方法 (15)3.4 扩表空间方法 (16)3.5 死锁会话的杀死 (16)3.6 未决两阶段事务的回滚............................. 错误!未定义书签。

4相关通用工具介绍. (17)4.1 EM工具.......................................... 错误!未定义书签。

1前言本文主要是简单介绍和总结日常Oracle数据在运行维护方面的一些方法和技巧。

通过该手册以便于相关技术人员的日常运维工作。

2ORACLE DB维护方法2.1数据库启动1、以oracle用户用户登录,sqlplus ‘/as sysdba’sqlplus> startup2、以oracle用户或ora816用户登录sqlplus ‘/as sysdba’sqlplus >startup nomuntsqlplus >alter database mount;sqlplus >alter database open;3、第一种启动方式是最常用的手工启动方式,第二种启动方式是数据库有故障时常用的逐步启动方式,可以观察故障点。

Oracle-11g日常维护手册

Oracle-11g日常维护手册

Oracle 11g 日常维护手册目录第1章文档说明 (5)第2章CRS的管理 (5)2.1 RAC状态检查 (5)检查守护进程状态 (5)检查资源状态 (5)2.2 手工启动与关闭RAC (6)2.3 OCR的管理 (6)2.4 VOTING DISK的管理 (8)2.5 CSS管理 (9)2.6 管理工具SRVCTL (9)管理实例 (9)管理监听程序 (9)管理ASM (10)管理service (10)2.7 修改RAC的IP及VIP (11)修改外网IP及心跳IP (11)修改VIP (11)查看与删除IP (12)第3章ASM的管理 (13)3.1 管理DG (13)建立与扩充disk group (13)mount与unmount的吩咐 (14)删除disk group (14)增加DISK的total_mb (14)DG的属性-AU大小 (14)DG的属性-离线删除时间 (15)DG的属性-兼容版本 (15)向ASM中添加disk的完整步骤 (16)3.2 ASMCMD (17)ASMCMD常用吩咐 (17)复制ASM文件 (18)吩咐lsdg (18)元数据备份与复原 (18)3.3 ASM磁盘头信息备份与复原 (19)3.4 ASM常用视图 (20)视图V$ASM_DISKGROUP (20)视图V$ASM_DISK (21)3.5 常用方法 (22)如何确定ASM实例的编号 (22)查询DG-RAW-磁盘的对应关系 (22)第4章数据库管理 (24)4.1 参数文件管理 (24)4.2 表空间管理 (25)表空间自动扩张 (25)表空间更名 (26)表空间的数据文件更名 (26)缺省表空间 (26)表空间删除 (27)UNDO表空间 (27)TEMP表空间 (27)4.3 重做日志文件管理 (27)增加REDO日志组 (27)删除日志组 (28)日志切换 (28)日志清理 (28)重做日志切换次数查询 (28)4.4 归档模式 (29)单实例数据库修改为归档模式的方法 (29)RAC数据库修改为归档模式的方法 (29)归档路径 (30)4.5 重建限制文件 (31)4.6 内存参数管理 (32)Oracle内存管理发展阶段 (32)自动内存管理AMM (32)自动共享内存管理ASMM (33)自动PGA管理 (33)4.7 其他管理内容 (33)数据库版本查看 (33)字符集 (34)创建密码文件 (34)关闭审计功能 (34)帐号管理 (34)profile管理 (35)第1章文档说明本文档描述了Oracle11g中常见的维护和管理方法,包括CRS、ASM、数据库等。

数据库(Oracle)运维工作内容及常用脚本命令

数据库(Oracle)运维工作内容及常用脚本命令

数据库(Oracle)运维⼯作内容及常⽤脚本命令1、系统资源状况:--内存及CPU资源--linux,solaris,aixvmstat 5--说明:1)观察空闲内存的数量多少,以及空闲内存量是否稳定,如果不稳定就得想办法来解决,怎么解决还得看具体情况,⼀般可以通过调整相关内存参数来解决,各种操作系统输出指标、解释及内存调整参数及⽅法不完全⼀样;2)观察CPU资源利⽤情况,⾸先,需要观察CPU上运⾏的任务数,也就是vmstat输出中位于第⼀列上的指标,如果该指标持续⼤于CPU 核⼼数,应该引起注意;如果该指标持续⼤于CPU核⼼数的两倍,那么应该引起重视;如果持续为CPU核⼼数的多倍,系统⼀般会出现应⽤可感知的现象,必须⽴刻想办法解决。

当然,在观察该指标的同时,还要结合CPU利⽤率的指标情况,如:⽤户使⽤百分⽐,系统使⽤百分⽐,空闲百分⽐等指标,如果空闲百分⽐持续低于20%,应该引起注意;如果持续低于10%,应该引起重视;如果持续为0,系统⼀般会出现应⽤可感知的现象,应该⽴刻想办法解决问题;3)CPU⽤户使⽤百分⽐和系统使⽤百分⽐的⽐例,也是应该注意的。

⼀般来说,在⼀个状态正常的系统上,⽤户使⽤百分⽐应该⽐系统使⽤百分⽐⼤很多,⼏倍到⼗⼏倍甚⾄更⾼,如果系统使⽤百分⽐持续接近⽤户使⽤百分⽐,甚⾄⼤于⽤户使⽤百分⽐,说明系统的状态是不正常的,可能是硬件或者操作系统问题,也可能是应⽤问题。

有关vmstat输出中各指标及解释等,可以参照本⼈博客中相关⽂章:。

--IO状况--linux,solarisiostat -dx 5--aixiostat 5--说明:1)该命令主要⽤来观察系统存储设备的负载和性能状况,⾸先,需要观察系统各存储设备的繁忙程度,如果该繁忙程度指标持续超过80%,那么应该引起注意;如果持续超过90%,应该引起重视;如果持续100%,⼀般会出现应⽤感知的现象,应该⽴刻想办法解决问题; 2)其次,需要注意的是系统上各存储设备的IO能⼒,就是每秒钟各存储设备的输⼊、输出的数据量,这个和具体设备的硬件及配置有关,没有⼀个严格的标准,性能好点的能达到每秒上G,甚⾄⼏个G,差的只能到每秒⼏⼗兆甚⾄⼗⼏兆;3)最后,需要观察存储设备完成每次读写操作耗费的时间,这个也是和具体设备硬件和配置相关的,好的设备可能不到1毫秒,差的能到⼏⼗毫秒甚⾄上百毫秒;iostat的输出,在各种操作系统上的输出和解释也不尽相同,具体可以参照本⼈博客的相关⽂章:。

oracle数据库维护手册

oracle数据库维护手册

目录1. 检查数据库基本状况41.1. 检查ORACLE实例状态41.2. 检查ORACLE服务进程41.3. 检查ORACLE监听状态52. 检查系统和ORACLE日志文件62.1. 检查操作系统日志文件62.2. 检查ORACLE日志文件62.3. 检查ORACLE核心转储目录72.4. 检查ROOT用户和ORACLE用户的EMAIL 73. 检查ORACLE对象状态73.1. 检查ORACLE控制文件状态73.2. 检查ORACLE在线日志状态83.3. 检查ORACLE表空间的状态83.4. 检查ORACLE所有数据文件状态83.5. 检查无效对象93.6. 检查所有回滚段状态104. 检查ORACLE相关资源的使用情况104.1. 检查ORACLE初始化文件中相关参数值10 4.2. 检查数据库连接情况114.3. 检查系统磁盘空间124.4. 检查表空间使用情况124.5. 检查一些扩展异常的对象134.6. 检查SYSTEM表空间内的内容144.7. 检查对象的下一扩展与表空间的最大扩展值145. 检查ORACLE数据库备份结果145.1. 检查数据库备份日志信息155.2. 检查BACKUP卷中文件产生的时间155.3. 检查ORACLE用户的EMAIL 156. 检查ORACLE数据库性能156.1. 检查数据库的等待事件156.2. DISK READ最高的SQL语句的获取156.3. 查找前十条性能差的SQL 166.4. 等待时间最多的5个系统等待事件的获取16 6.5. 检查运行很久的SQL 166.6. 检查消耗CPU最高的进程166.7. 检查碎片程度高的表176.8. 检查表空间的I/O 比例176.9. 检查文件系统的I/O 比例176.10. 检查死锁及处理176.11. 检查数据库CPU、I/O、内存性能186.12. 查看是否有僵死进程196.13. 检查行链接/迁移196.14. 定期做统计分析196.15. 检查缓冲区命中率206.16. 检查共享池命中率206.17. 检查排序区206.18. 检查日志缓冲区217. 检查数据库安全性217.1. 检查系统安全日志信息217.2. 检查用户修改密码218. 其他检查228.1. 检查当前CRONTAB任务是否正常228.2. ORACLE JOB是否有失败228.3. 监控数据量的增长情况228.4. 检查失效的索引238.5. 检查不起作用的约束238.6. 检查无效的TRIGGER 23本文档为本人亲自整理的公司的维护文档,内容很详细,DBA日常任务基本就是文档中写的那些,初学DBA或是有意学习DBA的同学们可取去学习学习,文档有实例讲解,很实用。

数据库日常运行维护方案

数据库日常运行维护方案

Oracle数据库日常运行维护方案2019年3月1项目背景及目标1.1 项目背景XXX信息化建设经过多年的发展和完善,已经建立成熟的网络环境及业务及管理的各类应用系统,目前在线运行的PC 近XX台,近年来建设的XX业务管理等若干应用信息系统多数是基于Oracle数据库系统的应用。

这些Oracle 数据库产品的标准服务都已经过了服务期。

而各系统随着数据量的逐年增加,陆续出现了性能问题,有必要进行数据库系统的升级及性能优化,以确保应用系统的正常运行,为XXX提供更好的信息服务。

1.2 项目目标➢尽早发现性能瓶颈,及时调整,保障数据库稳定高效工作;对各个系统数据库进行补丁升级服务,安装补丁前需要对补丁的可行性及风险即你想那个分析,并制定升级计划和应急回退计划。

同时要做好系统备份准备及详细的测试工作,确保系统的稳定性、安全性,保障系统业务数据的安全;➢数据库架构的合理化;➢提升应用系统性能,完成各系统数据库的性能调优工作,包括:外部资源调优、行的重新安排调优、SQL 性能调优、表格和索引存储参数设置调优等。

➢各业务持续性得到有效的保证。

2需求分析通过对xxx 技术要求进行详实的分析以及xxx信息系统建设的了解,各应用系统的Oracle产品日常运行维护项目主要从如下几个方面进行:1、由于 xxx 有些系统软件建设的较早,目前存在不同版本的数据库共存的现象,包括:Oralce8、Oracle9I、Oracle10g以及Oracle11g等。

而 Oracle9I 版本之前的数据库 SQL 编程语句还不是业界通用的标准化的语句,它与后面版本的 SQL 编程语句有很大的差别,所以在这方面的性能优化需要做好充分备份的准备。

2、正是由于这些系统建设的较早,基于当时的实际情况,应用系统或数据库都还存在一些不足,针对这些情况软件开发商都开发出相应的补丁提供给用户进行升级以防范风险。

所以在对各个系统数据库进行补丁升级服务之前,需要对补丁的可行性、安全性及风险进行充分的测试和分析。

oracle日常运维总结

oracle日常运维总结

oracle日常运维总结Oracle是一种功能强大的关系型数据库管理系统,广泛应用于各种企业级应用程序中。

作为一名Oracle数据库管理员(DBA),日常运维是我们工作的重要组成部分。

在这篇文章中,我将总结一些Oracle日常运维的经验和注意事项,希望对其他DBA或使用Oracle 的人员有所帮助。

一、备份与恢复备份和恢复是数据库管理中至关重要的一环。

我们需要定期进行数据库备份,以防止数据丢失和系统故障。

在备份过程中,我们可以使用Oracle提供的工具和功能,如RMAN(Recovery Manager)和Data Pump。

RMAN提供了完整的备份和恢复解决方案,可以进行全库备份和增量备份,并且支持备份集和归档日志的管理。

Data Pump 可以用于导出和导入数据库对象和数据,可以选择全库导出或指定对象导出。

恢复也是DBA必须掌握的技能之一。

当数据库遇到故障或数据损坏时,我们需要根据备份文件进行恢复。

在恢复过程中,我们需要了解不同的恢复场景和方法,如完全恢复、不完全恢复和点恢复。

同时,我们还要考虑日志文件的应用和恢复集的管理,确保数据的一致性和完整性。

二、性能优化Oracle数据库的性能优化是DBA不可或缺的工作之一。

通过监控和调整数据库的各个方面,我们可以提高数据库的响应速度和吞吐量,提升用户体验。

以下是一些常见的性能优化技巧:1. SQL调优:通过分析和改进SQL语句,优化查询计划和执行效率。

我们可以使用Oracle提供的SQL调优工具,如SQL Tuning Advisor和SQL Access Advisor。

2. 系统监控:通过监控数据库的系统资源利用率和性能指标,及时发现和解决性能瓶颈。

我们可以使用Oracle Enterprise Manager 或自定义脚本进行系统监控。

3. 索引优化:通过创建和维护合适的索引,加快数据检索和查询速度。

我们需要了解不同类型的索引和索引的使用场景,避免创建过多或不必要的索引。

ORACLE数据库日常使用中的维护和技巧

ORACLE数据库日常使用中的维护和技巧
量的 S Q L语句 ,减少计算工作量 ,可 以尽可能减少查
E x p是数据库导出命令 E x p o r t 的简写 ;
Fi l e数据 备份文件名 ,恢 复数据用到 此文件 ;
L o g是导 出 日志 的文件名 ,可以通过导 出 日志检 查备 是否 成功 完成 。 然后利用 Wi n d o w 自带的计划任务 工具每天定时
常检查 备 份 文件 的生 成情 况 ,由于 系统 或者 杀 毒软 件的缘 故 ,备份 工作可 能不能正常进行 ,发生异常时
应该 及时处 理 ,确保 备份数 据 的正确 及时 。
1 . 5 . 2 数 据 恢 复
h i r e d a t e ,c o mm,d e p t n o f r o m e mp,响应时 间为
数据库 系统显 得越来越 重要 。S Q L语 句尤其 是复杂 S Q L语 句的性 能优化 对于数据 库的性 能是至 关重要 的。在集中式数据库 中 S QL查询的执行总代价 = I / 0 代价 + CPU 代价 +内存 代价 。调整影 响其执行效率
的 三大 因素 来 减少 系统 总 代价 :一 是 减少 查 询所 产 生的 I / O总次数 ,二是减少 C P U 的计算频 度 ,减少
份 数据 备 份 的数据 和 日志 文件 。 日常工 作 中应该 经
从1 0 2 4行记录 中查询 想要的结果 :
优化前 : S e l e c t * f r o m e mp ,响应时间为 0 . 9 5 3 S 。
优化 后 : S e l e c e mp n o ,e n a me ,j o b ,mg r ,s a l ,
2 O R A C L E数据库 S Q L查询优化

运维手册_数据库_Oracle11gRAC日常运维手册(352)

运维手册_数据库_Oracle11gRAC日常运维手册(352)

Oracle运维手册恒生电子客服总部系统服务部本文所述内容(包括文字和图片),恒生电子股份有限公司(以下简称“恒生”或“恒生公司”)拥有完全独立的唯一版权。

未经恒生公司书面同意或授权,任何单位和个人都不得将其复制、影印或引用。

目录第一章通过SQL*Plus管理Oracle系统 (3)**. 登录oracle系统 (3)**. 退出SQL*Plus (3)**. 在sqlplus下得到帮助信息 (3)第二章Oracle11gR2 RAC日常管理 4**. 监控oracle (4)**. 监控Oracle日志 (4)**. 监控oracle状态 (5)**. 监控表空间使用情况 (6)**. 监控主机 (8)**. 监控CPU (8)**. 使用vmstat 命令监控cpu使用情况 (8)**. 监控主机日志 (9)**. 监控OS文件系统使用情况 (9)**. 启动、关闭数据库 (9)**. 启动数据库 (9)**. 关闭数据库 (11)**. 监听器启动、关闭 (13)**. 表统计信息维护 (14)**. 修改主机系统时间 (15)**. 时间管理原则 (15)**. 时间修改方法 (15)**. 数据库日志收集 (15)**. OS日志 (16)**. DB日志 (16)**. grid日志 (16)**. AWR和ASH报告生成 (16)**. AWR报告生成(同10g) (16)**. ASH报告生成(同10g) (19)**. Recyclebin管理 (23)**. 归档日志的清理 (23)**. 查看回收站中的对象 (23)**. 指定删除某些特定对象 (23)**. 指定删除某表空间的所有回收站对象 (23)**. 清除某用户下的回收站对象 (23)**. 清除所有回收站对象 (23)**. 数据库性能监控 (24)**. 查看系统当前等待事件 (24)**. 通过sid查看sql语句24第一章通过SQL*Plus管理Oracle 系统登录oracle系统以oracle用户登录主机1)以sys用户登录oracle系统[oracle@rac1 ~]$ sqlplus / as sysdba2)其他用户登录oracle系统[oracle@rac1 ~]$ sqlplus hs_user/handsome@jsswdb1退出SQL*PlusSQL>exit在sqlplus下得到帮助信息列出全部SQL命令和SQL*Plus命令SQL> help index列出某个特定的命令的信息SQL>help 命令名或者SQL>? 命令名第二章Oracle11gR2 RAC日常管理监控oracle2.1.1.监控Oracle日志2.1.1.1. DB日志以oracle用户登录该日志文件在每个节点主机的$ORACLE_BASE/diag/rdbms/<dbname>/<sid>/trace目录下,文件名为:alert_XXXX.log (节点1)例如:/u01/app/oracle/diag/rdbms/hsdb/hsdb1/trace/alert_hsdb1.log在出现oracle故障前或故障时,数据库会将一些警告、错误信息写入该文件,交易时应随时监控该文件,及时发现警告、错误信息。

oracle常用命令

oracle常用命令

--关闭数据库Oracle自动搜集功能alter system set "_optimizer_autostats_job"=false scope=spfile--修改表的默认表空间alter table 表名 move tablespace 表空间名;--修改索引表空间ALTER INDEX 索引名 REBUILD tablespace 表空间名;--修改LOB类型默认表空间ALTER TABLE SIGNATUREWORD MOVE LOB(IMAGE) STORE AS (TABLESPACE CZDJ);--创建数据表空间(表空间名称CZDJ,表空间文件大小1024M,数据文件满后自动扩展增量100MB,文件大小无限制)create tablespace CZDJ(表空间名)datafile 'd:\oracle\product\10.2.0\oradata\orcl\ CZDJ.dbf'(存放路径)size 1024m AUTOEXTEND ONNEXT 100m maxsize unlimited;--创建临时表空间create temporary tablespace dzdj31cz_temp (表空间名)tempfile 'd:\oracle\product\10.2.0\oradata\orcl\dzdj31cz_temp01.dbf'size 32Mautoextend onnext 32M maxsize 2048Mextent management local;本地管理表空间:extent management local字典管理表空间:extent management dictionary--修改表空间alter database datafile 'D:\oracle\product\10.2.0\oradata\orclzhaowei\test.dbf' resize 10m; alter database datafile 'D:\oracle\product\10.2.0\oradata\orclzhaowei\test.dbf' autoextend on next 50m maxsize unlimited;--创建用户并指定表空间create user 用户名 identified by 密码default tablespace 默认表空间temporary tablespace 临时表空间;--修改用户密码alter user 用户名 identified by 密码;--给表空间增加数据文件ALTER TABLESPACE sdeADD DATAFILE 'D:\oracle\product\10.2.0\oradata\orcl\sde01.dbf' size 20480M autoextend on next 50M maxsize unlimited;--给用户授予权限grant connect,dba,resource to 用户名--给用户解锁alter user username account unlock;--OraOLEDB.Oracle.1没有注册解决方法:regsvr32 D:\oracle\product\10.2.0\db_1\BIN\OraOLEDB10.dll--查询表空间状态select tablespace_name,status from dba_tablespaces;--表空间离线在线:离线的表空间无法访问,用于数据维护。

ORACLE数据库日常运维操作手册(带有具体代码2017)

ORACLE数据库日常运维操作手册(带有具体代码2017)

数据库日常运维操作手册目录1.日维护过程1.1 确认所有的INSTANCE状态正常1.2 检查文件系统的使用(剩余空间)1.3 检查日志文件和trace文件记录1.4 检查数据库当日备份的有效性。

1.5 检查数据文件的状态1.6 检查表空间的使用情况1.7 检查剩余表空间1.8 监控数据库性能1.9 检查数据库系统性能1.10 日常出现问题的处理。

2.每周维护过程2.1 监控数据库对象的空间扩展情况2.2 监控数据量的增长情况2.3 系统健康检查2.4 检查无效的数据库对象2.5 检查不起作用的约束2.6 检查无效的trigger3.月维护过程3.1 Analyze Tables/Indexes/Cluster3.2 检查表空间碎片3.3 寻找数据库性能调整的机会3.4 数据库性能调整3.5 提出下一步空间管理计划数据库日常运维操作手册主要针对ORACLE数据库管理员对数据库系统做定期监控:(1). 每天对ORACLE数据库的运行状态日志文件、备份情况、数据库的空间使用情况、系统资源的使用情况进行检查,发现并解决问题。

(2). 每周对数据库对象的空间扩展情况、数据的增长情况进行监控、对数据库做健康检查、对数据库对象的状态做检查。

(3). 每月对表和索引等进行Analyze、检查表空间碎片、寻找数据库性能调整的机会、进行数据库性能调整、提出下一步空间管理计划。

对ORACLE数据库状态进行一次全面检查1.日维护过程1.1 确认所有的INSTANCE状态正常登陆到所有数据库或例程,检测ORACLE后台进程:$ps –ef|grep ora1.2 检查文件系统的使用(剩余空间)如果文件系统的剩余空间小于20%,需删除不用的文件以释放空间。

#df –k1.3 检查日志文件和trace文件记录检查相关的日志文件和trace文件中是否存在错误。

A 连接到每个需管理的系统使用secureCRT远程登陆工具B 对每个数据库,进入到数据库的bdump目录,unix系统中BDUMP目录通常是$ORACLE_BASE/<SID>/bdump#$ORACLE_BASE/<SID>/bdumpC 使用Unix 和linux ‘tail’命令来查看alert_<SID>.log文件#tail $ORACLE_BASE/<SID>/bdump/alert_<SID>.logD 如果发现任何新的ORA-错误,记录并解决1.4 检查数据库当日备份的有效性。

Oracle 数据库日常巡检

Oracle 数据库日常巡检

Oracle 数据库日常巡检阅读目录1. 检查数据库基本状况2. 检查Oracle相关资源的使用情况3. 检查Oracle数据库备份结果4. 检查Oracle数据库性能5. 检查数据库cpu、I/O、内存性能6. 检查数据库安全性7. 其他检查回到顶部1. 检查数据库基本状况包含:检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分。

1.1. 检查Oracle实例状态select instance_name,host_name,startup_time,status,database_status from v$instance;其中“STATUS”表示Oracle当前的实例状态,必须为“OPEN”;“DATABASE_STATUS”表示Oracle当前数据库的状态,必须为“ACTIVE”。

1.2. 检查Oracle在线日志状态select group#,status,type,member from v$logfile;输出结果应该有3条以上(包含3条)记录,“STATUS”应该为非“INVALID”,非“DELETED”。

注:“STATUS”显示为空表示正常。

1.3. 检查Oracle表空间的状态select tablespace_name,status from dba_tablespaces;输出结果中STATUS应该都为ONLINE。

1.4. 检查Oracle所有数据文件状态select name,status from v$datafile;输出结果中“STATUS”应该都为“ONLINE”。

或者:select file_name,status from dba_data_files;输出结果中“STATUS”应该都为“AVAILABLE”。

1.5. 检查无效对象select owner,object_name,object_type from dba_objects where status!='VALID' and owner!='SYS' and owner!='SYSTEM';如果有记录返回,则说明存在无效对象。

oraclepartition维护操作()

oraclepartition维护操作()

oracle partition维护操作()oracle event 10434 and drmcache fusion and coordination of inter forum execute immediate动态sql的使用总结oracle data & temp files management分区表维护的常用命令.alter table- drop partition- add |- rename |- modifity |- truncate |- split |- move |- exchange |分区索引的常用维护命令.alter index- drop partition- rebuild |- rename |- modifity |- split |- parallel- unusable1、alter table drop partition用于删除table中某个partition和其中的数据, 主要是用于历史数据的删除.如果还想保留数据, 就需要合并到另一个partition中.删除该partition之后, 如果再insert该partition范围内的值, 要存放在更高的partition中.如果你删除了最大的partition, 就会出错.删除table partition的同时, 删除相应的local index.即使该index是iu状态.如果table上有global index, 且该partition不空, drop index index partition会使所有的global 为iu状态.如果不想rebuil, 可以用sql语句手工删除数据, 然后再drop score.例子.altr dec96 atbel sales drop partition.到底是drop partition或者是delete?如果global index是最重要的, 就应该先delete 数据再drop score.在下面情况下, 手工删除数据的代价比drop partition要小- 如果要删除的数据只占整个table的小部分- 在table中有很多的global index.在下面情况下, 手工删除数据的代价比drop partition要大- 如果要删除的数据占整个table的绝大部分- 在table中没有很多的global index.如果在table是父table, 有被引用的约束, 且partition不空, drop partition时出错.如果要删除有数据的partition, 应该先删除引用约束.或者先delete, 然后再drop score.如果table只有一个partiton, 不能drop 只能drop partition table.2、alter index. drop partitionoverall 删除partiotn index上删除index和index entry, 一般用于平衡i.index.不能显式的drop index必须是global local index partition, 不能删除最大的index.删除之后, insert属于该partition的值时候, index建立在更高的partition.如果包含数据的partition删除之后, 下一个partition是iu状态, 必须rebuild.可以删除iu状态的partition, 即使它包含数据.3、alter rename partition table / index.主要用于改变隐式建立的index name.可以是iu状态 index.rename 一般的index可以用alter index.4、alter table. add partition.只能加到最后一个partition之后.一般用于数据会单调增长的地方, 比如每周 / 月 / 年会增加新的历史数据等.split可以在中间插入partition.the than的第一个值是maxvalue 如果values, 就不能增加partition.必须split.the local 该命令也可以给自动增加partition partition名字和table partition一致 index.新的local index.新的本地分区索引使用前一个索引分区表分区表空间的缺省值,存放在同样的。

oracle维护常用SQL语句(查看系统表和视图)

oracle维护常用SQL语句(查看系统表和视图)

oracle维护常用SQL语句(查看系统表和视图)oracle维护常用SQL语句(查看系统表和视图)1.查看表空间的名称及大小select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom dba_tablespaces t, dba_data_files dwhere t.tablespace_name = d.tablespace_namegroup by t.tablespace_name2.查看表空间物理文件的名称及大小selecttablespace_name,file_id,file_name,round(bytes/(1024*1024),0) total_spacefrom dba_data_filesorder by tablespace_name;3.查看回滚段名称及大小select segment_name, tablespace_name, r.status,(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,max_extents, v.curext CurExtentFrom dba_rollback_segs r, v$rollstat vWhere r.segment_id = n(+)order by segment_name ;4.查看控制文件select name from v$controlfile;5.查看日志文件select member from v$logfile;6.查看表空间的使用情况select sum(bytes)/(1024*1024) as free_space,tablespace_namefrom dba_free_spacegroup by tablespace_name;SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE CWHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;7.查看数据库库对象select owner, object_type, status, count(*) count#from all_objectsgroup by owner, object_type, status;8.查看数据库的版本Select version FROM Product_component_versionWhere SUBSTR(PRODUCT,1,6)='Oracle';9.查看数据库的创建日期和归档方式Select Created, Log_Mode, Log_Mode From V$Database;10.捕捉运行很久的SQLcolumn username format a12column opname format a16column progress format a8select username,sid,opname,round(sofar*100 / totalwork,0) || '%' as progress,time_remaining,sql_textfrom v$session_longops , v$sqlwhere time_remaining <> 0and sql_address = addressand sql_hash_value = hash_value/11.查看数据表的参数信息SELECT partition_name, high_value, high_value_length, tablespace_name,pct_free, pct_used, ini_trans, max_trans, initial_extent,next_extent, min_extent, max_extent, pct_increase, FREELISTS, freelist_groups, LOGGING, BUFFER_POOL, num_rows, blocks, empty_blocks, avg_space, chain_cnt, avg_row_len, sample_size,last_analyzedFROM dba_tab_partitions--WHERE table_name = :tname AND table_owner = :towner ORDER BY partition_position12.查看还没有提交的事务select * from v$locked_object;select * from v$transaction;13.查找object为那些进程所用selectp.spid,s.sid,s.serial# serial_num,ername user_name,a.type object_type,s.osuser os_user_name,a.owner,a.object object_name,decode(sign(48 - command),1,to_char(command), 'Action Code #' || to_char(command) ) action,p.program oracle_process,s.terminal terminal,s.program program,s.status session_statusfrom v$session s, v$access a, v$process pwhere s.paddr = p.addr ands.type = 'USER' anda.sid = s.sid anda.object='SUBSCRIBER_ATTR'order by ername, s.osuser14.回滚段查看select rownum, sys.dba_rollback_segs.segment_name Name, v$rollstat.extentsExtents, v$rollstat.rssize Size_in_Bytes, v$rollstat.xacts XActs, v$rollstat.gets Gets, v$rollstat.waits Waits, v$rollstat.writes Writes,sys.dba_rollback_segs.status status from v$rollstat, sys.dba_rollback_segs,v$rollname where v$(+) = sys.dba_rollback_segs.segment_name andv$n (+) = v$n order by rownum15.耗资源的进程select s.schemaname schema_name, decode(sign(48 - command), 1,to_char(command), 'Action Code #' || to_char(command) ) action, statussession_status, s.osuser os_user_name, s.sid, p.spid , s.serial# serial_num,nvl(ername, '[Oracle process]') user_name, s.terminal terminal,s.program program, st.value criteria_value from v$sesstat st, v$session s , v$process pwhere st.sid = s.sid and st.statistic# = to_number('38') and ('ALL' = 'ALL'or s.status = 'ALL') and p.addr = s.paddr order by st.value desc, p.spid asc, ername asc, s.osuser asc16.查看锁(lock)情况select /*+ RULE */ ls.osuser os_user_name, ername user_name,decode(ls.type, 'RW', 'Row wait enqueue lock', 'TM', 'DML enqueue lock', 'TX','Transaction enqueue lock', 'UL', 'User supplied lock') lock_type,o.object_name object, decode(ls.lmode, 1, null, 2, 'Row Share', 3,'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive', null)lock_mode, o.owner, ls.sid, ls.serial# serial_num, ls.id1, ls.id2 from sys.dba_objects o, ( select s.osuser, ername, l.type, l.lmode, s.sid, s.serial#, l.id1, l.id2 from v$session s,v$lock l where s.sid = l.sid ) ls where o.object_id = ls.id1 and o.owner<> 'SYS' order by o.owner, o.object_name17.查看等待(wait)情况SELECT v$waitstat.class, v$waitstat.count count, SUM(v$sysstat.value) sum_valueFROM v$waitstat, v$sysstat WHERE v$ IN ('db block gets','consistent gets') group by v$waitstat.class, v$waitstat.count18.查看sga情况SELECT NAME, BYTES FROM SYS.V_$SGASTAT ORDER BY NAME ASC19.查看catched objectSELECT owner, name, db_link, namespace,type, sharable_mem, loads, executions,locks, pins, kept FROM v$db_object_cache20.查看V$SQLAREASELECT SQL_TEXT, SHARABLE_MEM, PERSISTENT_MEM, RUNTIME_MEM, SORTS,VERSION_COUNT, LOADED_VERSIONS, OPEN_VERSIONS, USERS_OPENING, EXECUTIONS,USERS_EXECUTING, LOADS, FIRST_LOAD_TIME, INVALIDATIONS, PARSE_CALLS, DISK_READS,BUFFER_GETS, ROWS_PROCESSED FROM V$SQLAREA21.查看object分类数量select decode (o.type#,1,'INDEX' , 2,'TABLE' , 3 , 'CLUSTER' , 4, 'VIEW' , 5 ,'SYNONYM' , 6 , 'SEQUENCE' , 'OTHER' ) object_type , count(*) quantity fromsys.obj$ o where o.type# > 1 group by decode (o.type#,1,'INDEX' , 2,'TABLE' , 3, 'CLUSTER' , 4, 'VIEW' , 5 , 'SYNONYM' , 6 , 'SEQUENCE' , 'OTHER' ) union select'COLUMN' , count(*) from sys.col$ union select 'DB LINK' , count(*) from22.按用户查看object种类select schema, sum(decode(o.type#, 1, 1, NULL)) indexes,sum(decode(o.type#, 2, 1, NULL)) tables, sum(decode(o.type#, 3, 1, NULL))clusters, sum(decode(o.type#, 4, 1, NULL)) views, sum(decode(o.type#, 5, 1,NULL)) synonyms, sum(decode(o.type#, 6, 1, NULL)) sequences,sum(decode(o.type#, 1, NULL, 2, NULL, 3, NULL, 4, NULL, 5, NULL, 6, NULL, 1))others from sys.obj$ o, er$ u where o.type# >= 1 and er# =o.owner# and <> 'PUBLIC' group by order bysys.link$ union select 'CONSTRAINT' , count(*) from sys.con$23.有关connection的相关信息1)查看有哪些用户连接select s.osuser os_user_name, decode(sign(48 - command), 1, to_char(command),'Action Code #' || to_char(command) ) action, p.program oracle_process,status session_status, s.terminal terminal, s.program program,ername user_name, s.fixed_table_sequence activity_meter, '' query,0 memory, 0 max_memory, 0 cpu_usage, s.sid, s.serial# serial_numfrom v$session s, v$process p where s.paddr=p.addr and s.type = 'USER'order by ername, s.osuser2)根据v.sid查看对应连接的资源占用等情况select ,v.value,n.class,n.statistic#from v$statname n,v$sesstat vwhere v.sid = 71 andv.statistic# = n.statistic#order by n.class, n.statistic#3)根据sid查看对应连接正在运行的sql select /*+ PUSH_SUBQ */ command_type,sql_text,sharable_mem,persistent_mem,runtime_mem,sorts,version_count,loaded_versions,open_versions,users_opening,executions,users_executing,loads,first_load_time,invalidations,parse_calls,disk_reads,buffer_gets,rows_processed,sysdate start_time,sysdate finish_time,'>' || address sql_address,'N' statusfrom v$sqlareawhere address = (select sql_address from v$session where sid = 71)24.查询表空间使用情况select a.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)",Largest "最大扩展段(M)",to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') "采样时间"from (select f.tablespace_name,sum(f.bytes) bytes_alloc,sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytesfrom dba_data_files fgroup by tablespace_name) a,(select f.tablespace_name,sum(f.bytes) bytes_freefrom dba_free_space fgroup by tablespace_name) b,(select round(max(ff.length)*16/1024,2) Largest, tablespace_namefrom sys.fet$ ff, sys.file$ tf,sys.ts$ tswhere ts.ts#=ff.ts# and ff.file#=tf.relfile# and ts.ts#=tf.ts#group by , tf.blocks) cwhere a.tablespace_name = b.tablespace_name anda.tablespace_name = c.tablespace_name25. 查询表空间的碎片程度select tablespace_name,count(tablespace_name) from dba_free_space group by tablespace_namehaving count(tablespace_name)>10;alter tablespace name coalesce;alter table name deallocate unused;create or replace view ts_blocks_v asselect tablespace_name,block_id,bytes,blocks,'free space' segment_name from dba_free_spaceunion allselecttablespace_name,block_id,bytes,blocks,segment_name from dba_extents;select * from ts_blocks_v;selecttablespace_name,sum(bytes),max(bytes),count(block_id) from dba_free_spacegroup by tablespace_name;26.查询有哪些数据库实例在运行select inst_name from v$active_instances;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL> STARTUP
2)启动实例,不装载数据库
启动实例而不用装载数据库,通常只在整个数据库创建过程中使用该模式:
SQL> STARTUP NOMOUNT
3)启动实例,并装载数据库
可以启动实例并装载数据库,但不打开数据库。该模式允许执行特定的维护操作,例如在下面的任务中必须装载数据库而不打开数据库。
SQL> alter profile default limit FAILED_LOGIN_ATTEMPTS 20;
2、授予和撤销系统权限
1)授予用户多个系统权限
SQL> grant create session,create table,create view,create any index,create sequence,create type to appdeveloper1;
* 设置密码有效期为"无限期"
SQL> alter profile default limit password_life_time unlimited;
* 修改连续登录失败上锁次数限制
SQL> alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
SQL> select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
* 查看引起一个用户被锁定的连续登录失败的次数
SQL> select * from dba_profiles where profile='DEFAULT' and resource_name='FAILED_LOGIN_ATTEMPTS';
* 查询某用户的表空间使用限额情况(如果没指定限额,将返回no rows selected):
SQL> select * from dba_ts_quotas where username = 'JSAM';
7)查看用户状态
SQL> select username,account_status from dba_users;
3)授予用户所有系统权限(除了select any dictionary)
SQL> grant all privileges to admin;
4)授予用户DBA权限
SQL> grant dba to admin;
5)撤销已授予用户appdeveloper1的create type和create sequence系统权限
等等...
三、安全管理
1、用户管理
1)创建用户账号名为jsam,密码为jsam123,采用数据库认证方式。默认表空间为users,临时表空间为temp,其中对表空间users的使用限额为500K,表示最多可以使用500K的表空间:
SQL> create user jsam identified by jsam123
程序员必备:Oracle日常维护命令
博客分类: Oracle
Oracle 命令 数据库 SQL dba .
测试环境:Oracle 10g
一、启动、关闭数据库
1、启动实例的各种模式
1)启动实例,装载并打开数据库
这是最普通的数据库操作,意味着某个实例已经启动并且数据库也已经装载并打开。这种模式允许任何一个有效的用户连接到数据库,并执行典型的数据访问操作。启动实例接着从默认的服务器参数文件位置读取初始化参数,然后通过STARTUP命令来装载和打开数据库:
2)查询用户拥有的对象权限
SQL> select owner || '.' || table_name object_name, privilege, grantable
* 用SHUTDOWN NORMAL、SHUTDOWN IMMEDIATE、SHUTDOWN TRANSACTIONAL命令不能关闭当前的实例时。
* 在启动实例的时候遇到一些问题时。
SQL> STARTUP FORCE
6)启动实例,装载数据库,并启动完整的介质恢复过程
如果知道需要介质恢复过程,就可以启动实例并为其装载数据库,以及通过使用带RECOVER选项的STARTUP命令的方法来自动启动恢复过程。
SQL> SHUTDOWN TRANSACTIONAL
ቤተ መጻሕፍቲ ባይዱ
4)以终止模式关闭数据库
不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。
SQL> SHUTDOWN ABORT
二、用户登录
1、以没有连接数据库的方式启动SQL*Plus
SQL> show user
6)查询用户信息
* 查看当前用户可以访问的所有账号信息、用户ID及创建时间:
SQL> select * from all_users;
* 查看当前数据库所有的用户账号信息、配置文件及状态:
SQL> select username, profile, account_status from dba_users;
* 重命名数据文件
* 添加取消或重命名重做日志文件
* 允许和禁止重做日志存档选项
* 执行完整的数据为恢复操作
SQL> STARTUP MOUNT
4)在启动过程中限制访问数据库
可以在受限制的模式下启动实例并装载和打开数据库,以便只有管理人员而不是一般的数据库用户可以利用数据库。当需要完成以下一种任务时,使用这种数据库启动模式:
4、查看权限信息
1)查询用户所拥有的系统权限
SQL> select privilege, admin_option from dba_sys_privs where grantee = 'JSAM';
查看当前用户的系统权限
SQL> select * from user_sys_privs;
* 执行数据库数据的导入或导出操作
* 执行数据库装载操作用SQL*Loader
* 暂时阻止一般的用户使用数据
* 在某个移植过程和升级操作过程中
SQL> STARTUP RESTRICT
5)迫使实例启动
在一些特殊环境下,可能会在启动数据库实例的时候遇到一些问题。一般不要迫使数据库启动,除非存在以下情形:
以读写模式打开数据库
SQL> ALTER DATABASE OPEN READ WRITE;
3、关闭数据库
1)以正常模式关闭数据库
不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
SQL> SHUTDOWN NORMAL
如果不限制用户使用表空间的限额,可以不加quota 500k on users。
一般创建用户之后会同时进行授权,通常可授权用户连接数据库、创建表/序列/过程/包/函数/视图等权限:
SQL> grant connect,resource,create view to jsam;
2)如果想要某个用户代为管理某个特定的权限,可在授予系统权限时指定with grant option选项。
该用户具有以下操作能力:
* 可以向数据库里的任何其他用户授予或撤销该系统权限;
* 可以在向其他用户授予系统权限的时候使用with admin option选项。
SQL> grant create table to tableAdmin with admin option;
1)
# sqlplus jsam/jsam123
2)
# sqlplus jsam/jsam123@orcl
3)
# sqlplus /nolog
SQL> conn jsam/jsam123
4)
# sqlplus /nolog
SQL> conn jsam/jsam123@orcl
2)授予指定的对象权限
SQL> grant insert,update,delete,select on authorinfo to booksystemdeveloper;
3)如果授予对象权限的时候使用了with grant option,那么被授权者就能够把获得的对象权限再去授予其他用户。
SQL> revoke create type, create sequence from appdeveloper1;
3、授予和撤销对象权限
1)授予表的全部对象权限
SQL> grant all privileges on bookinfo to booksystemdeveloper;
8)用户配置文件
* 查看所有配置情况
SQL> select * from dba_profiles;
* 查看默认配置文件参数情况
SQL> select * from dba_profiles where profile='DEFAULT';
* 查看密码有效期配置
STARTUP OPEN RECOVER
2、改变数据库的可用性
1)为实例装载数据库
SQL> ALTER DATABASE MOUNT;
2)打开一个关闭的数据库
SQL> ALTER DATABASE OPEN;
相关文档
最新文档