oracle学习笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Oracle一、数据库组成Oracle数据库=实例+数据库Oracle实例:管理数据库文件的一组内存结构。包含一个系统全局区的共享内存区(SGA)和一组后台进程。数据库:重做文件+控制文件+数据文件,数据库是永久的,是一个文件的集合二、数据文件和表空间2.1表空间表空间里ORACLE中的一个逻辑概念,它用于存放数据库文件,而数据库文件是存放在磁盘的数据文件,是物理概念,表空间里是后台的一个内存区域,通过它来连接到数据库文件,表空间只是一个虚拟的空间,但是它又没有实际的大小,表空间是恢复数据库的最小单元,表空间不能单独存在,它至少应该包涵一个数据库文件,可以把具有相同数据结构的数据库文件同时放到一个表空间里,一个数文件只能属于一个表空间,而表空间用来逻辑的加以管理这些文件。系统默认的6个表空间EXAMPLE:用于安装oracle11g数据库使用示例库SYSAUX:作为example的辅助表空间SYSTEM:用来存储sys用户的表、视图及存储过程等数据库对象TEMP:用于存储sql语句处理的表和索引的信息undotbs1:用于存储撤销信息USERS:存储数据库用户创建的数据库对象创建表空间SQLcreatetablespacetest//建立名为test的表空间SQLdatafile'F:\oracle\product\10.2.0\oradata\orcl\ts1.dbf'size100M//为tset表空创建一个在目录orcl下的名为ts1.dbf数据文件,大小100mSQLautoextendonnext1Mmaxsize1000M//设置数据文件最大扩展1000M,每次增加1MSQLextentmanagementlocal2.2数据文件物理上数据库数据存放在数据文件中,逻辑数据文件则是存放在表空间中数据文件迁移方法一Oracle数据文件可以在数据库OPEN的时候被重命名或移动,但此时表空间必须为只读,这将允许用户从表中查询,但禁止他们这样做的插入,更新和删除,在表空间至于只读状态的时候,冻结数据文件块头。阻止更新数据文件块头,此时才能在线拷贝数据文件脱机(offline)相应的表空间SQLaltertablespace表空间名offline;用操作系统命令或者手动重命名/移动数据文件SQL$moveD:\ORADATA\ORCL\EXAMPLE01.DBFD:\ORACLE\ORADATA\修改该表空间的数据文件路径SQLaltertablespace表空间名renamedatafile'D:\ORADATA\ORCL\EXAMPLE01.DBF'to'D:\ORACLE\ORADATA\EXAMPLE01.DBF';联机(online)表空间SQLaltertablespace表空间名online;方法二alterdatabase:可以移动任何数据文件,但数据库要处于mount状态下。步骤:关闭并装载数据库SQLshutdownimmediateSQLstartupmount用操作系统命令或者手动重命名/移动数据文件SQL$moveD:\HOHEHOTD:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\hohehot用alterdatabaserenamefileold_filenametonew_filename来进行逻辑修改,要写出全路径名,确保目标数据文件要已存在SQLalterdatabaserenamefile'D:\HOHEHOT'to'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\打开数据库SQLalterdatabaseopen;三、控制文件控制文件(ControlFile)是Oracle的物理文件之一,控制文件包括了很多重要的信息,比如数据库的数据文件、重做日志文件、数据库的名称、数据库创建信息、表空间信息、数据文件的状态、日志文件信息、备份信息、检查点信息等。控制文件的重要性在于,一旦控制文件损坏,数据库将会宕机移动控制文件$sqlplus'/assysdba'#我是用的spfile启动的,spfile文件不能修改,所以要做这一步。SQLcreatepfilefromspfile#关闭数据库。SQLshutdownimmediate#cp控制文件到目标位置。SQLcp/opt/oracle/oradata/control*/opt/oracle/oratest/修改$ORACLE_HOME/dbs/init$ORACLE_SID.ora文件中的控制文件的位置。#启动数据库指定参数文件。SQLstartuppfile='/opt/oracle/product/9.2.0.4/dbs/init$ORACLE_SID.ora'#下次启动数据库是直接就可以用startup启动了。SQLcreatespfilefrompfile;四、日志文件联机日志文件又叫重做日志文件,记录了对数据库修改的信息,包括用户对数据修改和数据库管理员对数据库结构的修改。它主要用于在发生故障的时候和数据库备份文件配合恢复数据库,一般发生故障有2个情况:一个是介质损坏另外一个是用户误操作。每个数据库至少有两个日志文件组,每组至少包含1个或者多个日志成员,这里要多个日志成员的原因是防止日志文件组内某个日志文件损坏后及时提供备份,所以同一组的日志成员一般内容信息相同,但是存放位置不同。在Oracle数据库中,执行数据修改操作后,并不是马上写入数据文件,而是首先生成重做信息,并写入SGA中的一块叫LOG_BUFFER的固定区域,LOG_BUFFER的空间并不是无限大,事实上它非常小,一般设置在3~5MB左右。LOG_BUFFER有一定的触发条件,当满足触发条件后,会有相应进程将LOG_BUFFER中的内容写入一个特定类型的文件,就是传说中的联机重做日志文件。联机重做日志文件是循环使用的。当第一个日志文件达到一定数量时,就会停止写入,而转向第二个日志文件,第二个满转向第三个日志文件.第三个满就向第一个日志文件写入.而第一个日志文件有没有自动备份就涉及到归档或者不归档的问题.当数据库自动对原来的日志文件进行备份的话就叫归档模式,不需要对数据库进行自动备份就叫非归档模式.(三)归档开启1.sqlaltersystemsetlog_archive_start=truescope=spfile;(启用主动归档)2.sqlaltersystemsetlog_archive_dest=’location=归档存放地址’scope=spfile;(设置归档路径)3.sqlshutdownimmediate;(先down下数据)4.sqlstartupmount;(启动数据库到mount状态)5.sqlalterdatabasearchivelog;(将数据库切换为归档模式)6.sqlalterdatabaseopen;(将数据文件打开)7.sqlarchiveloglist;(查看此时是否处于归档模式)三.移动重做日志文件:$sqlplus'/assysdba'#关闭数据库。SQLshutdownimmediate#cp日志文件到目标位置。SQL!cp/opt/oracle/oradata/redo*/opt/oracle/oratest/#让数据库以mount模式启动。SQLstartupmount;#修改数据库中日志文件的位置。SQLalterdatabaserenamefile'/opt/oracle/oradata/redo01.log'to'/opt/oracle/oratest/redo01.log'SQLalterdatabaserenamefile'/opt/oracle/oradata/redo02.log'to'/opt/oracle/oratest/redo02.log'SQLalterdatabaserenamefile'/opt/oracle/oradata/redo03.log'to'/opt/oracle/oratest/redo03.log'#修改数据库的状态。SQLalterdatabaseopen;#查看修改结果。SQLselect*fromv$logfile;五、常见的数据库服务器模式Oracle11g及以前版本,一个实例只能打开一个数据库,一个数据库也可以被多个实例打开Oracle12c中新增功能,可以一个实例打开多个数据库双机:就是人们所说的双机热备,数据库放在共享设备上,同一时刻只能有一台主机接管,另一台待用,这种方式只能保护实例,不能保护数据库,而且备机长期处于闲置,对资源是一种极大的浪费!双机热备由两台计算机和一个共享存储设备构成,通过第三方软件(HARose等)实现切换,不需要做数据同步。RAC:对于RAC,则是本地的高可用集群,每个节点用来分担不用或相同的应用,以解决运算效率低下,单节点故障这样的问题,它是几台硬件相同或不相同的服务器,加一个SAN(共享的存储区域)来构成的。DataGuard:是Oracle的远程复制技术,它有物理和逻辑之分,但是总的来说,它需要在异地有一套独立的系统,这是两套硬件配置可以不同的系统,但是这两套系统的软件结构保持一致,包括软件的版本,目录存储结构,以及数据的同步(其实也不是实时同步的),这两套系统之间只要网络是通的就可以了,是一种异地容灾的解决方案DataGuard由两个多两个以上的独立的数据库构成,他们各自有各自的存储,Oracle负责他们之间的切换和数据同步各种模式的侧重点双机热备侧重于业务的自动接管,自动接管需要几分钟时间,且长期有一组Instance闲置,浪费资源,不能容灾。DG侧重于容灾,独立存储,但两者数据不能做到实时同步。RAC侧重于负载均衡,但共享存储不能容灾。六、常见的数据库名称6.1数据库名(DB_NAME)查询当前数据名方法一:selectnamefromv$database;方法二:showparameterdb数据库名就是一个数据库的标识,就像人的身份证号一样。他用参数DB_NAME表示,如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名。在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。因为,数据库名还被写入控制文件中,控制文件是以二进制型式存储的,用户无法修改控制文件的内容。作用:数据库名db_name是数据库的内部管理标记,在安装数据库,创建数据库,创建数据库控制文件,修改数据库结构,利用数据库备份与恢复工具进行数据库备份时都需要使用数据库名6.1数据库实例名(instance_name)数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是数据库实例名。实例名也被写入参数文件中,该参数为instance_name,在winnt平台中,实例名同时也被写入注册表。数据库名和实例名可以相同也可以不同。在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。。查询当前数据库实例名方法一:selectinstance_namefromv$instance;方法二:showparameterinstanceinstance_name与ORACLE_SID虽然两者都表是oracle实例,但两者是有区别的。instance_name是oracle数据库参数。而ORACLE_SID是操作系统的环境变量。ORACLD_SID用于与操作系统交互,也就是说,从操作系统的角度访问实例名,必须通过ORACLE_SID。在windos台,ORACLE_SID还需存在于注册表中。且ORACLE_SID必须与instance_name的值一致,否则,你将会收到一个错误。数据库实例名与网络连接数据库

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功