




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. oracle 服务器=oracle 实例+oracle 数据库2. oracle 实例=共享内存区域(sga)+后台进程或线程(主要进程dbwn ,lgwr,ckpt ,arch,pmon,smon)3. oracle 数据库即一系列的os文件,主要的文件有数据文件,日志文件和控制文件。4. 其他文件:参数文件和口令文件5. 其它进程: 高级队列,RAC,共享服务器,高级复制,Oracle server运行环境:1 Client application server server : 客户端通过应用服务器访问oracle2 Client server : 客户端直接通过网络访问服务器3 Hostbase : 客户端和服务器位于一台机器上Oracle 服务器的两大重要组成部分:一 。Oracle 实例1. oracle instance 由共享内存结构和后台进程(windows 下线程)组成,用来管理数据库2. 实例与数据库的关系一个时刻,一个实例有且仅能mount一个数据库,而一个数据库可以由多个实例来管理(例如 9i以前的ops,以及9i以后的rac,都是可以一个数据库对应多个实例)4 区别实例和数据库实例就是共享内存结构+后台进程(线程)数据库就是一系列的os文件连接到oracle 实例用户连接实例的过程:1 用户打开一个客户端工具,如sqlplus,oracle forms.2 用户进程登陆到服务器,oracle服务器为用户进程开启一个服务器进程(这个应该是指独占服务器模式下,共享服务器模式下用户进程不会直接连接到服务器进程而是连接到调度器,如果存在空闲的服务器进程,调度器就将用户的请求传递给服务器进程),服务器进程代表用户进程于oracle 实例通信以及执行sql语句。Connection:用户进程和服务器的一个通路,建立连接的三种方式1. 客户端和服务器位于一台机器上,通过interprocess建立connection2. 客户端和通过网络连接到oracle 服务器,这也就是常见的cs结构3. 客户端通过网络连接到应用服务器,应用服务器再通过网络连接oracle服务器,这就是常说的三层结构。SessionSession 是用户到数据库的特殊连接,这里的特殊是指用户是合法的(即用户名和密码是正确的),当用户正常退出或者异常中断的时候都会导致session结束。一个用户可以起很多个session,如运行不同的客户端工具。共享服务器和独占服务器的区别:独占服务器是指一个服务器进程只能为一个客户端进程服务,并且用户进程直接和服务器进程连接。对于共享服务器进程,一个服务器进程可以为不同的客户进程服务,共享服务器中,客户进程是直接于调度器连接,并非是服务器进程。二Oracle 数据库Oracle 数据库即一系列的os文件,由三个部分组成,控制文件,数据文件和日志文件。数据库由逻辑结构和物理结构之分:1数据库的物理结构,主要由三个类型的文件组成,控制文件,数据文件和日志文件。控制文件:存储了数据库的结构信息,还有checkpoint信息,同时rman的备份信息也是存储在控制文件中,对于rman没有使用catalog的话,控制文件是很重要的,控制文件中的内容分为可重用和不可重用,如数据文件和日志文件的信息就属于不可重用的部分,rman的信息就属于可重用的部分和control_file_record_keep_time这个参数有关(控制文件必须保留rman信息的最短时间), 建议将控制文件保存在多个不同的磁盘,这几个文件互为镜象,如果所有控制文件都损坏可以重建,重建控制文件读取数据头的信息。数据文件: 数据库中所有的数据都存储在这类文件中,我将它分为四类,system文件(10g 中是system,sysaux,9i 中的system),撤消文件(undo,一个数据库虽然可以建立多个undo tablespace ,但是一个时刻只能使用其中的一个),临时文件(主要用来排序),用户数据文件(除去以上三类)日志文件: 日志记录了数据库中的重做信息,用户的操作都会被记录在日志文件中,实例恢复利用status为active和current的日志。 当数据库异常关机(abort),或者因为某种原因而异常当机,那么下次启动的时候就要做实例恢复,实例恢复的第一个过程是roll forward(前滚),即将数据库恢复到当机前的那个时刻。接着就open数据库,数据库打开后做roll back。2其它的文件主要有参数文件(initsid.ora或者服务端参数文件),口令文件,归档日志文件。参数文件:记载了数据库启动信息,nomount的时候就要读取参数文件。Oracle的认证模式主要有口令文件认证和os认证。认证就要通过口令文件。口令文件存储了sysoper和sysdba用户的密码信息,可以通过查询v$pwfile_users来查询具有sysoper或sysdba的用户。Os认证: 对于windows,os的用户要在oracle_dba组中,同时SQLNET.AUTHENTICATION_SERVICES= (NTS)对于linux ,只要os的用户在oracle_dba组中即可。归档文件:这类文件只会在归档模式下存在,就是日志文件的副本,alter system switch logfile,alter system archive log current以及数据库自己引起的日志切换都会触发arch进程归档。Oracle 内存结构: sga+pga Sga :共享内存区域,所有的进程共享,sga在数据库nomount的过程中分配Pga :进程全局区,又称私有全局区,和进程一一对应,其他进程不能访问。服务器进程进程启动的时候分配。Uga: 用户全局区域,和会话对应。对于共享服务器模式,uga来自sga,独占服务器模式uga来自pga 。Sga分类:1 动态sga : 允许在线修改sga的组成部分,直接生效。动态修改的2个前提(1)使用服务端参数文件 (2) 修改后的sga的总和小于或等于sga_max_size。2 定制(size)sga :在参数文件中把sga的各个组件设置好。Sga的分配:粒度(granule): sga分配和收缩的最小单元。 9i : if sga_max_size128m then granule=4m else if platform=windows then granule=8melse granule=16m10g : if sga_max_size alter system set db_create_file_dest=G:oracleproduct10.2.0oradata;系统已更改。SQL create tablespace test;表空间已创建。SQL select name from v$datafile where ts#=(select ts# from v$tablespace where name=TEST);NAME-G:ORACLEPRODUCT10.2.0ORADATAORCLDATAFILEO1_MF_TEST_3GNPQHHW_.DBFSQL alter system reset db_create_file_dest scope=spfile sid=*; /将参数变为原值系统已更改。SQL show parameter db_create_file_dest;NAME TYPE VALUE- - -db_create_file_dest string G:oracleproduct10.2.0orada taSQL startup force;ORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1247876 bytesVariable Size 75498876 bytesDatabase Buffers 83886080 bytesRedo Buffers 7139328 bytes数据库装载完毕。数据库已经打开。SQL show parameter db_create_file_dest;NAME TYPE VALUE- - -db_create_file_dest string3Oracle 的启动过程(1)nomount : a.读取参数文件(spfilesid.ora-spfile.ora-initsid.ora,或者手工指定pfile的位置) b. 分配sga c. 启动后台进程 d. 打开alertsid.log 和跟踪文件 必须在nomount状态下做的操作A. 创建数据库B. 重建控制文件 (2) mount : 通过参数文件中的control_files读取控制文件,同时获取日志文件和数据文件的位置信息(不检查存在性) 必须在mount状态下做的操作a. 移动数据文件和日志文件 (这里指alter database rename的方式)b. 启动和关闭归档c. 启动闪回d. Recover database ; (3) open :打开数据文件和日志文件,open之前可能要执行实例恢复(smon完成),open 之前先前滚将数据库恢复到当机时刻,然后打开数据库,open之后可能要做回滚。 介质恢复和实例恢复: 介质恢复:Oracle启动过程中会判断是否要做介质恢复(利用归档,备份或者是redo),oracle 比较控制文件的scn和数据头的scn如果不一致则要进行介质恢复。分2种情况,如果控制文件的scn小于数据头的scn,则说明控制文件比数据文件旧 ,这时的要加using backup controlfile做恢复。如果控制文件的scn大于数据文件的scn,则直接recover database。 实例恢复:oracle 启动过程如果发现v$datafile中的last_change#为空则要求进行实例恢复,实例恢复只使用在线日志,更直接的说只使用active和current状态的在线日志,实例恢复的起点是low rba。 启动的语法 Startup force,restrict,mount ,pfile ,nomount,recover 1. 不带参数的startup就是直接启动到open状态2. startup force =shutdown abort +startup 3. startup restrict 只允许有restricted session的用户才能登陆mount,启动到mount状态 4. pfile 手工指定启动参数文件5. nomount 启动到nomount状态6. recover 启动过程进行介质恢复 (这参数还没用过)、受限模式下的数据库1 原来是以restrict模式打开数据库的,只有具有restricted session权限的用户才能登陆。2 Open后执行,alter system enable restricted session ; 对于已经登陆的用户不受影响,以后登陆的用户就要具有restricted session权限才能登陆。(alter system disable restricted session)取消受限模式。 只读打开数据库1 允许用户查询2 如果是使用本地管理的临时表空间则可以做磁盘排序操作3 只读模式允许对数据文件进行offline和online ,同时可以对离线的表空间或者数据文件做恢复,以及一些不产生redo的操作 第三个以前没搞过做个test1 对离线的数据文件做恢复 SQL alter database datafile 4 offline drop;数据库已更改。SQL shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL startup mountORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1247876 bytesVariable Size 75498876 bytesDatabase Buffers 83886080 bytesRedo Buffers 7139328 bytes数据库装载完毕。SQL alter database open read only;数据库已更改。SQL alter database datafile 4 online;alter database datafile 4 online*第 1 行出现错误:ORA-01113: 文件 4 需要介质恢复ORA-01110: 数据文件 4: G:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBFSQL recover datafile 4;完成介质恢复。SQL alter database datafile 4 online;数据库已更改。2 对离线的数据表空间做恢复SQL alter tablespace users offline immediate;表空间已更改。SQL shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL startup mountORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1247876 bytesVariable Size 75498876 bytesDatabase Buffers 83886080 bytesRedo Buffers 7139328 bytes数据库装载完毕。SQL alter database open read only;数据库已更改。SQL recover tablespace users;完成介质恢复。SQL shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL startup ORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1247876 bytesVariable Size 75498876 bytesDatabase Buffers 83886080 bytesRedo Buffers 7139328 bytes数据库装载完毕。数据库已经打开。SQL alter tablespace users online; /这里能直接online说明刚才的recover 起作用了表空间已更改。 3 Read only模式下能对数据文件做online和offline SQL shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL startup mountORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1247876 bytesVariable Size 75498876 bytesDatabase Buffers 83886080 bytesRedo Buffers 7139328 bytes数据库装载完毕。SQL alter database open read only;数据库已更改。SQL alter database datafile 4 offline;数据库已更改。SQL alter database datafile 4 online;数据库已更改。 4 Read only open 不做实例恢复的测试 SQL shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL startup mountORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1247876 bytesVariable Size 75498876 bytesDatabase Buffers 83886080 bytesRedo Buffers 7139328 bytes数据库装载完毕。SQL alter database open read only;数据库已更改。SQL startup force mountORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1247876 bytesVariable Size 75498876 bytesDatabase Buffers 83886080 bytesRedo Buffers 7139328 bytes数据库装载完毕。SQL select last_change# from v$datafile;LAST_CHANGE#- 1146688 1146688 1146688 1146688SQL alter database open read only;数据库已更改。SQL startup forceORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1247876 bytesVariable Size 75498876 bytesDatabase Buffers 83886080 bytesRedo Buffers 7139328 bytes数据库装载完毕。数据库已经打开。SQL startup force mountORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1247876 bytesVariable Size 75498876 bytesDatabase Buffers 83886080 bytesRedo Buffers 7139328 bytes数据库装载完毕。SQL select nvl(last_change#,0) from v$datafile;NVL(LAST_CHANGE#,0)- 0 0 0 0棉花糖ONE(372368042) 21:50:39很明显,第一个不用做实例恢复,所以alter database open read only就直接打开了棉花糖ONE(372368042) 21:52:07SQL select nvl(last_change#,0) from v$datafile;NVL(LAST_CHANGE#,0)- 0 0 0 0SQL alter database open read only;alter database open read only*第 1 行出现错误:ORA-16005: 数据库需要恢复SQL alter database open;数据库已更改。第二个必须进行实例恢复,所以没法readonly打开(*)v$datafile中的last_change#是无穷大应该是针对非只读模式打开的SQL startup mountORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1247876 bytesVariable Size 75498876 bytesDatabase Buffers 83886080 bytesRedo Buffers 7139328 bytes数据库装载完毕。SQL alter database open read only;数据库已更改。SQL select checkpoint_change#,last_change# from v$datafile;CHECKPOINT_CHANGE# LAST_CHANGE#- - 1167342 1167342 1167342 1167342 1167342 1167342 1167342 1167342只读模式下运行写其它文件,如控制文件,altert.log,trace,operation system audit trails;数据库的关闭: Shutdown mode A I T NAllow new connection no no no noWait until current sessions end no no no yesWait until current transactions end no no yes yesForce a checkpoint and close files no yes yes yes Shutdown 数据库的用户必须具有sysoper权限或者sysdba权限正常shutdown(not abort)执行一个完全checkpoint,将数据头的scn同步到数据库的结束scn,将buffer cache中的内容写入数据文件,回滚未提交的事务,释放资源,下次启动无须做实例恢复。非正常down 机: (shutdown abort ,instance failure 或者startup force )不执行完全checkpoint,buffer cache中的数据不会写入数据文件,即全部丢失,不会回滚未提交的事务,下次启动的时候使用redo 做实例恢复,恢复到实例失败的那个时刻的状态,然后打开数据库,利用undo 回滚未提交的事务,同时释放资源。通过监控诊断文件来管理实例: 1. alertsid.log 按时间的顺序记录了数据库的错误信息,如坏块,ora-600,ora-3113,数据库的启动信息,日志切换信息,表空间创建和删除信息等,位置也是由参数background_dump_dest决定。2. 后台跟踪文件: 由后台进程产生,文件存放位置由初始参数background_dump_dest决定,命名方式,sid_processname_pid.trc3. user_trace_file : 用户跟踪文件包含了sql语句的统计信息,以及用户的错误信息,存放在user_dump_dest目录下,大小有max_dump_file_size决定,默认是10m,命名方式sid_ora_pid.trc. 开启用户trace的方法,设置会话级别的sql_trace 为true,设置instance级别的sql_trace为true,dbms_system.set_sql_trace_in_session设置会话级别。四数据字典视图 :1. 当创建数据库的时候,oracle创建对象的结构信息并存放在数据文件中分类: 1.数据字典 2.动态性能视图2数据字典: 是一系列的只读表或者视图,主要用来描述数据库和数据库对象 主要分为2类: 1 基表: 存储了数据库的结构信息,是数据库创建时第一个创建的对象,通过sql.bsq创建, 只有oracle 服务器才能写这些表,用户很少直接访问这些表,不要直接对基表执行dml操作,除了aul$. 2 数据字典视图: 根据基表来创建的视图,简化基表的信息,由catalog.sql创建 3.数据字典的内容 a. 数据库中所有模式对象的定义(包括表,视图,索引,聚簇,同义词,序列,存储过程,函数,包,触发器等。 b.模式对象所分配的空间,以及已使用的空间 c.列的默认值 d.完整性约束 e.oracle的用户名 f.用户被授予的权限和角色 g.审记信息,如用户能修改或者访问模式对象3数据字典的使用 : 1.oracle 服务器通过数据字典查找用户,模式对象以及存储结构的信息 2当一个ddl发生是oracle服务器自动修改数据字典 3User 和dba可以通过数据字典查找一些数据库的相关信息 4Oracle如何使用数据字典 数据字典中的基表只能oracle服务器对它进行修改。在执行数据库操作,oracle通过读取数据字典来确认模式对象是否存在,以及用户是否有权限访问,当数据库的结构发生变化时,oracle服务器将更新数据字典。5用户和数据库管理员如何使用数据字典 对于所有的数据库用户来说,数据字典视图被做为字典来使用,有些视图所有用户都能使用,有些视图只有数据库管理员才能使用。 数据字典视图分类:1. dba- 数据库中的所有对象2. all- 用户能访问的所有对象3. user- 用户所拥有的所有对象 数据字典视图是静态视图主要回答如下问题:1. 对象是否已经创建2. 对象的拥有者是谁3. 用户具有哪些权限4. 对象具有哪些限制动态性能视图:记录了当前数据库的行为1当数据库发生变化的时候就会被更新2信息来自内存或者控制文件3Dba使用动态性能视图监控和调整数据库4动态视图的拥有者是sys5动态视图不能执行dml动态性能视图用来回答1 对象是否可用,对象是否在线2 对象是否打开3 是否拥有锁4 会话是不是活跃的查询数据字典和动态性能视图可以通过查询数据字典和动态性能视图来获取信息1 通过dictionary查询可用的视图2 使用使用describe 和select来获得可用的列,以及列的内容3 列的注释能够得知这个列在这个视图中的含义。Dict 是dictionary的同义词General view :Dictionary ,dict_columnsSchema objects:dba_indexes,dba_tables,dba_constraints,dba_tab_columnsspace allocation:dba_segments ,dba_extentsdatabase structure :dba_tablespaces ,dba_data_files五控制文件是一个二进制文件,描述了物理数据库的当前状态1 丢失控制文件,需要恢复数据库 (感觉不完全对,正常shutdown删除控制文件可以直接重建就行了)2 Mount的时候被读取3 只能与一个数据库对应,即某个或者某组控制文件只能被一个数据库使用4 建议采用multiplex5 保证数据库的完整性6 初始化大小在创建数据库是确定控制文件是启动和操作数据库过程中所必须的二进制文件,控制文件只与一个数据库相关,数据库在启动过程中,必须读取控制文件,确认数据库是处于valid的状态,控制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 英语月考反思总结
- 英语课外阅读文章
- 企业型员工融入课件
- 餐饮业食品安全管理体系合同范本
- 金融服务产业园区厂房物业管理与金融创新合作合同
- 企业总部保安派遣及管理合同
- 电子商务代理业务合作合同范本
- 婚礼宣誓方案集
- 按揭车辆债权转让与债务承担协议
- 地下停车厂招商方案
- 设备部管理制度范文(2篇)
- 《机械员培训资料》课件
- 2025四川成都环境投资集团限公司应届毕业生招聘50人管理单位笔试遴选500模拟题附带答案详解
- 《尿路感染诊治指南》课件
- 特征值优化设计-洞察分析
- 装配式围挡施工方案
- 风电项目安全专业监理实施细则
- 2024年高考英语新课标1卷读后续写教学设计
- PDCA提高便秘患者肠镜检查肠道准备合格率
- 淮南新东辰控股集团有限责任公司招聘笔试题库2024
- 03D201-4 10kV及以下变压器室布置及变配电所常用设备构件安装
评论
0/150
提交评论