百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Oracle12c RMAN实战

ccwgpt 2024-12-02 15:54 23 浏览 0 评论

对全部生产库都应进行定时备份,RAC进入RMAN的账户和命令,数据备份和归档备份只需要在一台服务器上做即可

  • 第一步export ORACLE_SID=当前数据库实例
  • 第二步 RMAN target /

查看RMAN配置信息

show all;

SQL下执行语句,查询RMAN中的非默认值

select * from v$rman_configuration;  

具体配置如下:

1、configure retention policy to redundancy 1;
舍弃备份原则,共三种,分别是:
(1)CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
保持所有足够的备份,可以将数据库系统恢复到最近七天内的任意时刻。任何超过最近七天的数据库备份将被标记为obsolete。
(2)CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
保持可以恢复的最新的5份数据库备份,任何超过最新5份的备份都将被标记为redundancy。一般采用的方法,默认值为1,可以设置为5。
(3)CONFIGURE RETENTION POLICY TO NONE;
不需要保持策略,clear将恢复回默认的保持策略。
 
2、CONFIGURE BACKUP OPTIMIZATION OFF;
默认为关闭,如果打开,rman将对备份的数据文件及归档等文件进行一种优化的算法。
 
3、Configure default device type to disk;
默认值是硬盘,是指定所有I/O操作的设备类型是硬盘或者磁带(SBT)。
 
4、CONFIGURE CONTROLFILE AUTOBACKUP OFF;
强制数据库在备份文件或者执行改变数据库结构的命令之后将控制文件自动备份,默认值为关闭。这样在控制文件和catalog丢失后,控制文件仍然可以恢复。
 
5、CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F';
配置控制文件的备份路径和备份格式
 
6、CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
配置数据库设备类型的并行度,默认为1。
 
7.CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
配置每次备份的copy数量。
 
8、CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
配置归档日志存放的设备类型。
 
9、configure maxsetsize 大小;
配置备份集的最大尺寸,默认值是unlimited,单位bytes,K,M,G;
 
10、CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:ORACLE…SNCFTEST.ORA';
配置控制文件的快照文件的存放路径和文件名,这个快照文件是在备份期间产生的,用于控制文件的读一致性。
 
11、CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'C:...%d_DB_%u_%s_%p';
配置备份文件的备份路径和备份格式。
 
12、CONFIGURE CHANNEL DISK CLEAR;
用于清除上面的信道配置。
 
13、CONFIGURE EXCLUDE FOR TABLESPACE [CLEAR];
不备份指定的表空间到备份集中,对只读表空间是非常有用的。
 
14、configure channel device type disk format 'e:\backupb%d_db_%u';
将备份文件存储到e:\backupb,后面的%d_db_%u是存储格式。
 
15、configure controlfile autobackup format for device type disk to 'e:\backupcontrol%F';
指定control file存储在另一个路径:e:\backupcontrol,后面的%F是存储格式。
  • 第三步

操作完成后退出RMAN命令

1. RMAN 参数配置

注意:需要在RMAN下执行以下语句

开启控件文件自动备份:

CONFIGURE CONTROLFILE AUTOBACKUP ON;

启用备份优化

CONFIGURE BACKUP OPTIMIZATION ON;

2. RMAN备份规则

对数据库进行三种类型的备份:

  1. 数据库全备:每周日进行全量备份
  2. 数据库增量备份:每周一至周六进行增量备份
  3. 归档日志备份:每两个小时进行一次,删除已备份的文件

备份日志查看,查找关键字 databak arvebak内容

cat /var/log/cron

3. RMAN备份脚本文件

通过vi命令在指定的目录下创建相应的sh文件,建议地址(/home/oracle)下,以及可执行权限

3.1 创建文件

cd /home/oracle
vi databak.sh
拷贝相应的备份内容
cd /home/oracle
vi arvebak.sh
拷贝相应的备份内容

3.2 授权执行文件

chmod +x /home/oralce/databak.sh
chmod +x /home/oralce/arvebak.sh
权限查看(可以查看文件或者文件夹)
ls -l /home/oralce/databak.sh
ls -l /home/oralce/arvebak.sh

