此检查项适用于Oracle 11g,由于不明白csdn表格编辑方法,检查结果就不展示了。
NO | 检查项 | 步骤 | cmd | 结果 |
---|---|---|---|---|
1 | 检查组件 | select comp_id,comp_name,status from dba_registry | … | |
2 | 检查数据库的名称 | select name from v$database | SID | |
3 | 检查数据库的版本 | select * from v$version | ||
4 | 检查字符集 | select parameter,value from v$nls_parameters where parameter in (‘NLS_CHARACTERSET’) | ||
5 | 检查数据库flashback是否关闭 | select flashback_on from v$database | ||
6 | 检查AWR报告保留的时间和采样频率 | select snap_interval, retention from dba_hist_wr_control | ||
7 | 检查SMB保留的空间占比 | select parameter_name,parameter_value from dba_sql_management_config | ||
8 | 检查archive mode | select parameter_name,parameter_value from dba_sql_management_config | ||
9 | 检查数据库的force logging已经打开 | select force_logging from v$database | ||
10 | 检查数据库redo log大小设置 | select max(bytes/1024/1024),min(bytes/1024/1024),avg(bytes/1024/1024),count(*),thread# from v$log group by thread# | ||
11 | 检查归档参数 | select name, display_value, isdefault from v$parameter where name in (‘archive_lag_target’, ‘log_archive_max_processes’, ‘log_archive_local_first’, ‘log_archive_format’, ‘log_checkpoints_to_alert’) | ||
12 | fra大小检查 | select name, display_value, isdefault from v$parameter where name in (‘db_recovery_file_dest_size’) | ||
13 | 检查内存参数 | select name, display_value, isdefault from v$parameter where name in (‘shared_pool_size’, ‘shared_pool_reserved_size’, ‘large_pool_size’, ‘java_pool_size’, ‘db_cache_size’,’pga_aggregate_target’, ‘sga_max_size’, ‘streams_pool_size’, ‘memory_target’, ‘memory_max_target’, ‘sga_target’,’log_buffer’) | ||
14 | 检查undo参数 | select name, display_value, isdefault from v$parameter where name in (‘undo_retention’, ‘undo_management’, ‘undo_tablespace’) | ||
15 | 检查optimize参数 | select name, display_value, isdefault from v$parameter where name in (‘optimizer_secure_view_merging’, ‘parallel_automatic_tuning’, ‘optimizer_capture_sql_plan_baselines’,’parallel_execution_message_size’, ‘parallel_min_servers’,’parallel_max_servers’, ‘parallel_degree_policy’,’optimizer_adaptive_features’,’optimizer_adaptive_reporting_only’) | ||
16 | 检查资源参数 | select name, display_value, isdefault from v$parameter where name in (‘aq_tm_processes’, ‘db_block_size’,’db_files’,’fast_start_mttr_target’,’job_queue_processes’, ‘open_cursors’, ‘processes’, ‘session_cached_cursors’, ‘resource_limit’,’db_writer_processes’) | ||
17 | 检查安全参数 | select name, display_value, isdefault from v$parameter where name in (‘sec_case_sensitive_logon’, ‘remote_login_passwordfile’) | ||
18 | 检查其他参数 | select name, display_value, isdefault from v$parameter where name in (‘audit_trail’, ‘filesystemio_options’, ‘recyclebin’, ‘local_listener’, ‘cell_offload_processing’,’deferred_segment_creation’,’audit_sys_operations’) | ||
19 | 检查db_securefile参数设置 | select display_value from v$parameter where name = ‘db_securefile’ | ||
20 | 检查隐含参数设置 | select name, display_value, isdefault from v$parameter where name in (‘_use_adaptive_log_file_sync’) | ||
21 | 检查初始化用户审计设置 | select user_name,count(*) from dba_stmt_audit_opts where user_name in (‘DBMGR’,’OVSEE’,’DBMONOPR’) group by user_name order by user_name; | ||
22 | 检查锁定数据库sys、system用户和expire不用的用户 | select username,account_status from dba_users where username in (‘ORACLE_OCM’,’DIP’,’WMSYS’,’DBSNMP’,’EXFSYS’,’APPQOSSYS’,’SYSTEM’,’SYS’,’OUTLN’) | ||
23 | 检查密码函数 | select owner,object_name,object_type,status from dba_objects where object_name=’CRBANK_PW_VERIFY_FUNCTION’ | ||
24 | 检查default profile的密码过期策略 | select * from dba_profiles where profile=’DEFAULT’ | ||
25 | 检查CRBANK_PW_PROFILE | select * from dba_profiles where profile=’CRBANK_PW_PROFILE’ | ||
26 | 检查所有表空间 | select tablespace_name, bigfile from dba_tablespaces | ||
27 | 检查表空间是否为自动扩展 | select tablespace_name, autoextensible from dba_data_files where tablespace_name <> ‘UNDOTBS1’ | ||
28 | 检查数据库的default空间 | select property_name,property_value from database_properties where property_name = ‘DEFAULT_PERMANENT_TABLESPACE’ | ||
29 | 检查Audit及FGA_LOG$ 表空间是否迁移 | select owner,segment_name,segment_type,tablespace_name from dba_segments where segment_name in (‘AUD$ ,’I_AUD1’, ‘FGA_LOG$’) | ||
30 | 检查auto optimizer stats collection | select client_name,status from dba_autotask_client where client_name = ‘auto optimizer stats collection’ | ||
31 | 检查AUTOSTATS_TARGET | select dbms_stats.get_prefs(‘AUTOSTATS_TARGET’) FROM DUAL | ||
32 | 检查默认的CBO直方图策略 | select dbms_stats.get_prefs(‘METHOD_OPT’) from dual | ||
33 | 检查默认的CBO分区收集策略 | select dbms_stats.get_prefs(‘GRANULARITY’) from dual | ||
34 | 检查数据库PUBLISH CBO策略 | select dbms_stats.get_prefs(‘PUBLISH’) from dual | ||
35 | 检查STATS_HISTORY_RETENTION | select DBMS_STATS.GET_STATS_HISTORY_RETENTION from dual | ||
36 | 检查统计信息自动收集job | select job_name, enabled from dba_scheduler_jobs where job_name=’BSLN_MAINTAIN_STATS_JOB’ | ||
37 | 检查dictionary的统计信息收集 | select operation,start_time,end_time from dba_optstat_operations where operation in (‘gather_dictionary_stats’) and target is null | ||
38 | auto space advisor和sql tuning advisor这两个自动任务是否被取消 | select client_name,status from dba_autotask_client | ||
39 | 禁止AMM,ASMM特性 | 在大型系统中,ASMM,AMM使用的很少,大部分还是手动来管理内存,分配标准根据系统负荷。禁止掉memory_max_target,sga_max_size和sga_target。使用AMM或ASMM的情况下,首先确保系统负荷不大,如果系统负荷比较大,系统内存不充裕的情况下,建议禁止掉此项功能,可能会导致ORA-04031错误,很大一部分原因就是采用内存自动管理功能,数据库自动分配各个组件的内存,如果系统SQL很糟糕,会导致大量的硬解析产生大量的执行计划,sharedpool会增长很快,由于事自动管理的,所以系统绝大部分内存都分配给了sharedpool,其他组件所分配到的内存就很少了,所以就会出现sharedpool占用很大的内存,dbbuffercache内存很小,根据oracle特性我们知道这个时候的数据库肯定会出问题,要么数据库很慢,要么干脆就停止服务。 | ||
40 | 禁止表空间自动扩展特性 | 在大型系统中,表空间(系统表空间除外)自动扩展使用的也很少,很大一个原因是太浪费空间了。在oracle数据库中,单个文件的大小跟创建表空间的blocksize大小有关,一般的oltp系统都是使用8k来创建的,那么单个数据文件上限是32G。达到上限就需要dba手工扩展表空间上限,一般都是通过增加数据文件来实现。undo表空间也禁止掉自动扩展功能。 | ||
41 | OEM | 在企业中,OEM是禁用的。别问我理由是什么,因为理由太奇葩。 | ||
42 | 归档设置 | 在一些大的交易系统中,归档路径绝大多数设置到fra闪回恢复区中,使用fra一个好处是可以控制大小,第二个是fra空间每到80%空间的时候会在告警日志提醒,90%的时候会自动清理fra里面过期废弃的归档日志,当然这个阈值是可以调整的。 | ||
43 | 监听端口 | 在企业中,监听端口一般都不是默认的1521端口,这样设置也是为了增加系统的安全性 | ||
44 | 监听设置 | 在企业中,默认的监听一般都会被禁止掉,这样设置也是为了增加系统的安全性 | ||
45 | 静态注册 | 一般都推荐使用静态注册,在系统中设置local_listener来静态注册。 | ||
46 | 用户设置 | 在大企业中,并不会使用oracle安装数据库软件,也不会使用grid安装集群软件,我猜测也是为了安全考虑吧,毕竟通用标准也是一个‘后门’。 | ||
47 | 路径设置 | 上面一条已经说过了,通用标准也是一个‘后门’,所以安装数据库路径建议不要使用/u01/app这样的路径,根据自己需要规划自己的分区安装数据库软件。 | ||
48 | 用户权限分配 | 在数据库分配权限的时候一定要坚持应用访问和管理分开的原则,应用使用一套用户,管理使用一套用户,权限区别分配。对于应用访问权限,尽量不要分配dml操作权限,对于查询权限也要逐个对象授权,避免select any类似的权限授予。管理可以开放dml权限,但是此管理非dba权限,只能操作数据库对象级别,例如创建表,视图,触发器,索引,函数,包,job和数据库初始化功能等。 | ||
49 | 审计 | 对于数据库的管理权限和应用访问权限分别建立db级别的审计策略 | ||
50 | 用户 | 数据库系统出了sys用户之外,其他的用户一律锁定。 |