如何区分Oracle的数据库,实例,服务名,SID

如何区分Oracle的数据库,实例,服务名,SID,第1张

 Oracle的数据库
一系列物理文件的集合
包括控制文件、数据文件、联机日志文件、参数文件、密码文件等
即:Oracle Database = Controlfile + datafile + logfiel + spfile +
1控制文件(controlfile)
数据库的名字,检查点信息,数据库创建的时间戳
所有的数据文件,联机日志文件,归档日志文件信息
备份信息等
2数据文件(datafile)
包含了用户和应用程序的所有数据
--查看数据文件信息
3联机日志文件
记录了用户对数据库的所有 *** 作,一个数据库中至少要有两个日志组文件,每个日志组中至少有一个日志成员
日志组中的多个日志成员是互为镜相关系
4归档日志文件
Oracle可以运行在两种模式之中,归档模式和非归档模式。在归档模式中,为了保存用户的所有修改,
在联机日志文件切换后和被覆盖之间系统将他们另外保存成一组连续的文件系列,该文件系列就是归档日志文件。
用户恢复意外情况出现的数据丢失、异常等。
5参数文件(pfile和spfile)
initSIDora或initora文件,通常位于:$ORACLE_BASE/admin/<SID>/pfile
初始化文件记载了许多数据库的启动参数,如内存,控制文件,进程数等,在数据库启动的时候加载(Nomount时加载)
6其他文件
密码文件:用于Oracle 的具有sysdba权限用户的认证
告警日志文件:报警日志文件(alertlog或alrtora),记录数据库启动,关闭和一些重要的出错信息
查看路径:select value from v$PARAMETER where name =‘background_dump_dest’;
7数据库逻辑组织结构
表空间、段、区、块
一个数据库由一个或多个表空间组成,一个表空间只能属于一个数据库
一个表空间由一个或多个多个数据文件组成,一个数据文件只能属于一个表空间
一个数据文件由一个或多个 *** 作系统块组成,每一个 *** 作系统块只能数以一个数据文件
一个表空间可以包含一个或多个段,一个段只能属于一个表空间
一个段由一个或多个区组成,每一个区只能属于一个段
一个区由一个或多个Oracle 块组成,每一个Oracle块只能属于一个区
一个区只能属于一个数据文件,数据文件的空间可以分配到一个或多个区
一个Oracle 块由一个或多个 *** 作系统块组成,一个 *** 作系统块是一个Oracle块的一部分
oracle实例:
一个Oracle Server由一个Oracle实例和一个Oracle数据库组成。
即:Oracle Server = Oracle Instance + Oracle Database
Oracle实例
包括了内存结构(SGA)和一系列后台进程(Background Process),两者合起来称为一个Oracle实例
即:Oracle Instance = SGA + Background Process
Oracle内存结构
包含系统全局区(SGA)和程序全局区(PGA)
即Oracle Memory Structures = SGA + PGA
SGA由服务器和后台进程共享
PGA包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反,PGA是
只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收。即由服务器进程产生。
1SGA
系统全局区SGA,SGA = 数据缓冲区+ 重做日志缓冲区+ 共享池+ 大池+ Java 池+ 流池
系统全局区是动态的,由参数SGA_MAX_SIZE决定。
查看当前系统的SGA大小:show parameter sga_max_size;
要修改:alter system set sga_max_size=1200m scope=spfile;
因为实例内存的分配是在数据库启动时进行的,所以要让修改生效,要重启数据库。
ORACLE 10G 引入了ASMM(自动共享内存管理),DBA只需设置SGA_TARGET,ORACLE就会
自动的对共享池、JAVA池、大池、数据缓冲区、流池进行自动调配。取消自动调配就是
sga_target设为。
数据缓冲区(Database buffer cache):存储从数据文件中获得的数据块的镜像
大小由db_cache_size 决定
查看:show parameter db_cache_size;
设置:alter system set db_cache_size=800M;
重做日志缓冲区(Redo log buffer):对数据库的任何修改都按顺序被记录在该缓冲,然后由LGWR进程将
它写入磁盘,大小由LOG_BUFFER决定
共享池(Shared pool):是SGA中最关键的内存片段,共享池主要由库缓存(共享SQL区和PL/SQL区)和数据
字典缓存组成,它的作用是存放频繁使用的sql,在有限的容量下,数据库系统根据一定的算法决
定何时释放共享池中的sql。
库缓存大小由shared_pool_size 决定
查看:show parameter shared_pool_size
修改:alter system set shared_pool_size=120m;
数据字典缓存:
存储数据库中数据文件、表、索引、列、用户和其它数据对象的定义和权限信息
大小由shared_pool_size 决定,不能单独指定
大池(Large pool):是一个可选的区域,用于一些大型的进程如Oracle的备份恢复 *** 作、IO服务器进程等
Java 池:该程序缓冲区就是为Java 程序保留的。如果不用Java程序没有必要改变该缓冲区的默认大小
流池(Stream pool):被Oracle流所使用
2PGA
是为每个用户进程连接ORACLE数据库保留的内存
进程创建时分配,进程结束时释放,只能被一个进程使用
PGA包括了以下几个结构:
()排序区
()游标状态区
()会话信息区
()堆栈区
由参数:pga_aggregate_target 决定
3几类进程:用户进程,服务器进程,后台进程,其它可选进程
用户进程
在用户连接数据库产生,请求oracle服务器连接,必须要先建立一个连接,不会直接和oracle服务器连接
服务器进程
当连接实例并建立用户会话时产生,独立服务器或者提供共享服务器都能产生
后台进程
维持物理和内存之间的联系,用来管理数据库的读写,恢复和监视等工作。
Server Process主要是通过他和user process进行联系和沟通,并由他和user process进行数据的交换。
在Unix机器上,Oracle后台进程相对于 *** 作系统进程,也就是说,一个Oracle后台进程将启动一个 *** 作
系统进程。
在Windows机器上,Oracle后台进程相对于 *** 作系统线程,打开任务管理器,我们只能看到一个
ORACLEEXE的进程,但是通过另外的工具,就可以看到包含在这里进程中的线程。
必须要有的后台进程
DBWn -->数据库写进程
PMON -->程序监控进程
SMON -->系统监控进程
LGWr -->日志写进程
CKPT -->检查点进程
可选进程:
ARCN 归档进程
RECO
Snnn
pnnn
DBWn(数据库写进程)
负责将修改过的数据块从数据库缓冲区高速缓存写入磁盘上的数据文件中
写入条件:
发生检查点
脏缓存达到限制
没有自由的缓存
超时发生
表空间离线
表空间只读
表被删除或者截断
开始备份表空间
可以修改数据写进程的数量
alter system set db_writer_processes=3 scope=spfile;
PMON(程序监控进程)
清除失效的用户进程,释放用户进程所用的资源。
如PMON将回滚未提交的工作,释放锁,释放分配给失败进程的SGA资源。
清除失败的进程
回滚事务
释放锁
释放其他资源
SMON(系统监控进程)
检查数据库的一致性,当启动失败时完成灾难恢复等
实列恢复时,前滚所有重做日志中的文件,打开数据库为了用户能访问,回滚未提交的事务,释放临时表空间
清除临时空间,聚结空闲空间,从不可用的文件中恢复事务的活动,OPS中失败节点的实例恢复
清除OBJ$表
缩减回滚段
使回滚段脱机
LGWr(日志写进程)
将重做日志缓冲区中的更改写入在线重做日志文件
条件:
提交的时候(commit)
redo log buffer达到1/3满
每隔3秒
有大于1MB 重做日志缓冲区未被写入磁盘
DBWR需要写入的数据的SCN号大于LGWR 记录的SCN号,DBWR 触发LGWR写入
超时
在dbwr进程些之前写日志
CKPT(检查点进程)
DBWR/LGWR的工作原理,造成了数据文件,日志文件,控制文件的不一致,CKPT进程负责同步数据文件,
日志文件和控制文件
CKPT会更新数据文件/控制文件的头信息
条件:
在日志切换的时候
数据库用immediate ,transaction ,normal选项shutdown数据库的时候
根据初始话文件LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET 的设置的数值来确定
用户触发
ARCN(归档进程)
在每次日志切换时把已满的日志组进行备份或归档
条件:
数据库以归档方式运行的时候
RECO
负责解决分布事物中的故障。Oracle可以连接远程的多个数据库,当由于网络问题,有些事物处于悬而未决的状态。
RECO进程试图建立与远程服务器的通信,当故障消除后,RECO进程自动解决所有悬而未决的会话。
Server Process(服务进程)
分为专用服务进程(Dedicated Server Process)和共享服务进程(MultiTreaded Server Process)
专用服务进程:一个服务进程对应多个用户进程,轮流为用户进程服务。
用户进程(User Process)、服务进程(Server Process)、后台进程(Background Processes)的启动
用户进程: 数据库用户请求Oralce server会话时被启动
服务进程:当用户会话启动后,连接到Oracle实例时该进程被启动
后台进程:当Oracle实例被启动时,启动相关的后台进程

