oracle进入rman报错,Oracle学习系列之Rman学习(三)
学习rman的大纲:
1.进入rman
2.rman基础命令
3.rman基本备份命令
4.rman其他命令
5.rman实战
6.rman恢复
仅供自己参考用,也供大家学习。
1.进入rman
(1)进入本地数据库
[oracle@oracle-n1 ~]$ rman target /
(2)进入远程数据库
[oracle@oracle-n1 ~]$ rman target zsd/zsd@zsddb_1.9
(3)使用日志功能
[oracle@oracle-n1 logs]$ rman target / msglog /data/backup/logs/full_dbbackup_`date +%y%m%d`.log
2.rman基础命令
(1)启动关闭数据库
RMAN> shutdown immediate
RMAN> startup
(2)执行操作系统命令
RMAN> host
(3)执行SQL语句
RMAN> SQL 'ALTER SYSTEM SWITCH LOGFILE';
需要注意的一点是,rman中的sql环境不能执行SELECT语句,就算执行不报错,也不出结果。
RMAN> SQL 'select * from member.test';
sql statement: select * from member.test (可以看出没有任何数据显示)
(4)查看默认RMAN配置
RMAN>show all;
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default 设置的保留策略冗余度为1
CONFIGURE BACKUP OPTIMIZATION OFF; # default 备份优化为off
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default 默认的配置通道为磁盘,如果是sbt就为磁带设备
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default 默认配置controlfile不自动备份
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default controlfile自动备份的位置
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default 备份类型为backupset,备份类型的并行度为1
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default 数据文件备份的拷贝为1
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default 归档日志文件备份的拷贝为1
CONFIGURE MAXSETSIZE TO UNLIMITED; # default 备份集大小不设上限
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default 数据库加密技术为off
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default 数据库加密算法'AES128'
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default 归档日志的删除策略为NONE
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/data/ora11g/product/11.2.0/db_1/dbs/snapcf_zsddb.f'; # default controlfile的快照命名为'/data/ora11g/product/11.2.0/db_1/dbs/snapcf_zsddb.f'
(5)修改默认RMAN参数设置
#configure retention policy to recovery window of 7 days;
#configure controlfile autobackup on;
#configure controlfile autobackup format for device type disk to '/data/backup/rman/con_%F';
3.rman基本备份命令
(1)对数据库进行备份
* 备份数据库
RMAN>BACKUP DATABASE;
注意:也可以指定备份的位置:RMAN> BACKUP DATABASE FORMAT '/data/backup/rman/bak_%U';
* list命令查看刚刚创建的备份信息:
RMAN>list backup of database;
(2)对表空间进行备份
* 备份表空间
RMAN>backup tablespace HDMEMBER;
* 通过LIST BACKUP 查看一下备份
RMAN>list backup of TABLESPACE HDMEMBER;
(3)备份指定数据文件
* 查看对应的数据文件及其序号
select file_name,file_id,tablespace_name from dba_data_files
* 再通过BACKUP DATAFILE备份指定序号的数据文件
RMAN> BACKUP DATAFILE n;
* 通过list backup查看备份
RMAN> LIST BACKUP OF DATAFILE n;
(4)备份控制文件
* 第一种,做任何备份的时候,自动备份控制文件
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
* 第二种,手动执行控制文件备份
RMAN> BACKUP CURRENT CONTROLFILE;
* 第三种,执行BACKUP时指定INCLUDE CURRENT CONTROLFILE参数
RMAN> BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;
* 查看备份的控制文件
RMAN> LIST BACKUP OF CONTROLFILE;
* 使用alter database backup controlfile备份控制文件
SQL> alter database backup controlfile to trace;
或者
SQL> alter database backup controlfile to trace as '/data/controlfile1.cof'; (这样你可以查看controlfile的构成)
(5)备份归档日志文件
* 利用BACKUP ARCHIVELOG命令备份
RMAN> BACKUP ARCHIVELOG ALL;
* BACKUP过程中利用PLUS ARCHIVELOG参数备份
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
1>.运行ALTER SYSTEM ARCHIVE LOG CURRENT语句对当前redolog进行归档。
2>.执行BACKUP ARCHIVELOG ALL命令备份所有已归档日志。
3>.执行BACKUP命令对指定项进行备份。
4>.再次运行ALTER SYSTEM ARCHIVE LOG CURRENT对当前redolog归档。
5>.对新生成的尚未备份的归档文件进行备份。
* 查看已备份的归档日志片段:
RMAN> LIST BACKUP OF ARCHIVELOG ALL;
4.rman其他命令
删除命令
* 删除过期备份(RMAN会根据冗余策略确定备份是否过期)
RMAN> delete obsolete;
* 删除无效备份(通过CROSSCHECK命令核对备份集,如果发现备份无效,rman会将该备份集标记为EXPIRED状态。)
RMAN> delete expired backup;
* 删除特定备份集(通过list backup选择你所要删除的备份集)
RMAN> delete backupset 12;
* 删除特定备份片
RMAN> delete backuppiece '/data/backup/zsd_bk.bak';
* 删除所有备份集
RMAN> delete backup;
* 删除归档目录中已备份的归档日志
RMAN> backup archivelog all delete input;
report命令
主要是用于当前备份信息的分析,如哪些备份已经过期,哪些文件该备份,哪些备份不可用,哪些备份可以删除。
* 查看过期备份
RMAN>report obsolete;
crosscheck命令
用来检查备份或归档物理文件的状态,如果物理文件存在,并且控制文件(或恢复目录)中有匹配记录,则标记该对象的状态为available(有效), 如果
文件已经不存在,则标记该对象为expired(无效)
* 检查所有归档文件:
RMAN>crosscheck archivelog all;
* 检查所有备份集:
RMAN>crosscheck backup;
rman validate命令
RMAN能够检测物理和逻辑讹误。validate命令帮助保证备份文件存在于合适的位置,可读取,并且没有逻辑及物理讹误。
* 测试任一特定备份集
RMAN>validate backupset 9;
* 测试整个数据库和归档日志备份集
RMAN>backup validate database archivelog all;
提示:
监控和验证RMAN作业
V$RMAN_STATUS视图显示所有完成作业的状态以及命令
SQL>select operation,status,start_time,end_time from v$rman_status;
V$SESSION_LOGGOPS视图上查询估计备份的进度
SQL>select opname,to_char(start_time,'DD-MON-YY HH24:MI') "Start of backup",Sofar,totalwork,elapsed_seconds/60 "ELAPSED TIME IN MINUTES",ROUND(sofar/totalwork*100,2) "Percentage Completed so far" from v$session_longops where
5. rman实战
#以下是一个实战的rman备份脚本
BACKUP AS COMPRESSED BACKUPSET
SKIP INACCESSIBLE FILESPERSET 10 DATABASE PLUS ARCHIVELOG FILESPERSET 20
DELETE ALL INPUT;
其中COMPRESSED: 表示压缩的备份
SKIP INACCESSIBLE:表示跳过不可读的文件。我们知道一些offline的数据文件只要存在于磁盘上就仍然可被读取,但是
可能有些文件已经被删除或移到它处造成不可读,加上这个参数就会跳过这些文件;
FILESPERSET 10: 表示一个备份集中有多少个文件,这个就是一个备份集有10个文件。
#以下是用来检验filesperset 2这个参数的意义
BACKUP AS COMPRESSED BACKUPSET SKIP INACCESSIBLE FILESPERSET 2 DATABASE
rman恢复:
明确两个概念:数据库修复(Restore)和数据库恢复(Recover)
restore:是指利用备份集的数据文件来替换已经损坏的数据库文件或者将其恢复到一个新的位置
recover:是指应用所有重做日志,将数据库恢复到崩溃前的状态,或者应用部分redo,将数据库恢复到指定的时间点.(前提是:所有重做日志文件都在,
包括在线和归档的)
1.对数据库进行完全介质恢复
(1)启动数据库到加载状态:
RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP MOUNT;
(2)执行恢复操作
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE DELETE ARCHIVELOGS SKIP TABLESPACE TEMP;
注意:DELETE ARCHIVELOGS和SKIP TABLESPACE两个参数是可选择的,作用如下:
DELETE ARCHIVELOGS:表示RMAN将在完成恢复过程后自动删除那些在恢复过程中修复的归档日志文件。
SKIP TABLESPACE:跳过指定表空间,比如临时表,当然临时表空间即使你不跳过它也不会恢复的。
(3)打开数据库
RMAN> ALTER DATABASE OPEN;
2.恢复表空间
1、启动数据库到加载状态
RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP MOUNT;
2、进行恢复操作
RMAN> SQL 'ALTER TABLESPACE HDMEMBER OFFLINE IMMEDIATE';
RMAN> RESTORE TABLESPACE HDMEMBER;
RMAN> RECOVER TABLESPACE HDMEMBER;
RMAN> SQL 'ALTER TABLESPACE HDMEMBER ONLINE';
3、打开数据库
RMAN> ALTER DATABASE OPEN;
3.恢复数据文件
1、启动数据库到加载状态
RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP MOUNT;
2、进行恢复操作
RMAN>SQL 'ALTER DATABASE DATAFILE 5 OFFLINE';
RMAN> RESTORE DATAFILE 5;
RMAN> RECOVER DATAFILE 5;
RMAN>SQL 'ALTER DATABASE DATAFILE 5 ONLINE';
3、打开数据库
RMAN> ALTER DATABASE OPEN;
提示:查询对应的数据文件,表空间和数据文件序号:
附个SQL:用来查询数据文件,临时文件与表空间对应及数据文件序号:
set linesize 999;
select ts.tablespace_name, df.file_name, df.file_id, tf.file_name
from dba_tablespaces ts, dba_data_files df, dba_temp_files tf
where ts.tablespace_name = df.tablespace_name(+)
and ts.tablespace_name = tf.tablespace_name(+);
示例:归档模式下,假设某数据文件丢失,恢复该数据文件
1.造假数据
sqlplus /nolog
conn member/member
create table zsd(name varchar2(50));
insert into zsd values ('test1');
insert into zsd values ('test2');
insert into zsd values ('test3');
2.关闭,删除文件,启动数据库
SQL> conn / as sysdba
SQL> shutdown immediate;
SQL> host
[oracle@oracle-n1 ~]$ rm -rf /data/ora11g/oradata/zsddb/hdmember01.dbf
SQL> startup
SQL> archive log list(查看一下是否归档)
3.查看一下示例,并恢复数据库
select instance_name,status from v$instance
set oracle_sid=zsddb
rman target /
RMAN> restore datafile '/data/ora11g/oradata/zsddb/hdmember01.dbf';
RMAN> recover datafile '/data/ora11g/oradata/zsddb/hdmember01.dbf';
RMAN> alter database open;
示例:丢失控制文件的恢复
SQL> shutdown immediate;
[oracle@oracle-n1 ~]$ rm -rf /data/ora11g/oradata/zsddb/control*
进入rman
rman target /
随意指定一个DBID
RMAN> set dbid 3391142503
RMAN> restore controlfile from '/data/ora11g/product/11.2.0/db_1/dbs/con_c-1552557445-20130520-06';
RMAN> sql 'alter database mount';
RMAN> restore database;
RMAN> recover database;
RMAN> sql 'alter database open resetlogs';
(还必须重建临时表空间)
oracle进入rman报错,Oracle学习系列之Rman学习(三)相关推荐
- oracle em配置报错,oracle em 启动报错OC4J Configuration issue
oracle em 启动报错OC4J Configuration issue 今天在测试服务器上,启动emctl start dbconsole的时候,报如下错误: [oracle@test ~]$ ...
- oracle进入rman报错,Oracle 11g单实例RMAN恢复到Oracle 11g RAC
一.环境说明 操作系统版本: RHEL 6.5 x64 1. 源数据库服务器 Oracle版本: Oracle 11g 11.2.0.4 64位(单机) Oracle_SID: orcl db_nam ...
- oracle插入时间报错,Oracle 插入时间时 报错:ORA-01861: 文字与格式字符串不匹配 的解决办法...
一.写sql的方式插入到Oracle中 往oracle中插入时间 '2007-12-28 10:07:24' 如果直接按照字符串方式,或者,直接使用to_date('2007-12-28 10:07 ...
- oracle包同义词报错,Oracle——04同义词与数据库链接
1.同义词: 在分布式数据库环境中,为了识别一个数据库对象,必须规定主机名.服务器名.对象的拥有者和对象名.这无疑增加了访问者的访问难度.为了给不同的用户使用数据库对象时提供一个简单的.唯一标识数据库 ...
- oracle 监听报错,Oracle EBS系统数据库监听报错TNS-12547、TNS-12560和TNS-00517解决方法...
记得有一次Oracle EBS系统中止运行3小时,实在比较一次惨痛的教训,让我至今记忆犹新. 问题症状:用户反映提交的请求全部是红色错误 开始意为是并发管理"标准管理器"的问题,在 ...
- oracle 数据转换不报错,oracle数据库与hibernate方言转型异常
oracle数据库与hibernate方言转型异常 报错信息: org.hibernate.MappingException: No Dialect mapping for JDBC type: -9 ...
- oracle客户端 安装报错,Oracle 11g客户端安装在构建客户机共享库报错
今天同事反馈在RedHat 5.5上面安装Oracle 11g客户端一直不成功,报错截图见下: 查看具体报错信息如下: 信息: 构建客户机共享库 信息: 构建客户机共享库 信息: 此 make 操作的 ...
- oracle净额结算批报错,Oracle 运行脚本报错 ORA-20785: Workaround is not needed.
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 sqlplus 运行脚本@prvtlmpg.plb 报错,请问各位大神有什么解决方法 SQL> @prvtlmpg.plb Oracle Golde ...
- oracle升级补丁报错,oracle rac升级补丁及中间的错误提示
tail -f /var/log/messages /u01/app/oracle/product/10.2.0/db_1/OPatch/opatch /u01/app/oracle/product/ ...
最新文章
- sqlserver中如何实现时间按月,日,小时分组查询
- tomcat常见错误处理
- mysql技术分享--表分区实现
- java多条件组合查询6_elasticsearch组合多条件查询实现restful api以及java代码实现
- Java DES 加解密(DES/CBC/PKCS5Padding)
- 前端学习(2863):简单秒杀系统学习之优化cookie
- 93没有了_杭州1米93程序员征婚贴火了!年薪50万,孩子随妈姓,没有皇位要继承...
- Android笔记 - android studio导入源码
- c++双向列表释放_Python列表生成式12个小功能,你常用哪几个?
- HDU 1176 免费馅饼(记忆化搜索)
- flex图表坐标轴样式设置
- HDU1282 回文数猜想【回文】
- Java程序的编码规范
- Linux find 命令大全
- 【综合篇】Web前端性能优化原理问题
- 31_管家婆家庭记账软件
- 单片机简易开发板怎么设计,我来告诉你
- python 快乐数判断_利用Python实现MACD顶底背离形态,并实现自动化交易!
- Java POI解析Word提取数据存储在Excel
- 数据库的未来 - HTAP,软件、硬件、云生态的融合
热门文章
- 创始人的领导力和合伙人选择
- IntelliJ IDEA学习总结(1)——IntelliJ IDEA 介绍
- Linux学习总结(37)——CentOS7下Firewall防火墙配置用法详解
- 阿里巴巴开源技术汇总:115个软件(五)
- 九、Linux的网络配置
- php 查询 判断 语句,关于php的判断语句
- libsvm2.89在matlab,libsvm-mat-2.89-3工具箱,方便实用
- zabbix3.0.2 使用percona mysql插件来监控mysql5.7的详细实现过程
- Adtran加入SDN大潮,剑指运营商SDN转型
- 在JavaScript中创建命名空间的几种写法