ORACLE数据库DBA 职责及日常工作职责

来源:互联网 发布:数据科学家的修炼之道 编辑:程序博客网 时间:2024/05/09 07:19

DBA 职责及日常工作职责:

    1.安装和升级数据库服务器,以及应用程序工具构建和配置网络环境.

    2.熟悉数据库系统的存储结构预测未来的存储需求,制订数据库的存储方案.

    3.根据开发人员设计的应用系统需求创建数据库存储结构.

    4.根据开发人员设计的应用系统需求创建数据库对象

    5.根据开发人员的反馈信息,在必要的时候修改数据库的结构

    6.管理数据库的用户维护数据库的安全

    7.控制和监控用户对数据库的存取访问

    8.监控和优化数据库的性能

    9.制定数据库备份计划,灾难出现时对数据库信息进行恢复

    10.备份和恢复数据库

    11.联系数据库系统生产厂商,跟踪技术信息

    12.解决客户端中间层和服务器的链接问题

    13.保证安全连接

方法一:

1、在本地创建一个Access数据库,将Excel数据先导入到Access。可直接导入点击鼠标右键,选择导入,文件类型选择要导入的Excel文件,也可通过创建宏用TransferSpreadsheet函数实现。
2、在本地创建ODBC,链接oracle数据库。将oracle中需要导入数据的表以链接表的方式在本地Access中创建(千万不要使用导入表)。
3、在Access数据库中创建插入查询将导入好的Excel数据导入到oracle中。

方法二:

先把Excel另存为.csv格式文件,如test.csv,再编写一个insert.ctl
用sqlldr进行导入!
insert.ctl内容如下:
load data           --1、控制文件标识
infile test.csv       --2、要输入的数据文件名为test.csv
append into table table_name     --3、向表table_name中追加记录
fields terminated by ,   --4、字段终止于,,是一个逗号
(field1,
field2,
field3,
...
fieldn)-----定义列对应顺序

注意括号中field排列顺序要与csv文件中相对应
然后就可以执行如下命令:
sqlldr user/password control=insert.ctl

    每日工作:

    1 确保服务器工作状态正常,各类数据库状态正常

    2 检查硬盘空间是否够用

    3 查看数据库日志,查看跟踪文件,检查是否有错误信息

    4 检查备份的有效性

    5 通过系统的性能监视器对服务器的性能参数监控发现数据库的性能是否下降,寻找原因并解决

    6 填写dba日志

    每周工作:

    1 监控数据库对象的空间扩展情况

    2 决定是否调整存储参数

    3 对系统健康检查

    4 检查删除没有任何意义的数据对象

    5 检查删除没有意义的约束和触发器

    6 对每周的备份检查处理

    每月工作:

    1 根据上面的检查情况,分析数据库中是否有影响性能的存储碎片存在

    2 根据数据库性能的历史数据,决定如何优化性能

    3 处理每日每周每月的备份

    4 总结工作,提出下一步的管理计划

    Oracle DBA日常工作总结

    Oracle管理员应按如下方式对Oracle数据库系统做定期监控:

    1、每天对Oracle数据库的运行状态、日志文件、备份情况、数据库空间使用情况、系统资源使用情况进行检查,发现并解决问题。

    2、每周对数据库对象的空间扩展情况、数据的增长情况进行监控、对数据库做健康检查、对数据库对象的状态做检查。

    3、每月对表和索引等进行analyze、检查表空间碎片、寻找数据库性能调整的机会、进行数据库性能调整、提出下一步空间管理计划。对Oracle数据库状态进行一次全面检查。

每天工作

    1、确认所有的instance状态正常登录到所有数据库或实例,检测Oracle后台进程:#ps -ef | grep ora

    2、检查文件系统的使用(剩余空间)。如果文件系统的剩余空间小于20%,需删除不用的文件以释放空间。#df -k

    3、检查日志文件和trace文件记录alert和trace文件中的错误。

cd $Oracle_BASE/oradata/<sid>/bdump
tail -f alert_<sid>.log

 

    发现任何新的ORA_错误,记录并解决

    4、检查数据库当日备份的有效性

    对RMAN备份方式,检查第三方备份工具的备份日志以确定备份是否成功

    对EXPORT备份方式,检查exp日志文件以确定备份是否成功

    对其它备份方式,检查相应的日志文件

    5、检查数据文件的状态记录状态不是“online"的数据文件,并做恢复。

select file_name from dba_data_files where status="OFFLINE"

    6、检查表空间的使用情况

select a.tablespace_name,round((total-free)/total,3)*100 pecent
from (select tablespace_name,sum(bytes) free from dba_free_space group by tablespace_name) a,
(select tablespace_name,sum(bytes) total from dba_data_files group by tablespace_name) b
where a.tablespace_name=b.tablespace_name

    7、检查剩余表空间