Oracle 主要配置文件介绍

profile文件 oratab 文件 数据库实例初始化文件 initSID ora 监听配置文件 sqlnet ora 文件 tnsnames ora 文件

Oracle 主要配置文件介绍  /etc/profile 文件               系统级的环境变量一般在/etc/profile 文件中定义 在 CAMS 系统 与数据库               相关的环境变量就定义在/etc/profile 文件中 如下所示               export ORACLE_BASE=/u /app/oracle               export ORACLE_HOME=$ORACLE_BASE/product/                export PATH=$PATH:$ORACLE_HOME/bin               export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib               export ORACLE_SID=cams               export ORACLE_TERM=vt                export ORA_NLS =$ORACLE_HOME/omon/nls/admin/data               export NLS_LANG=AMERICAN ZHS CGB                & 说明                  配置上述环境变量要注意定义的先后顺序 如 定义 ORACLE_HOME               时 用 到 了 ORACLE_BASE         那 么 ORACLE_HOME 的 定 义 应 该 在               ORACLE_BASE之后                     在使用中文版 CAMS 时 环境变量 NLS_LANG 的值应该设置为               AMERICAN ZHS CGB 如上所示             在使用英文版 CAMS时 可               以不设置 NLS_LANG 即去掉 export NLS_LANG= 那一行 也可以               设置 NLS_LANG 的值为 AMERICAN_AMERICA US ASCII