手动执行脚本(oracle账户下)对应定时脚本0周天备份 1非周天备份/home/oralce/databak.sh 0/1

4. RMAN 定时任务部署

RMAN 定时任务采用cron 设置,一般是在Oracle用户下设置。如下示例:

[oracle@SG-SR-RAC-02 ~]$ crontab -l
10 22 * * 0             /home/oracle/scripts/probasic/databak.sh 0    
10 22 * * 1,2,3,4,5,6   /home/oracle/scripts/probasic/databak.sh 1
10 0-23/2 * * *       /home/oracle/scripts/probasic/arvebak.sh

格式:分-时-日-月-周 *代表全部

0/1 命令文本代表策略 0全备份 1增量备份

0代表星期天

1,2,3,4,5,6代表星期一到星期六

0-23/2代表每隔2个小时

crontab -e 编辑定时任务

5. RMAN备份配置

配置位置:/u01/app/oracle/product/12.2.0/db/network/admin/tnsname.ora文件

RAC1和RAC2上都可以做,也可以只在备份的服务器上做

注意:实例名称和备份中一致 HOST配置当前机器的IP 实例保持一致


6. Appendix【附件】

Appendix 1 —数据库全备与增量备份脚本样例

注意点

  1. ORACLE_SID数据库实例
配置环境对应的数据库实例 比如:实例名当前RAC机器上的实例名 单机就是具体的实例名
  1. ORACLE_BASE实例基地址
在ORACLE账户下执行
env | grep ORACLE 
查看SID BASE HOME
env | grep SID
查看SID
一般oracle RAC路径是 /u01/app/oracle
  1. ORACLE_HOME实例全地址
一般oracle RAC路径是后面的db根据具体地址调整 /u01/app/oracle/product/12.2.0/db
  1. NLS_LANG语言环境命令
sqlplus / as sysdba
show parameter NLS_LANG
  1. BACKUP_PATH备份路径
创建脚本对应目录名称以及给oracle账户授权
[root@rac741 ~]# mkdir -p /data/rmanbackup/probasic
[root@rac741 ~]# chown oracle:oinstall /data/rmanbackup/probasic
archive log list 找到存储的盘信息
  1. 备份使用权限高的用户
sys或者system+密码+实例(rac1上的实例名)
sys/angola2019@PRO_BASIC2

以下脚本中的环境变量与目录等参数,需要按实际情况修改。

#!/bin/bash   
export ORACLE_SID=实例名
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin
  

LEVEL=$@    
DATE=`date +%w`    
DATE_2=`date +%Y%m%d`    
BACKUP_PATH="/data/rmanbackup/probasic"    
BIN=$ORACLE_HOME/bin

