ITPub博客

首页 > 数据库 > Oracle > how to stop or start arch processes

how to stop or start arch processes

原创 Oracle 作者:apporacle 时间:2015-04-15 05:51:03 0 删除 编辑

   在有些特殊场景下,需要手动重启oracle arch processes,而不是重启db。举例来说,DB的状态正常,但是归档进程由于某些原因 挂起,此时我们就需要重启oracle 归档进程。
    在9i中,我们可以使用如下命令来启动和停止归档进程
    alter system archive log stop;
    alter system archive log start;
    在9i中,关于启动和停止oracle 归档进程的说明
    http://docs.oracle.com/cd/B10501_01/server.920/a96521/archredo.htm#4812
    在10g中,关于启动和停止oracle 归档进程的说明
    http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12007.htm
    在11g中,并没有启动和停止oracle归档进程的说明
    http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve007.htm

    通过官方文档的对其的描述,在9i和10g版本中是可以手动启动和停止归档进程(没有测试环境,未验证)
    在11g中,官方文档中虽然废除了手动启动和停止归档进程的命令,但是经过测试 发现,
    该命令仍然可以正常执行,但是实际上该命令并没有奏效。测试过程如下

--当前oracle版本

  1. > select * from v$version where rownum<2;
  2. BANNER
  3. --------------------------------------------------------------------------------
  4. Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
--开启归档模式

  1. > archive log list
  2. Database log mode No Archive Mode
  3. Automatic archival Disabled
  4. Archive destination /s01/oracle/app/oracle/product/11.2.0.4/dbhome_1/dbs/arch
  5. Oldest online log sequence 36
  6. Current log sequence 38

  7. > shutdown immediate
  8. Database closed.
  9. Database dismounted.
  10. ORACLE instance shut down.

  11. > startup mount
  12. ORACLE instance started.


  13. Total System Global Area 839282688 bytes
  14. Fixed Size 2257880 bytes
  15. Variable Size 503319592 bytes
  16. Database Buffers 331350016 bytes
  17. Redo Buffers 2355200 bytes
  18. Database mounted.

  19. > alter system set log_archive_dest_1='LOCATION=/arch';
  20. System altered.

  21. Elapsed: 00:00:00.03
  22. > alter database archivelog;
  23. Database altered.

  24. Elapsed: 00:00:00.00
  25. > archive log list
  26. Database log mode Archive Mode
  27. Automatic archival Enabled
  28. Archive destination /arch
  29. Oldest online log sequence 36
  30. Next log sequence to archive 38
  31. Current log sequence 38

  32. > alter database open;

--进行redo日志的切换

  1. > alter system switch logfile;
--查看当前的归档进程状态

  1. > select * from v$archive_processes;
  2.    PROCESS STATUS LOG_SEQUENCE STAT ROLES
  3. ---------- ---------- ------------ ---- ------------------------------------
  4.          0 ACTIVE 0 IDLE
  5.          1 ACTIVE 0 IDLE NO_FAL NO_SRL
  6.          2 ACTIVE 0 IDLE HEART_BEAT
  7.          3 ACTIVE 0 IDLE
  8.          4 STOPPED 0 IDLE
  9.         ......
  10. 此处输出结果内容较多,省略一部分。
  11. [oracle@uumile arch]$ ps -ef | grep ora_ar
    oracle    3054     1  0 22:44 ?        00:00:00 ora_arc0_test
    oracle    3058     1  0 22:44 ?        00:00:00 ora_arc1_test
    oracle    3062     1  0 22:44 ?        00:00:00 ora_arc2_test
    oracle    3066     1  0 22:44 ?        00:00:00 ora_arc3_test
    oracle    3262  3228  0 23:11 pts/1    00:00:00 grep ora_ar

--查看当前最大的归档进程数

  1. > sho parameter max

  2. NAME TYPE VALUE
  3. ------------------------------------ ----------- ------------------------------
  4. log_archive_max_processes integer 4

--停止arch processes,下面我们来手动停止arch process

  1. > alter system archive log stop;

  2. System altered.
  3. Elapsed: 00:00:00.00

  4. #此处我们可以看到,命令没有问题

--检查arch processes状态

  1. > select * from v$archive_processes;


  2.    PROCESS STATUS LOG_SEQUENCE STAT ROLES
  3. ---------- ---------- ------------ ---- ------------------------------------
  4.          0 ACTIVE 0 IDLE
  5.          1 ACTIVE 0 IDLE NO_FAL NO_SRL
  6.          2 ACTIVE 0 IDLE HEART_BEAT
  7.          3 ACTIVE 0 IDLE
  8.          4 STOPPED 0 IDLE

  9. [oracle@uumile arch]$ ps -ef | grep ora_ar
  10. oracle 3054 1 0 22:44 ? 00:00:00 ora_arc0_test
  11. oracle 3058 1 0 22:44 ? 00:00:00 ora_arc1_test
  12. oracle 3062 1 0 22:44 ? 00:00:00 ora_arc2_test
  13. oracle 3066 1 0 22:44 ? 00:00:00 ora_arc3_test
  14. oracle 3262 3228 0 23:11 pts/1 00:00:00 grep ora_ar

--启动arch process


  1. > alter system archive log start;


  2. System altered.


  3. Elapsed: 00:00:00.01
  4. sys@TEST(127.0.0.1)> ! ps -ef | grep arc
  5. oracle 3054 1 0 22:44 ? 00:00:00 ora_arc0_test
  6. oracle 3058 1 0 22:44 ? 00:00:00 ora_arc1_test
  7. oracle 3062 1 0 22:44 ? 00:00:00 ora_arc2_test
  8. oracle 3066 1 0 22:44 ? 00:00:00 ora_arc3_test
  9. oracle 3267 2959 0 23:12 pts/1 00:00:00 /bin/bash -c ps -ef | grep arc

总结
    通过上面的测试,可以得出结论,alter system archive log stop/start在9i 或者10g中是可以执行和生效的。
    在11g中,alter system archive log start/stop 语法和命令没有问题,但是命令并没有真正生效。


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

请登录后发表评论 登录
全部评论

注册时间:2013-06-28

  • 博文量
    35
  • 访问量
    230154