
(一)完善管理制度,强化监管力度。数据库系统的安全与企业自身内部的安全机制、内外网络环境、从业人员素质等密切相关。因此,企业应该完善网络系统安全规章制度,防范因制度缺陷带来的风险;企业应该规范 *** 作流程和故障处理流程,减少人为失误与故障,提高故障处理速度,缩短故障处理时间;企业应该通过建立科学合理的责任追究机制,防止出现由于工作态度、工作作风等各种人为因素导致的数据库安全事故。
(二)采取措施,确保数据库数据的安全。保证数据库数据的安全是数据库日常管理与维护工作的首要任务,企业需要采取的安全措施主要有:
(1)网络及 *** 作系统安全。网络系统是数据库应用的外部环境和基础,网络系统安全是数据库安全的第一道屏障。从技术角度讲,网络系统层次的安全防范技术有很多种,大致可以分为防火墙、数字签名与认证、入侵检测等。 *** 作系统是数据库系统的运行平台,能够为数据库系统提供一定程度的安全保护。
(2) *** 作系统的安全控制方法主要是采用隔离控制、访问控制、信息加密和审计跟踪。主要安全技术有 *** 作系统安全策略、安全管理策略等。
(3)加强用户身份验证。用户身份验证是数据库系统的重要防线。利用窗体身份验证数据库程序的漏洞,进而获取存储在数据库中的用户身份验证密码,这是目前对网络数据库攻击最常见的方式。对此,企业信息部门通常使用带有salt值的单向密码哈希值,以避免用户密码在数据库中以明文形式存储,减轻字典攻击带来的威胁。
(4)对重要数据加密。数据加密交换又称密码学,是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行交换,实现信息隐蔽,从而有效保护信息的安全不受侵犯。数据库加密要求加解密的粒度是每个记录的字段数据。采用库外口加密的方式,对密钥的管理较为简单,只需借用文件加密的密钥管理方法,将加密后的数据块纳入数据库,在算法或数据库系统中做些必要的改动就行。这样有利于公共数据字典的使用和维护系统的完整性。
(5)做好数据库备份与恢复。数据备份是备份数据库某个时刻的数据状态,当系统出现意外时用来恢复系统。依靠网络办公的企业,其信息系统很可能随时被破坏而丢失数据。因此,数据库管理系统必须具备把数据库从错误状态恢复到某一已知的正确状态的功能,这就是数据库的恢复技术。
(三)开展数据库健康检查。为及时发现数据库系统存在的问题,在日常管理与维护中,数据管理员要对数据库开展健康检查。检查内容主要包括以下六个方面
(1)系统环境: *** 作系统版本、文件系统容量、内存交换区使用率、系统性能。
(2)数据库环境:数据库和补丁版本、是否有僵尸数据库进程、数据库节点数、是否有其他数据库产品及版本。
(3)日志记录:db2diaglog报错、db2inst1nfy报错、是否有需要处理的DUMP文件。
(4)数据库健康状况:表空间利用率和状态、表空间容器利用率和状态、排序溢出、是否需要收集统计信息、是否需要数据重组、活动日志和日志所在文件系统利用率、死锁发生率、锁升级发生率、锁等待的百分比、编目Cache命中率、包Cache命中率、监视堆利用率、数据库堆利用率、数据库缓冲池命中率。
(5)数据库维护内容:最近一次统计信息收集时间、最近一次表数据重组时间、最近一次绑定包时间、最近一次数据库备份时间。
(6)数据库基本信息记录:数据库内存使用、环境变量。
数据库的管理日常工作
(1) 每天对数据库的运行状态 , 日志文件 , 备份情况 , 数据库的空间使用情况 , 系统资源的使用情况进行检查 , 发现并解决问题。
(2)每周对数据库对象的空间扩展情况 , 数据的增长情况进行监控 , 对数据库做健康检查 , 对数据库对象的状态做检查。
(3) 每月对表和索引等进行 Analyze, 检查表空间碎片 , 寻找数据库性能调整的机会 , 进行数据库性能调整 , 提出下一步空间管理
计划。对 ORACLE 数据库状态进行一次全面检查。
数据库管理的意义重大,关系到企业信息系统的正常运作,仍至整个企业的生死存亡。要做好数据库的日常管理与维护,不仅要求数据库管理员熟悉掌握专业技术知识,还要有足够的细心和高度的责任心。
查看用户的回滚段的信息
select s username rn name from v$session s v$transaction t v$rollstat r v$rollname rnwhere s saddr = t ses_addr and t xidusn = r usn and r usn = rn usn
生成执行计划
explain plan set statement_id= a for & ;
查看执行计划
select lpad( (level ))||operation operation options OBJECT_NAME position from plan_tablestart with id= and statement_id= a connect by prior id=parent_id and statement_id= a
查看内存中存的使用
select decode(greatest(class ) decode(class Data Sort Header to_char(class)) Rollback ) Class sum(decode(bitand(flag ) )) Not Dirty sum(decode(bitand(flag ) )) Dirty sum(dirty_queue) On Dirty count() Total from x$bh group by decode(greatest(class ) decode(class Data Sort Header to_char(class)) Rollback );
查看表空间状态
select tablespace_name extent_management segment_space_management from dba_tablespaces;select table_name freelists freelist_groups from user_tables;
查看系统请求情况
SELECT DECODE (name summed dirty write queue length value)/DECODE (name write requests value) Write Request Length FROM v$sysstat WHERE name IN ( summed dirty queue length write requests ) and value> ;
计算data buffer命中率
select a value + b value logical_reads c value phys_reads round( ((a value+b value) c value) / (a value+b value)) BUFFER HIT RATIO from v$sysstat a v$sysstat b v$sysstat cwhere a statistic# = and b statistic# = and c statistic# = ;SELECT name ( (physical_reads/(db_block_gets+consistent_gets))) H_RATIO FROM v$buffer_pool_statistics;
查看内存使用情况
select least(max(b value)/( ) sum(a bytes)/( )) shared_pool_used max(b value)/( ) shared_pool_size greatest(max(b value)/( ) sum(a bytes)/( )) (sum(a bytes)/( )) shared_pool_avail ((sum(a bytes)/( ))/(max(b value)/( ))) avail_pool_pctfrom v$sgastat a v$parameter b where (a pool= shared pool and a name not in ( free memory )) and b name= shared_pool_size ;
查看用户使用内存情况
select username sum(sharable_mem) sum(persistent_mem) sum(runtime_mem)from sys v_$sqlarea a dba_users bwhere a parsing_user_id = b user_id group by username;
查看对象的缓存情况
select OWNER NAMESPACE TYPE NAME SHARABLE_MEM LOADS EXECUTIONS LOCKS PINS KEPTfrom v$db_object_cache where type not in ( NOT LOADED NON EXISTENT VIEW TABLE SEQUENCE )and executions> and loads> and kept= NO order by owner namespace type executions desc;select type count() from v$db_object_cache group by type;
查看库缓存命中率
select namespace gets gethitratio gethitratio pins pinhitratio pinhitratio RELOADS INVALIDATIONS from v$librarycache
查看某些用户的hash
select a username count(b hash_value) total_hash count(b hash_value) count(unique(b hash_value)) same_hash (count(unique(b hash_value))/count(b hash_value)) u_hash_ratiofrom dba_users a v$sqlarea b where a user_id=b parsing_user_id group by a username;
查看字典命中率
select (sum(getmisses)/sum(gets)) ratio from v$rowcache;
查看undo段的使用情况
SELECT d segment_name extents optsize shrinks aveshrink aveactive d statusFROM v$rollname n v$rollstat s dba_rollback_segs dWHERE d segment_id=n usn(+) and d segment_id=s usn(+);
无效的对象
select owner object_type object_name from dba_objects where status= INVALID ;select constraint_name table_name from dba_constraints where status= INVALID ;
求出某个进程 并对它进行跟踪
select s sid s serial# from v$session s v$process p where s paddr=p addr and p spid=& ;exec dbms_system SET_SQL_TRACE_IN_SESSION(& & true);exec dbms_system SET_SQL_TRACE_IN_SESSION(& & false);
求出锁定的对象
select do object_name session_id process locked_modefrom v$locked_object lo dba_objects do where lo object_id=do object_id;
求当前session的跟踪文件
SELECT p value || / || p value || _ora_ || p spid || ora filenameFROM v$process p v$session s v$parameter p v$parameter p WHERE p name = user_dump_dest AND p name = instance_name AND p addr = s paddr AND s audsid = USERENV( SESSIONID ) AND p background is null AND instr(p program CJQ ) = ;
求对象所在的文件及块号
select segment_name header_file header_blockfrom dba_segments where segment_name like & ;
求对象发生事务时回退段及块号
select a segment_name a header_file a header_blockfrom dba_segments a dba_rollback_segs bwhere a segment_name=b segment_name and b segment_id= &
i的在线重定义表
/如果在线重定义的表没有主键需要创建主键/exec dbms_redefinition can_redef_table( cybercafe announcement );create table anno as select from announcementexec dbms_redefinition start_redef_table( cybercafe announcement anno );exec dbms_redefinition sync_interim_table( cybercafe announcement anno );exec dbms_redefinition finish_redef_table( cybercafe announcement anno );drop table anno exec dbms_redefinition abort_redef_table( cybercafe announcement anno );
常用的logmnr脚本(cybercafe)
exec sys dbms_logmnr_d build(dictionary_filename => esal dictionary_location => /home/oracle/logmnr );exec sys dbms_logmnr add_logfile(logfilename=> /home/oracle/oradata/esal/archive/ _ dbf ptions=>sys dbms_logmnr new);exec sys dbms_logmnr add_logfile(logfilename=> /home/oracle/oradata/esal/archive/ _ dbf ptions=>sys dbms_logmnr addfile);exec sys dbms_logmnr add_logfile(logfilename=> /home/oracle/oradata/esal/archive/ _ dbf ptions=>sys dbms_logmnr addfile);exec sys dbms_logmnr add_logfile(logfilename=> /home/oracle/oradata/esal/archive/ _ dbf ptions=>sys dbms_logmnr addfile);exec sys dbms_logmnr start_logmnr(dictfilename=> /home/oracle/logmnr/esal ora );create table logmnr as select from v$logmnr_contents;
与权限相关的字典
ALL_COL_PRIVS表示列上的授权 用户和PUBLIC是被授予者ALL_COL_PRIVS_MADE表示列上的授权 用户是属主和被授予者ALL_COL_RECD表示列上的授权 用户和PUBLIC是被授予者ALL_TAB_PRIVS表示对象上的授权 用户是PUBLIC或被授予者或用户是属主ALL_TAB_PRIVS_MADE表示对象上的权限 用户是属主或授予者ALL_TAB_PRIVS_RECD表示对象上的权限 用户是PUBLIC或被授予者DBA_COL_PRIVS数据库列上的所有授权DBA_ROLE_PRIVS显示已授予用户或其他角色的角色DBA_SYS_PRIVS已授予用户或角色的系统权限DBA_TAB_PRIVS数据库对象上的所有权限ROLE_ROLE_PRIVS显示已授予用户的角色ROLE_SYS_PRIVS显示通过角色授予用户的系统权限ROLE_TAB_PRIVS显示通过角色授予用户的对象权限SESSION_PRIVS显示用户现在可利用的所有系统权限USER_COL_PRIVS显示列上的权限 用户是属主 授予者或被授予者USER_COL_PRIVS_MADE显示列上已授予的权限 用户是属主或授予者USER_COL_PRIVS_RECD显示列上已授予的权限 用户是属主或被授予者USER_ROLE_PRIVS显示已授予给用户的所有角色USER_SYS_PRIVS显示已授予给用户的所有系统权限USER_TAB_PRIVS显示已授予给用户的所有对象权限USER_TAB_PRIVS_MADE显示已授予给其他用户的对象权限 用户是属主USER_TAB_PRIVS_RECD显示已授予给其他用户的对象权限 用户是被授予者
如何用dbms_stats分析表及模式?
exec dbms_stats gather_schema_stats(ownname=> &USER_NAME estimate_percent=>dbms_stats auto_sample_size method_opt => for all columns size auto degree=> DBMS_STATS DEFAULT_DEGREE);exec dbms_stats gather_schema_stats(ownname=> &USER_NAME estimate_percent=>dbms_stats auto_sample_size cascade=>true);/FOR ALL [INDEXED | HIDDEN] COLUMNS [size_clause]FOR COLUMNS [size clause] column|attribute [size_clause] [ column|attribute [size_clause] ] where size_clause is defined as size_clause := SIZE {integer | REPEAT | AUTO | SKEWONLY}integer Number of histogram buckets Must be in the range [ ] REPEAT Collects histograms only on the columns that already have histograms AUTO Oracle determines the columns to collect histograms based on data distribution and the workload of the columns SKEWONLY Oracle determines the columns to collect histograms based on the data distribution of the columns/
lishixinzhi/Article/program/SQL/201311/16148
数据库管理员所需具备的能力
1、具备DBA的技术能力,能够独立安装和升级数据库服务器。
2、有足够的专业水平,能够独立创建数据库存储结构。
3、良好的沟通能力,联系数据库系统的生产厂商,跟踪技术信息。
4、要足够细心,登记数据库的用户,维护数据库的安全性。
5、意志力坚韧,不断解决各类问题。
数据库管理员的工作职责
1、保证数据库的使用符合知识产权相关法规。
2、数据库的安装、配置和管理。
3、控数据库的警告日志。
4、必要时对数据库性能进行合理地调整。
5、监控数据库的日常会话情况。
招收数据维护人员,一般会一些编程语言,比如JAVA,这些,都比较好。
如果你喜欢从事数据维护工作。建议你往DBA方向发展。不过这个路漫漫。加油把骚年。
负责公司数据库系统的日常维护;
这个是一个公司的具体要求,岗位职责:1负责产品后台数据库结构设计;2负责产品数据库端业务逻辑的开发;3负责对现有产品数据库性能进行分析和优化;4负责产品后台端相关文档的编写;任职资格:1统招本科以上学历,软件工程、计算机科学与技术专业优先;2两年以上Oracle/SQLServer/DB2(任意一种)数据库程序开发或维护经验;3熟练掌握Oracle/SQLServer/DB2(任意一种)数据库配置、管理和优化;4熟练掌握SQL语言及数据库脚本编写,精通存储过程、触发器等技术运用;5熟练掌握、ERWin等数据库建模工具;6较强的自学能力,能够依据业务需要学习必要的职业技能;7较强的团队意识和良好的沟通能力,与同事协同做业。8良好的英文阅读能力。工作地点:天津市薪资福利:月薪制,3000-10000,面议。就餐、电话、交通、出差相关补助,五险一金,年终奖励。享受旅游、体检、年假等福利。
以上就是关于信息数据库用户管理规范规定了哪些原则全部的内容,包括:信息数据库用户管理规范规定了哪些原则、数据库进阶:数据库管理员日常工作中必备的sql列表[3]、数据库管理员需要具备什么样的能力等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)