Rman备份的shell脚本
使用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'。
Rman使用简明
Rman使用简明一、Rman备份概述1,含义RMAN可以用来备份和恢复数据库文件、归档日志和控制文件,在9i中也可以用来备份和恢复spfile。
也可以用来执行完全或不完全的数据库恢复。
RMAN启动数据库上的Oracle服务器进程来进行备份或还原。
备份、还原、恢复是由这些进程驱动的。
具有如下特点:1)功能类似物理备份,但比物理备份强大N倍,从下面的特点可以看到;2)可以压缩空块;3)可以在块水平上实现增量;4)可以把备份的输出打包成备份集,也可以按固定大小分割备份集;5)备份与恢复的过程可以自动管理;6)可以使用脚本(存在Recovery catalog中)7)可以做坏块监测2,概念备份集(backup sets):备份集顾名思义就是一次备份的集合,它包含本次备份的备份片,以oracle 专有的格式保存。
一个备份集根据备份的类型不同,可能构成一个完全备份或增量备份。
注:一次备份可能产生多个备份集,根据数据量的大小和参数设定不同而变化备份片(Backup pieces):每个备份片是一个单独的输出文件。
如果备份片没有大小的限制,一个备份集就只由一个备份片构成。
备份片的大小不能大于你的文件系统所支持的文件长度的最大值。
Image copies (映像备份)映像备份不压缩、不打包、直接COPY独立文件(数据文件、归档日志、控制文件),类似操作系统级的文件备份。
Full backup 全备份全备份是指对数据文件中使用过的数据块进行备份,没有使用过的数据块是不做备份的,也就是说,RMAN进行备份是进行压缩的。
Incremental backup 增量备份增量备份是指备份数据文件中自从上一次同一级别的或更低级别的备份以来被修改过的数据块。
与完全备份相同,增量备份也进行压缩。
增量备份虽然概念很好,备份也很简单,但恢复起来却是另外一回事,不仅麻烦而且容易出错,所以实际中越来越少使用,到了Oracle 9i已经建议不再使用,以后版本会逐渐取消对增量备份的支持。
rman备份恢复
写两个shell脚本:备份全库的、备份归档的
注意:数据文件、控制文件、日志文件的存放位置:
cd $ORACLE_BASE/oradata/test
cd /oracle/app/oracle/oradata/test
rman备份配置:
1.rman要进行备份的数据库叫做目标数据库
2.rman是一个客户端程序,需要建立到目标数据库的客户端连接,并在目标数据库上创建对应的服务器进程以及session,rman输入的各个命令,从客户端传递到服务器,由服务器进程负责执行,rman只能使用专用服务器连接,不能使用共享服务器连接。
连接方式
1.
rman
connect target /
2.
rman target /
3.
rman target rmanadmin/dongdong
4.
如果是在另一台机器上使用rman客户端,那么可以使用下面的连接方式
rman target rmanadmin/dongdong@orcl
表示连接的是目标数据库,而且指的是本机的数据库实例,最终连接到数据库
rman用户需要sysdba权限,我们最好不要使用sys用户,因此给rman建立一个专用账号
create user rmanadmin identified by dongdong;
grant sysdba to rmanadmin
目标数据库的控制文件
恢复目录(recovery catalog)
8.控制文件里面存放的记录分为两类
可删除的记录(归档日志文件的历史记录以及rman备份的元数据)
不可删除的记录(数据文件、联机日志文件列表等)
Linux系统日志备份脚本
Linux系统日志备份脚本Linux系统日志对于系统运维和故障排除来说是至关重要的信息来源,因此定期备份系统日志是保证系统安全和稳定运行的重要步骤之一。
本文将介绍一个简单而有效的Linux系统日志备份脚本,以帮助管理员们轻松地完成备份任务。
一、脚本说明本脚本使用bash编写,适用于大多数Linux发行版。
它的主要功能是将系统日志文件压缩并移动到指定目录,以便后续的备份和归档。
二、脚本编写以下是一个示例备份脚本的内容:```bash#!/bin/bash# 定义备份目录backup_dir="/path/to/backup"# 定义日志目录log_dir="/var/log"# 定义备份文件名backup_file="logs_$(date +%Y%m%d%H%M%S).tar.gz"# 创建备份目录mkdir -p $backup_dir# 备份系统日志tar -zcf $backup_dir/$backup_file $log_dir/*# 完成备份echo "日志备份完成!备份文件为:$backup_file"```三、脚本使用1. 将以上脚本保存为一个文件,例如`log_backup.sh`;2. 将脚本文件放置在合适的位置,例如`/usr/local/bin`;3. 赋予脚本执行权限:`chmod +x /usr/local/bin/log_backup.sh`;4. 执行脚本进行备份:`/usr/local/bin/log_backup.sh`。
四、脚本解析1. `backup_dir`:定义备份目录,可以根据实际需要修改成你想要的目录;2. `log_dir`:定义日志目录,此处默认为`/var/log`,你也可以根据实际情况修改;3. `backup_file`:定义备份文件名,使用当前日期和时间作为文件名,保证每次备份都有唯一的文件名;4. `mkdir -p $backup_dir`:创建备份目录,如果目录已存在则忽略;5. `tar -zcf $backup_dir/$backup_file $log_dir/*`:使用`tar`命令将日志目录下的所有文件压缩成一个文件,并保存到备份目录中;6. `echo "日志备份完成!备份文件为:$backup_file"`:在备份完成后,输出备份文件信息。
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备份与恢复案例一. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。
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#!/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文件夹中。
orcle数据库备份语句
orcle数据库备份语句Oracle数据库备份是一项非常重要的任务,可以保障数据的安全性和完整性。
在进行数据库备份时,我们可以使用不同的语句和方法来完成备份操作。
以下是一些常用的Oracle数据库备份语句:1. 使用RMAN备份整个数据库:RMAN是Oracle推荐的备份工具,可以使用以下语句备份整个数据库:```RMAN> BACKUP DATABASE;```2. 使用RMAN备份指定表空间:如果只需要备份数据库中的特定表空间,可以使用以下语句:```RMAN> BACKUP TABLESPACE tablespace_name;```3. 使用RMAN备份指定数据文件:如果只需要备份数据库中的特定数据文件,可以使用以下语句:```RMAN> BACKUP DATAFILE 'datafile_path';4. 使用RMAN备份指定控制文件:控制文件是数据库的关键组成部分,可以使用以下语句备份控制文件:```RMAN> BACKUP CURRENT CONTROLFILE;```5. 使用RMAN备份归档日志:归档日志包含了数据库的所有更改记录,可以使用以下语句备份归档日志:```RMAN> BACKUP ARCHIVELOG ALL;```6. 使用EXPDP备份数据库:EXPDP是Oracle提供的数据泵工具,可以使用以下语句备份整个数据库:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp full=yes;7. 使用EXPDP备份指定表:如果只需要备份数据库中的特定表,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp tables=table_name;```8. 使用EXPDP备份指定表空间:如果只需要备份数据库中的特定表空间,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp tablespaces=tablespace_name;```9. 使用EXPDP备份指定用户:如果只需要备份数据库中的特定用户,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp schemas=user_name;```10. 使用EXPDP备份指定数据文件:如果只需要备份数据库中的特定数据文件,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp filesperset=1 include=datafile:'datafile_path';```总结:以上是一些常用的Oracle数据库备份语句,通过使用不同的备份语句可以实现对整个数据库、指定表空间、指定数据文件、归档日志等的备份。
RMAN备份
使用RMAN备份DB一、建置环境与情境本文件说明使用RMAN由来源DB复制DB到另一台主机上。
测试的环境描述如下:1.来源和复制主机为相同平台和OS系统,OS:HP-UX,平台:Intel Itanium2.来源DB和复制DB的版本相同,皆为Oracle 10.2.0.4版3.来源DB和复制DB的SID和服务名称相同,SID:HPDEV2,服务名称:4.来源DB和复制DB都是使用ASM做为储存媒介,ASM内储存结构也相同,储存目录root都为+DATADG5.RMAN使用control纪录备份回、复信息如要参考此步骤进行复制,请先确认以上环境的差异,参考Backup and Recovery Advanced User’s Guide.pdf中13章部分和Backup and Recovery Reference.pdf手册进行修改。
在RMAN复制DB操作上,来源DB是以target DB连接,而复制DB则以auxiliary DB连接。
操作时请注意来源、复制DB和target DB、auxiliary DB间的关系,避免混淆。
二、复制DB步骤1.检查来源DB archive log mode使用RMAN复制DB必须先用RMAN备份来源DB,备份时请注意DB的archive log mode,如果为noarchive log模式,RMAN只能在DB为mount模式下备份,在备份时DB无法提供服务。
故如果DB无法容忍长时间停机,应先将RMAN切换为archive log mode,如此可以在DB open的状况下进行备份。
检查archive log可以用sqlplus以sys登入下以下指令查询:如需要修改可以下以下指令:shutdown immediate;startup mount;alter database archivelog; --或noarchivelogalter database open;设定完后可以重新以:archive log list;查询设定是否成功。
Linux脚本中调用SQL,RMAN脚本
Linux脚本中调⽤SQL,RMAN脚本Linux/Unix shell脚本中调⽤或执⾏SQL,RMAN 等为⾃动化作业以及多次反复执⾏提供了极⼤的便利,因此通过Linux/Unix shell来完成的相关⼯作,也是DBA必不可少的技能之⼀。
本⽂针对Linux/Unix shell脚本调⽤sql, rman 脚本给出了相关⽰例。
⼀、由shell脚本调⽤sql,rman脚本1. 1、shell脚本调⽤sql脚本2. #⾸先编辑sql⽂件3. oracle@SZDB:~> more dept.sql4. connect scott/tiger5. spool /tmp/dept.lst6. set linesize 100 pagesize 807. select * from dept;8. spool off;9. exit;10.11. #编辑shell脚本⽂件,在shell脚本内调⽤sql脚本12. oracle@SZDB:~> more get_dept.sh13. #!/bin/bash14.15. # set environment variable16.17. if [ -f ~/.bashrc ]; then18. . ~/.bashrc19. fi20.21. export ORACLE_SID=CNMMBO22. sqlplus -S /nolog @/users/oracle/dept.sql #注意此处执⾏sql脚本的⽅法 -S 表⽰以静默⽅式执⾏23. exit24.25. #授予脚本执⾏权限26. oracle@SZDB:~> chmod 775 get_dept.sh27.28. -->执⾏shell脚本29. oracle@SZDB:~> ./get_dept.sh30.31. DEPTNO DNAME LOC32. ---------- -------------- -------------33. 10 ACCOUNTING NEW YORK34. 20 RESEARCH DALLAS35. 30 SALES CHICAGO36. 40 OPERATIONS BOSTON37.38. 2、shell脚本调⽤rman脚本39. #⾸先编辑RMAN脚本40. oracle@SZDB:~> more rman.rcv41. RUN {42. CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;43. CONFIGURE BACKUP OPTIMIZATION ON;44. CONFIGURE CONTROLFILE AUTOBACKUP ON;45. CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/users/oracle/bak/%d_%F';46. ALLOCATE CHANNEL CH1 TYPE DISK MAXPIECESIZE=4G;47. ALLOCATE CHANNEL CH2 TYPE DISK MAXPIECESIZE=4G;48. SET LIMIT CHANNEL CH1 READRATE=10240;49. SET LIMIT CHANNEL CH1 KBYTES=4096000;50. SET LIMIT CHANNEL CH2 READRATE=10240;51. SET LIMIT CHANNEL CH2 KBYTES=4096000;52. CROSSCHECK ARCHIVELOG ALL;53. DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;54. BACKUP55. DATABASE FORMAT '/users/oracle/bak/%d_FULL__%U';56. SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';57. BACKUP ARCHIVELOG ALL FORMAT '/users/oracle/bak/%d_LF_%U' DELETE INPUT;58. DELETE NOPROMPT OBSOLETE;59. RELEASE CHANNEL CH1;60. RELEASE CHANNEL CH2;63. #编辑shell脚本⽂件,在shell脚本内调⽤rman脚本64. oracle@SZDB:~> more rman_bak.sh65. #!/bin/bash66.67. # set environment variable68.69. if [ -f ~/.bashrc ]; then70. . ~/.bashrc71. fi72.73. export ORACLE_SID=CNMMBO74. $ORACLE_HOME/bin/rman target / cmdfile=/users/oracle/rman.rcv log=/users/oracle/bak/rman.log75. exit76.77. #授予脚本执⾏权限78. oracle@SZDB:~> chmod 775 rman_bak.sh79.80. #执⾏shell脚本81. oracle@SZDB:~> ./rman_bak.sh⼆、嵌⼊sql语句及rman到shell脚本1. 1、直接将sql语句嵌⼊到shell脚本2. oracle@SZDB:~> more get_dept_2.sh3. #!/bin/bash4. # Author : Robinson Cheng5. # Blog : /robinson_06126.7. # set environment variable8.9. if [ -f ~/.bashrc ]; then10. . ~/.bashrc11. fi12.13. export ORACLE_SID=CNMMBO14. sqlplus -S /nolog <<EOF #EOF在此表⽰当输⼊过程中碰到EOF后,整个sql脚本输⼊完毕15. connect scott/tiger16. spool /tmp/dept.lst17. set linesize 100 pagesize 8018. select * from dept;19. spool off;20. exit; #退出sqlplus 环境21. EOF22. exit #推出shell脚本23.24. #授予脚本执⾏权限25. oracle@SZDB:~> chmod u+x get_dept_2.sh26.27. #执⾏shell脚本28. oracle@SZDB:~> ./get_dept_2.sh29.30. DEPTNO DNAME LOC31. ---------- -------------- -------------32. 10 ACCOUNTING NEW YORK33. 20 RESEARCH DALLAS34. 30 SALES CHICAGO35. 40 OPERATIONS BOSTON36.37. 2、直接将sql语句嵌⼊到shell脚本(⽅式⼆,使⽤管道符号>代替spool来输出⽇志)38. oracle@SZDB:~> more get_dept_3.sh39. #!/bin/bash40.41. # set environment variable42.43. if [ -f ~/.bashrc ]; then44. . ~/.bashrc47. export ORACLE_SID=CNMMBO48. sqlplus -S /nolog 1>/users/oracle/dept.log 2>&1 <<EOF49. connect scott/tiger50. set linesize 80 pagesize 8051. select * from dept;52. exit;53. EOF54. cat /users/oracle/dept.log55. exit56.57. #另⼀种实现⽅式,将所有的sql语句输出来⽣成sql脚本后再调⽤58. oracle@SZDB:~> more get_dept_4.sh59. #!/bin/bash60.61. # set environment variable62.63. if [ -f ~/.bashrc ]; then64. . ~/.bashrc65. fi66.67. export ORACLE_SID=CNMMBO68. echo "conn scott/tiger69. select * from dept;70. exit;" >/users/oracle/get_dept.sql71. sqlplus -silent /nolog @get_dept.sql 1>/users/oracle/get_dept.log 2>&172. cat get_dept.log73. exit74.75. 3、将rman脚本嵌⼊到shell脚本76. oracle@SZDB:~> more rman_bak_2.sh77. #!/bin/bash78.79. # set environment variable80.81. if [ -f ~/.bashrc ]; then82. . ~/.bashrc83. fi84.85. export ORACLE_SID=CNMMBO86. $ORACLE_HOME/bin/rman log=/users/oracle/bak/rman.log <<EOF87. connect target /88. RUN {89. CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;90. CONFIGURE BACKUP OPTIMIZATION ON;91. CONFIGURE CONTROLFILE AUTOBACKUP ON;92. CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/users/oracle/bak/%d_%F';93. ALLOCATE CHANNEL CH1 TYPE DISK MAXPIECESIZE=4G;94. ALLOCATE CHANNEL CH2 TYPE DISK MAXPIECESIZE=4G;95. SET LIMIT CHANNEL CH1 READRATE=10240;96. SET LIMIT CHANNEL CH1 KBYTES=4096000;97. SET LIMIT CHANNEL CH2 READRATE=10240;98. SET LIMIT CHANNEL CH2 KBYTES=4096000;99. CROSSCHECK ARCHIVELOG ALL;100. DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;101. BACKUP102. DATABASE FORMAT '/users/oracle/bak/%d_FULL__%U';103. SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';104. BACKUP ARCHIVELOG ALL FORMAT '/users/oracle/bak/%d_LF_%U' DELETE INPUT;105. DELETE NOPROMPT OBSOLETE;106. RELEASE CHANNEL CH1;107. RELEASE CHANNEL CH2;108. }109. EXIT;110. EOF111. exit112.113. #授予脚本执⾏权限114. oracle@SZDB:~> chmod u+x rman_bak_2.sh115.116. #执⾏shell脚本117. oracle@SZDB:~> ./rman_bak_2.sh118. RMAN> RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15> 16> 17> 18> 19> 20> 21> RMAN> oracle@SZDB:~>。
利用shell脚本进行文件同步和备份
利用shell脚本进行文件同步和备份在进行文件同步和备份时,使用Shell脚本是一种高效且可靠的方式。
Shell脚本可以自动执行一系列的命令,从而实现文件的同步和备份操作。
本文将介绍如何利用Shell脚本进行文件同步和备份,并提供相应的示例代码。
一、文件同步文件同步是指将源目录中的文件同步到目标目录中,保持两个目录中的文件内容相同。
下面是一个利用Shell脚本进行文件同步的示例代码:```shell#!/bin/bashsource_dir="/path/to/source" # 源目录target_dir="/path/to/target" # 目标目录# 同步文件rsync -av --delete $source_dir/ $target_dir/```以上示例代码中,`source_dir`和`target_dir`分别表示源目录和目标目录的路径。
`rsync`命令用于实现文件同步操作,参数说明如下:- `-av`表示以归档模式同步文件,保持文件属性和权限不变;- `--delete`表示删除目标目录中不存在于源目录的文件。
在实际使用时,可以将以上代码保存为一个Shell脚本文件(例如`sync.sh`),并添加执行权限。
然后通过执行`./sync.sh`命令即可进行文件同步操作。
二、文件备份文件备份是指将源文件复制到一个备份目录中,以便在需要时恢复文件。
下面是一个利用Shell脚本进行文件备份的示例代码:```shell#!/bin/bashsource_file="/path/to/source/file" # 源文件backup_dir="/path/to/backup/dir" # 备份目录# 创建备份目录(如果不存在)mkdir -p $backup_dir# 备份文件cp $source_file $backup_dir```以上示例代码中,`source_file`表示源文件的路径,`backup_dir`表示备份目录的路径。
Shell脚本中的备份和恢复技巧
Shell脚本中的备份和恢复技巧Shell脚本是一种在Unix和Linux系统中常用的脚本语言,用于自动化执行各种任务。
在日常工作中,我们经常需要对文件和目录进行备份和恢复操作。
本文将介绍使用Shell脚本实现备份和恢复的一些技巧。
一、备份技巧1. 文件备份对单个文件进行备份的方法很简单,只需使用cp命令将文件复制到指定目录即可。
例如,将文件file.txt备份到backup目录下,可以使用以下脚本:```#!/bin/bashcp file.txt backup/```2. 目录备份对整个目录进行备份时,可以使用cp命令结合递归参数-r来实现。
例如,将目录dir备份到backup目录下,可以使用以下脚本:```#!/bin/bashcp -r dir backup/```3. 增量备份为了节省存储空间和备份时间,我们可以使用增量备份的方式。
增量备份只备份与前一次备份后有变动的文件或目录。
下面是一个增量备份的例子:```#!/bin/bashbackup_dir="/path/to/backup"last_backup_dir="/path/to/last_backup"# 比较两次备份,只备份变动的文件或目录rsync -a --delete --link-dest=$last_backup_dir /source_dir/$backup_dir/current# 将当前备份设置为最新备份rm -f $last_backup_dirln -s $backup_dir/current $last_backup_dir```4. 定时备份为了自动定时进行备份,可以使用crontab来实现。
打开终端,输入crontab -e命令,编辑定时任务,并添加备份脚本的调用。
例如,下面的例子是每天凌晨2点执行备份脚本:```0 2 * * * /path/to/backup_script.sh```二、恢复技巧1. 文件恢复对于备份的文件,我们可以使用cp命令将备份文件复制到原始目录中,实现文件的恢复。
Shell脚本编写如何实现文件备份和恢复
Shell脚本编写如何实现文件备份和恢复一、概述文件备份和恢复是计算机系统中非常重要的一项任务,用于保护重要文件的安全性和完整性。
Shell脚本是一种批处理脚本语言,可以在Unix和Linux操作系统中自动化执行各种任务。
本文将介绍如何使用Shell脚本编写实现文件备份和恢复的功能。
二、文件备份文件备份是指将指定的文件或目录复制到另一个位置或存储介质中,以防止原始文件丢失或损坏。
以下是使用Shell脚本实现文件备份的步骤:1. 创建一个新的Shell脚本文件,例如backup.sh。
2. 在脚本文件的开头,添加Shebang行指定脚本使用的Shell解释器,例如#!/bin/bash。
3. 使用变量指定源文件的路径和目标文件的路径。
例如,source=/path/to/source/file,target=/path/to/backup/file。
4. 使用cp命令将源文件复制到目标文件。
命令如下:```cp $source $target```5. 保存并退出脚本文件。
6. 使用chmod命令将脚本文件设置为可执行权限:```chmod +x backup.sh```7. 运行脚本文件以执行文件备份:```./backup.sh```三、文件恢复文件恢复是指将备份的文件或目录恢复到其原始位置,以还原丢失或损坏的文件。
以下是使用Shell脚本实现文件恢复的步骤:1. 创建一个新的Shell脚本文件,例如restore.sh。
2. 在脚本文件的开头,添加Shebang行指定脚本使用的Shell解释器,例如#!/bin/bash。
3. 使用变量指定源文件的路径和目标文件的路径。
例如,source=/path/to/backup/file,target=/path/to/restore/file。
4. 使用cp命令将源文件复制到目标文件。
命令如下:```cp $source $target```5. 保存并退出脚本文件。
Shell脚本中的数据库备份和恢复技巧
Shell脚本中的数据库备份和恢复技巧数据库备份和恢复是保障数据安全和恢复能力的重要环节,而Shell 脚本作为一种自动化脚本编程语言,可以方便地实现数据库备份和恢复的操作。
本文将介绍几种Shell脚本中实现数据库备份和恢复的技巧。
一、使用mysqldump进行数据库备份在Shell脚本中使用mysqldump命令可以对MySQL数据库进行备份。
该命令可以导出数据库结构和数据,生成一个SQL文件。
以下是一个实例:```shell#!/bin/bash# 定义备份文件名backup_file="backup_db_$(date +%Y%m%d%H%M%S).sql"# 导出数据库mysqldump -hlocalhost -uroot -ppassword dbname > $backup_file# 输出备份完成信息echo "Backup completed. Backup file: $backup_file"```在上述脚本中,首先定义了备份文件名,采用日期时间作为文件名的一部分,免得文件名重复。
然后使用mysqldump命令导出数据库,其中指定了数据库的地址、用户名、密码和数据库名。
最后输出备份完成信息。
二、使用mysqldump进行数据库恢复要进行数据库恢复,首先需要有一个数据库备份文件。
下面是一个实例:```shell#!/bin/bash# 定义备份文件名backup_file="backup_db.sql"# 删除现有数据库mysql -hlocalhost -uroot -ppassword -e "DROP DATABASE dbname"# 创建新数据库mysql -hlocalhost -uroot -ppassword -e "CREATE DATABASE dbname"# 导入备份文件mysql -hlocalhost -uroot -ppassword dbname < $backup_file# 输出恢复完成信息echo "Restore completed."```在上述脚本中,首先定义了备份文件名,然后使用mysql命令删除现有数据库,接着使用mysql命令创建一个新的数据库。
oracle—rman备份使用方法
RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,提供了强大的备份、恢复和数据库复制功能。
以下是使用RMAN进行备份的基本步骤:
1. 连接到 RMAN:
通过命令行或脚本连接到 RMAN。
在命令行中输入:
这会使用操作系统认证连接到默认的本地数据库实例。
2. 设置备份配置参数:
在 RMAN 中,您可以设置各种备份配置参数,例如备份类型、备份目标、备份文件位置等。
以下是一个设置备份参数的示例:
这将启用自动备份控制文件和配置备份文件的保存路径。
3. 执行备份:
执行备份命令以创建数据库备份。
以下是创建全库备份的示例:
您还可以根据需要选择性地备份表空间、数据文件等。
4. 查看备份:
您可以使用以下命令查看备份信息:
这将显示当前配置的备份。
5. 恢复数据库:
如果需要进行恢复,您可以使用 RMAN 执行还原和恢复操作。
以下是一个简单的例子:
这将还原数据库文件并应用必要的日志以完成数据库的恢复。
6. 退出 RMAN:
完成备份和恢复操作后,使用以下命令退出 RMAN:
这是一个基本的 RMAN 备份和恢复过程。
请注意,在实际环境中,您可能需要根据数据库的具体要求和策略进行更复杂的备份和恢复配置。
请参考 Oracle 官方文档以获取更详细的信息和高级用法。
linuxshell编程案例
linuxshell编程案例Linux Shell编程案例Shell编程是一种在Linux操作系统中使用Shell脚本语言编写脚本的技术。
通过Shell编程,我们可以自动化执行一系列的命令,提高工作效率。
下面,我将介绍一个实际的Shell编程案例,帮助大家更好地理解和应用Shell编程。
案例背景:假设我们是一家电商公司的运维工程师,每天需要备份公司的数据库,并将备份文件上传到远程服务器上。
为了简化这个繁琐的过程,我们可以使用Shell编程来实现自动备份和上传。
案例步骤:1. 创建Shell脚本文件首先,我们需要创建一个Shell脚本文件,比如命名为backup.sh。
可以使用任何文本编辑器来创建该文件。
2. 编写脚本内容在backup.sh文件中,我们需要编写一系列的命令来实现备份和上传的功能。
下面是一个简单的示例:```shell#!/bin/bash# 定义备份文件名和路径backup_file="db_backup_$(date +%Y%m%d).sql"backup_path="/path/to/backup"# 备份数据库mysqldump -u username -p password database >$backup_path/$backup_file# 上传备份文件到远程服务器scp $backup_path/$backup_file user@remote_server:/path/to/backup```在这个示例中,我们首先定义了备份文件的名称和路径。
然后,使用`mysqldump`命令备份数据库,并将备份文件保存到指定的路径中。
最后,使用`scp`命令将备份文件上传到远程服务器上。
3. 添加执行权限在终端中,使用`chmod +x backup.sh`命令为脚本文件添加执行权限。
4. 执行脚本在终端中,使用`./backup.sh`命令执行脚本。
Linux系统备份脚本使用Shell脚本实现对Linux系统文件的自动备份
Linux系统备份脚本使用Shell脚本实现对Linux系统文件的自动备份随着信息技术的快速发展,数据备份变得越来越重要。
对于Linux 系统而言,备份系统文件是保护数据安全的重要手段之一。
本文将介绍如何使用Shell脚本实现对Linux系统文件的自动备份。
一、备份目标确定在开始编写备份脚本之前,首先要确定备份目标。
可以选择备份整个系统或者只备份关键文件和目录。
根据具体需求,可以自行调整备份策略。
二、Shell脚本编写为了实现自动备份,我们利用Shell脚本来编写备份脚本。
以下是一个简单的备份脚本示例:```#!/bin/bash# 备份目录backup_dir="/path/to/backup"# 备份文件名backup_file="backup_$(date +%Y%m%d).tar.gz"# 需要备份的文件目录files_to_backup=("/etc""/home/user/documents""/var/log")# 创建备份目录mkdir -p $backup_dir# 执行备份tar -zcvf $backup_dir/$backup_file ${files_to_backup[@]}```上述脚本中,我们首先定义了备份目录、备份文件名和需要备份的文件目录。
然后通过命令`mkdir -p`创建备份目录。
最后使用`tar`命令将指定的文件目录打包成一个.tar.gz文件,并保存到备份目录中。
三、定时执行备份脚本为了实现自动备份,我们可以将备份脚本设置为定时任务。
通过设置Cron表达式,可以定期执行备份任务。
以下是一个例子:```# 编辑Crontab任务crontab -e# 添加备份任务0 3 * * * bash /path/to/backup_script.sh```上述例子中,我们使用`crontab -e`命令编辑Crontab任务,并添加一条定时执行备份脚本的任务。
RMAN备份介绍
RMAN备份介绍RMAN备份【官⽅⽂档】 Backup and Recovery Reference Backup and Recovery User's Guide1 备份⽂件类型1.1 backupset备份集 不备份datafile⾥⾯从未使⽤块、可以实现增量备份(可以备份到disk和tape)。
可以使⽤压缩,如果只启⽤⼀个channel,默认会把所有备份的datafile放⼊到⼀个backupset⾥,并且⽣成⼀个备份⽚backup piece 使⽤section size时,⼀个backupset中可以包含多个backup piece1.1.1 备份全库① RMAN> backup database format='/u01/backup/rman/prod_%s.bak' filesperset 3;② RMAN> backup database plus archivelog delete input;说明:备份所有数据⽂件及控制⽂件、spfile⽂件与所有归档⽇志,并删除旧的归档⽇志,当deleteinput后,控制⽂件相关信息(v$archived_log)也会被更新。
archivelog物理⽇志也被删除③ RMAN> backup database format '/u01/backup/rman/%U.bak' plus archivelog delete input skip inaccessible;说明:archivelog的备份是根据控制⽂件中(v$archived_log)中的内容导航的,如果控制⽂件中记录了⽽实际归档中⼜不存在,则会报错,skip inaccessible的含义是跳过物理上缺失的⽇志⽂件因为有了全备,随时可以还原备份,还原点之前的归档⽇志可以删除,如果想单独还原归档⽇志备份可以使⽤:restore archivelog all; 1.1.2 备份表空间RMAN> backup tablespace users format '/u01/backup/rman/users_%U.bak' tag=userbak;1.1.3 备份数据⽂件RMAN> backup datafile 3,5 format '/u01/backup/rman/%d_%s.bak';备份数据⽂件,可以⼀次备份多个,以“,” 分开1.1.4 备份归档⽇志查看当前数据库中归档⽇志RMAN> list archivelog all;备份所有归档⽇志,备份完成后删除库⾥的归档⽇志⽂件RMAN> backup archivelog all delete input;将归档⽇志⽂件从备份转储回库中RMAN> restore archivelog all;1.1.5 备份控制⽂件RMAN> backup current controlfile;1.1.6 备份参数⽂件RMAN> backup spfile;1.2 image copy(映像⽂件)备份1.2.1 image copy(映像⽂件) 实际上和⼿⼯cp类似的,备份datafile所有的数据块,不能作为增量备份的基础(即0级增量备份),只能备份到disk,不能备份到tape,优点是可以省略还原步骤,恢复数据库速度快1.2.2 语法① RMAN> copy datafile 4 to '/u01/backup/rman/users_%s.bak';② RMAN> backup as copy tablespace 'TEST' format '/u01/backup/rman/%d_test_%s.bak';建议使⽤backup语法,统⼀格式backup as copy database format '/u01/backup/rman/%U.bak';list datafilecopy all;删除delete datafilecopy all;2 rman冷热备脚本参考2.1 rman冷备脚本vi /u01/backup/rman/cold.sql写⼊脚本:run{shutdown immediate;startup mount;allocate channel c1 device type disk;allocate channel c2 device type disk;backup database format '/u01/backup/rman/db_%d_%T_%U.bak';backup current controlfile format '/u01/backup/rman/ctl_%d_%T_%U.bak';alter database open;release channel c1;release channel c2;}2.2 rman热备vi /u01/backup/rman/hot.sql写⼊脚本:run{allocate channel c1 device type disk;allocate channel c2 device type disk;backup database format '/u01/backup/rman/db_%d_%T_%U.bak' plus archivelog format '/u01/backup/rman/ar_%d_%T_%U.bak';backup current controlfile format '/u01/backup/rman/ctl_%d_%T_%U.bak';release channel c1;release channel c2;}3 增量备份incremental backup【官⽅⽂档】 Database Backup and Recovery User's Guide ---> 8 RMAN Backup Concepts ---> Incremental Backups3.1 概念 只备份⾃某次备份以来发⽣变化的block。
Linux系统定时备份脚本使用Shell脚本实现自动定时备份
Linux系统定时备份脚本使用Shell脚本实现自动定时备份在Linux系统中,定时备份是一项非常重要的任务。
通过定时备份,我们可以确保系统中的重要数据得到有效的保护,以防止数据丢失或损坏。
在本文中,我将介绍如何使用Shell脚本来实现自动定时备份。
备份脚本的编写在开始编写备份脚本之前,我们需要确定备份的目标文件夹和备份的目标位置。
在这个例子中,我们将把文件夹`/var/www/html`备份到`/backup`目录下。
1. 首先,打开一个文本编辑器,创建一个新的Shell脚本文件:```$ vim backup.sh```2. 在脚本文件的开头加上Shebang指令,指明使用Shell解释器:```shell#!/bin/bash```3. 接下来,我们需要定义备份的目标文件夹和备份的目标位置:```shellSOURCE="/var/www/html"TARGET="/backup"```4. 然后,创建一个以当前日期为名称的文件夹,用于存储每次备份的文件:```shellTODAY=$(date +%Y-%m-%d)mkdir -p $TARGET/$TODAY```5. 接下来,使用`rsync`命令来执行备份操作:```shellrsync -av --delete $SOURCE $TARGET/$TODAY```- `-a`选项表示以归档模式备份文件夹,保留文件和文件夹的属性和权限。
- `-v`选项表示在备份过程中显示详细信息。
- `--delete`选项表示如果目标位置存在比源位置更多的文件,则删除目标位置的文件。
6. 最后,保存并关闭脚本文件。
设置定时备份任务现在我们已经编写了备份脚本,下一步是设置定时备份任务,以便自动执行备份操作。
在Linux系统中,我们可以使用cron来实现这个功能。
1. 在终端中输入以下命令来编辑cron表:```shell$ crontab -e```2. 在cron表中,每一行表示一个定时任务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fi
#if ! test -d ${TABLESPACE_TARGET}
#then
# echo "-----没有备份目录,自动创建-----" >>${LOG_TARGET}/${LogDate}.log
# mkdir ${TABLESPACE_TARGET}
echo "Parameter - 2 (二级增量备份)"
echo "Parameter - 3 (三级增量备份)"
echo "Parameter - 4 (四级增量备份)"
echo "------------------------------------------------"
echo "Command : full (备份整个数据库)"
export ORACLE_BASE=/opt/oracle9i
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_SID=back1
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
Psw=sys
DataBase=back2
#恢复目录用户,表空间与数据库名
RmanTs=rman_ts
RmanUser=rman
RmanPsw=rman
RmanDB=test2
#echo "-----------备份服务器设置完成-------------"
#参数校验
if [ "p"$1 = "p/?" ]
echo "Command : listdb (显示数据库备份历史记录)"
echo "------------------------------------------------"
# echo "Command : arclog (备份归档日志并删除)"
# echo "------------------------------------------------"
#then
# echo "-----没有备份目录,自动创建-----" >>${LOG_TARGET}/${LogDate}.log
# mkdir ${CTRFILE_TARGET}
#fi
#if ! test -d ${ARCLOG_TARGET}
#then
echo "Command : full (备份整个数据库)"
echo "------------------------------------------------"
echo "Command : listts (显示表空间备份历史记录)"
echo "------------------------------------------------"
Rman备份的shell脚本
#Set oracle path
#source $HOME/.keychain/${HOSTNAME}-sh
export SSH_AUTH_SOCK
echo $SSH_AUTH_SOCK
export PATH
unset USERNAME
export LD_ASSUME_KERNEL=2.4.1
export CTRFILE_TARGET=${BACKUP_TARGET}/ctrfile
#export ARCLOG_TARGET=${BACKUP_TARGET}/arclog
export LOG_TARGET=${BACKUP_BASE}/log
#echo "--------备份脚本环境变量设置完成---------"
tห้องสมุดไป่ตู้en
echo "Usage:rman_db.sh Command"
echo "------------------------------------------------"
echo "Command : backup (0,1,2,3,4)(备份数据库)"
echo "Parameter - 0 (增量备份的基础策略备份)"
#当前时间
CurDate=`date +%Y-%m-%d_%H:%M:%S`
LogDate=`date +%Y-%m-%d`
#ORACLE用户的用户名
OraUser=oracle
#要备份的表空间变量与登陆数据库的用户
#TableSpace=shiyihai #只在备份表空间时需要
User=sys
echo "------------------------------------------------"
echo "Command : listts (显示表空间备份历史记录)"
echo "------------------------------------------------"
echo "Parameter - 1 (一级增量备份)"
echo "Parameter - 2 (二级增量备份)"
echo "Parameter - 3 (三级增量备份)"
echo "Parameter - 4 (四级增量备份)"
echo "------------------------------------------------"
echo "Command : listdb (显示数据库备份历史记录)"
echo "------------------------------------------------"
#echo "Command : arclog (备份归档日志并删除)"
#echo "------------------------------------------------"
# echo "Command : recoverts (恢复表空间)"
exit
fi
echo "HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH" >>${LOG_TARGET}/${LogDate}.log
exit 1
fi
#------------------------------------------------------------------------------------
#检查文件夹是否存在
if ! test -d ${BACKUP_TARGET}
then
echo "-----没有备份目录,自动创建-----" >>${LOG_TARGET}/${LogDate}.log
#fi
#if ! test -d ${DATABASE_TARGET}
#then
# echo "-----没有备份目录,自动创建-----" >>${LOG_TARGET}/${LogDate}.log
# mkdir ${DATABASE_TARGET}
#fi
#if ! test -d ${CTRFILE_TARGET}
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
#echo "----------脚本搜索环境设置完成----------"
# set the backup script enviroment variable.
#export USERPASS=/nolog
echo "Parameter - 1 (一级增量备份)"
echo "Parameter - 2 (二级增量备份)"
echo "Parameter - 3 (三级增量备份)"
echo "Parameter - 4 (四级增量备份)"
echo "------------------------------------------------"
export BACKUP_BASE=/home/oracle/backup
export BACKUP_TARGET=${BACKUP_BASE}/data
#export TABLESPACE_TARGET=${BACKUP_TARGET}/tablespace
export DATABASE_TARGET=${BACKUP_TARGET}/database
then
echo "Usage:rman_db.sh Command"
echo "------------------------------------------------"
echo "Command : backup (0,1,2,3,4) (增量备份的基础策略备份)"