数据库的启动与关闭

来源:互联网 发布:金庸 知乎 过时 编辑:程序博客网 时间:2024/06/06 16:29

 

从SQL*PLUS中启动和关闭数据库
一、启动数据库
  在启动数据库时,oracle在$ORACLE_HOME/dbs(linux)或者%ORACLE_HOME%/database(windows)中按照下列顺序寻找参数文件:
  spfile$oracle_sid.ora
  spfile.ora
  init$oracle_sid.ora
  如果想使用自己指定的参数文件启动数据库,需要使用pfile指定初始化参数文件的路径和名称,但不能使用spfile指定服务器参数文件。如:pfile=pfile_path_name,
  1、启动实例
  读取参数文件,分配内存、启动后台进程,读取控制文件的路径和名称,但不读取控制文件。
  SQL>startup nomount
  重建或者恢复控制文件需要在这种模式下。
  2、装在数据库
  SQL>startup mount
  如果已经启动实例:
  SQL>alter database mount
  按照参数文件中control_files指定的路径和名称打开控制文件,读取数据文件和重做日志的路径和名称
  修改数据库如归档模式、修改数据文件、日志文件的名称、路径,恢复数据库,通常需要在这种模式下。
  3、打开数据库
  SQL>STARTUP [OPEN]  --startup默认为startup open
  如果已经装在数据库:
  SQL>alter database open
  根据控制文件中指定的路径和名称读取数据文件和控制文件,并且检查数据库是否一致,如果一致则打开数据库,循序用户连接。
  如果数据库不一致,则要看是需要实力恢复还是介质恢复,如果需要实力恢复,则数据库自动进行前滚和后滚,完成数据库恢复。
  如果是需要介质恢复,则返回提示用户需要介质恢复,当用户完成介质恢复之后,打开数据库。
二、限制数据库的访问
  当需要维护数据库时,需要打开数据库,但不想普通用户连接,可以以受限方式打开
  1、当数据库关闭时
  sql>startup restrict;
  当数据库处于nomount、mount、或者open模式时,也可以使用下列方式使数据库以受限方式打开
  SQL>STARTUP FORCE RESTRICT;
  以受限方式打开数据库,除非用户具有restricted session权限,否则当用户连接数据库时,将返回错误:oracle只对有restrictedsession权限的用户可用.
  当以受限方式打开数据库之后,可以使用下列方式取消受限方式:
  SQL>alter system disable restricted session;
  2、当数据库已经打开:
  sql>alter system enable restricted session ;
  以这样方式启用受限方式,启用受限之前已经连接数据库的用户不受影响,可以继续进行操作。但不允许不具有restricted session权限的用户连接。
  取消受限:SQL>alter system disable restricted session;
三、数据库只读
  这种方式主要用于备用数据库
  当不允许用户更改数据库时也可以使用这种方式。
  1、sql>startup mount;
  2、sql>alter database open read only;
四、关闭数据库
  1、shutdown [normal]   --shutdown默认为shutdown normal
    a、不允许新用户连接数据库
    b、等待所有已经连接的用户离开数据库
    c、发布checkpoint,把内存中的数据写入数据文件和日志文件
    d、终止后台进程、释放内存,关闭数据库
  2、shutdown transactional
    a、不允许新用户连接数据库
    b、断开没有操作的用户的连接
    c、正在开展事务的用户允许完成事务,完成事务之后被断开连接,不允许开始新的事务。
    d、发布checkpoint,将内存中的数据写入数据文件和日志文件
    e、终止后台进程、释放内存,关闭数据库
  3、shutdown immediate
    a、不允许新用户连接数据库
    b、断开所有用户的连接,没有完成的事务将被rollback
    c、发布checkpoint,将内存中的数据写入数据文件和日志文件
    d、终止后台进程、释放内存,关闭数据库
  4、shutdown abort
    a、不允许建立新连接
    b、断开所有用户的连接
    c、未完成的事务既不被提交也不被rollback
    d、不发布checkpoint,不会将内存中的数据写入数据文件年和日志文件
    e、终止后台进程,释放内存,关闭数据库
  该关闭方式,在启动数据库的时候需要实例恢复。
  以这种方式关闭数据库,然后以只读方式打开数据库,需要介质恢复。recover database;
五、停顿数据库
  当数据库处于停顿时,有如下限制:
  1、所有非活动会话不允许发布任何数据库命令
  2、允许完成所有活动会话
  3、所有新登录企图被挂起排队
  4、允许DBA进行操作
  SQL>alter system quiesce restricted;
  结束停顿:
  SQL>alter system unquiesce;
六、挂起数据库
  数据库挂起之后,禁止所有对数据文件的读和写。
  SQL>alter system suspend;
  继续执行:
  SQL>alter system resume;
七、删除数据库
  sql>drop database;
八、监控数据库的状态
  1、使用v$instance监控实例状态
  2、使用database_properties监控数据库的设置
  3、使用v$database监控数据库的状态
原创粉丝点击