热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oracle10grman备份有效性,linux下的oracle10grman备份

RMAN是Oracle提供的一个数据库备份和恢复工具,利用rman可以比较方便的对数据库进行备份。Oracle数据库可运行在归档和非归档模式下,这两者的

RMAN是Oracle提供的一个数据库备份和恢复工具,利用rman可以比较方便的对数据库进行备份。Oracle 数据库可运行在归档和非归档模式下,这两者的区别就在于对redo log的处理。归档模式下,当一个redo log  写满之后,就会把这个redo log里的内容写入归档文件,等写完之后,这个redo log  就可以继续使用,如果是非归档模式下,redo log 就被直接覆盖了。 数据库的恢复一般都需要归档文件,这里面记录了对数据库的操作,所以生产数据库一般都运行在归档模式下,以防数据的丢失。

一、设置ORACLE的RMAN备份准备工作:

1、查看数据库现有运行模式

sql>select name,log_mode from v$database;

NAME    LOG_MODE

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

BIGSUN   NOARCHIVELOG   #非归档模式

也可以通过下面的语句进行查看

sql> archive log list ;(conn / as sysdba)

Database log mode       No Archive Mode

Automatic archival      Disabled    #非归档模式

Archive destination      /export/data/oracle/product/10.0.0.2/dbs/arch

Oldest online log sequence         28613

Current log sequence     28615

非归档模式的数据库需要改为归档模式,才能进行RMAN备份。步骤如下:

1. SQL> alter system set log_archive_dest_1='location=/oracle/oracle10g/log/archive_log';

该语句含义是确定归档日志的路径,实际上Oracle 10g可以生成多份一样的日志,保存多个位置,以防不测

例如再添加一个日志位置可使用以下语句

SQL>alter system set log_archive_dest_2='location=/oracle/oracle10g/log2/archive_log';

2.关闭数据库

SQL> shutdown immediate

3.启动数据mount状态:

SQL> startup mount;

4、修改数据库为归档模式:

SQL> alter database archivelog;

5、打开数据库,查询:

SQL> alter database open;

修改日志文件命名格式:

SQL> alter system set log_archive_max_processes = 5;

SQL> alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;

修改完成后可以查看日志模式是否修改成功!

sql>select name,log_mode from v$database;

NAME    LOG_MODE

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

BIGSUN   ARCHIVELOG   #归档模式

二、用脚本实现RMAN自动备份。

注: level 0 全备份; level 1  差量备份; level 2 增量备份

首先在linux oracle服务器的/data/rmanbak/script/目录下新建3个脚本文件,并赋予每个脚本执行权限。

bakl0.sh 脚本

RUN_STR="

BAK_LEVEL=0

export BAK_LEVEL

ORACLE_HOME=/opt/app/oracle/10.2.0

export ORACLE_HOME

ORACLE_SID=orcl

export ORACLE_SID

RMAN_LOG_FILE=${0}.out

echo Script $0 >> $RMAN_LOG_FILE

echo ==== started on `date` ==== >> $RMAN_LOG_FILE

echo >> $RMAN_LOG_FILE

chmod 666 $RMAN_LOG_FILE

$RMAN nocatalog target sys/admin  msglog $RMAN_LOG_FILE append <

run{

allocate channel c1 type disk;

backup incremental level 0 format "/data/rmanbak/inc0_%u_%T" tag monday_inc0 database;

release channel c1;

}

bakl1.sh 脚本

RUN_STR&#61;"

BAK_LEVEL&#61;1

export BAK_LEVEL

ORACLE_HOME&#61;/opt/app/oracle/10.2.0

export ORACLE_HOME

ORACLE_SID&#61;orcl

export ORACLE_SID

RMAN_LOG_FILE&#61;${0}.out

echo Script $0 >> $RMAN_LOG_FILE

echo &#61;&#61;&#61;&#61; started on &#96;date&#96; &#61;&#61;&#61;&#61; >> $RMAN_LOG_FILE

echo >> $RMAN_LOG_FILE

chmod 666 $RMAN_LOG_FILE

$RMAN nocatalog target sys/admin  msglog $RMAN_LOG_FILE append <

run{

allocate channel c1 type disk;

backup incremental level 1 format "/data/rmanbak/inc1_%u_%T" tag monday_inc0 database;

release channel c1;

}

bakl2.sh 脚本

RUN_STR&#61;"

BAK_LEVEL&#61;2

export BAK_LEVEL

ORACLE_HOME&#61;/opt/app/oracle/10.2.0

export ORACLE_HOME

ORACLE_SID&#61;orcl

export ORACLE_SID

RMAN_LOG_FILE&#61;${0}.out

echo Script $0 >> $RMAN_LOG_FILE

echo &#61;&#61;&#61;&#61; started on &#96;date&#96; &#61;&#61;&#61;&#61; >> $RMAN_LOG_FILE

echo >> $RMAN_LOG_FILE

chmod 666 $RMAN_LOG_FILE

$RMAN nocatalog target sys/admin  msglog $RMAN_LOG_FILE append <

run{

allocate channel c1 type disk;

backup incremental level 2 format "/data/rmanbak/inc2_%u_%T" tag monday_inc0 database;

release channel c1;

}

其二、编辑oracle用户的自动执行任务计划

crontab -e -u oracle

30 23 * * 0 rman target / msglog&#61;/data/rmanbak/rman_bk_&#39;date &#39;&#43;%Y%m%d%H%M%S&#39;&#39;.log

cmdfile&#61;/data/rmanbak/script/bakl0.sh

30 23 * * 1 rman target / msglog&#61;/data/rmanbak/bakl0.log cmdfile&#61;/data/rmanbak/script/bakl2.sh

30 23 * * 2 rman target / msglog&#61;/data/rmanbak/bakl0.log cmdfile&#61;/data/rmanbak/script/bakl2.sh

30 23 * * 3 rman target / msglog&#61;/data/rmanbak/bakl0.log cmdfile&#61;/data/rmanbak/script/bakl1.sh

30 23 * * 4 rman target / msglog&#61;/data/rmanbak/bakl0.log cmdfile&#61;/data/rmanbak/script/bakl2.sh

30 23 * * 5 rman target / msglog&#61;/data/rmanbak/bakl0.log cmdfile&#61;/data/rmanbak/script/bakl2.sh

30 23 * * 6 rman target / msglog&#61;/data/rmanbak/bakl0.log cmdfile&#61;/data/rmanbak/script/bakl2.sh

最后重启crontab  命令 &#xff1a; #service crond restart

三、定期删除备份的归档文件

比如归档文件需要保存15天。我们可以写一个shell 脚本(del_archive_backup.sh

)如下&#xff0c;然后添加到crontab 里定时执行就可以删除过期的归档文件了。

#!/bin/ksh

PATH&#61;/usr/bin:/usr/ucb:/etc:.:/usr/X/bin:/bin

export PATH

find /data/arch/incremental_hotbackup -mtime &#43;15 -name "arch_*"

-exec rm {} \;

注&#xff1a;find后面写你自己的路径就可以了。



推荐阅读
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
author-avatar
hya641520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有