select tablespace_name,
       sum(blocks) as free_blk,
       trunc(sum(bytes) / (1024 * 1024)) as free_m,
       max(bytes) / (1024) as big_chunk_k,
       count(*) as num_chunksfrom from dba_free_space
 group by tablespace_name;

    8、监控数据库性能

    运行utlbstat.sql/utlestat.sql生成系统报告,或者使用statspace收集统计数据

    9、检查数据库性能,记录数据库的CPU使用、IO、Buffer命中率等等,使用vmstat,iostat,glance,top

    10、日常出现问题的处理

    每周的工作

    1、控制数据库对象的空间扩展情况,根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相应的措施。

    删除历史数据、扩展表空间

alter tablespace <name> add datafile '<file>' size <size>

    调整数据对象的存储参数 next extent pct_increase

    2、监控数据量的增长情况

    根据本周每天的检查情况找到记录数据数量增长很快的数据库对象,并采取相应的措施

    删除历史数据、扩表空间

alter tablespace <name> add datafile '<file>' size <size>

    3、系统健康检查

    检查以下内容:

init<sid>.ora
controlfile
redo log file
archiveing
sort area size
tablespace(system,temporary,tablespace fragment)
datafiles(autoextend,location)
object(number of extent,next extent,index)
rollback segment
logging & tracing(alert.log,max_dump_file_size,sqlnet)

    4、检查无效的数据库对象

select owner,object_name,object_type from dba_objects where status='INVALID'

    5、检查不起作用的约束

select owner,constraint_name,table_name,constraint_type,status from dba_constraints 
where status='DISABLED' and constraint_type='p'

    6、检查无效的trigger

select owner,trigger_name,table_name,status from dba_triggers
where status='DISABLED'

    每月的工作

    1、Analyze tables/indexes/cluster

    analyze table <name> estimate statistics sample 50 percent;

    2、检查表空间碎片

    根据本月每周的检查分析数据库碎片,找到相应的解决方法

    3、寻找数据库性能调整机会

    比较每天对数据库性能的监控报告,确定是否有必要对数据库性能进行调整

    4、数据库性能调整,如有必要进行性能调整

    5、提出下一步空间管理计划,根据每周的监控,提出空间管理的改进方法

 

将一个数据库的某用户的所有表导到另外数据库的一个用户下面的例子  
exp userid=system/manager owner=username1 file=expfile.dmp
imp userid=system/manager fromuser=username1 touser=username2 ignore=y file=expfile.dmp

ORACLE数据库有两类备份方法。第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库;第二类备份方式为逻辑备份,业务数据库采用此种方式,此方法不需要数据库运行在归挡模式下,不但备份简单,而且可以不需要外部存储设备。


数据库逻辑备份方法
ORACLE数据库的逻辑备份分为三种模式:表备份、用户备份和完全备份。


表模式
备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。
若备份到本地文件,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_csd_yyyymmdd.dmp
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
若直接备份到磁带设备,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。出于速度方面的考虑,尽量不要直接备份到磁带设备。


用户模式
备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式。
若备份到本地文件,使用如下命令:
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_yyyymmdd.dmp
log=exp_icdmain_yyyymmdd.log
若直接备份到磁带设备,使用如下命令:
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_yyyymmdd.log
注:如果磁盘有空间,建议备份到磁盘,然后再拷贝到磁带。如果数据库数据量较小,可采用这种办法备份。


完全模式
备份完整的数据库。业务数据库不采用这种备份方式。备份命令为:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y
file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0)
log=exp_fulldb_yyyymmdd.log
对于数据库备份,建议采用增量备份,即只备份上一次备份以来更改的数据。增量备份
命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y inctype=incremental
file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0)
log=exp_fulldb_yyyymmdd.log
注:关于增量备份必须满足下列条件:
1. 只对完整数据库备份有效,且第一次需要full=y参数,以后需要inctype=incremental参数。
2. 用户必须有EXP_FULL_DATABASE的系统角色。
3. 话务量较小时方可采用数据库备份。
4. 如果磁盘有空间,建议备份到磁盘,然后再备份到磁带。
业务数据库备份方法及周期
用EXP进行备份前,先在SYS用户下运行CATEXP.SQL文件(如果以前已运行该文件,则不要执行这个脚本)。
没有特殊说明,不允许在客户端执行备份命令。

