当前位置: 首页 > news >正文

rman 备份恢复1

前提:

rman用户必须具有sysdba权限

使用常用连接方式如下:
rman target /
rman target sys/oracle
rman target sys/oracle@prod1 catalog dav/oracle@dav_db

一个rman连接会产生两个进程,action字段为空的就是rman的监控进程,另一个是主会话。
 

select sid,serial#,module,action from v$session where module like '%rman%';
SID        SERIAL#                 MODULE                ACTION
---------- ---------- -------------------------- --------------------------------
20 20 rman@davdb.us.oracle.com (TNS V1-V3)
139 45 rman@davdb.us.oracle.com (TNS V1-V3) 0000001 FINISHED70


rman 备份主要以备份为主
压缩备份:压缩比5:1

一、介绍
1、备份数据文件、归档、控制文件、spfile
2、自动维护备份相关元数据
3、只备份使用过的数据块
4、自动检测坏块
5、可以对备份文件进行压缩
6、支持增量


二、rman体系结构
1、带库不验证备份集好坏。
2、磁带存储灵活性要比阵列好
3、磁盘阵列速度快还稳定
4、使用带库还要买备份软件
5、如果公司生产库有几十套库,可以考虑使用带库
备份时通道一般分配3-6个就可以。

三、rman备份
在oracle8的时候必须使用catalog库,因为rman恢复命令不支持from 备份集的语句,9i以后就不需
要了。
备份集的存储位置必须是oracle数据库服务器能直接读写的位置。

四、备份集数量由以下几个因素决定:
a、输入文件的数量:一个备份集至少包含一个输入文件,输入文件不可以跨多个备份集,默认一个备份集最多容纳64个输入文件
b、通道的个数,但是也要看文件的个数是否大于等于通道数,如果小于通道数,那么产生的备份集的数量行于实际文件的个数。
c、并行参数的设置
假设:users表空间有两个数据文件

RMAN> backup tablespace users ;这个命令将产生一个备份集。


a、输入文件的数量:一个备份集至少包含一个输入文件,输入文件不可以跨多个备份集,默认一个备份集最多容纳64个输入文件
RMAN> backup tablespace users filesperset 1;

如果users表空间有两个数据文件,filesperset 1所以一次只能输入一个文件,那这个命令将产生两个备份集。
b、通道的个数,但是也要看文件的个数是否大于等于通道数,如果小于通道数,那么产生的备份集的数量行于实际文件的个数。

RMAN> run{
2> allocate channel c1 type disk;--这一段命令也是产生两个备份集

3> allocate channel c2 type disk;

4> backup tablespace users;

5> }


c、并行参数的设置,这条命令也产生两个备份集

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2;

RMAN> backup tablespace users;

RMAN> backup tablespace system section size=100m; 

--这条命令用来验证一个备份集里可以有多个备份片。


RMAN>configure channel device type disk format '/home/oracle/davbak/%d_%U.FULL'
MAXPIECESIZE 20M;


obsolete状态,是针对MAN备份保留策略来说的,超过了这个保留策略的备份,会被标记为
obsolete,但其状态依旧为AVAILABLE,我们可以使用report obsolete来查看已废弃的备份。
删除废弃的备份,可以使用delete noprompt obsolete命令(noprompt是指无需确认):
EXPIRED状态的产生,与crosscheck命令是密切相关的,RMAN通过crosscheck命令检查备份是否存在于备份介质上,如果不存在,则状态由AVAILABLE改为EXPIRED。


1、备份表空间的命令
 

rman target /
rman> backup tablespace users format '/home/oracle/bak/%d_%t_%s_%p.bak';
rman> backup device type disk tablespace users to destination '/home/oracle/bak/';
rman>run{
allocate channel c1 device type disk to destination '/home/oracle/bak/';
allocate channel c2 device type disk to destination '/home/oracle/bak/';
backup
(tablespace users channel c1)(tablespace example channel c2);
}

2、创建catalog库
sqlplus sys/oracle@prod4 as sysdba
创建catalog库所有的表空间

SQL> create tablespace ts_catalog datafile '/u01/app/oracle/oradata/PROD4/catalog.dbf' size
400m;


创建用户:
 

SQL> create user rc_admin identified by RC_ADMIN default tablespace ts_catalog;

SQL> grant recovery_catalog_owner,unlimited tablespace to rc_admin;

