oracle中rman备份语句及详细分析
oracle数据库全库备份语句

oracle数据库全库备份语句Oracle数据库是一种关系型数据库管理系统,提供了全库备份的功能,可以用来备份整个数据库。
下面列举了10个不同的Oracle数据库全库备份语句。
1. 使用RMAN备份全库:使用RMAN工具备份整个Oracle数据库,可以使用以下命令:```RMAN> backup database;```2. 使用expdp备份全库:使用expdp工具备份整个Oracle数据库,可以使用以下命令:```expdp system/password@database_name full=Y directory=backup_dir dumpfile=full_backup.dmp logfile=full_backup.log;```3. 使用exp备份全库:使用exp工具备份整个Oracle数据库,可以使用以下命令:```exp system/password@database_name full=y file=full_backup.dmp log=full_backup.log;4. 使用Data Pump备份全库:使用Data Pump工具备份整个Oracle数据库,可以使用以下命令:```expdp system/password@database_name full=Y directory=backup_dir dumpfile=full_backup.dmp logfile=full_backup.log;```5. 使用RMAN增量备份全库:使用RMAN工具进行增量备份,可以使用以下命令:```RMAN> backup incremental level 1 cumulative database;```6. 使用expdp表空间备份:使用expdp工具备份指定表空间的数据,可以使用以下命令:```expdp system/password@database_name tablespaces=tablespace_name directory=backup_dir dumpfile=tablespace_backup.dmplogfile=tablespace_backup.log;7. 使用exp表空间备份:使用exp工具备份指定表空间的数据,可以使用以下命令:```exp system/password@database_name tablespaces=tablespace_name file=tablespace_backup.dmp log=tablespace_backup.log;```8. 使用RMAN备份控制文件和参数文件:使用RMAN工具备份控制文件和参数文件,可以使用以下命令:```RMAN> backup current controlfile;```9. 使用expdp备份指定用户的数据:使用expdp工具备份指定用户的数据,可以使用以下命令:```expdp system/password@database_name schemas=user_name directory=backup_dir dumpfile=user_backup.dmp logfile=user_backup.log;```10. 使用exp备份指定用户的数据:使用exp工具备份指定用户的数据,可以使用以下命令:```exp system/password@database_name owner=user_name file=user_backup.dmp log=user_backup.log;```以上是10个不同的Oracle数据库全库备份语句,可以根据实际需求选择合适的备份方式进行数据库备份。
ORACLE查看RMAN的备份信息总结

