如何学习Oracle
经常有一些Oracle的初学者问到这个问题,这里算是一个统一答复。
1、如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL,但可以看动它们,你就可以跳到2。否则请先看一下数据库基础和SQL语言,不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应用边学习、记忆。
2、要想学好ORACLE,首先要学习ORACLE的体系结构,现在你不需要深入理解它们,但要分清几个关键的概念:
instance&database,memorystructure,process&thosefiles,suchasdatafile,controlfile,initparameterfileetc
以及database,tablespace,datafile和tablespace,segmnet,extent&block它们之间的关系。
当然还要分清undotablespace&redologfile等,对于很多初学者来说,能够对这些概念有个较为清晰的认识并不是一件容易的事,而这些并非Oracle的全部。
3、2是有关ORACLE的一些基本概念,下面要学习的是一些简单的的实际 *** 作,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此过程中你将对SQL和ORACLE体系结构有个更深入的了解。
4、到了这一步你基本上算是初步掌握了ORACLE,下面将要根据你的方向来具体学习其它的ORACLE知识了。如果你是开发人员,则需要更多地去学习PL/SQL以及DEVELOPER,而这将是一门新的课程。如果你是一名DBA,请继续。
5、现在你可以根据自己的实际情况,进行有选择的学习,也就是说下面的内容没有特别顺序要求。可以选择深入学习ORACLE的管理、备份与恢复、性能调整、网络等。当然在学习这些知识的过程中,如果有实际的工作更好,这样你可以在实际中成长,学会TROUBLESHOOTING。
6、当然在学习的过程中,你可以在网站或论坛中与他人进行交流,可以看别人的一些经验文章,也可以自己写一些心得体会。
在此也希望你能早日好学好你的oracle!
至少到现在为止,我没有见到过兼职的DBA工作。
我猜想最多是数据库定期检查作业。对于数据库是只读,也许可能。但是从另外一个角度来说,数据库内部的数据,有很多是敏感的,不可能将访问权限放给兼职人员。所以,多半没戏
可能的作业根本不是DBA,多半仅仅是开发项目中的一些数据库管理和PLSQL作业,代码管理。可惜这个工作也不是兼职能做的。结局就是说,兼职情况下,所有DBA的作业,都不可能接触到的。
学习PLSQL吧,推荐学习的是OraclePLSQL实例第四版(名字有点忘记了)和TOM大神的编程艺术。以后至少争取做PLSQL的核心程序员,才有希望到DBA。
现在要想找个有能力而又肯教人的师父,难度不小噢。
个人觉得,对于你而言,首先要确定的是,是不是真对ORACLE的DBA感兴趣?对这行了解多少?其次,下定决定走这条路后,考证不是目的,只是让考试逼着自己学习而已。第三,证书跟能力的关系没有想像中的大,有证书不一定能找到好的DBA岗位。第四,牛B的ORACLE DBA一般都在大公司,你想学必须要能进入这样的公司。第五,DBA要对主机、 *** 作系统等领域有相当涉猎才行。第六,DBA要胆大心细,心理素质要过硬,要敢于担责任。个人看法,仅供参考。
1,达到DBA和程度一般需要三个月;
2,达到企业需要的水平还要学会Oracle经常在Unix或是Linux平台上运行的知识。
3,最好还是要学一下,Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。
学了以后可以有助于程序语言的高层发展。
4,Java的八大基本数据类型及其包装类具体学一下。
以下的文章主要是介绍Oracle空间管理的技巧 我们大家都知道在Oracle数据库中 DBA是可以通过相应的表或是视图来了解当前的空间具体使用的状况观测 从而作出可能的调整决定
一 表空间的自由空间
通过对表空间的自由空间的观察 可用来判断分配给某个表空间的空间是太多还是不够 请看下列的语句
SQL > select a file_id FileNo a tablespace_name
Tablespace_name
a bytes Bytes a bytes sum(nvl(b bytes )) Used
sum(nvl(b bytes )) Free
sum(nvl(b bytes ))/a bytes %free
from dba_data_files a dba_free_space b
where a file_id=b file_id(+)
group by a tablespace_name
a file_id a bytes order by a tablespace_name;
File Tablespace
No _nameBytes Used Free %free
IDX_JF E+ E+
JFSJTS E+ E+
JFSJTS E+ E+
RBS
RBS E+ E+
RBSJF E+ E+
SFGLTS E+ E+
SFSJTS E+ E+
SYSTEM
TEMP
TOOLS
USERS
rows selected
可以看出 在FileNo为 的表空间RBS中 只有 %的分配空间未被使用 这个比例太小了 而在SYSTEM及TEMP等表空间中 高达 %以上的空间未被利用 对于生产型数据库 这个表空间的设置有些偏高
关于自由Oracle空间管理 有下面的一些建议
利用Export及Import命令卸出和装入表空间可以释放大量的空间 从而缓解增加另外的数据文件的要求
如果包含具有高插入(insert)和更新(update)活动的表的表空间中自由空间的比重下降到了 %以下 要为此表空间增加更多的空间
对于一个基本是静态表数据的表空间 如果有多于 %的自由空间 则可以考虑减少分配给它的文件空间量
减少SYSTEM表空间的空间量比较困难 因为那要重建数据库
二 表及索引的扩展
A 为了防止表或索引被过分扩展 及时实现对数据库的调整 用户应当经常对有关对象进行观察
我们可以认为 扩展区域大于 个的表或索引为过分扩展(overextended) 请看下面的语句
SQL > select substr(segment_name )
Segment_name segment_type
substr(tablespace_name )
Tablepace_name extents Max_extents
from dba_segments
where extents > and owner= JFCL
order by segment_name;
SEGMENT_NAMESEGMENT TABLEPACE_
EXTENTS MAX_EXTENTS
_TYPE
CHHDFYB TABLE JFSJTS
CHHDFYB_DHHMINDEX JFSJTS
DJHZFYB_BF TABLE JFSJTS
DJHZFYB_DJHMINDEX IDX_JF
DJHZFYB_JZHMINDEX IDX_JF
GSMFYB TABLE JFSJTS
JFDHTABLE JFSJTS
JFDH_DHHM INDEX IDX_JF
JFDH_JZHM INDEX IDX_JF
XYKFYB TABLE JFSJTS
YHDATABLE JFSJTS
YHDA_BAKTABLE JFSJTS
YHHZFYB_ TABLE JFSJTS
rows selected
通过观察 DBA可以及时发现问题并进行相应的处理
我们可以利用export卸出表 然后删除表 再利用import命令将表装入 这样 可以将不连续的区域合并成一个连续的空间
B 如果用户希望对表的空间设置进行优化 例如 需要改变表EMP的initial参数 可以采用下面的方法
在将EMP表卸出并删除后执行imp命令时使用indexfile参数
imp userid=scott/tiger file=emp dmp indexfile=emp sql Oracle把表和索引的创建信息写到指定的文件 而不是把数据写回
打开emp sql文件
REM CREATE TABLE SCOTT EMP ( EMPNO
NUMBER( ) ENAME
REM VARCHAR ( ) JOB VARCHAR ( )
MGR NUMBER( ) HIREDATE DATE
REM SAL NUMBER( ) M NUMBER
( ) DEPTNO NUMBER( ))
REM PCTFREE PCTUSED INITRANS
MAXTRANS LOGGING STORAGE(INITIAL
REM NEXT MINEXTENTS MAXEXTENTS
PCTINCREASE FREELISTS
REM FREELIST GROUPS BUFFER_POOL DEFAULT)
TABLESPACE USER_DATA ;
REM rows
对它进行编辑 去除 REM 等信息 找到Initial参数 根据需要改变它
在SQLplus中执行emp sql
装入数据
mp userid=scott/tiger ignore=y file=emp dmp
需要注意的是 ignore参数必须设为Y
C 可以用下面的语句来观察表或索引距离达到最大扩展的状况 UNUSE 为距离达到最大扩展的值 在User_extents表中 extent_id是从 开始记述数的
SQL >select a table_name TABLE_NAME max
(a max_extents) MAXEXTENTS
max(b extent_id)+ IN USE MAX
(a max_extents) (max(b extent_id)+ ) UNUSE
from user_tables a user_extents b
where a table_name=b segment_name
group by a table_name ORDER BY ;
TABLE_NAME MAXEXTENTS IN USEUNUSE
YZPHB
SHJYB
SHFYB
RCHDB
SJTXDZB
SJTXDAB
CHYHB
JFDH
rows selected
如果 UNUSE 小到一定的程度 我们就应该加以关注 进行适当的调整处理
三 关于连续空间
可以用下面的语句来查看数据库中的自由空间
SQL > select from dba_free_space
where tablespace_name= SFSJTS
order by block_id;
TABLESPACE FILE_ID BLOCK_ID BYTESBLOCKS
_NAME
SFSJTS
SFSJTS
SFSJTS
SFSJTS
SFSJTS
SFSJTS
SFSJTS
SFSJTS
SFSJTS
SFSJTS
rows selected
我们可以通过命令的结果来估计相邻自由空间的真正数量 对每一行 用起始快的id(BLOCK_ID)加上自由块(BLOCKS)的数量 如果其和与下一行的块id(BLOCK_ID)相等 则此两行是连续的 如上例第二行和第三行 + = 而 + != 所以从block_id为 开始 有 + = 个block的连续空间
在Oracle数据库的后台 系统监视器(SMON)周期性地合并自由空间相邻的块 以得到更大的连续块 而DBA可以用SQL命令来完成这个工作
alter tablespace tablespace_name coalesce;
lishixinzhi/Article/program/Oracle/201311/17790
以上就是关于oracle数据库轻松学习方法(oracle学习资料)全部的内容,包括:oracle数据库轻松学习方法(oracle学习资料)、本人打算做oracle数据化dba工作,已经有ocp认证,请问真正到公司去之后还需要掌握哪些技能呢大三学生!、想当数据库管理员DBA我该怎么学习呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)