数据字典视图及其用途(ORACLE数据库)求助各位大神,!
数据字典
是元数据的集合,从逻辑上和物理上描述了数据库及内容,存储于SYSTEM与SYSAUX表空间内的若干段。
SYS用户拥有所有的数据字典表,数据字典基本一般以$结尾,如col$,tab$等,这些数据字典存放在system表空间中。
数据字典的形成
在数据库创建阶段创建,在使用阶段维护和更新
无法通过DML操作来修改,只能通过相关的命令修改系统,来达到间接修改数据字典。
数据字典的特点
每个Oracle数据库的中枢
描述数据库和它的对象
包含只读的表和视图
存储在SYSTEM表空间中
拥有者是SYS用户
由Oracle服务器自己维护
用SELECT访问
数据字典内容:
数据字典提供下列信息:
逻辑和物理的数据库结构
对象的定义和空间分配
一致性限制
用户
角色
权限
审计
数据字典的主要用途:
Oracle服务器用它查找下列信息:
用户
对象
存储结构
Oracle服务器修改数据字典当DDL语句执行的时候
用户和管理员们利用它了解数据库的信息
基础表和数据字典视图:
数据字典包括两个部分:
基础表
存储数据库的描述
CREATE DATABASE命令创建(sqlbsq)
数据字典视图
用于简化基础表的信息
通过PUBLIC同义词访问
由脚本catalogsql创建
数据字典基表中的数据很难看懂。因此,很少人直接访问这些基表。取而代之的是数据字典视图。
数据字典视图分为类,它们以前辍来区分,前辍分别为:USER、ALL、DBA
USER_ 用户所拥有的对象信息
ALL_ 用户能访问的对象信息
DBA_ 整个数据库中的对象信息
创建数据字典视图:
建库后,运行以下脚本创建的
$ORACLE_HOME/rdbms/admin/catalogsql 创建常用的数据字典和同义词
$ORACLE_HOME/rdbms/admin/catprocsql 创建内建的存储过程、包等pl/sql对象
DBCA建库时会自动运行这两个脚本,但如果手动建库的话,需手动运行。
常用的数据字典:
一般的概况: TAB,DICTIONARY, DICT_COLUMNS
对象: DBA_TABLES, DBA_INDEXES, DBA_TAB_COLUMNS, DBA_CONSTRAINTS --->user_ ,all_
空间分配: DBA_SEGMENTS, DBA_EXTENTS
数据库结构: DBA_TABLESPACES, DBA_DATA_FILES
动态性能视图:
是将内存里的数据或控制文件里的数据以表的形式展现出来,它们实际都是虚拟表,并不是真正的表
只要数据库在运行,就会不断更新动态性能视图
一旦数据库关闭或崩溃,则动态性能视图里的数据就丢失,当数据库重新启动后,数据将会被更新
所有的动态性能视图名称都存放在v$fixed_table里。这些动态性能视图都是以V_$开头,属主是sys
oracle为每个动态性能视图都创建了同义词,同义词将中间的“_”去掉了,形成以v$开头
常用的数据字典视图、动态性能视图:
dba_objects
dba_tables
dba_users
dba_tablespaces
V$CONTROLFILE 控制文件信息
V$DATABASE 数据库信息
V$DATAFILE 数据文件信息
V$INSTANCE 实例信息
V$PARAMETER 参数信息
V$SESSION 会话信息
V$SGA SGA信息
V$SGAINFO SGA信息
V$TABLESPACE 表空间信息
V$THREAD
V$VERSION
V$option
v$parameter显示的是session级的参数,也就是当前session的参数信息。
如果没有使用alter session单独设置当前session的参数值,那么默认和system级的参数应该是一样的。
v$system_parameter显示的是system级的参数,保存的是使用alter system修改的值(scope=both或者scope=memory)。
上面两个都是当前已经生效的参数值。对于使用spfile的库,也可以暂时只修改spfile中的
值。v$spparameter显示的就是保存在spfile中的参数值(scope=spfile)。
一、 oracle,仅次于微软的世界第二大软件公司
oracle虽然规模很大,但名声不像微软、ibm那样显赫,很多非计算机专业的在校学生不知道oracle是何物。但是如果你是一位想在毕业后进入it行业的学生,那么,你必须知道什么是oracle。
首先,oracle是一家软件公司。这家1977成立于加利福尼亚的软件公司是世界上第一个推出关系型数据管理系统(rdbms)的公司。现在,他们的rdbms被广泛应用于各种操作环境:windows nt、基于unix系统的小型机、ibm大型机以及一些专用硬件操作系统平台。事实上,oracle已经成为世界上最大的rdbms供应商,并且是世界上最主要的信息处理软件供应商。现在,oracle是仅次于微软公司的世界第二大软件公司,2000年的销售额为101亿美元。现在oracle在世界范围内大约聘用了4万3千多名专业技术人员,在美国本土有2万1千名。有趣的是,即使在美国本土,oracle的技术人员(主要是程序员)中有40%是印度人,中国人是第二多的,其次才是美国人。
然后,oracle是一个庞大的品牌系统。如前所述,oracle不仅在全球最先推出了rdbms,并且事实上掌握着这个市场的大部分份额,由于oracle 公司的rdbms都以oracle为名,所以,在某种程度上oracle己经成为了rdbms的代名词。而近几年来,oracle不断积极地扩展自己的业务,成功地开发了许多横向和纵向的产品,譬如oracle自己设计生产的oracle服务器,面对商业客户的商业交易系统(oracle exchange),oracle数据中心等等。同时,oracle还成功开发出了很多面对程序员的开发工具,譬如著名的designer/2000计算机辅助系统工程(case)工具和developer/2000开发包,这些工具作为“设计器”和“开发器”,有力地帮助了程序员的开发工作,也有力地提高了oracle的声誉。此外,oracle还开发了一系列面对不同对象的应用软件,它们被统称为oracle应用软件。这些软件使得oracle被广泛应用到各个领域,同时也为oracle带来滚滚财源。比较常见的oracle软件产品包括:
·oracle财务软件(oracle financial)
·oracle制造业软件(oracle manufacturing)
·oracle人力资源软件(oracle human resources)
·oracle自动控制软件(oracle automotive)
·oracle 商业交易系统(oracle exchange)
以及其他的应用软件。这些软件连同oraclerdbms使得oracle成为一个庞大的品牌系统,深入到了人们生产和生活的各个领域。
由于oracle拥有多年在各种行业下的多种解决方案,拥有基于不同客户环境的oracle rdmbs服务器工具及规模巨大的应用软件系统,而且,这个庞大的系统正在不同程度、不同层次地为各行各业所广泛应用。因此,能够熟练掌握这个系统的某些方面及适应这个系统的不断更新的专业工程师必然是各界急需的人才,有着良好的就业前景。事实上,oracle公司也认识到了这一点,这就是oracle认证专家——ocp(oracle certified professional)的由来。
二、oracle认证种类介绍
oracle认证专家——ocp,是由oracle公司授权国际考试认证中心对考生进行的资格认证。考生按考试标准要求参加几门课程的考试(一般为3—5门),在通过全部考试后,便可获得ocp的专家认证。
目前ocp认证考试分为:
database administrator:数据库管理员考试认证,简称dba。数据库管理员负责对数据库进行日常的管理、备份及数据库崩溃后的恢复问题。
database operator:数据库操作员认证考试,简称dbo。数据库操作员主要是基于windows nt的oracle 8数据库管理,能够熟练应用oem等工具完成对数据库的操作及日常的管理工作。
database developer:数据库开发员认证考试,简称dev。数据库开发员应能熟练掌握用developer/2000的工具建立各种forms应用程序,建立各种标准的以及自定义的报表。
java developer:java开发人员考试。
application consultant: oracle产品应用咨询顾问。
其中,oracle dba是最吃香,但也是最难考的一个认证。在oracle的官方网站上,对dba有以下说明:
oracle dba专家可以跟上如今日趋复杂的系统环境要求。最好的dba们都在幕后工作,他们小心地维护着系统,使得系统可以每天都平稳地运转,并且防止意外灾难的发生,譬如数据库崩溃或者成小时地宕机。这项艰巨的任务需要对oracle数据库的结构和运行方式有着广泛泛深入的了解,并且有丰富的实战经验。最好的dba可以在取得最佳运行状态及防止他们公司停止运行的突发事件中找到平衡。oracle dba认证考试就是提供一个证明该人可以胜任oracle dba这一职务的认证。本认证考试设计了5门独立的考试,使你可以利用良好的知识获得一个专家认证。
三、如何参加考试?
ocp认证的所有考试也是通过prometric公司组织的,具体的考试事宜请访问它的官方网站:
目前ocp每门考试的费用为125美元。
四、如何准备考试?
1、oracle公司推荐的官方准备途径
一般来讲,oracle的考试内容比较多,并且考题也很细,对动手能力要求很强。因此,为了有足够的把握,一定要提前充分准备,而且一定要注重动手实践。在oracle官方网站上推荐的通过认证的途径如下,可以进行参考。
oracle大学:oracle大学提供的教师引导及基于技术的训练(instructor-led training and technology- based training)是准备ocp认证的最好方式,这些课程将为你打下需要通过ocp认证的知识基础。你可以查阅一下课程表来选择理想的准备方式,你当地的oracle大学可以在这方面给你一些最好的建议。你可以访问oracle的网站,获得更多的信息。
自己准备:实战经验是加深你对oracle考试内容理解的最好方式。oracle建议你将理论学习拓展,在实际工作或是练习中使用新学到的技巧和知识来自学。
考试内容检查表:使用考试内容检查表(test content checklist)来确定你必须准备的所有题目。oracle会不断地更新考试内容检查表,所以请访问oracle网站 ,下载最新的考试指南。
其它考试工具:模拟考试题及自我测试软件可以帮助你更好地准备ocp认证考试。oracle和自我测试软件公司(self test software)联合出品了一些高质量的考试软件以帮助考生更好地准备ocp认证考试,这些软件可以通过 oracle 网站 定购。
事实上,绝大部分的大陆同学都是通过参加培训班来准备考试的,它们不仅辅导通过考试的知识,而且其他信息包括如何报名,考场上如何应考,都可以得到辅导。以上oracle官方的介绍只是一般地对你进行一下有关备考的初级教育,事实上,正像我们前面说过的,作为一个庞大的数据库系统,要想掌握好oracle(更不要说完全掌握了——我甚至怀疑是否有人真正完全掌握过oracle),从任何角度而言都不是一件易事。除非你有足够的决心和耐心,准备将oracle当作你的职业之路并致力于数据库技术的研究,你才有可能真正了解这个庞杂系统的精髓。以下的一些论述将有助于你对oracle有一个初步的了解。
2、oracle数据库技术基本知识
(1)oracle数据库涵盖了数据库技术的方方面面。
尽管关系型数据库从原理上来讲并不是很难,有一些数据库知识的人掌握这些原理并不会花很大的气力,而且,一般的关系型数据库软件,譬如 sql server,用起来并不复杂,但oracle绝对与众不同。作为有史以来最成功的关系型数据库软件,oracle的实现方式和管理维护手段非常丰富,它涉及到很多方面的细节技术。单从任何一个侧面来理解它,是难观其全貌的。要想真的精通它,没有两三年功夫是不行的。单是oracle的技术文档,就足够淹没你的! 具体说来,oracle技术包括以下几个主要方面:oracle系统结构和原理、oracle数据库的安装和配置、oracle数据库的管理、oracle的数据备份与恢复技术、oracle的性能调整、oracle的新产品特性(java支持、应用服务器、时间空间系列、文本服务等)、oracle的并行服务器技术、oracle的数据仓库技术、oracle的对象类型和对象一关系模型等技术……
毫不夸张地说,以上任何一个部分单独拿出来都是很大的题目!
(2)oracle技术发展快,技术的关联性大。
尽管oracle只是一个数据库系统,但在实际应用中,你不可能只面对数据库本身。譬如,你在做oracle数据库的网络管理,你将不可避免地遇到如何与网络通讯、防火墙的技术兼容的问题。同理,你在做其它方面的工作,也肯定有方方面面的技术关联问题需要解决。而且更要命的是,这些技术(包括oracle本身)发展速度都非常快,这就使得跟上它们的发展成为一件十分费劲的事情。
不过幸运的是,我们并不需要同时了解oracle的所有方面,oracle提供了很多应用方向,我们可以按照偏好,选择其中的一个方向,集中时间和精力,努力在这个方向做到有所成就还不是一件很难的事情。由于oracle目前已是世界上最主要的数据库供应商和第二大软件公司,oracle的数据库技术已经被广泛应用于各个领域,因而市场上对oracle人才的需求量是相当之大,获得ocp认证不愁找不到工作。而以后我们可以在工作中学以致用,再努力地钻研oracle数据库及相关技术。
3、入门者如何起步?
说了这么多,想必您可能已经有些心动,那么,面对oracle这样一个庞然大物,你也许会觉得无从下手。为此,我们有一些建议:
(1)找一本有关数据库原理的书,掌握关系数据库的基本原理——如果你没有学过这样的课程的话。
(2)阅读参考书并结合上机操作,掌握sql的一般原理及基本用法。
(3)至少买一本oracle入门级的参考书,并找到一台安装了oracle的某个版本(oracle73以上,最好是 oracle 8)计算机,建立起上机学习环境。
其中第三点尤其重要,因为没有实践经验,想通过oracle认证只是痴人说梦。或者如果你的预算比较充分,你可以选择参加培训。在选择培训班的时候一定要选择oracle授权的培训班,这样培训的质量才有保证,同时,在报名考试的时候还可以享受一定的折扣。
与其他很多考试不同,ocp并没有真正意义上的参考书,你要做的就是在上机中不断熟悉oracle的各种应用,书只是用来查阅和参考的。因为从根本上来讲,oracle数据库是一门实践性很强的技术,而oracle认证主要考的是动手能力。因此,没有实践经验,而只靠背学习资料是根本无法通过oracle认证考试的。以下是市面上常见的一些书,在此列出,希望能对大家有一些帮助。
初级的:《轻松掌握sql结构化查询语言》,《轻松掌握oracle数据库开发》,《oracle开发指南》,《oracle初学者指南》,《oracle8 pl/sql程序设计》。
高级的;《oracle服务器技术精粹》,《oracle8/8i开发使用手册》,《oracle8份与恢复手册》,《oracle8性能优化与管理手册》。
五、获得ocp认证的好处
在oracle的官方同站上,oracle公司详细列举了获得ocp认证的种种好处,虽然有自卖自夸之嫌,但总的来说还是很有道理的。大家不妨跟我们一起看看。
总的来说,it业对专家的要求很高,职业竞争压力很大。无论是新进入这个行业的人,还是此行业中的老手,都需要知道他们的那些技术背景能真正吸引到雇主的眼光。同时,雇主们也需要一个标准帮助他们挑选出那些技术上真正过硬的雇员。ocp认证就能够帮助it业界建立起面向特定职位的选择标准。ocp认证是一个有价值的、业界承认的标准,这个标准可以证明持证者的知识和能力水平。
oracle认证对技术专家的好处:ocp认证可以给你一个鲜明的优势。ocp认证可以表明你对某一职位及相关的oracle产品有着深刻的理解。成为一个ocp认证专家可以帮助你被更多的雇主注意到,并且增加你获得it业最具挑战性机遇的机会。ocp认证专家们证实了ocp认证的价值:97%的 ocp认为他们获益于ocp认证;89%的ocp认为获得认证后,他们在oracle专家的职位上更具信心;96%的ocp认为他们会建议职业学校(professional college,普遍存在于美国的一种职业教育方式)开相应的课程。
oracle认证对it雇主的好处:ocp认证同时可以帮助it业的人事经理在应聘者中挑选出符合挑战性职位的员工。对于那些每年把员工送去培训的公司,认证可以保证他们在培训上的钱没有白花--他们的员工获得了对于深入理解和必要的知识。公司也可以把认证和员工的职业发展联合起来,这样可以增强员工的忠诚度及他们在职业岗位上的表现。同时,雇用获得认证的专家可以直接提高公司的实力,国际数据公司(international data corporation)的一项研究显示了这一点。这项研究指出获得认证的专家比那些没有通过认证的平均每人每天多处理40%的支持电话;雇用认证专家的公司比那些没有雇用的公司宕机的时间少49%;对大多数公司的调查显示,在不到9个月内,认证专家为他们节约的费用就超过了他们送专家去培训并获得认证的费用。
Oracle数据库进程概述:
Database buffer cache主要用于存储数据文件中的数据块
数据库高速缓存的数据块是高速缓存与数据文件进行信息交换的基本单位。在Oracle数据库8i以前,数据块大小只有一种,而Oracle数据库9i以后支持2K,4K,8KB,16KB及32KB五种。
用命令SQLSHOW PARAMETER DB可以显示当前数据库的BUFFER CACHE
数据库缓存和特点如下:
1根据最近最少使用LRU
2 由DB_BLOCK_SIZE来指定大小。
3ORACLE使用时是以块大小为单位进行数据存取的。
还包含以下一些独立的子缓存:
1DB_CACHE_SIZE
2DB_KEEP_CACHE_SIZE
3DB_RECYCLE_CACHE_SIZE
注:可以用Alter system set db_cache_advice=on;设置成根据系统的建议来指定大小。
REDO LOG FILE主要是用于重做日志
用命令SQLSHOW PARAMETER LOG_BUFFER。
SQLALTER SYSTEM SET LOG_BUFFER_SIZE=60M。
用来显示或修改重做日志缓冲区的一些信息。
命令SQLachive log list 可以查看数据库当前的归档模式。
LARGE POOL:
与JAVA POOL一样,都是作为系统可选的内存结构,由SGA来配置。
JAVA POOL:
当安装或使用JAVA时才用到。
ORACLE内存进程包括两个,一个是SGA,一个是PGA
(1)。SGA在ORACLE实例启动时分配,是ORACLE实例的一个基本组件。
(2)。PGA是在当服务器进程启动时分配的。
进程结构:
1USER PROCESS用于用户与ORACLE SERVER交互的进程。
USER PROCESS必须与ORACLE建立连接后才可使用,不可与ORACLE SERVER交互。
2SERVER PROCESS
SERVER PROCESS在用户与服务之间建立连接后,为执行用户命令的一个进程。
3BACKGROUND PROCESS
后台进程:DATABASE WRITER (DBWn)用来把DATA BUFFER CACHE中的脏数据写回到数据库中。
(注:脏数据是被改变的数据。)
在以下情况下它会写数据库:
1在发生CHECKPOINT同步。
2脏数据达到阀值。
3DATABASE BUFFER CACHE 自由空间太少了。
4TIMEOUT (3秒钟。)
5RAC PING REQUEST
6TABLESPACE OFFLINE
7TABLESPACE READONLY
8TABLE DROP OR TABLE TRUNCATE (表数据清空或表结构删除)。
9TABLESPACE BEGIN BACKUP
由SGA (包含DATABASE BUFFER CACHE,BACKGROUND PROCESS)----- [ DBWn ]---- {data files,
control files, redo log file} ----由此过程改变数据库中的数据。
LOG WRITER (LGWR) 日志写进程
在Oracle环境中
1当COMMIT的时候。
2当三分之一空间满时。
3当日志有1MB需要重做时。
4每3秒
5BEFORE DBWn WRITES(写数据前先写日志)。
REDO LOG BUFFER-----LGWR---DBWn
|-------------------------------------- REDO LOG FILES
SYSTEM MONITOR (SMON)系统监控进程
主要任务:
(1)。启动过程(假定DATABASE重启时)如果需要RECOVERY,则此进程会负责打开数据库,及回滚没有
提交的事务;以及rolls forward changes in the redo logs这些统称为:instance recovery
(2)。对每3秒就对系统自由空间的整理。(COALESCES FREE SPACE EVER 3 SEC)
(3)。清空临时段空间(DEALLOCATES TEMPORARY SEGMENTS)。
这个过程也是在系统启动过程中完成的。
PROCESS MONITOR (PMON) 进程监控进程
主要用于回滚异常终止的或被用户强制终止的事务。
1rolling back the transaction
2releasing locks释放锁。
3releasing other resources
4restarts dead dispatchers重启死掉的调度器。(在共享服务器中用)。
PMON (:Include in SGA)-----------------------PGA
CHECKPOINT (CKPT) 检查点进程
用来在数据库里实现同步,实现之前会强制将脏数据从内在里写到物理文件里。
1会启动DBWn来写脏数据(SIGNALLING DBWn at CKPT)
2完后会更新DATAFILE的HEADER和控制文件的HEADER而HEADER中有同步所需要的信息,即
CHECKPOINT的信息。
3在ORACLE中,正常情况下,所有文件必须同期性地同步;靠CHECKPOINT来完成。
CKPT(作为后台进程包含在实例中)------------------DATABASE
(data files,control files,redo log files)
| |______DBWn
|________LGWR
Archive PROCESS (ARCn) :归档进程(可选进程),当设置归档模式后,可用来自动备份在线日志,(归档日志是重做日志的备份。)
1Automatically archives online redo logs when archiverlog mode is set
(设置归档模式后,将自动备份在线日志)
在处理SQL语句时,注意以下过程:
1用以下进程连接到实例。
用户进程(USER PROCESS)。
服务器进程(SERVER PROCESS)。
2Oracle服务器进程组件的使用依赖于SQL语句的种类。
[1]查询语句会返回行。
[2]DML语句会记录这种改变。
[3]COMMIT保证了事务的RECOVERY
3并不是所有的SQL语句中所有的后台进程都会参与。
结论:
Oracle Server Oracle服务器进程包含一些文件,进程和内存,在执行一条SQL语句时,并非所有这些都会用上,有些进程用于提高数据库的性能;一些用于当发生软件或硬件异常时恢复数据库;或应用于完成其他一些维护数据库的任务。ORACLE服务器包含ORACLE实例和ORACLE数据库。Oracle Instance: Oracle实例是用于联系后台进程和内在之间的活动,对数据库进行数据存取前必须先启动实例,每当实例启动时,SGA就被分配给它并启动了一些后台进程。后台进程执行10秒操作并监控有些进程以提供更好的性能。和可靠性。Oracle Database: 数据库包含了系统文件,也称数据库文件,其提供了用以存储数据库信息的实际物理存储区域,用数据文件保证了数据一致性,并在当实例发生失败时恢复数据库。
上文中为大家详细介绍了关于Oracle数据库进程的相关概念的知识,希望大家都能很熟练的掌握这些知识,让这些知识存在于我们的大脑中,便于我们以后遇到类似的问题时的处理。
这是因为Oracle的服务没有开启,选择启动即可,详细步骤:
操作设备:戴尔笔记本电脑
操作系统:win10
操作程序:计算机v201
1、首先右击桌面上的计算机图标,点击管理。
2、在左边栏,展开“服务和应用程序”,点击“服务"选项。
3、在中间的列表中找带有Oracle字样的服务,找到如图标志的两个服务,名字中的”ORA“可能会因数据库名字的不同而有所差异。
4、此时再尝试,如果仍然找不到主机。在打开开始菜单,在Oracle目录中找到”NetManager“,打开它。
5、依次展开本地->服务命名->ora(数据库名)。
6、检查右侧的主机名,如果是本机的话,填127001或localhost,如果是连接到远程计算机的话,填入目标主机的IP即可。
0条评论