ORACLE查看RMAN的备份信息总结关于Oracle数据库的RMAN备份,除了邮件外,是否能通过其它⽅式检查RMAN备份的成功与失败呢?其实我们可以通过下⾯SQL脚本来检查某个时间段备份失败的记录:SELECT * FROM V$RMAN_STATUSWHERE START_TIME >= TO_DATE(&START_TIME,'YYYY-MM-DD HH24:MI:SS')AND END_TIME <= TO_DATE(&END_TIME ,'YYYY-MM-DD HH24:MI:SS')AND OPERATION ='BACKUP'AND STATUS !='COMPLETED'AND STATUS NOT LIKE'RUNNING%'查看备份成功的历史记录:SELECT * FROM V$RMAN_STATUSWHERE START_TIME >= TO_DATE(&START_TIME,'YYYY-MM-DD HH24:MI:SS')AND END_TIME <= TO_DATE(&END_TIME ,'YYYY-MM-DD HH24:MI:SS')AND OPERATION ='BACKUP'AND STATUS ='COMPLETED'其中STATUS主要有RUNNING、RUNNING WITH WARNINGS、RUNNING WITH ERRORS、COMPLETED、COMPLETED WITH WARNINGS、COMPLETED WITH ERRORS、FAILED等⼏种状态。
另外,如果你在命令窗⼝输⼊[oracle@MyDB ~]$ dateTue Jul 19 10:52:02 CST 2016[oracle@MyDB ~]$ rman target /Recovery Manager: Release 10.2.0.5.0 - Production on Tue Jul 19 10:52:13 2016Copyright (c) 1982, 2007, Oracle. All rights reserved.connected to target database: SCM2 (DBID=3990839260)RMAN>在V$RMAN_STATUS⾥⾯,你会看到插⼊了⼀条记录STATUS为RUNNING状态SQL> COL ROW_TYPE FOR A10;SQL> COL OPERATION FOR A10;SQL> COL COMMAND_ID FOR A20;SQL> COL STATUS FOR A30;SQL> COL OBJECT_TYPE FOR A16;SQL> SELECT ROW_TYPE, COMMAND_ID, OPERATION, STATUS,OBJECT_TYPE2 FROM V$RMAN_STATUS3 WHERE START_TIME >= TO_DATE('2016-07-19 10:52:00', 'YYYY-MM-DD HH24:MI:SS');ROW_TYPE COMMAND_ID OPERATION STATUS OBJECT_TYPE---------- -------------------- ---------- ----------------- ----------------SESSION 2016-07-19T10:52:13 RMAN RUNNING此时如果在RMAN中随意执⾏⼀个错误命令,如下所⽰[oracle@MyDB ~]$ rman target /Recovery Manager: Release 10.2.0.5.0 - Production on Tue Jul 19 10:52:13 2016Copyright (c) 1982, 2007, Oracle. All rights reserved.connected to target database: SCM2 (DBID=3990839260)RMAN> /RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-00558: error encountered while parsing input commandsRMAN-01006: error signalled during parseRMAN-02001: unrecognized punctuation symbol "/"SQL> COL ROW_TYPE FOR A10;SQL> COL OPERATION FOR A10;SQL> COL COMMAND_ID FOR A20;SQL> COL STATUS FOR A30;SQL> COL OBJECT_TYPE FOR A16;SQL> SELECT ROW_TYPE, COMMAND_ID, OPERATION, STATUS,OBJECT_TYPE2 FROM V$RMAN_STATUS3 WHERE START_TIME >= TO_DATE('2016-07-19 10:52:00', 'YYYY-MM-DD HH24:MI:SS');ROW_TYPE COMMAND_ID OPERATION STATUS OBJECT_TYPE---------- -------------------- ---------- --------------------- ----------------SESSION 2016-07-19T10:52:13 RMAN RUNNING WITH ERRORS在RMAN中退出,此时你会看到STAUS记录从"RUNNING WITH ERRORS"变成了"COMPLETED WITH ERRORS"也就是说,你可以在这个视图⾥⾯查看在RMAN⾥⾯执⾏的⼀些操作,例如删除归档⽇志等,另外,如果要查看RMAN的输出,可以查看V$RMAN_OUTPUT,V$RMAN_OUTPUT 视图记录了RMAN⽣成的信息,这是在内存中额视图,不会记录到控制⽂件上。
oracle dg rman备份策略

oracle dg rman备份策略Oracle数据库的备份是非常重要的,可以在系统出现故障或数据丢失的情况下恢复数据库的完整性。
在Oracle数据库中,可以使用RMAN(Recovery Manager)来管理和执行备份和恢复操作。
RMAN是Oracle提供的一个备份恢复工具,可以通过RMAN备份策略来实现灵活、高效的数据库备份。
RMAN备份策略主要包括完全备份、增量备份和增量备份合并等几个方面。
1. 完全备份:完全备份是指备份整个数据库的操作。
在RMAN中使用“backup database”命令可以进行完全备份。
完全备份是数据库备份策略的基础,因为只有完全备份才能确保数据库的全部数据得到保存。
完全备份可以通过物理备份或逻辑备份来实现。
物理备份是指备份数据库文件本身,包括数据文件、控制文件和归档日志文件等。
逻辑备份是指将数据库中的逻辑对象(如表、视图、存储过程等)导出为可执行的SQL语句,并将其存储到备份集中。
2. 增量备份:增量备份是在完全备份的基础上,只备份数据库中自上次备份后有所修改的数据。
增量备份可以减少备份的数据量和备份时间,并且可以更快地进行恢复操作。
在RMAN中,可以通过“backup incremental”命令进行增量备份。
增量备份可以分为增量备份级别0和增量备份级别1。
增量备份级别0是指备份整个数据库,与完全备份相同;而增量备份级别1只备份自上次备份后有所修改的数据块。
3. 增量备份合并:随着时间的推移,增量备份产生的备份集可能会变得很大。
为了减少备份集的大小和提高恢复操作的效率,可以使用增量备份合并来合并增量备份集。
在RMAN中,可以使用“backup incremental ... merge”命令来合并增量备份集。
增量备份合并可以通过将最新的增量备份与之前的备份集合并来创建一个新的备份集,从而减少备份集的数量。
除了以上的备份策略,还可以通过设置保留策略来管理备份集的保留时间和数量。
ORACLE RAC数据库RMAN 备份与恢复

