您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页正文

Oracle 12c RMAN备份文档

2023-11-09 来源:化拓教育网

-hdf: ‘/home/oratest/.gvfs’: Permission deniedFilesystem Size Used Avail Use% Mounted on/dev/mapper/centos-root 450G 27G 423G 6% /devtmpfs 5.8G 0 5.8G 0% /devtmpfs 5.8G 2.9G 3.0G 50% /dev/shmtmpfs 5.8G 34M 5.8G 1% /runtmpfs 5.8G 0 5.8G 0% /sys/fs/cgroup/dev/sda1 497M 128M 370M 26% /boot

创建目录,并且更改权限为数据库用户

sudo mkdir -p /rman_backup/bak_data /rman_backup/scripts[sa@cis ~]$ sudo chgrp -R dba /rman_backup/[sa@cis ~]$ sudo chown -R oracle /rman_backup/

rman参数配置

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS ;

全备脚本 BackupFull.sh

# script .:BackupFull.sh# creater:wangshengzhuang# date:2016/01/05# desc: backup full database datafile in archive with rman# connect databaseexport ORACLE_BASE=/home/oratest/app/oratestexport ORACLE_HOME=/home/oratest/app/oratest/product/12.1.0/dbhome_1export ORACLE_SID=CISTESTexport PATH=$ORACLE_HOME/bin:$PATHrman target/ << EOFRun{ Allocate channel c1 type disk; Backup incremental level 0 tag ‘db0‘ format ‘/rman_backup/bak_data/db0_%d_%T_%s‘ database include current controlfile plus archivelog filesperset 20 format ‘/rman_backup/bak_data/arc0_%d_%T_%s‘ ; Delete noprompt obsolete; Release channel c1;}EOF#

增量备份BackupIncr1.sh

# script .:BackupFull.sh# creater:wangshengzhuang# date:2016/01/05# desc: backup incremental database datafile in archive with rman# connect databaseexport ORACLE_BASE=/home/oratest/app/oratestexport ORACLE_HOME=/home/oratest/app/oratest/product/12.1.0/dbhome_1export ORACLE_SID=CISTESTexport PATH=$ORACLE_HOME/bin:$PATHrman target/ << EOFRun{ Allocate channel c1 type disk; Backup incremental level 1 tag ‘db1‘ format ‘/rman_backup/bak_data/db1_%d_%T_%s‘ database include current controlfile plus archivelog filesperset 20 format ‘/rman_backup/bak_data/arc1_%d_%T_%s‘ ; Delete noprompt obsolete; Release channel c1;}EOF#

配置定时调度

周日和周三凌晨1:00执行0级全库备份,周一、二、四、五六凌晨1:00执行1级增量备份

[oratest@cistest scripts]$ crontab -e0 1 * * 0 /rman_backup/scripts/BackupFull.sh >>/rman_backup/BackupFull.log0 1 * * 3 /rman_backup/scripts/BackupFull.sh >>/rman_backup/BackupFull.log0 1 * * 1-2 /rman_backup/scripts/BackupIncr1.sh >>/rman_backup/BackupIncr.log0 1 * * 4-6 /rman_backup/scripts/BackupIncr1.sh >>/rman_backup/BackupIncr.log

reload调度

[sa@cistest cistest]$ sudo /sbin/service crond reloadRedirecting to /bin/systemctl reload crond.service

Oracle 12c RMAN备份文档

标签:

小编还为您整理了以下内容,可能对您也有帮助:

Oracle 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=sys/comeon@orcl; (启动恢复管理器) 3、基本设置:

RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)

RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)

RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)

RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)

RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)

RMAN> configure controlfile autobackup format for device type disk to '/backup1/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'; (将表空间联机)

在ORACLE里什么是RMAN命令,它有什么作用?备份?

3. 恢复目录

3.1.恢复目录的概念

恢复目录是由RMAN使用、维护的用来放置备份信息的仓库。RMAN利用恢复目录记载的信息去判断如何执行需要的备份恢复操作。

恢复目录可以存在于ORACLE数据库的计划中。

虽然恢复目录可以用来备份多个数据库,建议为恢复目录数据库创建一个单独的数据库。

恢复目录数据库不能使用恢复目录备份自身。

3.2.建立恢复目录

第一步,在目录数据库中创建恢复目录所用表空间:

SQL> create tablespace rman_ts datafile 'd:\oracle\oradata\rman\rman_ts.dbf' size 20M;

表空间已创建。

第二步,在目录数据库中创建RMAN 用户并授权:

SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;

用户已创建。

SQL> grant recovery_catalog_owner to rman ;

授权成功。

SQL> grant connect, resource to rman ;

授权成功。

第三步,在目录数据库中创建恢复目录

C:\>rman catalog rman/rman

恢复管理器:版本8.1.6.0.0 - Proction

