rman全库备份——shell脚本实施方案

合集下载

使用RMAN和控制文件备份删除归档日志的SHELL脚本--REDHAT5LINUX64

使用RMAN和控制文件备份删除归档日志的SHELL脚本--REDHAT5LINUX64

使⽤RMAN和控制⽂件备份删除归档⽇志的SHELL脚本--REDHAT5LINUX64在ORACLE⽤户下的定时器设置[oracle@SHARKDB dbscripts]$ crontab -l# minute hour day month week15 1 * * 0 sh /home/oracle/dbscripts/backup_full.sh05 3 * * * sh /home/oracle/dbscripts/del_arc.sh全备脚本先配置保留时间窗⼝,配置备份⽬录和格式,然后交叉检查所有备份集.删除⽆效备份集,删除过期对象,进⾏全备份并压缩..[oracle@SHARKDB dbscripts]$ cat backup_full.sh#!/bin/kshsource ~/.bash_profileecho "------------------Start------------------";date#backup start$ORACLE_HOME/bin/rman log=/home/oracle/dbscripts/logs/rman_full_backup.log << EOFconnect target /run{CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/arch/full_%d_%s_%T_%t.bak';crosscheck backupset;delete noprompt expired backupset;delete noprompt obsoleted;backup full AS COMPRESSED BACKUPSET DATABASE include current controlfile plus archivelog;}exit;EOFecho "-------------------End-------------------";date删除归档⽇志先检查归档⽇志把物理删除的信息从控制⽂件删除,然后执⾏物理删除 2天前的.[oracle@SHARKDB dbscripts]$ cat del_arc.sh#! /bin/bashsource ~/.bash_profileexec >> /home/oracle/dbscripts/logs/del_arch`date +%F_%H`.log$ORACLE_HOME/bin/rman target / <<EOFcrosscheck archivelog all;delete noprompt expired archivelog all;delete noprompt archivelog until time 'sysdate-2';exit;EOF如果没有SO 彼此语句 -- source ~/.bash_profile 那么要在ROOT下执⾏定时器切换⽤户执⾏脚本03 04 * * * su - oracle -c '/home/oracle/del_arc.sh'。

在Linux上使用Shell脚本实现系统备份与恢复

在Linux上使用Shell脚本实现系统备份与恢复

在Linux上使用Shell脚本实现系统备份与恢复在Linux系统中,备份和恢复是非常重要的操作,可以保护系统中重要的数据和配置信息。

使用Shell脚本可以自动化这一过程,简化操作步骤,提高效率。

本文将介绍如何使用Shell脚本在Linux上实现系统备份与恢复。

一、系统备份1. 创建备份目录在进行系统备份之前,首先需要创建一个用于存储备份文件的目录。

可以选择一个合适的位置,比如/home/backup。

在终端中输入以下命令来创建备份目录:```shell$ mkdir /home/backup```2. 编写备份脚本创建一个名为backup.sh的Shell脚本文件,并添加以下代码:```shell#!/bin/bash# 指定备份路径和文件名backup_dir="/home/backup"backup_file="backup_$(date +%Y%m%d).tar.gz"# 备份系统文件tar -zcvf $backup_dir/$backup_file /etc /var/www /home/user# 输出备份完成信息echo "System backup completed!"```在上述代码中,首先通过date命令获取当前日期,并将其格式化为YYYYMMDD的形式,作为备份文件的一部分。

然后,使用tar命令将需要备份的文件和目录打包为一个压缩文件,并保存到指定的备份目录中。

最后,输出备份完成的提示信息。

3. 运行备份脚本保存backup.sh文件后,打开终端并切换到该脚本所在的目录。

使用以下命令给予脚本执行权限:```shell$ chmod +x backup.sh```接着,运行备份脚本:```shell$ ./backup.sh```系统将开始备份操作,并在完成后输出备份完成的提示信息。

二、系统恢复1. 创建恢复目录在进行系统恢复之前,同样需要创建一个用于存储恢复文件的目录。

RMAN备份命令

