Chinaunix首页 | 论坛 | 博客
  • 博客访问: 393114
  • 博文数量: 85
  • 博客积分: 1416
  • 博客等级: 上尉
  • 技术积分: 916
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-03 20:35
文章分类
文章存档

2014年(5)

2012年(2)

2010年(3)

2009年(67)

2008年(8)

分类: Oracle

2009-06-18 15:35:31

1.DBA的一些职责:

安装和升级数据库服务器(如Oracle、Microsoft SQL server),以及应用程序工具。
数据库设计系统存储方案,并制定未来的存储需求计划。
一旦开发人员设计了一个应用,就需要DBA来创建数据库存储结构(tablespaces)。
一旦开发人员设计了一个应用,就需要DBA来创建数据库对象(tables,views,indexes)。
根据开发人员的反馈信息,必要的时候,修改数据库的结构。
登记数据库的用户,维护数据库的安全性。
保证数据库的使用符合知识产权相关法规。
控制和监控用户对数据库的存取访问。
监控和优化数据库的性能。
制定数据库备份计划,灾难出现时对数据库信息进行恢复
维护适当介质上的存档或者备份数据
备份和恢复数据库
联系数据库系统的生产厂商,跟踪技术信息。
最好熟悉Linux/Solaris操作系统,具有简单的Shell脚本编写能力

2. DBA的个性特点:
   很多时候管理人员都忽视了DBA的个性特点,他们只关注DBA的技术能力。实际上,上面谈到的每个职责都意味着:DBA需要跟各种人员打交道,这些人员可能是销售商、用户、开发人员或者管理人员。这说明:DBA必须具有下面的个性特点:
   1. 自信心
 2.好奇心
 3.坚韧的意志力
 4.老练
 5.自我驱动
 6.注意细节
为什么这些个性特点很重要呢?
     几乎所有的数据库系统都在不停地更新。但并不是所有的更新都有技术文档。对于好的DBA来说,好奇心是必需的。没有好奇心和求知欲的DBA总是等待有人告诉他们答案。而一个求知欲强的DBA将安装最新版本的数据库系统,并立即开始搜寻那些哪怕是细微的功能和性能上的差异和增强,从而改进自己的工作。DBA常常会碰到棘手的问题。寻找答案是一个需要坚韧意志力、可以经受摔打的个性特点。
     自我驱动对每个人都是很重要的,对DBA尤其如此。DBA要能想办法使问题出现,而不是等待问题的出现。不用说和用户,就是和程序员和管理人员打交道,也需要你足够老练。很多时候,开发者、管理者、用户,他们会提出毫无道理的需求,DBA们需要老练地引导、修正它们的要求,说服他们。在应试时,你的应对就很能说明你是否老练。 最后说说注意细节,这种性格倾向非常重要。注意细节的DBA们衣着整洁,有自己的日程安排,在应试前对应聘的单位做过调查。注意细节的DBA们深入了解数据库的内核,并能理解视图、表之间的关系。
3.ORACLE的体系:
        作为一名优秀的DBA,我们要能够熟练地掌握ORACLE数据库的管理和操作。 ORACLE分为两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦;管理则需要对oracle数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会down掉整个数据库,相对前者来说,后者更看重经验。
3.1 物理结构
控制文件:包含维护和验证数据库完整性的必要信息。
数据文件:存储数据的文件。
重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件。
参数文件:定义Oracle 例程的特性,例如它包含调整SGA 中一些内存结构大小的参数。
归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。
密码文件:认证哪些用户有权限启动和关闭Oracle例程。
3.2 逻辑结构
表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。
段:是对象在数据库中占用的空间。
区:是为数据一次性预留的一个较大的存储空间。
块:ORACLE最基本的存储单位,在建立数据库的时候指定。
3.3 内存分配
SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息, 它是在Oracle 服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。
PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共  享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收
3.4 后台进程
数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件。
日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件。
系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复。
进程监控:负责在一个Oracle 进程失败时清理资源。
检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。
归档进程:在每次日志切换时把已满的日志组进行备份或归档。
服务进程:用户进程服务。
用户进程:在客户端,负责将用户的SQL 语句传递给服务进程,并从服务器段拿回查询数据。
3.5 oracle例程:
oracle例程:Oracle 例程由SGA 内存结构和用于管理数据库的后台进程组成。例程一次只能打开和使用一个数据库。
3.6 SCN (System Change Number):
SCN(System Change Number):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。
4 DBA常用SQL命令:
4.1 建表
create table table_name(
column1 datatype [not null] [not null primary key],
column2 datatype [not null],
...)
4.2 修改表
alter table table_name
add column column_name datatype
alter table table_name
add primary key (column_name)
alter table table_name
drop primary key (column_name)
4.3 建目录
create index index_name on table_name (column_name)
4.4 删除信息
delete from table_name
where conditions;
4.5 添加信息
insert into table_name (column1,column2,...)
values ( value1,value2, ...)
insert into table_name (column1,column2,...)
select columnx,columny,... from another_table
4.6 查询
select column1,columns2,...
from table_name
select *
from table_name
where column1 = xxx
[and column2 > yyy] [or column3 <> zzz]
select column1,column2
from table_name
order by column2 [desc]
select *
from table1,table2
where table1.colum1=table2.column1
select count (*)
from table_name
where column_name = xxx
select sum(column1)
from table_name
select column1,avg(column2)
from table_name
group by column1
having avg(column2) > xxx
select *
from table_name1
where exists (
select *
from table_name2
where conditions )
4.7 更新表
update table_name
set column1='xxx'
where conditoins;
4.8 删除表
drop table_name
drop index_name

5.dba的待遇:
DBA么,要看你在什么城市,在北京.经验在1,2年的(6-8k)左右,资深的可以达到10k多,但再高就人就很少很少了.当然工资也就相当高了.努力啊!努力提高自己啊!争取在最短的时间里让自己的工资提高到10k.这不是梦,只是时间稍晚点啊,不说废话拉,还是努力学习吧! 大家一起加油啊!!!
 
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wyzxg/archive/2006/07/08/894076.aspx
阅读(847) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~