RMAN-06008:连接到恢复目录数据库

RMAN-06428:未安装恢复目录

RMAN>create catalog tablespace rman_ts;

RMAN-06431:恢复目录已创建

注意:虽然使用RMAN不一定必需恢复目录,但是推荐使用。因为恢复目录记载的信息大部分可以通过控制文件来记载,RMAN在恢复数据库时使用这些信息。不使用恢复目录将会对备份恢复操作有。

3.3.使用恢复目录的优势

可以存储脚本;

记载较长时间的备份恢复操作;

4. 启动RMAN

RMAN为交互式命令行处理界面,也可以从企业管理器中运行。

为了使用下面的实例,先检查环境符合:

the target database is called "his" and has the same TNS alias

user rman has been granted "recovery_catalog_owner "privileges

目标数据库的连接用户为internal帐号,或者以其他SYSDBA类型帐号连接

the recovery catalog database is called "rman" and has the same TNS alias

the schema containing the recovery catalog is "rman" (same password)

在使用RMAN前,设置NLS_DATE_FORMAT 和NLS_LANG环境变量,很多RMAN LIST命令的输出结果是与日期时间相关的,这点在用户希望执行以时间为基准的恢复工作也很重要。

下例是环境变量的示范:

NLS_LANG= SIMPLIFIED CHINESE_CHINA.ZHS16GBK

NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SS

为了保证RMAN使用时能连接恢复目录,恢复目录数据库必须打开,目标数据库至少要STARTED(unmount),否则RMAN会返回一个错误,目标数据库必须置于归档模式下。

4.1.使用不带恢复目录的RMAN

设置目标数据库的 ORACLE_SID ,执行:

% rman nocatalog

RMAN> connect target

RMAN> connect target internal/<password>@his

4.2.使用带恢复目录的RMAN

% rman rman_ts rman/rman@rman

RMAN> connect target

% rman rman_ts rman/rman@rman target internal/<password>@his

4.3.使用RMAN

一旦连接到目标数据库,可以通过交互界面或者事先存储的脚本执行指定RMAN命令, 下面是一个使用RMAN交互界面的实例:

RMAN> resync catalog;

RMAN-03022:正在编译命令:resync

RMAN-03023:正在执行命令:resync

RMAN-08002:正在启动全部恢复目录的 resync

RMAN-08004:完成全部 resync

使用脚本的实例:

RMAN> execute script alloc_1_disk;

创建或者替代存储的脚本:

RMAN> replace script alloc_1_disk {

2> allocate channel d1 type disk;

3> }

5.注册或者注销目标数据库

5.1.注册目标数据库

数据库状态:

恢复目录状态:打开

目标数据库:加载或者打开

目标数据库在第一次使用RMAN之前必须在恢复目录中注册:

第一步,启动恢复管理器,并且连接目标数据库:

C:\>rman target internal/oracle@his catalog rman/rman@rman

恢复管理器:版本8.1.6.0.0 - Proction

RMAN-06005:连接到目标数据库:HIS (DBID=3021445076)

RMAN-06008:连接到恢复目录数据库

第二步,注册数据库:

RMAN> register database;

RMAN-03022:正在编译命令:register

RMAN-03023:正在执行命令:register

RMAN-08006:注册在恢复目录中的数据库

RMAN-03023:正在执行命令:full resync

RMAN-08002:正在启动全部恢复目录的resync

RMAN-08004:完成全部resync

5.2.注销目标数据库

RMAN提供了一个注销工具,叫DBMS_RCVCAT工具包,请注意一旦注销了该目标数据库,就不可以使用恢复目录中含有的备份集来恢复数据库了。

为了能注销数据库,需要获得数据库的标识码(DB_ID)和数据库键值(DB_KEY)。其中连接目标数据库时将会获得DB_ID。

C:\>rman target internal/oracle@his catalog rman/rman@rman

恢复管理器:版本8.1.6.0.0 - Proction

RMAN-06005:连接到目标数据库:HIS (DBID=3021445076)

RMAN-06008:连接到恢复目录数据库

其中DBID=3021445076,利用DBID=3021445076查询数据库键值码:

连接到目标数据库,查询db表:

SQL> select * from db;

DB_KEY DB_ID CURR_DBINC_KEY

---------- ---------- --------------

1 3021445076 2

获得DB_KEY=1,这样,该目标数据库DB_KEY=1,DBID=3021445076,利用两个值使用DBMS_RCVCAT工具包就可以注销数据库:

SQL> execute dbms_rcvcat.unregisterdatabase(1,3021445076);

PL/SQL 过程已成功完成。

至此,注销数据库操作完成。

... ...

参考资料:http://www.chinabyte.com/266/1721266_1.shtml

oracle数据库一般需要备份那些文件?

数据文件,控制文件,联机日志文件,初始化参数文件,口令文件,还有归档日志文件。。。