RMAN备份命令

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=rman/rman@mydb (启动恢复管理器)3、基本设臵:RMAN> configure default device type to disk; (设臵默认的备份设备为磁盘) RMAN> configure device type disk parallelism 2; (设臵备份的并行级别,通道数)RMAN> configure channel 1 device type disk format '/backup1/backup_%U'; (设臵备份的文件格式,只适用于磁盘设备)RMAN> configure channel 2 device type disk format '/backup2/backup_%U'; (设臵备份的文件格式,只适用于磁盘设备)RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)RMAN> configure controlfile autobackup format for device type disk to '/backu p1/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'; (将表空间联机)15、增量备份与恢复:第一天的增量基本备份:RMAN> backup incremental level=0 database plus archivelog delete input;第二天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第三天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第四天的增量差异备份:RMAN> backup incremental level=1 database plus archivelog delete input;第五天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第六天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第七天的增量差异备份:RMAN> backup incremental level=0 database plus archivelog delete input;增量恢复: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@mydbRMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.oraRMAN> restore database;RMAN> recover database;RMAN> alter database open;Oracle备份与恢复案例一. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。

简单易懂的linux下oracle数据库备份方法

简单易懂的linux下oracle数据库备份方法

简单易懂的linux下oracle数据库备份方法在Linux环境下,对Oracle数据库进行备份是一项至关重要的工作,以确保数据的安全性和完整性。

下面将为您介绍一种简单易懂的Oracle数据库备份方法。

一、准备工作1.确保已安装Oracle数据库,并正确配置环境变量。

2.确保有足够的权限(如:dba权限)进行数据库备份操作。

3.了解数据库的名称、表空间等信息,以便进行正确的备份。

二、备份方法1.使用RMAN工具进行备份RMAN(Recovery Manager)是Oracle提供的一个强大的备份和恢复工具。

以下是一个简单的RMAN备份示例:a.连接到目标数据库:```rman target /```b.使用RMAN进行备份:```backup database;```这将备份整个数据库,包括控制文件和归档日志。

c.退出RMAN:```exit;```2.使用Oracle SQL命令进行备份a.使用SQL*Plus连接到目标数据库:```sqlplus / as sysdba```b.使用SQL命令备份整个数据库:```alter database backup controlfile to trace;```这将生成控制文件的备份脚本。

c.使用SQL命令备份表空间:```backup tablespace <表空间名称> to disk;```这将备份指定的表空间。

d.退出SQL*Plus:```exit;```三、备份文件的存储1.将备份文件存储在安全的磁带上或磁盘上。

2.建议将备份文件存储在不同的物理位置,以防止数据丢失。

四、定期检查备份1.定期检查备份文件是否完整、可用。

2.定期进行恢复测试,以确保备份的有效性。

通过以上步骤,您已经了解了一种简单易懂的Linux下Oracle数据库备份方法。

使用Linux shell脚本实现文件夹备份

使用Linux shell脚本实现文件夹备份

使用Linux shell脚本实现文件夹备份1.首先,要实现文件夹备份,最简单的方法就是使用Linux shell脚本。

它可以很方便地帮助我们把一个文件夹里的所有文件保存在另一个地方。

2.这里使用的是一个叫“cp”的命令。

它把需要备份的文件夹中的文件复制到另一个指定的位置。