grant connect to catalog;

--创建catalog目录:

[oracle@dav-PROD2 ~]$ rman catalog rc_admin/RC_ADMIN@prod4

RMAN> create catalog;
--注册其实数据库实例到catalog库中:

[oracle@dav-PROD2 ~]$ rman target sys/oracle@prod2 catalog
rc_admin/RC_ADMIN@prod1

RMAN> register database;
--取消注册:unregister database;
--升级catalog库与target库之间rman版本

RMAN>upgrade catalog

3、使用catalog方式备份数据库全备:
 

[oracle@edsir4p1-PROD2 ~]$ rman target sys/oracle@dav_prod2 catalog
rc_admin/RC_ADMIN@dav_prod4
RMAN> backup database format '/home/oracle/rman/prod2_%U.bkp' plus archivelog format
'/home/oracle/rman/prod2_%U.arc';

4、给备份集加标签,并做永久保留
 

[oracle@davdb-PROD1 ~]$ rman target sys/oracle@davdb catalog rc_admin/RC_ADMIN@prod4

RMAN> backup archivelog all format '/home/oracle/davbak/prod1_%U.arc' tag='Q107' keep
forever;

5、压缩备份 加分片,限制备份片大小
备份某个表空间并分成规定大小的备份片:
多段备份:可以将较大的数据文件备份划分为固定大小的多段备份。rman将大的数据文件划分为文件块,
该划分是将文件逻辑划分为连续块,每个文件块使用一个备份集片
 

rman>backup tablespace system section size=30m format '/home/oracle/bak/%U';

RMAN> backup as compressed backupset tablespace example format
'/home/oracle/bak/%d_%U.BAK';--压缩加分片

RMAN> CONFIGURE channel device type disk maxpiecesize 100m;--通过修改默认参数来控制备份片大小.

RMAN> CONFIGURE MAXSETSIZE TO 800M;--通过修改默认参数设置备份集的大小来间接控制备份片的大小;

6、开启块跟踪
 

RMAN> CONFIGURE BACKUP OPTIMIZATION ON;--打开备份优化设置通过如下命令
SQL> alter database enable block change tracking using file ' /home/oracle/files/bck.dbf';
select status,filename,bytes from v$block_change_tracking;

7、写一个备份脚本,每周做一次全备,每天做两次归档备份,控制文件自动备份

8、冗余策略:
config retention policy to recovery window of 7 days;
crontab常用参数:
冗余份数=恢复时间窗口/全备的间隔时间+1
一份=全备+与下次全备之间的归档
crontab -l //查看当前用户下的cron任务
crontab -e //编辑当前用户的定时任务
crontab -u linuxso -e //编辑用户linuxso的定时任务
具体用法和格式:
基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。

相关文章:

  • spring日志
  • OmniParser V2 和 OmniTool 让 AI 来控制 Windows 设备
  • c语言基础第12节《函数的调用》
  • 怎么用cURL库对接智能语音播报设备
  • ShenNiusModularity项目源码学习(10:ShenNius.FileManagement项目分析)
  • Java语法-集合
  • Java——继承
  • 【OS安装与使用】part5-ubuntu22.04基于conda安装pytorch+tensorflow
  • 深入解析 sudo -l 命令的输出内容
  • pdf预览在vue项目中的使用兼容ie浏览器
  • 面对STM32的庞大体系,如何避免迷失在细节中?
  • [python]windows上安装yolov12环境
  • 选好加密狗,一次说全
  • Deepseek快速做PPT
  • Go Web 项目实战:构建 RESTful API、命令行工具及应用部署
  • 用C++ Qt实现安卓电池充电动效 | 打造工业级电量控件
  • nodejs链接redis
  • webSocket
  • Python装饰器本质250220
  • HTTP与网络安全
  • 三亚亚龙湾3.4公里岸线近岸海域使用权挂牌出让,起始价近九千万
  • 全红婵、李宁亮相中国航天日论坛,体育和航天这一次紧密相连
  • 俄总理:2024年俄罗斯GDP增长4.3%
  • 最大涨幅9800%!金价新高不断,引发期权“末日轮”效应,沪金期权多张合约大涨
  • 什么是中国好手艺?材美、工巧、器韵、时宜
  • 今年底,全国新拍电视剧、纪录片将基本实现超高清化