Oracle学习笔记:启停数据库实例、初始化参数

    xiaoxiao2022-07-16  120

    1、启动和关闭数据库实例

    sqlplus    /nolog !echo    $ORACLE_SID connect   /   as  sysdba startup shutdown  immediate

      2、静态参数文件

      在Oracle 9i 之前,通过静态文本存放初始化参数,可通过文本编辑器编辑。

      在参数文件中,可以为相同的参数设置多个条目,对于这样的重复参数,Oracle会选最后一个。

      在Oracle 9i之前,如果在启动实例时没有指定参数文件,那么Oracle会首先在默认的目录下查找initSID.ora文件,Linux的默认目录是$ORACLE_HOME/dbs,Windows的默认目录是$ORACLE\database;如果没找到,会查找init.ora是否存在;如果没找到,就会报错:在处理系统参数时失败,不能打开参数文件。

      在启动时,也可以直接指定pfile,命令为:

      startup   pfile = ’你的路径/你的pfile文件名.ora‘

      3、动态参数文件

      从Oracle 9i开始,提供了动态参数,也就是修改了内存中的参数值后,不用重启,就能使参数生效的机制,同时提供了动态参数文件spfile,这是一个二进制文件,不能用notepa或者vi编辑器编辑,如果希望对参数的修改持久化,那么也必须修改spfile中的参数值。

      另外,rman支持对spfile的自动备份,但不支持pfile的自动备份。

      在参数文件中,每个参数都有一个前缀,* 表示对所有实例有效,“实例名称”表示只对这个实例有效。

      由于加了动态参数文件,系统在启动时,查找参数文件的顺序也有所变化:默认路径下的spfileSID.ora   -->  spfile.ora   - ->  initSID.ora  -->   init.ora,startup pfile ='...'这样的命令还是有用的,注意不支持这样的语法:startup spfile = ’...'  。

      通过pfile来创建spfile,如果下面的命令不指定路径,那么用的都是默认路径:

      create   spfile =’/u01/app/oracle‘ from pfile   = '/u01/app/oracle/initora10g.ora'

      --禁用自动内存管理

      alter   system   set  sga_target = 0

      --显示参数的值

      show   parameter   spfile

      show  parameter   shared_pool_size

      --另一种方法显示参数的值

      select    value   from  v$parameter  where name = 'spfile'

      select    value   from  v$spparameter where name = 'shared_pool_size'

    --只在内存中修改参数的值,重启后,还是spfile的值,而不是这里的100M

      alter   system   set   shared_pool_size = 100M   scope = memory

      --只在spfile文件中修改参数的值,重启后才会生效

      alter   system   set   shared_pool_size = 100M   scope = spfile

      --同时修改spfile和内存中的值

      alter   system   set  shared_pool_size = 100M scope = both

      下面显示了,如果把spfile中的一个参数设置为一个无效的值后,如何解决系统再次启动时,无法启动的问题:

    alter   system   set   sga_target = 1000000M    scope = spfile shutdown  immediate startup

      报错:out   of   memory

      alter   system  set  sga_target = 1000M

      报错:oracle 不可用

      create  pfile = '/u01/init.ora'   from   spfile

      可以打开pfile文件,手动编辑,也可以直接在文件最后加一行:

    !echo  '*.sga_target = 1000M'   >>    /u01/init.ora create   spfile   from   pfile = '/u01/init.ora' startup

      4、实例的启动和关闭的具体步骤

      nomount阶段:找到参数文件,并根据其中的值启动实例,打开告警日志 alterSID.log,路径为backgroud_dump_dest参数所指定的目录。

      mount阶段:根据参数文件中的control_files参数的值,打开所有的控制文件,只要有一个打开失败,就不能成功进入mount阶段。打开文件后,取得所有的数据文件、联机日志文件的路径,但不会验证这些文件是否存在。

      open阶段:打开所有的数据文件、联机日志文件。

      具体的启动步骤可以是下面的一种:

    startup   nomount alter  database   mount alter  database   open startup mount alter  database open startup open

      实例关闭时,有多个选项:

      abort:相当于模拟服务器突然断电的情况。

      immediate:强制回滚当前正在运行的所有事务,把内存中的脏数据写入数据文件,清空实例的所有内存。一般采用这个选项。

      transactional:等待当前正在运行的事务主动提交或回滚,之后中断所有连接,写回数据文件,清空实例内存。

      normal:等待当前正在运行的事务主动提交或回滚,同时还会等待所有用户主动中断连接。

      需要注意的是startup  force相当于 shutdown   abort ,然后再 startup   

    最新内容请见作者的GitHub页:http://qaseven.github.io/

       

    最新回复(0)