rac数据库RMAN 备份与恢复一、数据库备份在主库上通过rman 每天对数据库进行备份,并且保留两份备份在主库删除归档和进行rman 备份的脚本:[oracle@rac1 arch]$ pwd/opt/app/arch[oracle@rac1 arch]$ more del_arch.shexport ORACLE_SID=orcl1export ORACLE_BASE=/opt/app/oracleexport ORACLE_TERM=xtermexport ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1source /opt/app/arch/orcl1/del_arch.listsource /opt/app/arch/orcl2/del_arch.list/opt/app/oracle/product/10.2.0/db_1/bin/rman target / log='/opt/app/arch/rman.log' <<EOFdelete obsolete recovery window of 3 days;crosscheck archivelog all;delete noprompt obsolete;delete noprompt expired archivelog all;crosscheck backup;delete noprompt expired backup;backup format='/opt/app/arch/rman/orcl_full_%U_%T' tag='orcl_full' database;backup current controlfile tag='orcl_ctlfile'format='/opt/app/arch/rman/orcl_ctlfile_%U_%T';backup spfile tag='orcl_spfile'format='/opt/app/arch/rman/orcl_spfile_%U_%T';exitEOF执行时间:[oracle@rac1 arch]$ crontab -l30 02 * * 0 /opt/app/arch/del_arch.sh30 02 * * 1 /opt/app/arch/del_arch.sh30 02 * * 2 /opt/app/arch/del_arch.sh30 02 * * 3 /opt/app/arch/del_arch.sh30 02 * * 4 /opt/app/arch/del_arch.sh30 02 * * 5 /opt/app/arch/del_arch.sh30 02 * * 6 /opt/app/arch/del_arch.sh每天的备份文件放在/opt/app/arch/rman/目录下二、数据库恢复如果数据库出现故障,可以从备份文件中恢复数据库,最早可以恢复到两天前的备份时间点RAC 下的RMAN 讲究的是备份和还原的策略要一致。
RMAN备份命令

RMAN备份命令(转摘)1、切换服务器归档模式,如果已经是归档模式可跳过此步:%sqlplus /nolog (启动sqlplus)SQL> conn / as sysdba (以DBA身份连接数据库)SQL> shutdown immediate; (立即关闭数据库)SQL> startup mount (启动实例并加载数据库,但不打开)SQL> alter database archivelog; (更改数据库为归档模式)SQL> alter database open; (打开数据库)SQL> alter system archive log start; (启用自动归档)SQL> exit (退出)2、连接:%rman target=rman/rman@mydb (启动恢复管理器)3、基本设臵:RMAN> configure default device type to disk; (设臵默认的备份设备为磁盘) RMAN> configure device type disk parallelism 2; (设臵备份的并行级别,通道数)RMAN> configure channel 1 device type disk format '/backup1/backup_%U'; (设臵备份的文件格式,只适用于磁盘设备)RMAN> configure channel 2 device type disk format '/backup2/backup_%U'; (设臵备份的文件格式,只适用于磁盘设备)RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)RMAN> configure controlfile autobackup format for device type disk to '/backu p1/ctl_%F'; (设臵控制文件与服务器参数文件自动备份的文件格式)4、查看所有设臵:RMAN> show all;5、查看数据库方案报表:RMAN> report schema;6、备份全库:RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)7、备份表空间:RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)_8、备份归档日志:RMAN> backup archivelog all delete input;9、复制数据文件:RMAN> copy datafile 1 to '/oracle/dbs/system.copy';10、查看备份和文件复本:RMAN> list backup;11、验证备份:RMAN> validate backupset 3;12、从自动备份中恢复服务器参数文件:RMAN> shutdown immediate; (立即关闭数据库)RMAN> startup nomount; (启动实例)RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (从自动备份中恢复服务器参数文件)13、从自动备份中恢复控制文件:RMAN> shutdown immediate; (立即关闭数据库)RMAN> startup nomount; (启动实例)RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件)13、恢复和复原全数据库:RMAN> shutdown immediate; (立即关闭数据库)RMAN> exit (退出)%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (将数据文件重命名)%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (将数据文件重命名)%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (将数据文件重命名)%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (将数据文件重命名)%rman target=rman/rman@mydb (启动恢复管理器)RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化参数文件启动数据库)RMAN> restore database; (还原数据库)RMAN> recover database; (恢复数据库)RMAN> alter database open; (打开数据库)14、恢复和复原表空间:RMAN> sql 'alter tablespace users offline immediate'; (将表空间脱机) RMAN> exit (退出恢复管理器)%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (将表空间重命名) %rman target=rman/rman@mydb (启动恢复管理器)RMAN> restore tablespace users; (还原表空间)RMAN> recover tablespace users; (恢复表空间)RMAN> sql 'alter tablespace users online'; (将表空间联机)15、增量备份与恢复:第一天的增量基本备份:RMAN> backup incremental level=0 database plus archivelog delete input;第二天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第三天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第四天的增量差异备份:RMAN> backup incremental level=1 database plus archivelog delete input;第五天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第六天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第七天的增量差异备份:RMAN> backup incremental level=0 database plus archivelog delete input;增量恢复:RMAN> shutdown immediate;RMAN> exit%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak%rman target=rman/rman@mydbRMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.oraRMAN> restore database;RMAN> recover database;RMAN> alter database open;Oracle备份与恢复案例一. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。
简单易懂的linux下oracle数据库备份方法

