ITPub博客

首页 > 数据库 > Oracle > RMAN 提示符下执行SQL语句

RMAN 提示符下执行SQL语句

Oracle 作者:us_yunleiwang 时间:2013-12-05 16:14:07 0 删除 编辑

在手动恢复数据库时,有时候需要在SQL*Plus提示符以及操作系统提示符,RMAN提示符下来回切换显得有些繁琐。实际上RMAN为我们提供了命令行下执行一些简单的SQL语句以及PL/SQL的方法,以避免上述情形。本文描述了RMAN提示符下的一些常用命令及其用法。

 

1、RMAN提示符下执行SQL语句
       语法: SQL '' ;    
       语法比较简单,就是提示符下输入SQL,后接SQL命令,命令用单引号括起来
      command 通常为可执行的SQL命令语句,也可以为PL/SQL块

      使用限制
            如果SQL语句中包含文件名,则文件名及路径需要使用两个单引号括起来,整个SQL语句首尾需要使用双引号
            可以执行SQL查询语句,但是无任何结果输出

      RMAN提示符下常用的命令
            startup [nomount | mount], shutdown immediate
            alter system archive log current
            alter database open [resetlogs]

 

2、演示RMAN提示符下执行SQL语句

  1. a、执行常用的starup, alter SQL 语句  
  2. robin@SZDB:~> export ORACLE_SID=GOBO1  
  3. robin@SZDB:~> rman target /  
  4.   
  5. Recovery Manager: Release 10.2.0.3.0 - Production on Tue Jun 4 11:04:26 2013  
  6.   
  7. Copyright (c) 1982, 2005, Oracle.  All rights reserved.  
  8.   
  9. connected to target database (not started)  
  10.   
  11. RMAN> startup nomount;  
  12.   
  13. Oracle instance started  
  14.   
  15. Total System Global Area     536870912 bytes  
  16.   
  17. Fixed Size                     2074080 bytes  
  18. Variable Size                314575392 bytes  
  19. Database Buffers             213909504 bytes  
  20. Redo Buffers                   6311936 bytes  
  21.   
  22. RMAN> alter database mount;  
  23.   
  24. using target database control file instead of recovery catalog  
  25. database mounted  
  26.   
  27. RMAN> alter database open;  
  28.   
  29. database opened  
  30.   
  31. RMAN> list copy of archivelog all;   --->查看当前数据库的归档日志,列出了1个已归档日志  
  32.   
  33.   
  34. List of Archived Log Copies  
  35. Key     Thrd Seq     S Low Time          Name  
  36. ------- ---- ------- - ----------------- ----  
  37. 2084    1    8       A 20130604 09:53:17 /u02/database/GOBO1/archive/arch_816906485_1_8.arc  
  38.   
  39. RMAN> sql ' alter system archive log current ';   --->对当前日志进行归档  
  40.   
  41. sql statement:  alter system archive log current   
  42.   
  43. RMAN> list copy of archivelog all;                --->归档后可以看到多出了1个已归档日志  
  44.   
  45. List of Archived Log Copies  
  46. Key     Thrd Seq     S Low Time          Name  
  47. ------- ---- ------- - ----------------- ----  
  48. 2084    1    8       A 20130604 09:53:17 /u02/database/GOBO1/archive/arch_816906485_1_8.arc  
  49. 2085    1    9       A 20130604 10:46:36 /u02/database/GOBO1/archive/arch_816906485_1_9.arc  
  50.   
  51.   
  52. b、执行SQL查询语句,如下,没有任何结果输出  
  53. RMAN> sql 'select sysdate from dual';       
  54.   
  55. sql statement: select sysdate from dual  
  56.   
  57. RMAN> sql ' select * from v$database ';  
  58.   
  59. sql statement:  select * from v$database   
  60.   
  61. -- Author : Robinson  
  62. -- Blog   : http://blog.csdn.net/robinson_0612  
  63.   
  64. c、执行带有路径及文件名的SQL语句  
  65. --下面的执行那个中没有使用双引号开头以及双单引号括住路径,收到错误提示  
  66. RMAN> sql ' create tablespace ts1 datafile '/u02/database/GOBO1/oradata/ts1.dbf' size 10m ';  
  67.   
  68. RMAN-00571: ===========================================================  
  69. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============  
  70. RMAN-00571: ===========================================================  
  71. RMAN-00558: error encountered while parsing input commands  
  72. RMAN-01006: error signalled during parse  
  73. RMAN-02001: unrecognized punctuation symbol "/"  
  74.   
  75. --下面的SQL语句被成功执行  
  76. RMAN> sql "create tablespace ts1 datafile ''/u02/database/GOBO1/oradata/ts1.dbf'' size 10m";  
  77.   
  78. sql statement: create tablespace ts1 datafile ''/u02/database/GOBO1/oradata/ts1.dbf'' size 10m  
  79.   
  80.   
  81. d、执行PL/SQL块  
  82. RMAN> sql ' begin dbms_lock.sleep(3); end;';  
  83.   
  84. sql statement:  begin dbms_lock.sleep(3); end;  
  85.   
  86.   
  87. e、rman块命令方式执行PL/SQL块  
  88. RMAN> run{  
  89. 2> sql ' begin dbms_lock.sleep(3); end; ';  
  90. 3> }  
  91.   
  92. sql statement:  begin dbms_lock.sleep(3); end;   
  93.   
  94. RMAN> run {  
  95. 2> sql ' drop tablespace ts1 including contents and datafiles ';  
  96. 3> }  
  97.   
  98. sql statement:  drop tablespace ts1 including contents and datafiles   
  99.   
  100. RMAN> shutdown immediate;  
  101.   
  102. database closed  
  103. database dismounted  
  104. Oracle instance shut down  
  105.   
  106.   
  107. f、切换到系统提示符下  
  108. RMAN> host;  
  109.   
  110. robin@SZDB:~> exit  
  111. exit  
  112. host command complete  
  113.   
  114. RMAN>  

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

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

注册时间:2010-03-15

  • 博文量
    198
  • 访问量
    1393126