Welcome 微信登录

首页 / 数据库 / MySQL / RMAN 提示符下执行SQL语句

在手动恢复数据库时,有时候需要在SQL*Plus提示符以及操作系统提示符,RMAN提示符下来回切换显得有些繁琐。实际上RMAN为我们提供了命令行下执行一些简单的SQL语句以及PL/SQL的方法,以避免上述情形。本文描述了RMAN提示符下的一些常用命令及其用法。1、RMAN提示符下执行SQL语句语法: SQL "<command>" ;语法比较简单,就是提示符下输入SQL,后接SQL命令,命令用单引号括起来command 通常为可执行的SQL命令语句,也可以为PL/SQL块使用限制如果SQL语句中包含文件名,则文件名及路径需要使用两个单引号括起来,整个SQL语句首尾需要使用双引号可以执行SQL查询语句,但是无任何结果输出RMAN提示符下常用的命令startup [nomount | mount], shutdown immediatealter system archive log currentalter database open [resetlogs]2、演示RMAN提示符下执行SQL语句a、执行常用的starup, alter SQL 语句
robin@SZDB:~> export Oracle_SID=GOBO1
robin@SZDB:~> rman target /Recovery Manager: Release 10.2.0.3.0 - Production on Tue Jun 4 11:04:26 2013Copyright (c) 1982, 2005, Oracle.  All rights reserved.connected to target database (not started)RMAN> startup nomount;Oracle instance startedTotal System Global Area   536870912 bytesFixed Size                   2074080 bytes
Variable Size                314575392 bytes
Database Buffers           213909504 bytes
Redo Buffers                 6311936 bytesRMAN> alter database mount;using target database control file instead of recovery catalog
database mountedRMAN> alter database open;database openedRMAN> list copy of archivelog all; --->查看当前数据库的归档日志,列出了1个已归档日志
List of Archived Log Copies
Key   Thrd Seq   S Low Time          Name
------- ---- ------- - ----------------- ----
2084    1    8     A 20130604 09:53:17 /u02/database/GOBO1/archive/arch_816906485_1_8.arcRMAN> sql " alter system archive log current "; --->对当前日志进行归档sql statement:  alter system archive log currentRMAN> list copy of archivelog all;                --->归档后可以看到多出了1个已归档日志List of Archived Log Copies
Key   Thrd Seq   S Low Time          Name
------- ---- ------- - ----------------- ----
2084    1    8     A 20130604 09:53:17 /u02/database/GOBO1/archive/arch_816906485_1_8.arc
2085    1    9     A 20130604 10:46:36 /u02/database/GOBO1/archive/arch_816906485_1_9.arc
b、执行SQL查询语句,如下,没有任何结果输出
RMAN> sql "select sysdate from dual";    sql statement: select sysdate from dualRMAN> sql " select * from v$database ";sql statement:  select * from v$databasec、执行带有路径及文件名的SQL语句
--下面的执行那个中没有使用双引号开头以及双单引号括住路径,收到错误提示
RMAN> sql " create tablespace ts1 datafile "/u02/database/GOBO1/oradata/ts1.dbf" size 10m ";RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01006: error signalled during parse
RMAN-02001: unrecognized punctuation symbol "/"--下面的SQL语句被成功执行
RMAN> sql "create tablespace ts1 datafile ""/u02/database/GOBO1/oradata/ts1.dbf"" size 10m";sql statement: create tablespace ts1 datafile ""/u02/database/GOBO1/oradata/ts1.dbf"" size 10m
d、执行PL/SQL块
RMAN> sql " begin dbms_lock.sleep(3); end;";sql statement:  begin dbms_lock.sleep(3); end;
e、rman块命令方式执行PL/SQL块
RMAN> run{
2> sql " begin dbms_lock.sleep(3); end; ";
3> }sql statement:  begin dbms_lock.sleep(3); end;RMAN> run {
2> sql " drop tablespace ts1 including contents and datafiles ";
3> }sql statement:  drop tablespace ts1 including contents and datafilesRMAN> shutdown immediate;database closed
database dismounted
Oracle instance shut down
f、切换到系统提示符下
RMAN> host;robin@SZDB:~> exit
exit
host command completeRMAN>更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12学习Oracle需要掌握的重要知识点Oracle存储过程实现导出表结构相关资讯      RMAN  执行SQL语句 
  • RMAN故障一例(归档的备份,从不  (今 20:42)
  • RMAN的FORMATA格式说明  (03月10日)
  • Oracle 11g RMAN复制数据库的测试  (01月19日)
  • RMAN数据库迁移  (05月22日)
  • 使用RMAN复制恢复开发库环境  (02月17日)
  • Oracle 11g RMAN跨平台传输表空间  (01月19日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数