备份命令参照表模式下的备份命令。
从磁盘文件备份到磁带
如果首先备份到本地磁盘文件,则需要转储到磁带设备上。
1. 若需查看主机上配置的磁带设备,使用如下命令:
lsdev -Cc tape
显示的结果如下例所示:
rmt0 Available 30-58-00-2,0 SCSI 4mm Tape Drive
rmt1 Defined  30-58-00-0,0 SCSI 4mm Tape Drive
标明Available的设备是可用的磁带设备。
2. 若需查看磁带存储的内容,使用如下命令:
tar -tvf /dev/rmt0
显示的结果如下例所示:
-rw-r--r-- 300 400 8089600 Jan 11 14:33:57 2001 exp_icdmain_20010111.dmp
如果显示类似如下内容,则表示该磁带存储的备份数据是从数据库直接备份到磁带上,而非从本地磁盘转储到磁带的备份文件,因此操作系统无法识别。
tar: 0511-193 An error occurred while reading from the media.
There is an input or output error.

tar: 0511-169 A directory checksum error on media; -267331077 not equal to 25626.
3. 对于新磁带或无需保留现存数据的磁带,使用如下命令:
tar -cvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp
注:A. 该命令将无条件覆盖磁带上的现存数据。
  B. 文件名不允许包含路径信息,如:/backup/exp_icdmain_yyyymmdd.dmp。
4. 对于需要保留现存数据的磁带,使用如下命令:
tar -rvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp
注:该命令将文件exp_icdmain_yyyymmdd.dmp追加到磁带的末端,不会覆盖现存的数据。
特别强调:如果备份时是从数据库直接备份到磁带上,则不可再向该磁带上追加复制任何其他文件,否则该备份数据失效。
5. 若需将转储到磁带上的备份文件复制到本地硬盘,使用如下命令:
A. 将磁带上的全部文件复制到本地硬盘的当前目录
tar -xvf /dev/rmt0
B. 将磁带上的指定文件复制到本地硬盘的当前目录
tar -xvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp
备份时间安排
由于备份时对系统I/O有较大影响,所以,建议在晚上11点以后进行备份工作。
业务数据库Oracle版本的恢复,恢复方案需根据备份方案确定。由于业务数据库采用表备份和用户备份相结合的方案,所以业务数据库的恢复需根据实际情况采用表恢复和用户恢复相结合的方案。

恢复方案
数据库的逻辑恢复分为表恢复、用户恢复、完全恢复三种模式。

表模式
此方式将根据按照表模式备份的数据进行恢复。
A. 恢复备份数据的全部内容
若从本地文件恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0
file=exp_icdmain_cs
d_yyyymmdd.dmp
log=imp_icdmain_csd_yyyymmdd.log
若从磁带设备恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
log=imp_icdmain_csd_yyyymmdd.log
B. 恢复备份数据中的指定表
若从本地文件恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0
file=exp_icdmain_cs
d_yyyymmdd.dmp
log=imp_icdmain_csd_yyyymmdd.log
tables=commoninformation,serviceinfo
若从磁带设备恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0
file=/dev/rmt0
log=imp_icdmain_csd_yyyymmdd.log
tables=commoninformation,serviceinfo


用户模式
此方式将根据按照用户模式备份的数据进行恢复。
A. 恢复备份数据的全部内容
若从本地文件恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0
file=exp_icdmain_yy
yymmdd.dmp
log=imp_icdmain_yyyymmdd.log
若从磁带设备恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
log=imp_icdmain_yyyymmdd.log
B. 恢复备份数据中的指定表
若从本地文件恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0
file=exp_icdmain_yy
yymmdd.dmp
log=imp_icdmain_yyyymmdd.log
tables=commoninformation,serviceinfo
若从磁带设备恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
log=imp_icdmain_yyyymmdd.log
tables=commoninformation,serviceinfo

完全模式
如果备份方式为完全模式,采用下列恢复方法:
若从本地文件恢复,使用如下命令:
imp system/manager rows=y indexes=n commit=y buffer=65536
feedback=100000 ignore=y volsize=0 full=y
file=exp_icdmain_yyyymmdd.dmp
log=imp_icdmain_yyyymmdd.log
若从磁带设备恢复,使用如下命令:
imp system/manager rows=y indexes=n commit=y buffer=65536
feedback=100000 ignore=y volsize=0 full=y
file=/dev/rmt0
log=imp_icdmain_yyyymmdd.log
参数说明
1. ignore参数
Oracle在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据ignore参数的设置来决定如何操作。
若ignore=y,Oracle不执行CREATE TABLE语句,直接将数据插入到表中,如果插入的记录违背了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。
若ignore=n,Oracle不执行CREATE TABLE语句,同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。
2. indexes参数
在恢复数据的过程中,若indexes=n,则表上的索引不会被恢复,但是主键对应的唯一索引将无条件恢复,这是为了保证数据的完整性。

字符集转换
对于单字节字符集(例如US7ASCII),恢复时,数据库自动转换为该会话的字符集(NLS_LANG参数);对于多字节字符集(例如ZHS16CGB231280),恢复时,应尽量使字符集相同(避免转换),如果要转换,目标数据库的字符集应是输出数
据库字符集的超集。