/etc/oratab 文件              /etc/oratab 文件描述目前系统中创建的数据库实例 以及是否通过 dbstart 和              dbshut 来控制该实例的启动与关闭 如下所示 忽略以#开头的注释部分 :              cams:/u /app/oracle/product/ :Y              其中 cams 为实例 ID /u /app/oracle/product/ 为 ORACLE_HOME目              录 Y表示允许使用 dbstart和 dbshut 启动和关闭该实例数据库 如果设置为              N 表示不通过 dbstart 和 dbshut 启动和关闭实例数据库 CAMS 系统要求在              安装完 ORACLE 后要求将该参数修改为 Y 以保证 ORACLE 数据库自启动              和关闭                    

数据库实例初始化文件 initSID ora              每个数据库实例都有一个初始化 参数文件 其缺省 存放的路径为              $ORACLE_BASE/admin/<SID>/pfile 其名称为 init<SID> ora 如 cams 实              例 对 应 的 参 数 文 件 为 initcams ora 缺 省 存 放 路 径 为              $ORACLE_BASE/admin/cams/pfile 即/u /app/oracle/admin/cams/pfile              但 在 CAMS 应 用 中 initcams ora 的 存 放 路 径 为              /u /app/oracle/admin/cams/pfile 这是基于数据与应用程序分开存放更好地              保护数据考虑的 尤其在 CAMS 双机应用模式下 能够保证数据的一致性              具体的修改 *** 作可参考 Linux与 Oracle 安装手册              初始化参数文件是一个包含实例配置参数的文本文件 这些参数被设置为特              定的值 用于初始化 Oracle 实例的多数内存和进程设置 以下是一些主要参              数的说明                实例的数据库名称              db_name = cams                 实例名称              instance_name = cams                数据库控制文件的名称和位置              control_files = ( /u /app/oracle/oradata/cams/control ctl               /u /app/oracle/oradata/cams/control ctl               /u /app/oracle/oradata/cams/control ctl )                调度作业队列的 SNP 进程的数量以及 SNP 进程觉醒时间间隔 秒              JOB_QUEUE_PROCESSES=               JOB_QUEUE_INTERVAL=

存储追踪和告警文件的路径              user_dump_dest 指定记录 Oracle 用户进程产生的追踪和告警信息的文件的              存放路径 background_dump_dest 指定记录 Oracle 后台进程产生的追踪和              告警信息的文件的存放路径 core_dump_dest指定Oracle运行所产生的core              dump 信息的文件的存放路径              background_dump_dest = /u /app/oracle/admin/cams/bdump              core_dump_dest = /u /app/oracle/admin/cams/cdump              user_dump_dest = /u /app/oracle/admin/cams/udump                              UTL_FILE_DIR 参数              UTL_FILE_DIR =               UTL_FILE_DIR 参数指定一个或多个目录用于 Oracle 应用的文件 I/O 如备              份数据到文件 在 CAMS 系统中将该值设置为 表示可供 Oracle 应              用进行文件 I/O *** 作的目录为任意目录 因此 只要空间允许 可以将备份数              据存放到任意目录下

