实例由内存结构和进程组成。它暂时存在于cpu和RAM中。当关闭运行的实例时,实例将消失的无影无踪。
因此,实例的生命周期就是其在内存中存在的时间:我们可以启动和停止。
构成实例的进程称为后台进程。当实例处于活动状态时,它们始终存在并运行。
这些进程很大程度上完全自我管理。
操作系统提供的共享内存段实现的内存结构叫做SGA(系统全局区)。SGA在实例启动时
分配,在实例关闭时释放。
用户会话由在用户计算机本地运行的用户进程(连接到在服务器计算机实例上本地运行的服务器进程)组成。用户进程与服务器进程的连接通常由局域网实现,使用Oracle的专用Oracle Net协议。
用户进程-服务器进程分离实现了客户端-服务器体系结构:用户进程生成SQL,服务器进程执行SQL。我们用的sql*plus等都可以看做是用户进程。
而服务器进程有时也称作前台进程,与每一个服务器进程相关的是一个非共享内存区
(PGA).PGA与SGA不同,PGA是会话专用的。当然,后台进程也拥有PGA。任一会话的PGA的大小要根据任一时间的会话的内存需要而异。DBA可以定义所有PGA总量的上限,而Oracle来动态管理PGA对会话的分配。
SGA内存由所有的前台和后台进程共享,而PGA内存仅供分配到的会话的前台进程访问。SGA和PGA内存都可以实现自动管理。
单实例数据库的体系结构由4个交互组件构成:
*用户与用户进程交互
*用户进程与服务器进程交互
*服务器进程与实例交互
*实例与数据库交互