if [ $# != 1 ]; then   
echo "usage: rman_bak.sh n    
where n is the rman backup level(Only 0,1 is permitted)."    
exit 1    
fi

if [ $@ -ne 0 -a $@ -ne 1 ]; then   
echo "usage: rman_bak.sh n    
where n is the rman backup level(Only 0,1 is permitted)."    
exit 2    
fi

if [[ $LEVEL = 0 ]]; then   
$BIN/rman log $BACKUP_PATH/data.$ORACLE_SID.$LEVEL.$DATE_2.log <<EOF
connect target
run{   
allocate channel c2 device type disk connect '管理员账户/管理员密码@实例名';  
crosscheck backupset of database;    
backup incremental level $LEVEL database;    
backup spfile tag='spfile';    
backup current controlfile tag='control';    
delete noprompt expired backupset of database;    
delete noprompt obsolete device type disk;    
release channel c2;    
}    
exit;    
EOF

else

$BIN/rman log $BACKUP_PATH/logs/data.$ORACLE_SID.$LEVEL.$DATE_2.log <<EOF
connect target
run{   
allocate channel c2 device type disk connect '管理员账户/管理员密码@实例名';  
crosscheck backupset of database ;    
backup incremental level $LEVEL database;    
backup spfile tag='spfile';    
backup current controlfile tag='control';    
delete noprompt expired backupset of database ;    
delete noprompt obsolete ;    
release channel c2;    
}

exit;   
EOF

fi

Appendix 2—数据库归档日志备份脚本样例

注意点

  1. ORACLE_SID数据库实例
配置环境对应的数据库实例 比如:实例名
  1. ORACLE_BASE实例基地址
一般oracle RAC路径是 /u01/app/oracle
  1. ORACLE_HOME实例全地址
一般oracle RAC路径是后面的db根据具体地址调整 /u01/app/oracle/product/12.2.0/db
  1. NLS_LANG语言环境命令
sqlplus / as sysdba
show parameter NLS_LANG
  1. BACKUP_PATH备份路径
备注:这里是本地备份策略位置(/home/oracle)不要弄错
  1. 备份使用权限高的用户
sys或者system+密码+实例(rac1上的实例名)
管理账户名/管理账户密码@实例名

以下脚本中的环境变量与目录等参数,需要按实际情况修改。

#!/bin/bash   
export ORACLE_SID=实例名
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin
  

LEVEL=$@    
DATE=`date +%w`    
DATE_2=`date +%Y%m%d`    
BACKUP_PATH="/home/oracle"    
BIN=$ORACLE_HOME/bin


$BIN/rman log $BACKUP_PATH/logs/arve.$ORACLE_SID.$DATE_2.log <<EOF
connect target
run{    
allocate channel c2 device type disk connect '管理账户名/管理账户密码@实例';  
crosscheck backupset of archivelog all;    
backup archivelog all;    
backup spfile tag='spfile';
backup current controlfile tag='control';
release channel c2;
report obsolete;
delete noprompt expired backupset of archivelog all;    
delete noprompt obsolete device type disk;
delete noprompt archivelog all completed before 'sysdate-7'; 
}

exit;   
EOF

6. 取消定时任务

注释定时任务文件中的命令即可

[oracle@SG-SR-RAC-02 ~]$ crontab -e
# 10 22 * * 0             /home/oracle/scripts/probasic/databak.sh 0    
# 10 22 * * 1,2,3,4,5,6   /home/oracle/scripts/probasic/databak.sh 1
# 10 0-23/2 * * *       /home/oracle/scripts/probasic/arvebak.sh

7. 命令支持

开启归档日志

RAC1和RAC2同时以下操作

su - oracle
export ORACLE_SID=当前实例
echo $ORACLE_SID
sqlplus /nolog
conn 账户/密码 as sysdba;
archive log list
shutdown immediate

RAC1操作

startup mount;
alter database archivelog;
alter database open;
archive log list

RAC2操作

startup;
archive log list

RMAN操作

su - oracle
export ORACLE_SID=当前实例
echo $ORACLE_SID

rman在oracle账户首先在对应的实例然后下输入rman target /数据库手动备份

backup database;

归档手动备份

backup archivelog all;

backupset列表查看

list backup;
list backup of database;
list backup of archivelog all;
list backup summary;
简述可用的备份(TY: B代表备份, LV: F代表全备fullbackup, A表示 Archivelog, 0,1,2 表示备份级别, S表示状态, A表示available可用, X表示expried过期)。

根据序列删除backupset中的内容

delete backupset 序列号;

ASMCMD操作

asmcmd在oracle账户下输入asmcmd

ls
cd 实例名ASM对应网盘名称(实例名称)
ls
cd backupset;(RMAN的数据备份和归档备份位置)
cd ..
cd archivelog;(归档日志位置)

注意

  • 所有的删除动作在数据备份和归档备份后操作,建议删除有完整备份之前的内容
  • asmcmd下archivelog下的文件还是需要手动维护的建议删除参考上面第一条

相关推荐

自己动手写Android数据库框架_android开发数据库搭建

http://blog.csdn.net/feiduclear_up/article/details/50557590推荐理由关于Android数据库操作,由于每次都要自己写数据库操作,每次还得去...

谷歌开源大模型评测工具LMEval,打通谷歌、OpenAI、Anthropic

智东西编译|金碧辉编辑|程茜智东西5月28日消息,据科技媒体TheDecoder5月26日报道,当天,谷歌正式发布开源大模型评测框架LMEval,支持对GPT-4o、Claude3.7...

工信部:着力推动大模型算法、框架等基础性原创性的技术突破

工信部新闻发言人今日在发布会上表示,下一步,我们将坚持突出重点领域,大力推动制造业数字化转型,推动人工智能创新应用。主要从以下四个方面着力。一是夯实人工智能技术底座。通过科技创新重大项目,着力推动大模...

乒乓反复纠结“框架不稳定”的三个小误区

很多球友由于对框架的认知不清晰,往往会把“框架不稳定”当成一种心理负担,从而影响学球进度,其典型状态就是训练中有模有样,一旦进入实战,就像被捆住了手脚。通过训练和学习,结合“基本功打卡群”球友们交流发...

前AMD、英特尔显卡架构师Raja再战GPU,号称要全面重构堆栈

IT之家8月5日消息,知名GPU架构师拉贾科杜里(RajaKoduri)此前曾先后在AMD和英特尔的显卡部门担任要职。而在今日,由Raja创立的GPU软件与IP初创企...

三种必须掌握的嵌入式开发程序架构

前言在嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题。软件架构对于系统整体的稳定性和可靠性是非常重要的,一个合适的软件架构不仅结构清晰,并且便于开发。我相...

怪不得别人3秒就知道软考案例怎么做能50+

软考高级统一合格标准必须三科都达到45分,案例分析也一直是考生头疼的一门,但是掌握到得分点,案例能不能50+还不是你们说了算吗?今天就结合架构案例考点,分享实用的备考攻略~一、吃透考点,搭建知识框架从...

UML统一建模常用图有哪些,各自的作用是什么?一篇文章彻底讲透

10万+爆款解析:9大UML图实战案例,小白也能秒懂!为什么需要UML?UML(统一建模语言)是软件开发的“蓝图”,用图形化语言描述系统结构、行为和交互,让复杂需求一目了然。它能:降低沟通成本避...

勒索软件转向云原生架构,直指备份基础设施

勒索软件组织和其他网络犯罪分子正越来越多地将目标对准基于云的备份系统,对久已确立的灾难恢复方法构成了挑战。谷歌安全研究人员在一份关于云安全威胁演变的报告中警告称,随着攻击者不断改进数据窃取、身份泄露和...

ConceptDraw DIAGRAM:释放创意,绘就高效办公新未来

在当今数字化时代,可视化工具已成为提升工作效率和激发创意的关键。ConceptDrawDIAGRAM,作为一款世界顶级的商业绘图软件,凭借其强大的功能和用户友好的界面,正逐渐成为众多专业人士的首选绘...

APP 制作界面设计教程:一步到位_app界面设计模板一套

想让APP界面设计高效落地,无需繁琐流程,掌握“框架搭建—细节填充—体验优化”三步法,即可一步到位完成专业级设计。黄金框架搭建是基础。采用“三三制布局”:将屏幕横向三等分,纵向保留三...

MCP 的工作原理:关键组件_mcp部件

以下是MCP架构的关键组件:MCP主机:像ClaudeDesktop、GitHubCopilot或旅行助手这样的AI智能体,它们希望通过MCP协议访问工具、资源等。MCP主机会...

软件架构_软件架构师工资一般多少

软件架构师自身需要是程序员,并且必须一直坚持做一线程序员。软件架构应该是能力最强的一群程序员,他们通常会在自身承接编程任务的同时,逐渐引导整个团队向一个能够最大化生产力的系统设计方向前进。软件系统的架...

不知不觉将手机字体调大!老花眼是因为“老了吗”?

现在不管是联系、交友,还是购物,都离不开手机。中老年人使用手机的时间也在逐渐加长,刷抖音、看短视频、发朋友圈……看手机的同时,人们也不得不面对“视力危机”——老花眼,习惯眯眼看、凑近看、瞪眼看,不少人...

8000通用汉字学习系列讲座(第046讲)

[表声母字]加(续)[从声汉字]伽茄泇迦枷痂袈笳嘉驾架咖贺瘸(计14字)嘉[正音]标准音读jiā。[辨形]上下结构,十四画。会意形声字,从壴从加,加也表声。注:从壴,字义与鼓乐有关;从加,字义与...

取消回复欢迎 发表评论: