㈠ 数据库开发工程师的岗位职责
数据库开发工程师的岗位职责
在当下社会,我们都跟岗位职责有着直接或间接的联系,岗位职责是组织考核的依据。想必许多人都在为如何制定岗位职责而烦恼吧,以下是我收集整理的数据库开发工程师的岗位职责,希望能够帮助到大家。
数据库开发工程师的岗位职责1
职责:
1、 负责数据库仓库模型设计及规划,数据仓库架构搭建和优化策略;
2、使用相关ETL工具和BI工具,支持中后台数据转换模型和技术开发;
3、负责数据库业务程序开发(包括脚本、函数、存储过程等)和优化以及数据质量技术保障;
4、根据金融业务的理解和经验,制定系统和数据库标准化的日常维护和操作手册;
5、编写数据库设计档,进行sql代码规范审核。
任职要求:
1、具有扎实的数据库基础知识,开发经验3年以上;
2、熟练编写存储过程、函数、性能优化脚本,能独立进行排错、调优;
3、精通oracle或greenplum数据库开发或管理,有OCP认证优先;
4、沟通能力强,语言表达清晰,思维严谨,细致认真,具有良好的团队合作精神;
5、金融证券行业相关经验优先。
数据库开发工程师的岗位职责2
岗位描述:
1、进行业务系统数据库的规划、设计、实施,设计并优化数据库物理建设方案;
2、对数据库进行管理,负责数据库应用系统的运营及监控;
3、业务系统数据库的定期维护和异常处理;
4、对数据库性能分析与调优,排错,保证数据安全;
5、对数据库进行定期备份、和按需恢复;
6、配合其他部门进行的数据处理、查询,统计和分析工作。
任职资格:
1、计算机相关专业,本科以上学历;
2、两年以上相关工作经验;
3、精通关系数据库原理,熟悉数据库系统的规划、安装、配置、性能调试;
4、精通sql脚本的编写,有丰富的数据库管理、运维调优经验;
5、熟练使用数据库管理、分析、设计工具;
6、快速处理系统突发事件的能力,较强的学习和创新能力;
7、良好的沟通能力、团队合作精神。
数据库开发工程师的岗位职责3
职责:
1、根据数据仓库及BI项目的需求,制定ETL相关的设计方案和开发计划,并进行后续的设计、实施、维护;
2、负责数据仓库数据模型的开发,发布,测试工作;
3、负责多种类型的数据报表的研发工作,包括钻取类报表,表格类报表,和图形化报表的研发,测试和发布工作;
4、承担数据抽取、清洗、转化等数据处理程序开发。
任职要求:
1、计算机相关专业本科及以上学历
2、精通数据仓库的数据模型设计,熟悉ETL工具如DataStage,有3年以上的实际BI项目经验;
3、精通Mysql/Oracle/SQLServer数据库,精通SQL语言,熟练编写存储过程,掌握海量数据处理及数据库性能优化;
4、熟悉Hadoop大数据技术框架及相关技术;
数据库开发工程师的岗位职责4
职责:
1、参与需求调研,负责开展专项业务分析,数据开发工作;
2、负责数据支撑工作,从事数据库开发,报表设计和实现;
3、负责相关数据库设计的编写等工作;
4、参与项目的实施,负责数据结果提交、测试反馈与优化;
5、运营及决策提供业务分析及数据支持;
6、参与建立采集、转换、整合数据,与展现开发报表分析的数据设计流程,并应用于实际操作中。
任职资格:
1、本科以上学历,计算机相关专业,掌握SQL语言,至少熟练使用过Sybase、DB2、Oracle等其中一种数据库;
2、熟悉ETL的概念和流程,至少熟练使用过一种ETL工具(odi,informatica,kettle等);
3、系统学习过数据库原理,对关系模型设计有一定认识更佳,熟练具备SQL语言、存储过程的.编写能力;
4、良好的逻辑思维能力,敏锐的数据洞察力,较强的总结归纳能力;
5、持有OCP认证、OCM、数据库工程师、SPSS、SAS、CDA任意一种证书者优先;
6、熟悉db2和sybase者加分,有会计或审计经验者加分。
数据库开发工程师的岗位职责5
职责:
1、负责数据库的安装、配置、监控、实时备份、恢复和管理;
2、负责数据清理及系统间的数据迁移;
3、根据需要负责数据库设计包括表结构、表、索引等的设计;
4、负责编写SQL、触发器、存储过程等;
5、负责原有SQL优化,原有存储过程维护。
工作要求:
1、2年以上数据库开发或Java软件开发经验;
2、熟练使用Linux系统,熟悉表结构设计、SQL优化,熟练编写存储过程;
3、熟悉Oracle、Mysql数据库运行机制、体系架构;
4、掌握Oracle数据库维护,能对业务需求和故障及时反馈和处理;
5、具较强的责任心和学习能力,有团队合作精神、沟通协调能力、承压能力。
数据库开发工程师的岗位职责6
职责:
1、参与项目需求分析,研究项目技术细节,进行系统框架和核心模块的详细设计;编写相应的技术文档;
2、根据公司要求规范,编写相应的技术文档;编制项目文档、记录质量测试结果
3、完成项目初始至终结的全部技术跟踪协调工作
4、根据开发进度和任务分解完成软件编码工作,配合测试工程师进行软件测试工作;
5、参与客户沟通、项目需求调研分析并维持良好的客户关系;编写需求分析报告。
6、进行用户现场软件的部署和实施
7、完成公司领导交办的其他工作。
岗位要求:
1、计算机相关专业,数学专业优先,本科以上学历;
2、熟悉Oracle、Sqlserver等数据库及SQL语言;
3、良好的团队合作精神和社交技巧及沟通协调能力;
4、能适应经常出差。
;㈡ 想往Oracle数据库方向发展.请教些问题
我就是运维的,搞运维知识得非常全面,Linux命令得全会,因为要用SQLPLUS,
要会数据库备份,冷备份,热备份,RMAN使用,数据导入导出,
ORACLE10G/11G 的操作,主要是表、索引、触发器建立删除,数据清理,熟悉SQL语句查询
ORACLE性能调整,高可用搭建,standby搭建等。。。很多
㈢ oracle数据库常用的维护方法有哪些
1、1、调整数据结构的设计。这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。 2、2、调整应用程序结构设计。这一部分也是在开发信息系统之前完成,程序员在这一步需
㈣ 数据库要怎么维护
数据库日常维护(参考)
数据库日常维护工作是系统管理员的重要职责。其内容主要包括以下几个部分:
一、备份系统数据
SYBASE 系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。SQL Server 提供了两种不同类型的恢复机制:一类是系统自动完成的恢复,这种措施在每次系统启动时都自动进行,保证了在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退;另一类是人工完成的恢复,这是通过 DUMP 和 LOAD 命令来执行人工备份和恢复工作。因此定期备份事务日志和数据库是一项十分重要的日常维护工作。
1、备份数据库
每一个数据库都应在创建之后卸出,从而提供一个装入基点。在此之后按排定的时间周期表卸出。比如每周五卸出数据库。对一般数据库系统卸出数据库周期建议为每周一次。
除了按计划周期卸出数据库之外,还需在每次运行没有日志的操作后卸出数据库。例如:
·每次强制地运行了 DUMP TRAN WITH NO_LOG (因为数据库的磁盘空溢出);
·每次用 sp_dboption 允许 select into/bulk 做快速拷贝,或用 SELECT INTO 命令创建一个永久性的表,或使用了 WRITETEXT 命令。
卸出数据库的命令为:
DUMP DATABASE database_name
TO mp_device
database_name 是要卸出的数据库名称,mp_device 是卸出设备的名称。用系统过程 sp_helpdevice 可以获得设备的信息。
下面一条命令用来卸出数据库 my_db :
DUMP DATABASE my_db
TO db_bk_dev
2、备份事务日志
如果事务日志与数据库放在同一个设备上,则事务日志不应与数据库分开备份。master 数据库和小于 4M 的用户数据库就是这种情况。一般数据库系统的数据库和日志分别放在不同的设备上,因此,可以用 DUMP TRAN 命令单独备份日志。
备份事务日志的周期直接影响数据的恢复程度,因此建议每天备份。
备份事务日志的命令格式为:
DUMP TRANsaction database_name
[TO mp_device]
[WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE]
其中 database_name 是要备份事务的数据库名称,mp_device 是备份设备名称,仅当包含了 WITH TRUNCATE_ONLY 或 WITH NO_LOG 子句时,才可以备份到设备。
注意:如果总是用 DUMP DATEBASE (备份数据库及其日志),而不用 DUMP TRAN ,事务日志将不会刷新,而变得非常庞大。
对于 master 数据库和小型数据库每次运行 DUMP DATEBASE 之后应当运行 DUMP TRANsaction 命令刷新日志 。
下面一条命令备份数据库 db160 的事务日志到备份设备上:
DUMP TRANsaction db160
TO db_log_bk_dev
WITH TRUNCATE_ONLY
3、备份数据库及其日志间的相互作用
在至少卸出一次数据库前,卸出事务日志是毫无意义的。下图显示了备份数据库及其日志间的关系
如果在星期二下午5:01出现非硬件故障,需要做的所有工作是装入磁带5(参见下一节:数据恢复),由于磁带5是下午5:00刚备份的,因此只有备份和装入之间的一分钟内的数据损失。
但是,如果在星期二下午4:49失效会怎么样呢?在这种情况下,要装入磁带1(在星期五下午5:00的卸出)。然后,依次装入磁带2,3以及4。这样,系统将恢复到星期二上午10:00点的状态,星期二的大部分工作丢失了。此例显示了经常卸出事务的重要性。
二、万一系统失败时恢复数据库系统
如果用户数据库存储的设备失效,从而数据库被破坏或不可存取,通过装入最新的数据库备份以及后来的事务日志备份可以恢复数据库。假设当前的事务日志存在于一个并没有毁坏的设备上,带着 WITH NO_TRUNCATE 选项的 DUMP TRANsaction 命令卸出它。
要恢复数据库按如下步骤去做:
1、如果日志存在于一个分离的设备上,用带着 NO_TRUNCATE 选项的 DUMP TRANsaction 命令卸出被毁坏的或者不可存取的用户数据库事务日志。
2、用下面的查询检查设备分配已毁坏数据库的设备使用情况。必须为同一目的赋同样的空间块。
下面的查询显示了分配给数据库 mydb 设备使用和尺寸情况:
SELECT segmap,size FROM sysusages
WHERE dbid =
( SELECT dbid FROM sysdatabases WHERE name = “mydb”)
3、检查查询的输出。在 segmap 列的 ‘3’代表数据分配,‘4’代表日志分配。size 列代表 2K 数据块的数目。注意此信息的次序、使用和尺寸部分。例如,输出为:
segmapSize
--------------------
310240//实际尺寸为:20M
35120//实际尺寸为:10M
45120//实际尺寸为:10M
31024//实际尺寸为:2M
42048//实际尺寸为:4M
4、用 DROP DATABASE 命令删除毁坏设备上的数据库。如果系统报错,用DBCC DBREPAIR 命令的 DROPDB 选项。
5、删除数据库后,用 sp_dropdevice 删除毁坏了的设备。
6、用 DISK INIT 初始化新的数据库设备。
7、重建数据库。用 CREATE DATABASE 命令从老的 sysusages 表拷贝所有的行,并包含第一逻辑设备。
对上例,命令为:
CREATE DATABASE mydb
ON datadev1=20,datadev2=10
LOG ON logdev1=10
8、用 ALTER DATABASE 命令重建其余入口。在此例中,在datadev1上分配更多的空间,命令为:
ALTER DATABASE mydb ON datadev1=2[page]
9、用 LOAD DATABASE 重新装入数据库,然后用 LOAD TRAN 装入前面卸出的日志。
LOAD DATABASE 命令语法是:
LOAD DATABASE database_name
FROM mp_device
LOAD TRANsaction 命令的语法是:
LOAD TRANsaction database_name
FROM mp_device
卸出数据库和事务日志的缺省权限归数据库所有者,且可以传递给其他用户;装载数据库和事务的权限也归数据库所有者,但不能传递。
二、产生用户信息表,并为信息表授权;
系统维护人员的另一个日常事务是为用户创建新的信息表,并为之授权。创建表以及为表授权的方法已经在讲过,在此只将有关命令语法写出来。
·创建表的命令为:
CREATE TABLE table_name
( column_1 datatype [NULL | NOT NULL | IDENTITY],
column_2 ……
)
go
ALTER TABLE table_name
ADD PRIMARY KEY (column_list)
go
·删除表的命令格式为:
DROP TABLE table_name
go
·为表授权的命令格式为:
GRANT
ON table_name TO user_name
go
·收回权限的命令格式为
REVOKE
ON table_name FROM user_name
go
三、监视系统运行状况,及时处理系统错误;
系统管理员的另一项日常工作是监视系统运行情况。主要有以下几个方面:
1、监视当前用户以及进程的信息
使用系统过程:sp_who
说明:该命令显示当前系统所有注册用户及进程信息,如下表是某系统的信息。
---------------------------------------------------------------
2SleepingNULL0MasterNETWORK HANDLE
3SleepingNULL0MasterDEADLOCK TUNE
4SleepingNULL0MasterMIRROR HANDLER
SLEEP
从左向右依次显示:进程号、当前状态、注册用户名、主机名、占用块数、数据库名以及当前命令。
如果监视时发现进程总数接近最大连接数(用系统过程:sp_configure “user conn” 查看)时,应下掉不活动或无关进程,以保证系统正常运做;另外亦可监视非法用户或用户使用不属于自己使用范围的数据库等情况。
2、监视目标占用空间情况
使用系统过程:sp_spaceused
说明:该过程显示行数、数据页数以及当前数据库中由某个目标或所有目标所占用的空间。如下表是某数据库日志表的信息:
NameRow_totalreserveddataIndex_sizeunused
------------------------------------------------------------
SyslogsNot avail32KB32KB0KBNot avail
日常要监视的主要目标有:用户数据库、数据库日志表(syslogs)以及计费原始数据表等。如果发现占用空间过大,对日志表要进行转储;对其他目标则应扩充空间或清楚垃圾数据。
3、监视 SQL Server 统计数字
使用系统过程:sp_monitor
说明:sp_monitor 显示SQL Server 的历史统计数字,下表是某系统的统计数字:
Last_runCurrent_runSeconds
---------------------------------------------------------------
May 13 2000 1:27PMMay 13 2000 3:01PM5678
CPU_busyIO_busyIdle
---------------------------------------------------------------
16(6)-0%0(0)-0%5727(5672)-99%
Packets_receivedPackets_sentPacket_errors
---------------------------------------------------------------
21(17)100(97)0(0)
Total_readTotal_writeTotal_errorsConnections
--------------------------------------------------------
785(366)311(113)0(0)3(2)
上表依次给出该系统本次运行统计的上一次时间、本次时间、间隔秒数、CPU占用、IO占用、收发包情况、系统读入写出情况等信息
四、保证系统数据安全,周期更改用户口令;
为保证系统数据的安全,系统管理员必须依据系统的实际情况,执行一系列的安全保障措施。其中,周期性的更改用户口令是比较常用且十分有效的措施。
更改用户口令是通过调用系统过程sp_password 来实现的。Sp_password 的语法为:
sp_password caller_password,new_password [,loginame]
其中caller_password 是登录口令(老口令),new_password是新口令,loginame是登录名称。
在网络搜索:数据库日常维护(参考)
相 关 文 章
Sybase存储过程的建立和使用
SYBASE dbcc
电信企业参与竞争的利器-数据仓库和数据挖掘
SCOUNIX下磁带机的安装与备份
StoredProcere(存储过程)编写经验和优化措施
细说SYBASE数据库日志
常见数据库系统之比较 - SYBASE 和 SQL SERVER
SYBASE ASE FOR LINUX安装及perl连接SYBASE
Sybase数据库应用(一)
安装Sybase ASE
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
㈤ Oracle数据库无响应故障处理方式
Oracle数据库无响应故障处理方式
Oracle数据库无响应故障,简单地讲就是数据库实例不能响应客户端发起的请求,客户端提交一个SQL后,就一直处于等待数据库实例返回结果的状态。更严重的现象是客户端根本不能连接到数据库,发起一个连接请求后,一直处于等待状态。Oracle数据库无响应故障怎么处理呢?下面跟我一起来学习Oracle数据库无响应故障的处理方法吧!
无响应的故障现象一般有以下几种:
1.Oracle的进程在等待某个资源或事件
这种现象一般可以从V$SESSION_WAT、V$LATCH、V$LATCHHOLDER等动态视图中检查进程正在等待的资源或事件,而被等待的资源或事件,一直都不能被获取,甚至是很长时间都不可获得。如果这个正在等待的进程持有了其他的资源,则会引起其他的进程等待,这样就很可能引起实例中大范围的会话发生等待。由于进程在等待资源或事件时,通常都处于SLEEP状态,消耗的CPU资源非常少(在等待latch时要稍微多消耗一些CPU资源),所以从OS来看,CPU的消耗并不高,甚至是非常低。
这种因为等待而引起的个别进程Hang,相对比较容易处理。
2. OracleProcess Spins
所谓Spin,就是指Oracle进程中的代码在执行某个过程时,陷入了循环。在V$SESSION视图中,往往可以看到Hang住的会话,一直处于“ACTIVE”状态。对于这样的会话,用“alter system kill session ‘sid,serial#’”命令也不能完全断开会话,会话只能被标记为“killed”,会话会继续消耗大量的CPU。进程Spins由于是在做循环,CPU的消耗非常大,从OS上明显可以看到这样的进程,通常会消耗整个CPU的资源。
而对于这样的Hang住的会话,处理起来相对比较复杂,并且为了从根本上解决问题,需要超过DBA日常维护所需要的技能。
从故障范围来看,无响应故障可以分为以下几种情况:
1. 单个或部分会话(进程)Hang住
这种情况属于小范围的故障,业务影响相对较小,一般来说只会影响业务系统的个别模块。在一个多应用系统的数据库上面,如果Hang住的会话比较多,则影响的可能是其中的一个应用系统。这里有一个例外,如果Hang住的进程是系统后台进程,如pmon、smon等,则影响的范围就非常大了,最终甚至会影响整个数据库及所有应用系统。还有值得注意的是,即使是少部分会话Hang住,也要及时处理,否则极有可能会扩散到整个系统。
2. 单个数据库实例Hang住
这种情况造成的影响非常大。在这个实例上的所有应用系统均受到严重影响,并且在找到根源并最终解决问题之前,数据库实例往往须要重启。
3. OPS或RAC中的多个实例或所有实例都Hang住
在这种情况下,即使是OPS或RAC,都已经没办法提供高可用特性了。使用这个数据库的所有应用系统将不能继续提供服务,这种情况往往须要重启。
无响应故障成因分析
Oracle数据库无响应,一般主要由以下几种原因引起:
1. 数据库主机负载过高,严重超过主机承受能力
比如应用设计不当,数据库性能低下,活动会话数的大量增加,导致数据库主机的负载迅速增加,数据库不能正常操作,并最终Hang住;主机物理内存严重不足,引起大量的换页,特别是在SGA中的内存被大量换出到虚拟内存时,数据库实例往往就会Hang住。
2. 日常维护不当、不正确的操作引起数据库Hang住
比如归档日志的存储空间满,导致数据库不能归档,引起数据库Hang住;在一个大并发的繁忙的系
统上,对DML操作比较多的大表进行move、增加外键约束等操作也可能使系统在短时间内负载大幅升高,并引起数据库系统Hang住;不正确的资源计划(Resource Plan)配置,使进程得不到足够的CPU等。
3. Oracle数据库的Bug
几乎每个版本都存在着会导致数据库系统Hang住的Bug,这些Bug会在一些特定的条件下触发,特别是在RAC数据库中,引起数据库Hang住的Bug比较多。
4. 其他方面的一些原因
比如在RAC数据库中,如果一个节点退出或加入到RAC的过程中,当进行Resource Reconfiguration时,会使系统冻结一段时间,也有可能使系统Hang住。
以上所描述的几种常见的会导致Oracle数据库实例Hang住的原因中,大部分的情况是可以避免的,只要维护得当,一般不会出现这种故障。对于Oracle数据库Bug所导致的数据库无响应故障,由于是在特定的情况下才会触发,所以如果能够尽量对数据库打上最新版本的补丁,并且熟悉当前版本中会导致系统Hang住的Bug以及触发条件,就能够最大限度地避免这种故障的发生,提高系统的可用性。
那么,在数据库Hang住的情况下,如何去分析并发现导致问题的根源?一方面,由于系统Hang住会导致业务系统不可用,为了能够尽快地恢复业务,须快速地判断问题所在,然后Kill掉引起故障的会话和进程,或者数据库实例不得不重启以迅速恢复业务;但另一方面,如果只是重启数据库或Kill会话和进程来解决问题,在很多情况下是治标不治本的办法,在以后故障随时可能会出现。如何在二者之间进行抉择呢?对于数据库Hang故障的处理,首先是尽可能地收集到系统Hang住时的状态数据,然后尽快地恢复业务,恢复业务后分析收集到的数据,找到数据库系统Hang住的真正原因,然后再进行相应的处理。下一节将详细描述数据库系统Hang住后的处理流程。
无响应故障处理流程
对于Oracle无响应故障的处理,我们可以按下图所示的流程进行。
值得注意的是,上图并不是一个完整的Oracle数据库故障处理流程图,只是处理Oralce数据库无响应这一类特定的故障的流程,只列出了针对这一特定类型故障处理时的关键处理点。不过既然是故障,所以这类故障的处理流程与其他故障的处理流程,有着非常相似的地方。
下面是整个流程的详细说明:
1. 在出现数据库无响应故障后,首先确认系统的影响范围,如上节所描述的',是部分业务系统或模块还是所有的业务系统都受影响,是不是整个实例或多个实例都无响应。同时应询问系统维护和开发人员,受影响的系统在出现故障前是否有过变动,包括主机硬件、操作系统、网络、数据库以及应用等。有时一个细小的变动就可能导致出现数据库Hang住这样严重的故障。曾经遇到一个库,应用只是修改了一个SELECT语句就导致了数据库Hang住。
2. 为了避免由于网络、数据库监听或客户端因素影响分析,建议都登录到主机上进行操作。
3. 如果主机不能登录(为了避免干扰流程主线,这里不讨论如网络问题这样也会导致不能连接的故障),尝试关闭出现问题的业务系统,甚至是所有的业务系统。如果关闭了所有的业务系统之后,仍然不能连接,则只有考虑重新启动数据库主机。在数据库主机重新启动后,使用操作系统工具或OSW等长期监控操作系统的资源使用,同时监控Oracle数据库的性能和等待等。
4. 登录上主机后,先用top、topas等命令简单观察一下系统。看看系统的CPU使用、物理内存和虚拟内存的使用、IO使用等情况。
5. 使用SQLPLUS连接数据库,如果不能连接,则只能从操作系统上观察系统中是否有异常的现象,比如占用CPU过高的进程。使用gdb、dbx等debugger工具对数据库进行system state mp;使用strace、truss等工具检查异常进程的系统调用;使用pstack、procstack等工具察看异常进程的call stack等。
6. 使用SQLPLUS连接上数据库后,进行hanganalyze、system state mp等操作;或检查等待事件、异常会话等正在执行的SQL等待。
7. 找到故障产生的原因,如果暂时找不到原因,尽量收集数据。
8.确良如果应用急须恢复,可通过Kill会话、重启数据库实例等方式,先恢复应用。
9. 根据最终诊断结果,对数据库升级打补丁,或者修改应用等方式从根本上解决问题。
怎样避免数据库出现无响应故障
作为Oracle数据库DBA,除了处理故障之外,更重要的是如何预防故障的发生。根据前面对数据库无响应故障的成因分析,在日常的维护工作中,须做到以下几点:
1. 进行正确的维护操作
很多的数据库无响应故障都是由于不正确的维护操作引起的。应避免在业务高峰期做大的维护操作,比如像move、加主外键约束等会长时间锁表的操作。如果的确需要,尽量使用正确的操作方法。比如用ONLINE方式重建索引;建主键、唯一键约束时先建索引,然后在建约束时指定新建的索引,等等。也就是保证系统的并发性、可伸缩性,避免系统串行操作的出现。
2. 优化应用设计,优化数据库性能
为避免性能问题导致在业务高峰期数据库不能及时有效处理来自业务的请求,甚至于完全Hang住。对于数据库中存在串行访问的部分进行优化,比如latch、enqueue,还包括不合理的sequence设计等。特别是在RAC数据库中,严重串行访问等待往往更容易引起严重的性能问题。优化应用设计,使数据库具有更好的可伸缩性和并行处理能力,能够有效地避免性能问题引起的数据库Hang住。
3. 利用监控系统随时监控系统负载
遇到系统负载过高,内存不足,OS中虚拟内存换页很频繁等情况时,及时采取措施;监控Oracle数据库的核心进程,如pmon、smon等,看是否有异常,如过高的CPU消耗。出现异常应立即处理;监控归档空间和日志切换;监控数据库中的等待事件,比如是否有大量的enqueue、log file switch (archiving needed)、resmgr:become active等待事件等。
4. 为数据库打上补丁
很多的无响应故障是由于Oracle的Bug引起的,数据库DBA应关注当前版本中有哪些Bug会导致数据库Hang住,尽量为数据库打上解决这些Bug的补丁。
;㈥ Oracle数据库服务方式
Oracle数据库服务服务方
按照距离:有远程的,现场的
按照次数:包年的,按次数的
具体的服务像,数据库安全,数据库日常维护,数据库健康检查,数据库性能优化,数据库升级,数据迁移,RAC安装,数据库规划,数据集中,数据库备份,历史数据库数据挖掘等这些,具体的你可以自己详细咨询了解一下。
㈦ 数据库维护和管理是哪些内容
一般来说 维护的工作就是日常的监控和备份恢复工作。也有安装,配置,启动,关闭,优化的工作。可以查看你用的数据库的管理员手册,一般都有这样的日常admin工作的清单。数据库维护是指当一个数据库被创建以后的工作都叫做数据库维护。包括备份系统数据、恢复数据库系统、产生用户信息表,并为信息表授权、监视系统运行状况,及时处理系统错误、保证系统数据安全,周期更改用户口令。
㈧ 数据库管理员工作的基本职责说明
数据库管理员负责各系统数据的灾备工作,研究事务所的数据和信息安全。下面是我整理的数据库管理员工作的基本职责说明。
数据库管理员工作的基本职责说明1
职责
1、负责数据库管理系统的运维管理,完成数据库安装、监控、备份、测试、恢复等基本工作,从而保证数据库管理系统的稳定性、安全性和高性能;
2、监视监控数据库的警告日志,定期做备份审查、归档和删除;
3、监控数据库的日常会话情况,及时发现异常会话进程并积极采取有效处理措施予以解决,从而避免对业务运营造成影响;
4、监控数据库的碎片和剩余表空间情况,及时掌握表空间的扩展速度以及剩余空间分布情况,根据变化动态调整数据库的存储方案以优化资源使用;若有需要提前做出存储介质扩容的方案规划和未来存储需求计划;
5、关注数据库管理系统SQL Server版本的升级信息和与SQL Server相关的漏洞补丁信息,在测试环境中确认不会对业务运营造成影响的前提下实施生产环境下的SQL Server版本升级和补丁补漏,并对整个升级补漏过程进行监控和日志审查,确认升级补漏真正成功完成;
6、制定数据库备份计划,制定灾难恢复计划中的数据恢复相关要求并定期演练,确保灾难出现时能对数据库数据进行有效恢复;
7、对数据库的备份策略要根据业务要求和实际情况进行更改,对数据库的日常备份作业执行进行监控和状态确认,对数据库的备份数据进行验证和介质存放管理,与数据库的设计厂商保持联络和维持技术沟通;
8、制定数据库用户管理要求,建立数据库底层结果和访问模型,制定数据库性能监控标准和指标;对通过数据库管理系统进行的任何针对数据库对象的更改进行统一管理;
9、使用SQL语句对数据库进行管理维护和性能优化;
10、当发现不同用户需求之间互相抵触进而造成进程死锁时,进行处理的同时协助相关人员协调用户需求,配合应用系统的数据库设计人员对系统资源进行合理分配;
11、负责数据库管理系统的管理用户批准和其对应的管理权限设置,采取措施防止数据库被未经授权的访问和破坏;
12、协助有关部门配合相关岗位完成U9系统的项目实施和应用升级、治木软件系统的项目实施和应用升级;
13、完成信息部经理交代的有关任务,协助公司各部门完成相关的工作;
任职要求
1、本科以上学历,计算机相关专业,具备专业的计算机应用知识,年龄不限,性别不限,有SQL Server认证者(MCSA)优先;
2、熟悉SQL Server数据库平台下的数据备份/数据恢复,了解数据库性能监控和优化,掌握SQL代码编写,对数据库安全性有一定认识,理解数据库设计,理解索引设计、索引维护和查询引擎, 懂得容量监控与规划;
3、思维清晰,具备优秀的沟通理解能力;逻辑推算及动手能力强,有独档一面的工作能力,且能承受较大的工作压力;
数据库管理员工作的基本职责说明2
职责:
1.负责数据库的安装配置及升级改造,性能监控及优化,故障诊断和排除,数据迁移,数据库备份、复制、镜像等容灾方案的制定和实施,以及数据库的安全管理、帐户权限管理;
2.维护线上业务核心数据库的7*24安全、稳定运行;
3.负责数据库的架构规划、评估、实施,实现高可用、可扩展架构;
4.熟悉MySQL的运行机制和体系架构, 精通/熟悉SQL,熟悉数据库设计与优化;
5.对数据库新增内容进行数据分析和挖掘;
任职要求:
1.熟悉数据库管理工具,如Navicat等轻量化管理工具;
2.熟练使用MySql,Oracle等数据库相关工具;
3.参与MYSQL脚本管理、SQL Advisor、数据质量管理等工具与平台的开发与实现;
4.至少熟悉java或Python中的一种开发语言
数据库管理员工作的基本职责说明3
职责:
1、负责公司数据库日常运行监控、管理和性能分析,并进行故障处理和优化。
2、快速处理解决数据库系统运行中出现的故障和问题,保证业务数据安全、可用;
3、负责Oracle数据库的日常运行维护、备份恢复、升级优化、扩容迁移和安全管理工作;
4、为架构/开发团队提供Oracle数据库相关的技术支持服务,包括对象设计、SQL编写规范制定、指导、审核等;
5、负责Oracle数据库平台架构和高可用方案的规划设计工作,并通过分析业务发展趋势,做出相应的容量规划;
6、负责Oracle数据库的业务数据分析与挖掘、性能分析与系统优化、问题跟踪与管理;
7、负责系统软、硬件的部署、监控以及调优,包括 JVM 的调优、中间件调优、底层硬件设备的优化;
8、撰写并维护工作相关的数据库设计文档;
任职要求:
1、计算机或者相关专业本科毕业,5年以上ORACLE数据库维护和优化经验;
2、有大型在线交易系统和企业应用系统(例如:ERP、SRM、WMS等)数据库规划设计和优化经验;
3、熟练安装搭建数据库服务器及集群系统、双机热备,包括SQL Server和Oracle;
4、精通 Oracle数据库原理和运行机制,具有丰富的管理与调优经验;
5、精通RAC、Data Guard、OGG配置管理以及故障排除;
6、熟悉linux ,AIX环境下数据库运行维护;熟悉VERITAS SF文件系统;
7、精通Oracle数据库11g/12c分库,分表,SQL解析,数据路由等。
8、为人正直,工作责任心强,良好的沟通和为人处事的能力、良好的团队合作精神;
9、持有OCP证书;
10、拥有Ansible、python经验者或拥有OCM等证书者优先考虑。
数据库管理员工作的基本职责说明4
职责:
1、负责公司数据库架构规划、容量规划、系统调优;
2、负责数据库日常运维、故障处理,备份恢复、性能调优及补丁升级等;
3、规划、设计、评审和优化数据库设计方案;
4、配合研发制定数据库技术方案,分库分表策略,数据迁移方案 ;
5、指导开发人员完成数据库建模、数据库索引优化,数据库操作语句优化;
任职要求:
1、计算机相关专业本科及以上学历;
2、五年以上DBA相关经验;
3、精通MySQL数据库的在Linux下的安装布署、开发维护、管理及性能调优;
4、熟悉MySQL存储引擎InnoDB、能够进行SQL语句和读写分离的优化分析/设计,并具有高并发下读写分离维护经验。;
5、熟悉MySQL事务和锁,能进行锁分析和分析优化;
6、熟悉其他至少两种关系型数据库SQL Server/Oracle/Postgresql;
7、熟悉ETL概念及过程,有一定的存储过程或ETL相关的开发经验;
8、熟悉Linux,熟悉脚本编写,有自动化经验;掌握至少一门脚本语言(Shell、Python、Perl);
9、熟悉java开发优先考虑。
10、熟悉NoSql优先考虑。
数据库管理员工作的基本职责说明5
职责:
1、负责系统数据库(Oracle、Mysql为主)的数据库规划、部署、优化、故障排查;日常运维及管理工作;
2、负责数据库的存储规划管理,协助系统规划设计、防火墙等网络安全设备的安装调试、故障排除、安装、配置、升级与迁移;
3、负责公司项目数据备份策略制定、实施等相关信息安全工作;
4、负责制定和实施数据库备份恢复策略;
5、负责数据库监控,性能检查和优化工作;
6、负责诊断、故障检测和解决任何数据库相关的问题,配合其他数据库相关管理和维护工作。
7、配合开发人员及其他项目组开展日常技术支持、故障排查、系统日常维护
任职资格:
1、熟悉数据库结构设计,对系统架构和数据库理论有较好的理解;
2、熟悉Oracle或Mysql数据库体系结构和性能优化;
3、熟悉SQL优化原理,具备较好的SQL优化能力;
4、熟悉一种或者多种主流的UNIX/LINUX系统;
㈨ 数据库维护的数据库维护内容
数据库日常维护工作是系统管理员的重要职责。其内容主要包括以下几个部分: SYBASE 系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。SQL Server 提供了两种不同类型的恢复机制:一类是系统自动完成的恢复,这种措施在每次系统启动时都自动进行,保证了在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退;另一类是人工完成的恢复,这是通过 DUMP 和 LOAD 命令来执行人工备份和恢复工作。因此定期备份事务日志和数据库是一项十分重要的日常维护工作。
1、备份数据库
每一个数据库都应在创建之后卸出,从而提供一个装入基点。在此之后按排定的时间周期表卸出。比如每周五卸出数据库。对一般数据库系统卸出数据库周期建议为每周一次。
除了按计划周期卸出数据库之外,还需在每次运行没有日志的操作后卸出数据库。例如:
·每次强制地运行了 DUMP TRAN WITH NO_LOG (因为数据库的磁盘空溢出);
·每次用 sp_dboption 允许 select into/bulk 做快速拷贝,或用 SELECT INTO 命令创建一个永久性的表,或使用了 WRITETEXT 命令。
卸出数据库的命令为:
DUMP DATABASE database_name
TO mp_device
database_name 是要卸出的数据库名称,mp_device 是卸出设备的名称。用系统过程 sp_helpdevice 可以获得设备的信息。
下面一条命令用来卸出数据库 my_db :
DUMP DATABASE my_db
TO db_bk_dev
2、备份事务日志
如果事务日志与数据库放在同一个设备上,则事务日志不应与数据库分开备份。master 数据库和小于 4M 的用户数据库就是这种情况。一般数据库系统的数据库和日志分别放在不同的设备上,因此,可以用 DUMP TRAN 命令单独备份日志。
备份事务日志的周期直接影响数据的恢复程度,因此建议每天备份。
备份事务日志的命令格式为:
DUMP TRANsaction database_name
[TO mp_device]
[WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE]
其中 database_name 是要备份事务的数据库名称,mp_device 是备份设备名称,仅当包含了 WITH TRUNCATE_ONLY 或 WITH NO_LOG 子句时,才可以备份到设备。
注意:如果总是用 DUMP DATEBASE (备份数据库及其日志),而不用 DUMP TRAN ,事务日志将不会刷新,而变得非常庞大。
对于 master 数据库和小型数据库每次运行 DUMP DATEBASE 之后应当运行 DUMP TRANsaction 命令刷新日志 。
下面一条命令备份数据库 db160 的事务日志到备份设备上:
DUMP TRANsaction db160
TO db_log_bk_dev
WITH TRUNCATE_ONLY
3、备份数据库及其日志间的相互作用
在至少卸出一次数据库前,卸出事务日志是毫无意义的。下图显示了备份数据库及其日志间的关系
如果在星期二下午5:01出现非硬件故障,需要做的所有工作是装入磁带5(参见下一节:数据恢复),由于磁带5是下午5:00刚备份的,因此只有备份和装入之间的一分钟内的数据损失。
但是,如果在星期二下午4:49失效会怎么样呢?在这种情况下,要装入磁带1(在星期五下午5:00的卸出)。然后,依次装入磁带2,3以及4。这样,系统将恢复到星期二上午10:00点的状态,星期二的大部分工作丢失了。此例显示了经常卸出事务的重要性。 如果用户数据库存储的设备失效,从而数据库被破坏或不可存取,通过装入最新的数据库备份以及后来的事务日志备份可以恢复数据库。假设当前的事务日志存在于一个并没有毁坏的设备上,带着 WITH NO_TRUNCATE 选项的 DUMP TRANsaction 命令卸出它。
要恢复数据库按如下步骤去做:
1、如果日志存在于一个分离的设备上,用带着 NO_TRUNCATE 选项的 DUMP TRANsaction 命令卸出被毁坏的或者不可存取的用户数据库事务日志。
2、用下面的查询检查设备分配已毁坏数据库的设备使用情况。必须为同一目的赋同样的空间块。
下面的查询显示了分配给数据库 mydb 设备使用和尺寸情况:
SELECT segmap,size FROM sysusages
WHERE dbid =
( SELECT dbid FROM sysdatabases WHERE name = “mydb”)
3、检查查询的输出。在 segmap 列的 ‘3’代表数据分配,‘4’代表日志分配。size 列代表 2K 数据块的数目。注意此信息的次序、使用和尺寸部分。例如,输出为:
segmapSize
--------------------
310240//实际尺寸为:20M
35120//实际尺寸为:10M
45120//实际尺寸为:10M
31024//实际尺寸为:2M
42048//实际尺寸为:4M
4、用 DROP DATABASE 命令删除毁坏设备上的数据库。如果系统报错,用DBCC DBREPAIR 命令的 DROPDB 选项。
5、删除数据库后,用 sp_dropdevice 删除毁坏了的设备。
6、用 DISK INIT 初始化新的数据库设备。
7、重建数据库。用 CREATE DATABASE 命令从老的 sysusages 表拷贝所有的行,并包含第一逻辑设备。
对上例,命令为:
CREATE DATABASE mydb
ON datadev1=20,datadev2=10
LOG ON logdev1=10
8、用 ALTER DATABASE 命令重建其余入口。在此例中,在datadev1上分配更多的空间,命令为:
ALTER DATABASE mydb ON datadev1=2[page]
9、用 LOAD DATABASE 重新装入数据库,然后用 LOAD TRAN 装入前面卸出的日志。
LOAD DATABASE 命令语法是:
LOAD DATABASE database_name
FROM mp_device
LOAD TRANsaction 命令的语法是:
LOAD TRANsaction database_name
FROM mp_device
卸出数据库和事务日志的缺省权限归数据库所有者,且可以传递给其他用户;装载数据库和事务的权限也归数据库所有者,但不能传递。 系统维护人员的另一个日常事务是为用户创建新的信息表,并为之授权。创建表以及为表授权的方法已经在讲过,在此只将有关命令语法写出来。
·创建表的命令为:
CREATE TABLE table_name
( column_1 datatype [NULL | NOT NULL | IDENTITY],
column_2 ……
)
go
ALTER TABLE table_name
ADD PRIMARY KEY (column_list)
go
·删除表的命令格式为:
DROP TABLE table_name
go
·为表授权的命令格式为:
GRANT {ALL|permission_list}
ON table_name TO user_name
go
·收回权限的命令格式为
REVOKE {ALL|permission_list}
ON table_name FROM user_name
go 系统管理员的另一项日常工作是监视系统运行情况。主要有以下几个方面:
1、监视当前用户以及进程的信息
使用系统过程:sp_who
说明:该命令显示当前系统所有注册用户及进程信息,如下表是某系统的信息。
---------------------------------------------------------------
2SleepingNULL0MasterNETWORK HANDLE
3SleepingNULL0MasterDEADLOCK TUNE
4SleepingNULL0MasterMIRROR HANDLER
SLEEP
从左向右依次显示:进程号、当前状态、注册用户名、主机名、占用块数、数据库名以及当前命令。
如果监视时发现进程总数接近最大连接数(用系统过程:sp_configure “user conn” 查看)时,应下掉不活动或无关进程,以保证系统正常运做;另外亦可监视非法用户或用户使用不属于自己使用范围的数据库等情况。
2、监视目标占用空间情况
使用系统过程:sp_spaceused
说明:该过程显示行数、数据页数以及当前数据库中由某个目标或所有目标所占用的空间。如下表是某数据库日志表的信息:
NameRow_totalreserveddataIndex_sizeunused
------------------------------------------------------------
SyslogsNot avail32KB32KB0KBNot avail
日常要监视的主要目标有:用户数据库、数据库日志表(syslogs)以及计费原始数据表等。如果发现占用空间过大,对日志表要进行转储;对其他目标则应扩充空间或清楚垃圾数据。
3、监视 SQL Server 统计数字
使用系统过程:sp_monitor
说明:sp_monitor 显示SQL Server 的历史统计数字,下表是某系统的统计数字:
Last_runCurrent_runSeconds
---------------------------------------------------------------
May 13 2000 1:27PMMay 13 2000 3:01PM5678
CPU_busyIO_busyIdle
---------------------------------------------------------------
16(6)-0%0(0)-0%5727(5672)-99%
Packets_receivedPackets_sentPacket_errors
---------------------------------------------------------------
21(17)100(97)0(0)
Total_readTotal_writeTotal_errorsConnections
--------------------------------------------------------
785(366)311(113)0(0)3(2)
上表依次给出该系统本次运行统计的上一次时间、本次时间、间隔秒数、CPU占用、IO占用、收发包情况、系统读入写出情况等信息 为保证系统数据的安全,系统管理员必须依据系统的实际情况,执行一系列的安全保障措施。其中,周期性的更改用户口令是比较常用且十分有效的措施。
更改用户口令是通过调用系统过程sp_password 来实现的。Sp_password 的语法为:
sp_password caller_password,new_password [,loginame]
其中caller_password 是登录口令(老口令),new_password是新口令,loginame是登录名称。
㈩ 如何保证oracle数据库的安全性
数据库安全性问题一直是围绕着数据库管理员的恶梦,数据库数据的丢失
以及数据库被非法用户的侵入使得数据库管理员身心疲惫不堪。本文围绕数据
库的安全性问题提出了一些安全性策略,希望对数据库管理员有所帮助,不再
夜夜恶梦。数据库安全性问题应包括两个部分:
一、数据库数据的安全
它应能确保当数据库系统DownTime时,当数据库数据存储媒体被破
坏时以及当数据库用户误操作时,数据库数据信息不至于丢失。
二、数据库系统不被非法用户侵入
它应尽可能地堵住潜在的各种漏洞,防止非法用户利用它们侵入数据
库系统。
对于数据库数据的安全问题,数据库管理员可以参考有关系统双机
热备份功能以及数据库的备份和恢复的资料。
以下就数据库系统不被非法用户侵入这个问题作进一步的阐述。
组和安全性:
在操作系统下建立用户组也是保证数据库安全性的一种有效方法。
Oracle程序为了安全性目的一般分为两类:一类所有的用户都可执行,
另一类只DBA可执行。在Unix环境下组设置的配置文件是/etc/group,
关于这个文件如何配置,请参阅Unix的有关手册,以下是保证安全性的
几种方法:
(1) 在安装Oracle Server前,创建数据库管理员组(DBA)而且
分配root和Oracle软件拥有者的用户ID给这个组。DBA能执
行的程序只有710权限。在安装过程中SQL*DBA系统权限命令
被自动分配给DBA组。
(2) 允许一部分Unix用户有限制地访问Oracle服务器系统,增加
一个由授权用户组的Oracle组,确保给Oracle服务器实用例
程Oracle组ID,公用的可执行程序,比如SQL*Plus,SQL*Fo
rms等,应该可被这组执行,然后该这个实用例程的权限为
710,它将允许同组的用户执行,而其他用户不能。
(3) 改那些不会影响数据库安全性的程序的权限为711。
注:在我们的系统中为了安装和调试的方便,Oracle数据库中
的两个具有DBA权限的用户Sys和System的缺省密码是manager。
为了您数据库系统的安全,我们强烈建议您该掉这两个用户的
密码,具体操作如下:
在SQL*DBA下键入:
alter user sys indentified by password;
alter user system indentified by password;
其中password为您为用户设置的密码。
Oracle服务器实用例程的安全性:
以下是保护Oracle服务器不被非法用户使用的几条建议:
(1) 确保$ORACLE_HOME/bin目录下的所有程序的拥有权归Oracle
软件拥有者所有;
(2) 给所有用户实用便程(sqiplus,sqiforms,exp,imp等)711权
限,使服务器上所有的用户都可访问Oracle服务器;
(3) 给所有的DBA实用例程(比如SQL*DBA)700权限。Oracle服务器
和Unix组当访问本地的服务器时,您可以通过在操作系统下把
Oracle服务器的角色映射到Unix的组的方式来使用Unix管理服
务器的安全性,这种方法适应于本地访问。
在Unix中指定Oracle服务器角色的格式如下:
ora_sid_role[_dla]
其中
sid 是您Oracle数据库的oracle_sid;
role 是Oracle服务器中角色的名字;
d (可选)表示这个角色是缺省值;
a (可选)表示这个角色带有WITH ADMIN选项,
您只可以把这个角色授予其他角色,不能是其他用户。
以下是在/etc/group文件中设置的例子:
ora_test_osoper_d:NONE:1:jim,narry,scott
ora_test_osdba_a:NONE:3:pat
ora_test_role1:NONE:4:bob,jane,tom,mary,jim
bin: NONE:5:root,oracle,dba
root:NONE:7:root
词组“ora_test_osoper_d”表示组的名字;词组“NONE”表示这
个组的密码;数字1表示这个组的ID;接下来的是这个组的成员。前两
行是Oracle服务器角色的例子,使用test作为sid,osoper和osdba作
为Oracle服务器角色的名字。osoper是分配给用户的缺省角色,osdba
带有WITH ADMIN选项。为了使这些数据库角色起作用,您必须shutdown
您的数据库系统,设置Oracle数据库参数文件initORACLE_SID.ora中
os_roles参数为True,然后重新启动您的数据库。如果您想让这些角色
有connect internal权限,运行orapwd为这些角色设置密码。当您尝
试connect internal时,您键入的密码表示了角色所对应的权限。
SQL*DBA命令的安全性:
如果您没有SQL*PLUS应用程序,您也可以使用SQL*DBA作SQL查权
限相关的命令只能分配给Oracle软件拥有者和DBA组的用户,因为这些
命令被授予了特殊的系统权限。
(1) startup
(2) shutdown
(3) connect internal
数据库文件的安全性:
Oracle软件的拥有者应该这些数据库文件
($ORACLE_HOME/dbs/*.dbf)设置这些文件的使用权限为0600:文件的
拥有者可读可写,同组的和其他组的用户没有写的权限。
Oracle软件的拥有者应该拥有包含数据库文件的目录,为了增加
安全性,建议收回同组和其他组用户对这些文件的可读权限。
网络安全性:
当处理网络安全性时,以下是额外要考虑的几个问题。
(1) 在网络上使用密码
在网上的远端用户可以通过加密或不加密方式键入密码,
当您用不加密方式键入密码时,您的密码很有可能被非法用
户截获,导致破坏了系统的安全性。
(2) 网络上的DBA权限控制
您可以通过下列两种方式对网络上的DBA权限进行控制:
A 设置成拒绝远程DBA访问;
B 通过orapwd给DBA设置特殊的密码。
建立安全性策略:
系统安全性策略
(1) 管理数据库用户
数据库用户是访问Oracle数据库信息的途径,因此,
应该很好地维护管理数据库用户的安全性。按照数据库系统
的大小和管理数据库用户所需的工作量,数据库安全性管理
者可能只是拥有create,alter,或drop数据库用户的一个
特殊用户,或者是拥有这些权限的一组用户,应注意的是,只
有那些值得信任的个人才应该有管理数据库用户的权限。
(2) 用户身份确认
数据库用户可以通过操作系统,网络服务,或数据库进行
身份确认,通过主机操作系统进行用户身份认证的优点有:
A 用户能更快,更方便地联入数据库;
B 通过操作系统对用户身份确认进行集中控制:如果操作
系统与数据库用户信息一致,那么Oracle无须存储和管
理用户名以及密码;
C 用户进入数据库和操作系统审计信息一致。
(3) 操作系统安全性
A 数据库管理员必须有create和delete文件的操作系统权限;
B 一般数据库用户不应该有create或delete与数据库相关文
件的操作系统权限;
C 如果操作系统能为数据库用户分配角色,那么安全性管理者
必须有修改操作系统帐户安全性区域的操作系统权限。
数据的安全性策略:
数据的生考虑应基于数据的重要性。如果数据不是很重要,那么数
据的安全性策略可以稍稍放松一些。然而,如果数据很重要,那么应该
有一谨慎的安全性策略,用它来维护对数据对象访问的有效控制。
用户安全性策略:
(1) 一般用户的安全性
A 密码的安全性
如果用户是通过数据库进行用户身份的确认,那么建议
使用密码加密的方式与数据库进行连接。这种方式的设置方
法如下:
在客户端的oracle.ini文件中设置
ora_encrypt_login数为true;
在服务器端的initORACLE_SID.ora文件中设置
dbling_encypt_login参数为true。
B 权限管理
对于那些用户很多,应用程序和数据对象很丰富的数据
库,应充分利用“角色”这个机制所带的方便性对权限进行
有效管理。对于复杂的系统环境,“角色”能大大地简化权
限的管理。
(2) 终端用户的安全性
您必须针对终端用户制定安全性策略。例如,对于一个有
很多用户的大规模数据库,安全性管理者可以决定用户组分类,
为这些用户组创建用户角色,把所需的权限和应用程序角色授
予每一个用户角色,以及为用户分配相应的用户角色。当处理
特殊的应用要求时,安全性管理者也必须明确地把一些特定的
权限要求授予给用户。您可以使用“角色”对终端用户进行权
限管理。
数据库管理者安全性策略:
(1) 保护作为sys和system用户的连接
当数据库创建好以后,立即更改有管理权限的sys和system用
户的密码,防止非法用户访问数据库。当作为sys和system用户
连入数据库后,用户有强大的权限用各种方式对数据库进行改动。
(2) 保护管理者与数据库的连接
应该只有数据库管理者能用管理权限连入数据库,当以sysdba
或startup,shutdown,和recover或数据库对象(例如create,
drop,和delete等)进行没有任何限制的操作。
(3) 使用角色对管理者权限进行管理
应用程序开发者的安全性策略:
(1) 应用程序开发者和他们的权限
数据库应用程序开发者是唯一一类需要特殊权限组完成自己
工作的数据库用户。开发者需要诸如create table,create
procere等系统权限,然而,为了限制开发者对数据库的操作,
只应该把一些特定的系统权限授予开发者。
(2) 应用程序开发者的环境
A 程序开发者不应与终端用户竞争数据库资源;
B 用程序开发者不能损害数据库其他应用产品。
(3) free和controlled应用程序开发
应用程序开发者有一下两种权限:
A free development
应用程序开发者允许创建新的模式对象,包括table,index,
procere,package等,它允许应用程序开发者开发独立于其
他对象的应用程序。
B controlled development
应用程序开发者不允许创建新的模式对象。所有需要table,
indes procere等都由数据库管理者创建,它保证了数据
库管理者能完全控制数据空间的使用以及访问数据库信息的
途径。但有时应用程序开发者也需这两种权限的混和。
(4) 应用程序开发者的角色和权限
数据库安全性管理者能创建角色来管理典型的应用程序开
发者的权限要求。
A create系统权限常常授予给应用程序开发者,以到于
他们能创建他的数据对象。
B 数据对象角色几乎不会授予给应用程序开发者使用的
角色。
(5) 加强应用程序开发者的空间限制
作为数据库安全性管理者,您应该特别地为每个应用程
序开发者设置以下的一些限制:
A 开发者可以创建table或index的表空间;
B 在每一个表空间中,开发者所拥有的空间份额。应用程
序管理者的安全在有许多数据库应用程序的数据库系统
中,您可能需要一应用程序管理者,应用程序管理者应
负责以下的任务:
C 为每一个应用程序创建角色以及管理每一个应用程序
的角色;
D 创建和管理数据库应用程序使用的数据对象;
E 需要的话,维护和更新应用程序代码和Oracle的存储
过程和程序包。