1、Oracle Database 日常维护手册目录1. 登陆到数据库 .31.1. 服务器端配置 Listener.31.2. 客户端 tnsnames.41.3. 检查 Oracle Listener .51.4. 登陆数据库的方式 .51.5. 数据库的启动 .51.6. 关闭数据库 .62. 用户管理 .62.1. 检察用户 profile.62.2. 查看用户 profile 参数 .63. 检查数据库基本状况 .73.1. 检查数据库创建日期 .73.2. 检查数据库版本信息 .73.3. 检查实例状态 .73.4. 查看前台进程 .73.5. 查看数据库连接的 session.83.
2、6. 查看连接到数据库的模式 .83.7. 查看并发连接数 .83.8. 查看最大的连接processes .83.9. 监控系统后台进程 .83.10. 查看数据库初始化参数 .83.11. 检查 PGA 使用情况 .83.12. 检查 SGA 状态 .83.13. 检查 Oracle 服务进程 .83.14. 检查 Oracle 监听状态 .93.15. 检查监听进程是否存在 .103.16. 检查操作系统日志文件 .103.17. 检查 oracle 日志文件 .103.18. 检查 Oracle 核心转储目录 .103.19. 检查 Root 用户和 Oracle 用户的 email.
3、114. 检查 Oracle 对象状态 .114.1. 检查 Oracle 控制文件状态 .114.2. 检查 Oracle 在线日志状态 .114.3. 检查 Oracle 表空间的状态 .124.4. 检查 Oracle 所有数据文件状态 .124.5. 检查无效对象 .124.6. 检查所有回滚段状态 .134.7. 检查用户下的表 .134.8. 检查用户默认表空间 .134.9. 检查当前用户角色及权限 .134.10. 检查用户下的各个表的大小 .134.11. 检查一个表的创建时间 .134.12. 检查某个表的大小 .134.13. 检查每个表占用磁盘空间情况 .145. 检查
4、 Oracle 相关资源的使用情况 .145.1. 检查 Oracle 初始化文件中相关参数值 .145.2. 检查数据库连接情况 .155.3. 检查系统磁盘空间 .165.4. 检查表空间使用情况 .165.5. 检查一些扩展异常的对象 .185.6. 检查表空间碎片情况 .185.7. 检查 system 表空间内的内容 .185.8. 检查对象的下一扩展与表空间的最大扩展值 .195.9. 检查 flash recovery area 空间 .196. 检查 Oracle 数据库性能 .196.1. 查询表空间读写情况 .196.2. 查询 redo log buffer 的繁忙程度
5、.206.3. 判断 undo 表空间的使用情况 .206.4. 分析日志组切换频率 .216.5. 查看等待事件 .216.6. 检查数据库 cpu、I/O、内存性能 .226.7. 内存使用情况 .226.8. 系统 I/O 情况 .226.9. 系统负载情况 .236.10. 查看是否有僵死进程 .236.11. 检查缓冲区命中率 .236.12. 检查共享池命中率 .246.13. 检查排序区 .246.14. 检查日志缓冲区 .246.15. 检查失效的索引 .246.16. 检查不起作用的约束 .246.17. 检查无效的 trigger.256.18. 检查尚未建立索引的表 .2
6、56.19. 检查运行时间长的 SQL .256.20. 检查性能差的前 10 条 SQL .256.21. 查看占 io 较大的正在运行的 session .256.22. 检查消耗 CPU 最高的 PID 对应的 SQL .256.23. 检查占用 CPU 多的 session .266.24. 检查表空间的 IO.266.25. 检查临时表空间 IO.266.26. 检查锁和等待 .267. 检查数据库安全性 .277.1. 检查系统安全日志信息 .277.2. 检查登录失败的日志: .277.3. 检查用户修改密码 .278. 数据表空间日常维护 .278.1. 查看表空间的一些信息
7、.278.2. 创建表空间 .288.3. 表空间扩容 .288.4. 创建大数据文件 .298.5. 数据表空间文件迁移 .298.6. 不停机移动表空间文件 .309. 存储过程管理 .309.1. 找出特定用户的存储过程 .309.2. 通过表名找出存储过程 .309.3. 查看存储过程内容 .3010. 触发器管理 .3010.1. 找出数据库中所有触发器 .3010.2. 找出特定用户的触发器 .3110.3. 找出当前用户定义的触发器 .3110.4. 查看某个用户自定义的触发器内容 .3110.5. 查看某个表关联的触发器 .3110.6. 查看当前用户所有触发器及存储过程 .3
8、111. Redo Log 管理 .3111.1. 离线迁移日志文件 .3111.2. 在线更改 Redo Log 文件容量 .321. 登陆到数据库1.1.服务器端配置 ListenerLISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY =racdb1)(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.137.10)(PORT = 1521)ADR_BASE_LISTENER = /u01/app/oracleSID_LIST_LISTENER=(SID_LI
9、ST=(SID_DESC=#BEQUEATH CONFIG(GLOBAL_DBNAME=racdb1)(SID_NAME=racdb1)(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)#PRESPAWN CONFIG(PRESPAWN_MAX=20)(PRESPAWN_LIST=(PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1)说明GLOBAL_DBNAME=racdb1Service 名称,在客户端一定配置和他相同SID_NAME=racdb1实例名称,这个要和 SID 相同GL
10、OBAL_DBNAME 可以不等于 SID_NAME客户端根据 tnsname.ora 中的 SERVICE_NAME 和地址(ADDRESS = (PROTOCOL = TCP)(HOST =racdb1)(PORT = 1521),到这个地址去访问监听器。然后监听器根据文件 lisnter.ora 文件中的 GLOBAL_NAME 来判断是否有一个 GLOBAL_DBNAME 和 SERVICE_NAME 相等。如果相等,则建立客户端到 SID 标识的服务端实例的连接, 在客户端上我们可以使用 tnsping 命令来测试1.2.客户端 tnsnamesracdb1 =(descriptio
11、n =(address_list =(address = (protocol = tcp)(host = 192.168.137.10)(port = 1521)(connect_data =(service_name =racdb1)(ur=a)说明这里的 service_name =racdb1 就是在服务器端的 GLOBAL_DBNAME=racdb1oracleracdb1 $ tnsping racdb1TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 21-JAN-2015 14:51:49Copyrigh
12、t (c) 1997, 2009, Oracle. All rights reserved.TNS-03502: Insufficient arguments. Usage: tnsping oracleracdb1 $ tnsping racdb1TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 21-JAN-2015 14:51:55Copyright (c) 1997, 2009, Oracle. All rights reserved.Used parameter files:Used TNSNAMES ada
13、pter to resolve the aliasAttempting to contact (description = (address_list = (address = (protocol = tcp)(host = racdb1)(port = 1521) (connect_data = (service_name = racdb1)(ur=a)OK (0 msec)1.3.检查 Oracle Listenerlsnrctl stoplsnrctl startlsnrctl statuslsnrctl service1.4.登陆数据库的方式说明修改登陆 oracle 认证模式默认情况
14、下我们 oracle 安装好后是使用操作系统用户的验证, 所以这里如果我们使用 sys 用户不用密码就可以登录,如果我们想使用 oracle 密码文件验证的话我们就要进入下列文件夹cd /u01/app/oracle/product/11.2.0/dbhome_1/network/admin 修改 sqlnet.ora增加下列命令SQLNET.AUTHENTICATION_SERVICES = NONE说明配置了 tnsnames 登录数据库方式oracleracdb1 $ sqlplus scott/111111racdb1sqlplus /nolog 使用 scott 登陆到指定数据库 r
15、acdb1conn sys/111111racdb1 AS SYSDBA; 察看登陆到了哪个数据库实例select instance_name from v$instance使用 sys 用户登陆conn sys/change_on_installer as sysdba 用 sysdba 登陆conn /as sysdba 使用 sys 用户登录conn sys/change_on_install as sysdba; conn / as sysdba 连接数据库conn scott/111111 使用 scott 进行连接1.5.数据库的启动数据库启动方式方式 含义startup 启动实例
16、、装载数据库、打开数据库startup nomount 启动实例,不加载数据库startup mount 启动实例,加载数据库但不打开数据库startup restrict 启动过程中限制访问数据库startup force 强制数据库启动startup pfile=/oracle/app/oracle/product/10g使用非缺省参数文件启动数据库,以特定文件中指定参数启动数据库,本例为”方式 含义/dbs/initminos.ora /oracle/app/oracle/product/11g/dbs/initminos.orastartup 启动实例、装载数据库、打开数据库startup open racdb1startup nomount启动数据库实例, 该步骤只是启动了一个数据库实例.在此状态下我们可以访问下列结构文件Select * from v$instance;Select * from v$bgprocess;Select * from v$sga;利用以前读取的参数文件查找控制文件,这些控制文件包含数据文件名和重做日志名,然