比如,要实现将/home/myfolder内的所有文件夹备份到/mnt/backup,可以执行如下命令:cp -r /home/myfolder/* /mnt/backup3.上面的命令会将/home/myfolder内的所有文件和文件夹复制到/mnt/backup下。

这样,就可以把/home/myfolder内的所有文件夹备份到/mnt/backup下了。

4.除了使用cp命令,也可以使用tar命令来实现文件夹备份。

tar命令可以把文件夹打包成一个压缩文件,方便存储和传输。

它的使用方法如下:tar -czf backup.tar /home/myfolder5.上面的命令会把/home/myfolder内的所有文件和文件夹都打包到backup.tar文件中,这样就可以把它存储起来或传输到任何位置了。

6.此外,还可以使用rsync命令来实现文件夹备份,它可以把指定文件夹内的文件同步到另一个指定的位置。

使用rsync命令的方法如下:rsync -ar /home/myfolder/ /mnt/backup7.上面的命令会把/home/myfolder中的所有文件同步复制到/mnt/backup下,从而实现文件夹备份。

总之,可以使用Linux shell脚本来实现文件夹备份,可以通过使用cp、tar或rsync命令,将指定的文件夹内的所有文件夹复制到另一个位置。

希望上面的介绍能够帮助到大家。

使用shell脚本进行数据库操作

使用shell脚本进行数据库操作

使用shell脚本进行数据库操作Shell脚本是一种可以在Unix、Linux和其他操作系统中运行的脚本语言,它可以帮助我们自动化执行各种任务。

在数据库管理和操作中,Shell脚本也可以发挥重要作用。

本文将介绍如何使用Shell脚本进行数据库操作,包括连接数据库、执行SQL语句、导入导出数据等常见操作。

一、连接数据库在使用Shell脚本进行数据库操作之前,首先需要连接数据库。

不同的数据库系统可能具有不同的连接命令,下面以MySQL数据库为例。

要连接MySQL数据库,可以使用以下命令:```shell#!/bin/bashMYSQL_USER="your_username"MYSQL_PASSWORD="your_password"mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -e "useyour_database"```上述脚本首先定义了两个变量`MYSQL_USER`和`MYSQL_PASSWORD`,分别存储数据库的用户名和密码。

然后通过`mysql`命令连接数据库,并使用`-u`参数指定用户名,`-p`参数指定密码,`-e`参数执行指定的SQL语句。

其中,`use your_database`是一个示例,你可以根据实际情况修改为你要连接的数据库。

二、执行SQL语句连接数据库后,我们可以使用Shell脚本执行各种SQL语句,例如创建表、插入数据、更新数据等。

```shell#!/bin/bashMYSQL_USER="your_username"MYSQL_PASSWORD="your_password"mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -e "useyour_database; create table your_table (id int, name varchar(255)); insert into your_table values (1, 'John'); select * from your_table"```上述脚本在连接数据库后,执行了三条SQL语句:创建表`your_table`,插入一条数据,然后查询表中的数据。

windows rman备份脚本

windows rman备份脚本

、每天夜间1点执行;2、数据库全备,同时备份控制文件及归档日志文件,备份文件保存至:D:\backup\目录下,并在完成归档日志文件备份后,自动删除已备份的归档日志;3、备份保留7天,过期则自动删除;4、保留操作日志备查;以Windows环境为例(linux环境下与此基本类似,rman的脚本您甚至连改都不用改,就把调用rman脚本的命令行改改就行了):1、编写rman批处理文件保存至:E:\oracleScript\backup\database_backup_jssweb.rmanRUN {CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;CONFIGURE CONTROLFILE AUTOBACKUP ON;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO'd:/backup/%F';ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT 'd:/backup/%U';BACKUP DATABASE SKIP INACCESSIBLE FILESPERSET 10PLUS ARCHIVELOG FILESPERSET 20DELETE ALL INPUT;RELEASE CHANNEL CH1;ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;CROSSCHECK BACKUPSET;DELETE NOPROMPT OBSOLETE;SKIP选项说明SKIP INACCESSIBLE:表示跳过不可读的文件。

我们知道一些offline的数据文件只要存在于磁盘上就仍然可被读取,但是可能有些文件已经被删除或移到它处造成不可读,加上这个参数就会跳过这些文件;SKIP OFFLINE:跳过offline的数据文件;SKIP READONLY:跳过那些所在表空间为read-only的数据文件;注意哟,你从网上搜索rman备份脚本,可能有些脚本中会出现一项:sql 'alter system archive log current';这句是让archivelog日志归档,实际上完全没必要,我们在第三节的时候讲过,通过plus archivelog方式备份时,rman会自动对当前的archivelog进行归档。

利用shell脚本进行数据备份和同步

利用shell脚本进行数据备份和同步

利用shell脚本进行数据备份和同步在现代信息时代,数据的备份和同步变得越来越重要。

通过备份可以保护数据免受各种风险和意外情况的侵害,通过同步可以确保数据在不同设备之间的一致性。

本文将介绍如何使用Shell脚本来进行数据备份和同步操作。

一、数据备份数据备份是一项重要的工作,它可以防止数据丢失或被损坏。

使用Shell脚本可以轻松自动化完成数据备份的任务。

以下是一个简单的Shell脚本示例:```shell#!/bin/bash# 备份源文件夹路径source_dir="/path/to/source"# 备份目标文件夹路径backup_dir="/path/to/backup"# 创建备份目标文件夹mkdir -p $backup_dir# 备份文件夹rsync -av --delete $source_dir $backup_direcho "数据备份完成!"```以上脚本使用rsync命令进行数据备份,将source_dir文件夹中的内容同步到backup_dir文件夹中。

rsync命令的参数说明如下:- `-a`:以归档模式进行同步,保留文件的属性、权限等信息。

- `-v`:显示详细的同步过程。

- `--delete`:删除目标文件夹中不存在于源文件夹的文件。

通过修改`source_dir`和`backup_dir`变量的值,可以实现对不同文件夹的备份。

二、数据同步数据同步是确保不同设备之间数据一致性的重要手段。

Shell脚本同样可以很好地完成数据同步的工作。

以下是一个简单的Shell脚本示例:```shell#!/bin/bash# 同步源文件夹路径source_dir="/path/to/source"# 同步目标文件夹路径target_dir="/path/to/target"# 同步文件夹rsync -av --delete $source_dir $target_direcho "数据同步完成!"```以上脚本同样使用rsync命令进行数据同步,将source_dir文件夹中的内容同步到target_dir文件夹中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

rman全库备份——shell脚本实施方案
2012-03-21 15:58:54
标签:oracle休闲rman脚本全库备份
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。

否则将追究法律责任。

/2866802/812761
rman是oracle的一个强大的工具,工作经验积累,直奔主题,如何使用rman工具进行脚本全库备份。

1.建立rman表空间
SQL> create tablespace rman
2 logging datafile '/opt/oracle/oradata/rman/rman.dbf' size 1024M
3 extent management local segment space management auto;
2.创建rman备份账号
SQL> create user rman identified by rman default tablespace rman;
SQL> grant connect,resource to rman;
SQL> grant recovery_catalog_owner to rman;
SQL> grant unlimited tablespace to rman;
SQL> grant sysdba to rman;
3.查看日志是否归档
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 14
Next log sequence to archive 16
Current log sequence 16
4.建立catalog数据库及注册数据库
oracle@linux-nao:~> rman catalog rman/rman
Recovery Manager: Release 11.1.0.6.0 - Production on 星期三3月21 16:10:49 2012
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to recovery catalog database
RMAN> create catalog tablespace "RMAN";
recovery catalog created
RMAN> exit
oracle@linux-nao:~> rman target sys/oracle@orcl catalog rman/rman@orcl Recovery Manager: Release 11.1.0.6.0 - Production on 星期三3月
21 16:20:34 2012
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: ORCL (DBID=1305015629)
connected to recovery catalog database
RMAN> register database; database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
5.rman环境设置
1) 设置保留30天的备份信息,
RMAN> configure retention policy to recovery window of 30 days;
new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;
new RMAN configuration parameters are successfully stored
starting full resync of recovery catalog
full resync complete
2)启用控制文件自动备份及备份存放位置配置
RMAN> configure controlfile autobackup on;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored starting full resync of recovery catalog
full resync complete
6.查看配置信息
RMAN> show all;
7.备份策略
每周日00:00进行一次全库备份
系统自动清除30天以前的备份信息
8.创建备份必要目录(以oracle身份创建)
mkdir backup
cd backup
mkdir controlfileback 存放备份的控制文件
mkdir dbback 存放备份的数据文件
mkdir log 存放备份生成的日志,坚持该日志查看备份是否成功
mkdir logback 存放归档日志文件
9.全库备份脚本dbback.sh
1.#!/bin/bash
2.#this is rman auto full backup script
3.#Copyright by 21og
4.#date 2012-03-21
5.export ORACLE_SID=orcl
6.export ORACLE_HOME=/opt/oracle/product/10.2/db_1
7.export ORACLE_BASE=/opt/oracle
8.export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
9.backtime=`date +"20%y%m%d%H%M%S"`
10.cd $ORACLE_HOME/bin
11.rman target / catalog rman/rman log=/opt/oracle/backup/log/backupall
_$backtime.log <<EOF
12.run{
13.allocate channel c1 device type disk;
14.allocate channel c2 device type disk;
15.allocate channel c3 device type disk;
16.allocate channel c4 device type disk;
17.allocate channel c5 device type disk;
18.crosscheck backup;
19.sql 'alter system archive log current';
20.backup database format '/opt/oracle/backup/dbback/db_%d_%T_%U';
21.sql 'alter system archive log current';
22.backup archivelog all format '/opt/oracle/backup/logback/arc_%t_%s'
delete all input;
23.backup current controlfile format '/opt/oracle/backup/controlfilebac
k/cntrl_%s_%p_%s';
24.crosscheck archivelog all;
25.delete noprompt expired backup;
26.delete noprompt obsolete;
27.delete noprompt backup of database completed before 'sysdate - 30';
28.release channel c1;
29.release channel c2;
30.release channel c3;
31.release channel c4;
32.release channel c5;
33.}
34.EOF
35.echo "backup complete!"
10.crontab自动执行
1)以root身份编辑cron.allow文件,手动添加oracle用户允许使用cron 服务。

启动cron服务 /etc/init.d/cron start
2)以oracle身份执行crontab -e
0 0 * * 0 /opt/oracle/backup/script/dbback.sh 2>&1 >/dev/null OK,所有操作完毕,好累~~~
本文出自“我就是我非此非彼”博客,请务必保留此出处
/2866802/812761。

相关文档
最新文档