oracle学习笔记7(数据字典,)

ORACLE数据字典(DD)

数据字典的结构是基表和视图,记录了数据库的系统信息, 其所有者为SYS。它由内部RDBMS(X$)表,数据字典表($),动态性能视图(v$)和数据字典视图(all_,user_,dba_)组成。当执行DDL语句时,数据库修改数据字典。数据字典视图有三种:ALL_xxx,USER_xxx,DBA_xxx。

(dba_tables、user_tables、all_tables、dba_users、dba_sys_privs(用户所具有的系统权限)、dba_tab_privs(用户所具有的对象权限)、dba_col_privs(用户所具有的列权限)、dba_role_privs(用户所具有的角色)、dba_jobs(sql执行计划))。

动态性能视图(Dynamic Performance Tables)

是一组虚表(Virtual tables),记录数据库当前的活动情况,从内存和控制文件中获取信息,所有者为SYS,以v$开头,v$fixed_table(一览表);(v$controlfile、v$database、v$datafile、v$instance、v$logfile、v$parameter、v$session、v$SGA、v$spparameter、v$tablespace、v$thread、v$version、v$db_cache_advice(buffer cache命中率)) 诊断IO、CPU性能状况的方法:

查询并分析v$system_event/v$session_event(db file sequent )/v$session_wait(p1-p3的值.file_id/block_id/blocks)可查询Oracle系统的性能(包括CPU/IO/其他性能状况); 查询并分析v$sqlarea(disk_reads或buffer_gets/executions较大的SQL)。

实例(instance)

实例是用来访问数据库文件集的存储结构以及后台进程的集合,它是存取和控制数据库的软件机制。ORACLE实例分为单进程实例和多进程实例。 实例是由内存结构和进程结构组成的;

内存结构:基本的内存结构有系统全局区(SGA)和程序全局区(PGA)。 系统全局区(SGA):是系统为实例分配的一组共享缓冲存储区。它分为: 数据高速缓存区(Database Buffer Cache):用来存储最近访问的数据块信息。由DB_CACHE_SIZE决定,它的大小由数据库实例init.ora中的DB_BLOCK_BUFFERS决定,ORACLE用LRU(最近最少算法)来管理可用空间。它分为脏列表、LRU(Least Recently Used)列表(空闲缓冲块、正在存取的缓冲块、已被修改但未被移到脏列表的缓冲块) SQL共享池(Share Pool):存放最近执行的SQL语句和数据字典信息。大小由SHARED_POOL_SIZE决定。分为字典缓存区(Database Dictionary Buffer

Cache)和库缓存区(共享SQL区和PL/SQL区);share pool的空闲量(诊断其性能):select inst_id,bytes from gv$sgastat; 空闲大小:select value from v$parameter where name=’shared_pool_size’;

重做日志缓存区(Redo Log Buffer Cache):在重做项被写到重做日志前,事物先被写到重做日志缓冲区中,它的大小由init.ora中的LOG_BUFFER决定。

大池;Java池;

进程结构:

用户进程:用于执行一个应用程序的软件代码,用户进程同服务器进程进行通信是通过程序接口完成的。

服务器进程:ORACLE创建服务器进程来处理来自连接上的用户进程的请求。一个服务器进程负责同用户进程的会话。

后台进程:为了增强用户进程运行的ORACLE程序处理的功能。

几个重要的后台进程:

数据写(DBWn):数据库书写器进程,从数据高速缓存区中将修改的数据块(脏缓冲区)写入到数据文件中,并使用LRU算法来保持缓冲区中的数据块为最近经常使用的,以减少I/O次数。该进程在启动实例时自动启动。

日志写(LGWR):日志书写器将重做日志写入日志文件中。重做日志的实体是在SGA的重做日志缓冲区中生成的,LGWR将重做日志实体写入到重做日志文件中。该进程在启动实例时自动启动。

系统监视器(SMON):在一个失败实例进程启动的时候执行崩溃回复,将数据字典中空闲的区域连接起来变成连续的。

1. redo:重新应用被记载到重做日志但未写入数据文件的数据。

2. undo:取消未提交的数据。在打开数据库之后,Oracle自动使用undo段回退未提交的数据。

进程监视器(PMON):在用户进程失败的时候重新创建进程。

检查点(CKPT)

归档(ARCH)

ORACLE数据库的启动与关闭

启动:

1. nomount(非安装启动):NONOUNT选项仅仅创建一个Oracle实例。读取

init.ora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Init.ora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。实例名根据Oracle_SID设置,不一定要与打开的数据库名称相同。

2. mount(安装启动):创建实例并且安装数据库,但没有打开数据库。Oracle系

统读取控制文件中关于数据文件和重作日志文件的内容,但并不打开该文件。这种打开方式常在数据库维护操作中使用,如对数据文件的更名、改变重作日志以及打开归档方式等。

3. open(打开):创建实例、安装实例和打开数据库的所有三个步骤。此时数据库使

数据文件和重作日志文件在线,通常还会请求一个或者是多个回滚段。这时系统除了可以看到前面Startup Mount方式下的所有提示外,还会给出一个"数据库已经打开"的提示。此时,数据库系统处于正常工作状态,可以接受用户请求。

其他打开方式:

STARTUP RESTRICT:数据库将被成功打开,但仅仅允许一些特权用户(具有DBA角

色的用户)才可以使用数据库;startuppfile=参数文件名:带初始化参;关闭:;

1. shutdown normal:发出该命令后,任何新的连接都将再不允许连接到数据库。

在数据库关闭之前,Oracle将等待目前连接的所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复。

2. shutdown immediate:常用的一种关闭数据库的方式,想很快地关闭数据库,

但又想让数据库干净的关闭,常采用这种方式。当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。

3. shutdown transactional:该命令常用来计划关闭数据库,它使当前连接到

系统且正在活动的事务执行完毕,运行该命令后,任何新的连接和事务都是不允许的。在所有活动的事务完成后,数据库将和SHUTDOWN IMMEDIATE同样的方式关闭数据库。

4. shutdown abort:关闭数据库的最后一招,也是在没有任何办法关闭数据库的

情况下才不得不采用的方式,一般不要采用。如果下列情况出现时可以考虑采用这种方式关闭数据库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值