RMAN 提示符下執行SQL語句

us_yunleiwang發表於2013-12-05

在手動恢復資料庫時,有時候需要在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;   ---&gt檢視當前資料庫的歸檔日誌,列出了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 ';   ---&gt對當前日誌進行歸檔  
  40.   
  41. sql statement:  alter system archive log current   
  42.   
  43. RMAN> list copy of archivelog all;                ---&gt歸檔後可以看到多出了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部落格 ” ,連結:http://blog.itpub.net/23490154/viewspace-1062397/,如需轉載,請註明出處,否則將追究法律責任。

相關文章