oraclesg读书笔记8039.docx

上传人:jix****n11 文档编号:62681526 上传时间:2022-11-22 格式:DOCX 页数:63 大小:73.03KB
返回 下载 相关 举报
oraclesg读书笔记8039.docx_第1页
第1页 / 共63页
oraclesg读书笔记8039.docx_第2页
第2页 / 共63页
点击查看更多>>
资源描述

《oraclesg读书笔记8039.docx》由会员分享,可在线阅读,更多相关《oraclesg读书笔记8039.docx(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、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

2、Hostbase : 客户端和服务器位于一台机器上Oracle 服务器的两大重要组成部分:一 。Oracle 实例1. oracle instance 由共享内存结构和后台进程(windows 下线程)组成,用来管理数据库2. 实例与数据库的关系一个时刻,一个实例有且仅能mount一个数据库,而一个数据库可以由多个实例来管理(例如 9i以前的ops,以及9i以后的rac,都是可以一个数据库对应多个实例)4 区别实例和数据库实例就是共享内存结构+后台进程(线程)数据库就是一系列的os文件连接到oracle 实例用户连接实例的过程:1 用户打开一个客户端工具,如sqlplus,oracle for

3、ms.2 用户进程登陆到服务器,oracle服务器为用户进程开启一个服务器进程(这个应该是指独占服务器模式下,共享服务器模式下用户进程不会直接连接到服务器进程而是连接到调度器,如果存在空闲的服务器进程,调度器就将用户的请求传递给服务器进程),服务器进程代表用户进程于oracle 实例通信以及执行sql语句。Connection:用户进程和服务器的一个通路,建立连接的三种方式1. 客户端和服务器位于一台机器上,通过interprocess建立connection2. 客户端和通过网络连接到oracle 服务器,这也就是常见的cs结构3. 客户端通过网络连接到应用服务器,应用服务器再通过网络连接o

4、racle服务器,这就是常说的三层结构。SessionSession 是用户到数据库的特殊连接,这里的特殊是指用户是合法的(即用户名和密码是正确的),当用户正常退出或者异常中断的时候都会导致session结束。一个用户可以起很多个session,如运行不同的客户端工具。共享服务器和独占服务器的区别:独占服务器是指一个服务器进程只能为一个客户端进程服务,并且用户进程直接和服务器进程连接。对于共享服务器进程,一个服务器进程可以为不同的客户进程服务,共享服务器中,客户进程是直接于调度器连接,并非是服务器进程。二Oracle 数据库Oracle 数据库即一系列的os文件,由三个部分组成,控制文件,数据

5、文件和日志文件。数据库由逻辑结构和物理结构之分:1数据库的物理结构,主要由三个类型的文件组成,控制文件,数据文件和日志文件。控制文件:存储了数据库的结构信息,还有checkpoint信息,同时rman的备份信息也是存储在控制文件中,对于rman没有使用catalog的话,控制文件是很重要的,控制文件中的内容分为可重用和不可重用,如数据文件和日志文件的信息就属于不可重用的部分,rman的信息就属于可重用的部分和control_file_record_keep_time这个参数有关(控制文件必须保留rman信息的最短时间), 建议将控制文件保存在多个不同的磁盘,这几个文件互为镜象,如果所有控制文件

6、都损坏可以重建,重建控制文件读取数据头的信息。数据文件: 数据库中所有的数据都存储在这类文件中,我将它分为四类,system文件(10g 中是system,sysaux,9i 中的system),撤消文件(undo,一个数据库虽然可以建立多个undo tablespace ,但是一个时刻只能使用其中的一个),临时文件(主要用来排序),用户数据文件(除去以上三类)日志文件: 日志记录了数据库中的重做信息,用户的操作都会被记录在日志文件中,实例恢复利用status为active和current的日志。 当数据库异常关机(abort),或者因为某种原因而异常当机,那么下次启动的时候就要做实例恢复,实

7、例恢复的第一个过程是roll forward(前滚),即将数据库恢复到当机前的那个时刻。接着就open数据库,数据库打开后做roll back。2其它的文件主要有参数文件(initsid.ora或者服务端参数文件),口令文件,归档日志文件。参数文件:记载了数据库启动信息,nomount的时候就要读取参数文件。Oracle的认证模式主要有口令文件认证和os认证。认证就要通过口令文件。口令文件存储了sysoper和sysdba用户的密码信息,可以通过查询v$pwfile_users来查询具有sysoper或sysdba的用户。Os认证: 对于windows,os的用户要在oracle_dba组中,

8、同时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 :进程全局区,又称私有全局区,和进程一一对应,其他进程不能访问。服务器进程进程启动的时候分配。

9、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 g

10、ranule=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

11、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 75

12、498876 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 和跟踪文件

13、 必须在nomount状态下做的操作A. 创建数据库B. 重建控制文件 (2) mount : 通过参数文件中的control_files读取控制文件,同时获取日志文件和数据文件的位置信息(不检查存在性) 必须在mount状态下做的操作a. 移动数据文件和日志文件 (这里指alter database rename的方式)b. 启动和关闭归档c. 启动闪回d. Recover database ; (3) open :打开数据文件和日志文件,open之前可能要执行实例恢复(smon完成),open 之前先前滚将数据库恢复到当机时刻,然后打开数据库,open之后可能要做回滚。 介质恢复和实例恢复

14、: 介质恢复:Oracle启动过程中会判断是否要做介质恢复(利用归档,备份或者是redo),oracle 比较控制文件的scn和数据头的scn如果不一致则要进行介质恢复。分2种情况,如果控制文件的scn小于数据头的scn,则说明控制文件比数据文件旧 ,这时的要加using backup controlfile做恢复。如果控制文件的scn大于数据文件的scn,则直接recover database。 实例恢复:oracle 启动过程如果发现v$datafile中的last_change#为空则要求进行实例恢复,实例恢复只使用在线日志,更直接的说只使用active和current状态的在线日志,实

15、例恢复的起点是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 原来是以

16、restrict模式打开数据库的,只有具有restricted session权限的用户才能登陆。2 Open后执行,alter system enable restricted session ; 对于已经登陆的用户不受影响,以后登陆的用户就要具有restricted session权限才能登陆。(alter system disable restricted session)取消受限模式。 只读打开数据库1 允许用户查询2 如果是使用本地管理的临时表空间则可以做磁盘排序操作3 只读模式允许对数据文件进行offline和online ,同时可以对离线的表空间或者数据文件做恢复,以及一些不产生

17、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 Buf

18、fers 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;数据

19、库已更改。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 by

20、tes数据库装载完毕。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 Buffer

21、s 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

22、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

23、 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

24、 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 167772

25、160 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 B

26、uffers 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#是无

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