ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 教你如何成为Oracle 10g OCP - 第四章 初始化参数和实例

教你如何成为Oracle 10g OCP - 第四章 初始化参数和实例

原创 Linux操作系统 作者:tolywang 时间:2009-06-04 14:13:26 0 删除 编辑

 

4.1 启动和关闭数据库

1. 工具 SQL*Plus : 几乎所有的数据库管理工作都可以通过SQL*Plus来完成。

2. 环境变量: ORACLE_BASE, ORACLE_HOME , PATH , ORACLE_SID

3. $echo  ORACLE_SID 查看数据库实例
   $sqlplus / as sysdba 

4. SQL>!echo ORACLE_SID 通过SQL环境下的 ! 来处理OS层的命令

5. 静态参数文件pfile (parameter file),Oracle9i 之前,启动数据库实例,Oracle自动
去默认目录下找默认pfile是否存在,window下目录 %ORACLE_HOME%\database ; 对于unix
而言,默认为 $ORACLE_HOME/dbs .  一般Oracle会先找 initSID.ora文件,如果没有,会
查找init.ora文件是否存在,如果init.ora也没有,Oracle会报错。

6. 启动数据库的时候指定参数文件:
SQL > startup  pfile=/u01/product/oracle/my_init.ora

7. 对静态参数文件pfile来说,只是在数据库启动的时候会打开一次该文件,内容读入内存后,就
不再读取该文件,直到下一次重启数据库(重启后修改的参数才会生效) 。

8. 动态参数文件spfile, 引入spfile主要是为了弥补pfile必须重新启动修改参数才能生效的缺点,
同时9i 还引入很多自动调整的参数,这些参数都需要使用spfile . RMAN能对spfile进行自动备份。

9. spfile不能直接被编辑,否则将被破坏 。

10. Oracle9i开始,startup 后Oracle会去找spfileSID.ora, 如果没找到,继续找spfile.ora文件,如果
没有则找initSID.ora文件,如果还没有,找init.ora文件,如果还不能找到,则报错 。当然 startup pfile=
/u01/product/oracle/my_init.ora 还是被支持的。

11. 一般spfile和pfile之间可以互相转换 :
    create spfile[='SPFILE_NAME']  from pfile[='PFILE_NAME'] ; 
    create pfile[='PFILE_NAME']  from  spfile[='SPFILE_NAME'] ;
例如: create spfile from pfile=/u01/product/oracle/init.ora ;
       create pfile='/u01/init.ora'  from spfile ; 
       create pfile='/u01/init.ora'  from spfile=/u01/spfile ;
如果没有参数文件绝对地址,那么Oracle会在默认目录找initSID.ora, 会在默认目录下生成spfile; 


12. 验证Oracle采用pfile还是spfile启动的 ?
   SQL> show parameter spfile , 如果有显示value值,那么使用的是spfile ;

13. 修改参数: alter system set parameter_name=parameter_value scope=memeory|spfile|both SID='sid'|'*'
    memory 修改当前内存中的配置,spfile只修改spfile文件中的配置(内存中不变), both内存中和spfile文件都修改,
    both是默认值 。 SID='sid' 是针对RAC环境的,*表示所有实例。
例子:  alter system set shared_pool_size=200M ;   注意:有些参数是静态参数,只能修改spfile后重新启动生效

14. SQL> create pfile='/u01/init.ora' from spfile ;   

MXPSVDFMSNDB<*mxdell*/u01>$cat   init.ora
mxdell.__db_cache_size=11005853696
mxdell.__java_pool_size=67108864
mxdell.__large_pool_size=16777216
mxdell.__shared_pool_size=1778384896
mxdell.__streams_pool_size=0
*.archive_lag_target=600
*.audit_file_dest='/u01/product/admin/mxdell/adump'
*.background_dump_dest='/u01/product/admin/mxdell/bdump'

其中 * 表示对所有实例都生效,__db_cache_size表明该参数是ORACLE动态分配的,而不是系统管理员手动分配的。如果是
db_cache_size表明该参数是系统管理员手动分配的。sga_target 参数可以使ORACLE自动管理SGA区


15. 数据库的启动过程 nomount , mount , open 
startup nomount 过程: 这个过程中,Oracle会打开spfile及alert log文件, 这个阶段,我们可以重建控制文件。
mount 过程:  这个过程中,Oracle会在spfile中找到控制文件,打开控制文件,只要有一个控制文件无法
打开,就不能进入mount阶段,成功开启控制文件后,获取控制文件中的所记录的数据文件和online redo log路径和
名称,但是不会检验这些文件是否都存在。  alter database mount 进入这个阶段。这个过程将实例和数据库物理
文件关联 。 
open  过程:  根据控制文件里面的路径和名称,打开所有的datafile和online redo log, 只要有一个文件开启有问题,
那么不能进入open阶段 。


16. shutdown 的四个选项 : immediate , abort , transactional , normal

   shutdown immediate 最常用的一个命令选项,Oracle会强制中断目前的所有事务,并回滚这些事务。回滚完毕后,
强行中断处于连接状态的用户,将实例所有数据写入数据文件,完成后,清空内存。

   shutdown abort  常用的一个命令选项,类似服务器断电,所有内存立即被清空,事务立即被中断,没有提交回滚。
是比较危险的用法。

   shutdown transactional 不常用一个命令选项,等所有现在的事务提交或回滚完成后,再强行中断用户的连接,将
实例中所有数据写入数据文件,做完这些事情后,实例占用内存清空,如果有一个事务始终不提交或不回滚,那么会始终
等待而关闭不了 。

   shutdown 或者 shutdown normal 不常用一个命令选项,等所有现在的事务提交或回滚完成, 并等用户主动断开连接
才关闭 。

   速度上面:  abort最快,其次 immediate , 然后transactional , 最后 normal .

17. 非abort 选项关闭数据库都会触发一个完全的checkpoint , 将内存中的数据更新到数据文件中,保持数据的一致性。我们
称这样的数据库为“干净”的数据库,或一致的数据库。

18. 掉电或shutdown abort等状况 , 实例忽然消失,数据库来不及进行完全检查点,导致了数据不一致,下次启动数据库时,SMON进程进行实例恢复,恢复
完毕后我们才能打开数据库。

19. 使用EM管理实例。
Oracle10g提供网页形式的管理工具,Database Control, 我们可以在dbca时创建,或调用emca来创建。
开启关闭:

$ emctl  start  dbconsole
$ emctl  stop   dbconsole
$ emctl  status   dbconsole

一般网页访问路径:  http://主机名:1158/em 

 

20. 使用EM管理实例。

$ emca  -repos  create 创建repository, 所谓repository就是存放database control在管理数据库所用
到的信息的多个table , repository 所在schema是sysman . 

$ emca  -repos  create
$ emca  -config dbcontrol  db

如果要重建database control, 先使用 emca  -deconfig  dbcontrol db 删除配置,
然后使用 dbca  -repos  drop 删除repository ,
之后 $ emca  -config dbcontrol  db 再次创建 database control ,
OK之后我们就可以使用了:

$ emctl  start  dbconsole
$ emctl  stop   dbconsole
$ emctl  status   dbconsole

http://主机名:1158/em 

 


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-612442/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13203644