简单易懂的linux下oracle数据库备份方法在Linux环境下,对Oracle数据库进行备份是一项至关重要的工作,以确保数据的安全性和完整性。
下面将为您介绍一种简单易懂的Oracle数据库备份方法。
一、准备工作1.确保已安装Oracle数据库,并正确配置环境变量。
2.确保有足够的权限(如:dba权限)进行数据库备份操作。
3.了解数据库的名称、表空间等信息,以便进行正确的备份。
二、备份方法1.使用RMAN工具进行备份RMAN(Recovery Manager)是Oracle提供的一个强大的备份和恢复工具。
以下是一个简单的RMAN备份示例:a.连接到目标数据库:```rman target /```b.使用RMAN进行备份:```backup database;```这将备份整个数据库,包括控制文件和归档日志。
c.退出RMAN:```exit;```2.使用Oracle SQL命令进行备份a.使用SQL*Plus连接到目标数据库:```sqlplus / as sysdba```b.使用SQL命令备份整个数据库:```alter database backup controlfile to trace;```这将生成控制文件的备份脚本。
c.使用SQL命令备份表空间:```backup tablespace <表空间名称> to disk;```这将备份指定的表空间。
d.退出SQL*Plus:```exit;```三、备份文件的存储1.将备份文件存储在安全的磁带上或磁盘上。
2.建议将备份文件存储在不同的物理位置,以防止数据丢失。
四、定期检查备份1.定期检查备份文件是否完整、可用。
2.定期进行恢复测试,以确保备份的有效性。
通过以上步骤,您已经了解了一种简单易懂的Linux下Oracle数据库备份方法。
Oracle 使用RMAN备份数据库文件和归档日志

Oracle 使用RMAN 备份数据库文件和归档日志当数据库打开时,可以使用RMAN BACKUP 命令备份如下对象:● 数据库● 表空间● 数据文件● 归档重做日志● 控制文件● 备份集在使用BACKUP 命令备份数据文件时,可以为其设置参数,定义备份段的文件名,文件数和每个输入文件的通道。
1.备份数据库如果备份操作是在数据库被安全关闭之后进行的,那么对整个数据库的备份是一致的;与之相对应,如果数据库是在打开状态下对整个数据库进行的备份,则该备份是非一致的。
非一致性备份整个数据库的操作步骤如下:(1)启动RMAN 并连接到目标数据库,输入BACKUP DATABASE 命令备份数据库。
在BACKUP 命令中可以指定FORMA T 参数,为RMAN 生成的每个备份片段指定一个惟一的名称,以及存储的位置。
C:\>rman target system/admin nocatalogRMAN> backup database format 'f:\oracle_backup\ora11g_%Y_%M_%D_%U.bak' maxsetsize=2G; 还可以为BACKUP 命令指定TAG 参数,为备份片段定义备份标签。
例如: RMAN>backup database tag='weekly_backup';(2)如果建立的是非一致性备份,那么必须在完成备份后对当前的联机重做日志进行归档,因为在使用备份恢复数据库需要使用当前重做日志中的重做记录。
RMAN>sql'alter system archive log current';(3)在RMAN 中执行LIST BACKUP OF DA TABASE 命令,查看建立的备份集与备份片段的信息。
RMAN> list backup of database;如果需要对整个数据库进行一致性备份,则首先需要关闭数据库,并启动数据库到MOUNT 状态。
Oracle Rman 命令详解