恢复方法
业务数据库采用表恢复方案。在用IMP进行恢复前,先在SYS用户下运行CATEXP.SQL文件(如果以前已运行该文件,则不要执行这个脚本),然后执行下列命令:
IMP ICDMAIN/ICD FILE=文件名 LOG=LOG文件名 ROWS=Y
COMMIT=Y BUFFER=Y IGNORE=Y TABLES=表名
注:要恢复的表名参照备份的表名
  。恢复是在原表基础上累加数据
  。没有特殊说明,不允许在客户端执行恢复命令

学好Oracle的六条总结

经常有一些Oracle的初学者问到这个问题,这里算是一个统一答复。

1、如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL,但可以看动它们,你就可以跳到2。否则请先看一下数据库基础和SQL语言,不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应用边学习、记忆。

 

  2、要想学好ORACLE,首先要学习ORACLE的体系结构,现在你不需要深入理解它们,但要分清几个关键的概念:

  instance & database,

  memory structure , process & those files ,such as data file, control file, init parameter file etc

  以及database , tablespace , data file和tablespace, segmnet, extent & block它们之间的关系。

  当然还要分清undo tablespace & redo log file等,

  对于很多初学者来说,能够对这些概念有个较为清晰的认识并不是一件容易的事,而这些并非Oracle的全部。

  3、2是有关ORACLE的一些基本概念,下面要学习的是一些简单的的实际操作,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此过程中你将对SQL和ORACLE体系结构有个更深入的了解。

  4、到了这一步你基本上算是初步掌握了ORACLE,下面将要根据你的方向来具体学习其它的ORACLE知识了。如果你是开发人员,则需要更多地去学习PL/SQL以及DEVELOPER,而这将是一门新的课程。如果你是一名DBA,请继续。

  5、现在你可以根据自己的实际情况,进行有选择的学习,也就是说下面的内容没有特别顺序要求。可以选择深入学习ORACLE的管理、备份与恢复、性能调整、网络等。当然在学习这些知识的过程中,如果有实际的工作更好,这样你可以在实际中成长,学会TROUBLE SHOOTING。

  6、当然在学习的过程中,你可以在网站或论坛中与他人进行交流,可以看别人的一些经验文章,也可以自己写一些心得体会。技术进步的本身就是经验的积累和提炼过程,希望大家共同成长,欢迎大家相互交流。

Oracle数据仓库的体系结构可以分成三个层次:

    数据获取层:Oracle Database Enterprise ETL Option + Oracle Database Data Quality Option 在Oracle Database 10g 同一个软件中实现了从数据模型设计,数据质量管理,ETL 流程设计和元数据管理的全部功能。所有的 ETL 过程可以通过Oracle数据仓库中提供的工具: Oracle Warehouse Builder 生成的ETL 脚本存储在Oracle 10g 数据库中执行,按照数据仓库系统的要求,定时地完成数据的抽取并加载到数据仓库系统中。由于ETL 的执行是在Oracle 10g 数据库中,可以充分利用Oracle 10g 数据库提供的强大并行处理能力,保证数据获取的高效、可靠执行。

    数据存储层:Oracle 10g数据库实现对数据仓库系统各种类型数据的集中存储和管理,包括各种结构化数据 和非结构化数据。Oracle 10g数据库内置OLAP和数据挖掘功能,不需要进行复杂的数据迁移,就可以直接 在关系数据库中完成复杂的统计分析功能。Oracle 10g数据库通过使用分区技术可以支持海量数据的存储,一个数据库最大数据量为8,000 PB(1PB=1024TB)。Oracle 10g提供强大的并行处理能力,满足数据仓库系统 对于性能和扩展性方面的要求。而且系统通过网格控制台(Grid Control)进行数据仓库统一管理。

    数据展现层:Oracle提供全新的商务智能解决方案Oracle BI EE、OLAP分析开发工具(JDeveloper+BI Beans)和 数据挖掘工具(Oracle Data Miner),将统计分析的结果通过各种方式展现。Oracle的数据展现方案使用Java 和 HTML两种方式实现,基于标准的J2EE平台。由于使用统一的元数据库,不需要进行元数据的交换,能够 最大限度地减少系统的维护工作。同时,Oracle的数据展现方案提供具有强大分析功能和非常易用的分析 仪表板, 并支持通过门户(Portal)技术进行集成,为不同类型的用户提供一致的访问界面。

    相关阅读

    数据仓库是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,它用于支持企业或组织的决策分析处理。

    数据仓库,英文名称为Data Warehouse,可简写为DW

    数据仓库之父Bill Inmon在1991年出版的“Building the Data Warehouse”一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。

 

 

来源:http://hi.baidu.com/xiaodehua/blog/item/1e84b52be7c9d4f2e7cd4017.html

原创粉丝点击