使用RMAN完成ORACLE自动化备份的过程

在使用RMAN之前遇到的问题

本机电脑安装了ORACLE服务器,又安装了ORACLE客户端,两个合在一起就有问题。我使用SQLPLUS连接服务器的时候弹出TNS适配器错误!!!

连接代码如下:

cd C:
C:\>set oracle_sid=orcl
c:\>sqlplus /nolog
sql>connect /as sysdba;

运行到这个地方的时候就弹出TNS适配器错误!!!

问题来源:

因为ORACLE SERVER和ORACLE CLIENT同样都有一个执行目录\bin,在环境变量中,CLIENT的执行目录可能在SERVER之前,导致执行connect /as sysdba的时候找到的执行目录是CLIENT的,但是监听程序和服务都是SERVER的,所以执行不成功。

解决方法:

修改ORACLE_HOME为SERVER目录
这里写图片描述
按照上面的设置会导致一个问题就是PL/SQL不能连接到服务器,处理方法为删除ORACLE_HOME这项内容。这样使用SQLPLUS和PLSQL都可以连接ORACLE数据库了。

将ORACLE SERVER的执行目录放在CLIENT之前
这里写图片描述

这样就解决了TNS适配器错误的问题。

开始使用RMAN自动化备份

备份方案:

A、第一次全备份
B、每天备份本日的数据
C、每周末备份整个一周的数据
D、每月备份本月的数据
E、每年备份所有的数据

第一步,将数据库切换到归档模式,这样做的目的是让数据库在打开的情况下也可以备份,代码如下:

%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 (退出)

执行效果如下图:
这里写图片描述

全备份代码如下:

C:\>set oracle_sid=orcl
C:\>rman target /
rman>backup database;

执行效果如下图:

这里写图片描述

从图上可以看出全备份已经执行完毕了。
查看备份文件的代码如下:

RMAN>list backup of database;

执行效果如下图所示:
这里写图片描述

第二步,备份方案设计

需求为:备份需要在指定的时间做指定的增量备份方案;
所以需要四种备份的RMAN批处理文件,分别是:全备份、级别0/1/2的增量备份代码;
要执行这些RMAN的备份代码需要用到CMD的批处理命令;
要在指定时间执行这些批处理的话,需要使用Windows的计划任务。

下面一一写出这些内容

配置RMAN的代码,包括备份目录、是否自动备份等内容:

run{
    configure default device type to disk;(备份到磁盘)
    configure device type disk parallelism 2;(通过两个通道备份)
    configure channel 1 device type disk format 'D:\OracleBackup\Back1\backup_%U';(通道1备份到的文件夹和文件位置)
    configure channel 2 device type disk format 'D:\OracleBackup\Back2\backup_%U';
    configure controlfile autobackup on;(自动备份打开)
    configure controlfile autobackup format for device type disk to 'D:\OracleBackup\Back1\ctl_%F';(自动备份控制文件)
    configure retention policy to recovery window of 30 days;(备份有效期为30天)
    }

全备份批处理代码,保存为backup_full.rman:

run{
    backup full tag 'hldFull' database 
    skip inaccessible #不备份不能读取的文件
    plus archivelog #归档模式
    delete all input;
    }

设置增量备份级别为0的备份代码:

run{
    backup incremental level=0 tag 'hldlevel0' database 
    skip inaccessible
    plus archivelog 
    delete all input;
    }

设置增量备份级别为1的备份代码(其实就是将level改为2就可以了):

run{
    backup incremental level=1 tag 'hldlevel1' database 
    skip inaccessible   
    plus archivelog 
    delete all input;
    }

增量为2的备份代码类似,这里就不一一举例了。

执行全备份的批处理文件(CMD)代码如下:

set oracle_sid=orcl
rman target / msglog D:\OracleBackup\BackupLog\oracle_backup.log cmdfile=D:\HSF\MyCode\Backup\backup_Full.rman

执行三个级别的增量备份方案类似,这里就不一一列举了。

计划任务编辑截图如下:

创建计划任务
选择执行周期
选择执行时间
选择计划任务操作
选择允许的程序
完成的画面

经过上述一系列的操作,执行ORACLE每日备份的工作就完成了。

至此本篇博客也告一段落,如果有问题请留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值