一、list常用命令总结备忘list命令列出控制文件、RMAN恢复目录中备份信息,是我们对所有可见的数据库备份文件的一个最直观的了解的方法list incarnation;list backup summary;list backup of database summary;list backup of tablespace summary;list backup of datafile n,n summary;list archivelog all summary;list backup by file;list backup;list expired backup;list copy;list backup of spfile;list backup of controlfile;list backup datafile n,n,n;list backup tablespace tablespace_name;list backup of archivelog all;list backup of archivelog from scn ...;list backup of archivelog until scn ...;list backup of archivelog from sequence ..;list backup of archivelog until time 'sysdate-10';list backup of archivelog {all, from, high, like, logseq, low, scn, sequence, time, until};1. List 当前RMAN所备份的数据库:RMAN> list incarnation;汇总查询:--如果备份文件多的话多用这两个list命令可以对备份文件有个总体了解。
1.1. list backup summary; --概述可用的备份B 表示backupA 表示Archivelog、F 表示full backup、0,1,2 表示incremental level备份A 表示可用AVALIABLE、X 表示EXPIRED这个命令可以派生出很多类似命令,例如list backup of database summarylist backup of archivelog all summarylist backup of tablespace users summary;list backup of datafile n,n,n summary这些命令可以让我们对已有的备份文件有一个整体,直观的了解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Rman备份语句实例及详细分析
采用下面语句备份可以基本保证一个小型数据库的备份需求。
1rman备份语句实例和详解
RUN {
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'f:/oracle数据库备份/%F';
ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT 'f:/oracle数据库备份/%U';
BACKUP DATABASE SKIP INACCESSIBLE FILESPERSET 10
PLUS ARCHIVELOG FILESPERSET 20
DELETE ALL INPUT;
RELEASE CHANNEL CH1;
}
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;
CROSSCHECK BACKUPSET;
DELETE NOPROMPT OBSOLETE;
--将备份保留7天,过期则自动删除。
--控制文件自动备份
--设置控制文件在磁盘上控制路径和格式。
%F:一个基于DBID 唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个1-256 的序列;
--设置通道的路径及格式。
%U:是%u_%p_%c的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一个唯一名称,这是最常用的命名方式;
%u:是一个由备份集编号和建立时间压缩后组成的8字符名称。
利用%u可以为每个备份集生成一个唯一的名称;
%p:表示备份集中备份片段的编号,从1 开始编号;
%c:备份片的拷贝数(从1开始编号);
--分配通道,自动备份归档日志。
--备份数据库,跳过磁盘上不可读的文件(SKIP INACCESSIBLE)
--自动删除已经备份的归档日志。
1)filesperset是每个备份集中包含的最大文件个数
2)应该生成2个备份集,每个备份集包含50个文件
3)如果没有datafilecopy那一句的话,应该是生成2个备份集,每个备份集包含3个文件
allocate channel 提供备份并发度,若平均文件数<filesperset则会按照平均文件数/备份集进行备份,若超过则按照filesperset的数量生成备份集;例如:
1、run {
allocate channel ch1 type disk;
allocate channel ch2 type disk;
backupdatafile 3,4,5,6 filesperset 3;
release channel ch1;
release channel ch2;
}
平均数是4(文件数)/2(channel数) = 2 ,小于filesperset 3,则生成2个备份集,每个备份集包含2个数据文件
2、run {
allocate channel ch1 type disk;
allocate channel ch2 type disk;
backupdatafile 3,4,5,6 filesperset 1;
release channel ch1;
release channel ch2;
}
则生成4个备份集,每个包含一个数据文件
2如何执行
1、在f盘根目录下新建一个文件夹,命名为:oracle数据库备份。
2、将上面脚本拷贝到一个txt文本文件中,将后缀修改为.rman放到d盘一个文件夹rman_backup下。
3、新建一个txt文件,将下面的语名拷贝到txt文件中,将后缀修改为bat,自己放置到一个合适的地方,如d盘根目录。
setoracle_sid=orcl
rman target / msglog d:\rman_backup\rman.log cmdfile=d:\rman_backup\rman.rman
说明:orcl是自己oracle中的实例。
4、从控制面板新建一个任务,执行上面的bat文件,控制为每天晚上23:00执行。
3说明
上面脚本,学习者可以根据自己的知识进行扩充,改善。