监听配置文件              为了使得外部进程 如 CAMS后台程序 能够访问 Oracle 数据库 必须配              置 Oracle 网络服务器环境 配置 Oracle 网络服务器环境是通过配置              listener ora sqlnet ora 和 tnsnames ora 共三个文件来进行的 listener ora              即监听配置文件 在本小节说明 另两个文件分别在随后的两个小节说明              监听配置文件 listener ora 的存放路径为 $ORACLE_HOME/neork/admin              以下是一个示例              LISTENER =                          #监听器名称                 (DESCRIPTION_LIST =                   (DESCRIPTION =                     (ADDRESS_LIST =                       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))                     )                     (ADDRESS_LIST =                       (ADDRESS =              (PROTOCOL = TCP)              (HOST = localhost localdomain)              (PORT = ))                     )                   )                   (DESCRIPTION =                     (PROTOCOL_STACK =                       (PRESENTATION = GIOP)                       (SESSION = RAW)                     )                     (ADDRESS =              (PROTOCOL = TCP)              (HOST = localhost localdomain)              (PORT = ))

)                )                SID_LIST_LISTENER = #命名规则 SID_LIST_+上面定义的监听器名称  (SID_LIST =     (SID_DESC =       (SID_NAME = PLSExtProc )       (ORACLE_HOME = /u /app/oracle/product/ )       (PROGRAM = extproc)     )     (SID_DESC =       (GLOBAL_DBNAME = cams)       (ORACLE_HOME = /u /app/oracle/product/ )       (SID_NAME = cams)     )     (SID_DESC =       (GLOBAL_DBNAME = oid)       (ORACLE_HOME = /u /app/oracle/product/ )       (SID_NAME = oid)     )  )

& 说明  listener ora 文件中定义一个监听器 其缺省的名称为 LISTENER 这个监听器缺省以tcp/ip为协议地址且端口号为 运行 在CAMS应用中监听文件定义的监听器就使用这个缺省名字 并且使用缺省的协议 tcp/ip和缺省的端口号 待配置好监听文件以及随后说明的 sqlnet ora 和tnsnames ora 文件之后 就可以用以下命令将监听文件中定义的监听器启动起来      $ lsnrctl start停止监听器的命令为     $ lsnrctl stop监测监听器当前状态的命令为     $ lsnrctl status当 lsnrctl status 命令有如下输出结果     STATUS of the LISTENER          Alias                  LISTENER     Version                 TNSLSNR for Linux: Version Production     Start Date               JAN : :      Uptime                  days hr min sec    就说明监听器正在运行 否则说明监听器已经停止了 CAMS 系统的后台程序的正常运行不仅依赖于数据库实例的运行 还依赖于这个数据库监听器的运行 假如监听器没有启动 即使数据库已经启动 CAMS 后台程序仍然不能正常工作   如(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))所示的一个IPC 协议地址的监听 是为了外部进程调用用的 在数据库安装时自动设定不需要改动

在监听文件后部还有一个 SID_LIST_LISTENER 段 该段用于定义监听器的服务 即为哪些数据库实例提供监听服务 以 cams 实例为例 其对应的服务信息为    (SID_DESC =    (GLOBAL_DBNAME = cams) #数据库名     (ORACLE_HOME = /u /app/oracle/product/ )    (SID_NAME = cams) #数据库实例名)

sqlnet ora 文件              sqlnet ora 文件的存放路径为 $ORACLE_HOME/neork/admin 以下是一              个示例

NAMES DEFAULT_DOMAIN = localdomainNAMES DIRECTORY_PATH= (TNSNAMES ONAMES HOSTNAME)  & 说明    NAMES DEFAULT_DOMAIN 指定网络域名 NAMES DIRECTORY_PATH指定当解析客户端连接标识符时命名方法 naming metthods 采用的优先顺序 从左至右递减 在 CAMS 应用中 这两个参数采用上述所示的系统缺省值

tnsnames ora 文件tnsnames ora 文件的存放路径为 $ORACLE_HOME/neork/admin 以下是一个示例OID LOCALDOMAIN =  (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = localhost localdomain)(PORT = ))     )     (CONNECT_DATA =       (SERVICE_NAME = oid)     )  )CAMS LOCALDOMAIN =  (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = localhost localdomain)(PORT = ))     )     (CONNECT_DATA =       (SERVICE_NAME = cams)     )  )INST _>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13407306.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-30
下一篇 2023-07-30

发表评论

登录后才能评论

评论列表(0条)

保存