oracle学习笔记_第1页
oracle学习笔记_第2页
oracle学习笔记_第3页
oracle学习笔记_第4页
oracle学习笔记_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

OracleOracle 一 数据库组成一 数据库组成 OracleOracle 数据库数据库 实例实例 数据库数据库 OracleOracle 实例实例 管理数据库文件的一组内存结构 包含一个系统全局区的共享内存 区 SGA 和一组后台进程 数据库数据库 重做文件 控制文件 数据文件 数据库是永久的 是一个文件的集 合 2 2 数据文件和表空间数据文件和表空间 2 12 1 表空间表空间 表空间里 ORACLE 中的一个逻辑概念 它用于存放数据库文件 而数据库文件是存放 在磁盘的数据文件 是物理概念 表空间里是后台的一个内存区域 通过它来连接到数据 库文件 表空间只是一个虚拟的空间 但是它又没有实际的大小 表空间是恢复数据库的 最小单元 表空间不能单独存在 它至少应该包涵一个数据库文件 可以把具有相同数据 结构的数据库文件同时放到一个表空间里 一个数文件只能属于一个表空间 而表空间用 来逻辑的加以管理这些文件 系统默认的系统默认的 6 6 个表空间个表空间 EXAMPLE 用于安装 oracle 11g 数据库使用示例库 SYSAUX 作为 example 的辅助表空间 SYSTEM 用来存储 sys 用户的表 视图及存储过程等数据库对象 TEMP 用于存储 sql 语句处理的表和索引的信息 undotbs1 用于存储撤销信息 USERS 存储数据库用户创建的数据库对象 创建表空间创建表空间 SQL create tablespace test 建立名为 test 的表空间 SQL datafile F oracle product 10 2 0 oradata orcl ts1 dbf size 100M 为 tset 表空创建一 个在目录 orcl 下的名为 ts1 dbf 数据文件 大小 100m SQL autoextend on next 1M maxsize 1000M 设置数据文件最大扩展 1000M 每次增加 1M SQL extent management local 2 22 2 数据文件数据文件 物理上数据库数据存放在数据文件中 逻辑数据文件则是存放在表空间中 数据文件迁移数据文件迁移 方法一 Oracle 数据文件可以在数据库 OPEN 的时候被重命名或移动 但此时表空间必须为只读 这 将允许用户从表中查询 但禁止他们这样做的插入 更新和删除 在表空间至于只读状态的 时候 冻结数据文件块头 阻止更新数据文件块头 此时才能在线拷贝数据文件 脱机 offline 相应的表空间 SQL alter tablespace 表空间名 offline 用操作系统命令或者手动重命名 移动数据文件 SQL move D ORADATA ORCL EXAMPLE01 DBF D ORACLE ORADATA 修改该表空间的数据文件路径 SQL alter tablespace 表空间名 rename datafile D ORADATA ORCL EXAMPLE01 DBF to D ORACLE ORADATA EXAMPLE01 DBF 联机 online 表空间 SQL alter tablespace 表空间名 online 方法二 alter database 可以移动任何数据文件 但数据库要处于 mount 状态下 步骤 关闭并装载数据库 SQL shutdown immediate SQL startup mount 用操作系统命令或者手动重命名 移动数据文件 SQL move D HOHEHOT D ORACLE PRODUCT 10 2 0 ORADATA ORCL hohehot 用 alter database rename file old filename to new filename 来进行逻辑修改 要写出 全路径名 确保目标数据文件要已存在 SQL alter database rename file D HOHEHOT to D ORACLE PRODUCT 10 2 0 ORADATA ORCL 打开数据库 SQL alter database open 三 控制文件三 控制文件 控制文件 Control File 是 Oracle 的物理文件之一 控制文件包括了很多重要的信 息 比如数据库的数据文件 重做日志文件 数据库的名称 数据库创建信息 表空间信 息 数据文件的状态 日志文件信息 备份信息 检查点信息等 控制文件的重要性在于 一旦控制文件损坏 数据库将会宕机 移动控制文件 sqlplus as sysdba 我是用的 spfile 启动的 spfile 文件不能修改 所以要做这一步 SQL create pfile from spfile 关闭数据库 SQL shutdown immediate cp 控制文件到目标位置 SQL cp opt oracle oradata control opt oracle oratest 修改 ORACLE HOME dbs init ORACLE SID ora 文件中的控制文件的位置 启动数据库指定参数文件 SQL startup pfile opt oracle product 9 2 0 4 dbs init ORACLE SID ora 下次启动数据库是直接就可以用 startup 启动了 SQL create spfile from pfile 四 日志文件四 日志文件 联机日志文件又叫重做日志文件 记录了对数据库修改的信息 包括用户对数据修改 和数据库管理员对数据库结构的修改 它主要用于在发生故障的时候和数据库备份文件配 合恢复数据库 一般发生故障有 2 个情况 一个是介质损坏另外一个是用户误操作 每个 数据库至少有两个日志文件组 每组至少包含 1 个或者多个日志成员 这里要多个日志成 员的原因是防止日志文件组内某个日志文件损坏后及时提供备份 所以同一组的日志成员 一般内容信息相同 但是存放位置不同 在 Oracle 数据库中 执行数据修改操作后 并不是马上写入数据文件 而是首先生成重做 信息 并写入 SGA 中的一块叫 LOG BUFFER 的固定区域 LOG BUFFER 的空间并不是无限大 事实上它非常小 一般设置在 3 5MB 左右 LOG BUFFER 有一定的触发条件 当满足触发 条件后 会有相应进程将 LOG BUFFER 中的内容写入一个特定类型的文件 就是传说中的联 机重做日志文件 联机重做日志文件是循环使用的 当第一个日志文件达到一定数量时 就会停止写入 而转向第二个日志文件 第二个满转向第三个日志文件 第三个满就向第一个日志文件写入 而第一个日志文件有没有自动备份就涉及到归档或者不归档的问题 当数据库自动对原来的 日志文件进行备份的话就叫归档模式 不需要对数据库进行自动备份就叫非归档模式 三 归档开启 1 sql alter system set log archive start true scope spfile 启用主动归档 2 sql alter system set log archive dest location 归档存放地址 scope spfile 设置归档路径 3 sql shutdown immediate 先 down 下数据 4 sql startup mount 启动数据库到 mount 状态 5 sql alter database archivelog 将数据库切换为归档模式 6 sql alter database open 将数据文件打开 7 sql archive log list 查看此时是否处于归档模式 三 移动重做日志文件 sqlplus as sysdba 关闭数据库 SQL shutdown immediate cp 日志文件到目标位置 SQL cp opt oracle oradata redo opt oracle oratest 让数据库以 mount 模式启动 SQL startup mount 修改数据库中日志文件的位置 SQL alter database rename file opt oracle oradata redo01 log to opt oracle oratest redo01 log SQL alter database rename file opt oracle oradata redo02 log to opt oracle oratest redo02 log SQL alter database rename file opt oracle oradata redo03 log to opt oracle oratest redo03 log 修改数据库的状态 SQL alter database open 查看修改结果 SQL select from v logfile 五 常见的数据库服务器模式五 常见的数据库服务器模式 Oracle 11g 及以前版本 一个实例只能打开一个数据库 一个数据库也可以被多个实例 打开 Oracle 12c 中新增功能 可以一个实例打开多个数据库 双机双机 就是人们所说的双机热备 数据库放在共享设备上 同一时刻只能有一台主机接管 另一台待用 这种方式只能保护实例 不能保护数据库 而且备机长期处于闲置 对资源 是一种极大的浪费 双机热备由两台计算机和一个共享存储设备构成 通过第三方软件 HA Rose 等 实现切换 不需要做数据同步 RACRAC 对于 RAC 则是本地的高可用集群 每个节点用来分担不用或相同的应用 以解决 运算效率低下 单节点故障这样的问题 它是几台硬件相同或不相同的服务器 加一个 SAN 共享的存储区域 来构成的 DataData Guard Guard 是 Oracle 的远程复制技术 它有物理和逻辑之分 但是总的来说 它需要在 异地有一套独立的系统 这是两套硬件配置可以不同的系统 但是这两套系统的软件结构 保持一致 包括软件的版本 目录存储结构 以及数据的同步 其实也不是实时同步的 这两套系统之间只要网络是通的就可以了 是一种异地容灾的解决方案 Data Guard 由两个 多两个以上的独立的数据库构成 他们各自有各自的存储 Oracle 负责他们之间的切换和 数据同步 各种模式的侧重点各种模式的侧重点 双机热备双机热备 侧重于业务的自动接管 自动接管需要几分钟时间 且长期有一组 Instance 闲 置 浪费资源 不能容灾 DGDG 侧重于容灾 独立存储 但两者数据不能做到实时同步 RACRAC 侧重于负载均衡 但共享存储不能容灾 六 常见的数据库名称六 常见的数据库名称 6 16 1 数据库名 数据库名 DB NAMEDB NAME 查询当前数据名 方法一 select name from v database 方法二 show parameter db 数据库名就是一个数据库的标识 就像人的身份证号一样 他用参数 DB NAME 表示 如果一台机器上装了多全数据库 那么每一个数据库都有一个数据库名 在数据库安装或 创建完成之后 参数 DB NAME 被写入参数文件之中 在创建数据库时就应考虑好数据库名 并且在创建完数据库之后 数据库名不宜修改 即使要修改也会很麻烦 因为 数据库名还被写入控制文件中 控制文件是以 二进制型式 存储的 用户无法修改控制文件的内容 作用 数据库名 db name 是数据库的内部管理标记 在安装数据库 创建数据库 创 建数据库控制文件 修改数据库结构 利用数据库备份与恢复工具进行数据库备份时都需 要使用数据库名 6 16 1 数据库实例名 数据库实例名 instance nameinstance name 数据库实例名是用于和操作系统进行联系的标识 就是说数据库和操作系统之间的交 互用的是数据库实例名 实例名也被写入参数文件中 该参数为 instance name 在 winnt 平台中 实例名同时也被写入注册表 数据库名和实例名可以相同也可以不同 在一般情况下 数据库名和实例名是一对一的关系 但如果在 oracle 并行服务器架构 即 oracle 实时应用集群 中 数据库名和实例名是一对多的关系 查询当前数据库实例名 方法一 select instance name from v instance 方法二 show parameter instance instance nameinstance name 与与 ORACLE SIDORACLE SID 虽然两者都表是 oracle 实例 但两者是有区别的 instance name 是 oracle 数据 库参数 而 ORACLE SID 是操作系统的环境变 量 ORACLD SID 用于与操作系统交互 也就 是说 从操作系统的角度访问实例名 必须通过 ORACLE SID 在 windos 台 ORACLE SID 还需存在于注册表中 且 ORACLE SID 必须与 instance name 的值一致 否则 你将会收到 一个错误 数据库实例名与网络连接 数据库实例名除了与操作系统交互外 还用于网络连接的 oracle 服务器标识 当你配置 oracle 主机连接串的时候 就需要指定实例名 当然 8i 以后版本的网络组件要求使用的 是服务名 SERVICE NAME 6 36 3 数据库域名 数据库域名 db domaindb domain 在分布工数据库系统中 不同版本的数据库服务器之间 不论运行的操作系统是 unix 或是 windows 各服务器之间都可以通过数据库链路进行远程复制 数据库域名主要用于 oracle 分布式环境中的复制 举例说明如 全国交通运政系统的分布式数据库 其中 福建节点 fj jtyz 这就是数据库域名 查询数据库域名 方法一 select value from v parameter where name db domain 方法二 show parameter domain 6 46 4 全局数据库名全局数据库名 全局数据库名 数据库名 数据库域名四 数据库服务名 6 56 5 数据库服务名数据库服务名 从 oracle9i 版本开始 引入了一个新的参数 即数据库服务名 参数名是 SERVICE NAME 如果数据库有域名 则数据库服务名就是全局数据库名 否则 数据库服务名与数据库名 相同 查询数据库服务名 方法一 select value from v parameter where name service name 方法二 show parameter service name 数据库服务名与网络连接 从 oracle8i 开如的 oracle 网络组件 数据库与客户端的连接主机串使用数据库服务名 之前用的是 ORACLE SID 即数据库实例名 七 监听七 监听 监听器是 Oracle 基于服务器端的一种网络服务 主要用于监听客户端向数据库服务器 端提出的连接请求 既然是基于服务器端的服务 那么它也只存在于数据库服务器端 进 行监听器的设置也是在数据库服务器端完成的 7 17 1 如何查询某服务是静态监听注册还是动态监听注册如何查询某服务是静态监听注册还是动态监听注册 可以使用命令 lsnrctl status 来查看某服务是静态注册还是动态注册 实例状态为 UNKNOWN 值时表明此服务是静态注册的设置 这时监听器用来表明它不知道关于该实例的 任何信息 只有当客户发出连接请求时 它才检查该实例是否存在 7 27 2 动态监听动态监听 动态注册不需要显示的配置 listener ora 文件 实例启动的时候 PMON 进程根据 instance name service name 参数将实例和服务动态注册到 listerer 中 如果没有设定 instance name 将使用 db name 初始化参数值 如果没有设定 service names 将拼接 db name 和 db domain 参数值来注册监听 注意 Oracle SID 从 ORACLE 10G 开始 参数文件不再记录 INSTANCE NAME 此时 INSTANCE NAME 动态从系统 ORACLE SID 获得来保持一致 优点 1 不需要人工干预在 lsnrctl start 后 会自动注册数据库的 instance name service name 然后 tns 不论使用 SID 和 SERVICE NAME 均可以连接上来 2 修改了 SERVICE NAME 或者 SID 不用修改 listener ora 文件 3 动态注册的数据库通过状态信息中的状态 READY 或状态 BLOCKED 对于一个备用数据 库 来指明 不管关闭何时数据库 动态注册的数据库都会动态地从 监听器注销 而与之相关的信息将 从状态列表中消失 这样 不管数据库是在运行还是已经关闭 监听器总是知道它的状态 该信息将被用于连接请求的回退 fallback 和负载平衡 7 37 3 静态监听静态监听 静态注册指实例启动时读取 listener ora 配置文件 将实例和服务注册到监听程序 优点 无论何时启动一个数据库 默认都有两条信息注册到监听器中 实例和服务 在数据库未 open 状态中 就可以远程连接到数据库 对数据库进行操作 静态和动态的区别静态和动态的区别 静态注册 listener 不知道实例的状态 只有在进程通过其连接数据库时才能知道 如果你想使用远程管理数据库就使用静态监听 动态注册 listener 实时的都知道实例的状态 数据库在关闭的时候会动态的从 listener 中注销 所以远程管理数据库的启动和停止就不行了 八 常用查询命令八 常用查询命令 1 查看实例名称和 ORACLE SID 在 Unix Linux 环境可以 echo ORACLE SID 查看 ORACLE SID 的值 在 Windows 环境可以 1 开始 运行 输入 regedit 在 HKEY LOCAL MACHINE SOFTWARE ORACLE SYSMAN 中有 ORACLE SID 的键值 2 进入数据查看实例名 show parameter instance name select instance name from v instance 数据库名 show parameter db name 服务器名 show parameter service name 域名 show parameter db domain 3 查看控制文件 SELECT NAME FROM v controlfile SELECT FROM v controlfile 查看日志组 select group sequence members bytes status archived from v log 4 查看日志文件 SELECT MEMBER FROM v logfile 5 查看表空间的名称及大小 SELECT t tablespace name round SUM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论