备份,是作为DBA的头等大事,无论你的技术多强大,没有备份,出问题的时候,依然束手无策。
这里只是在工作中总结的备份命令,后续收集到好的脚本,会持续更新......
1、在RAC环境下,如果两个节点的archivelog分别保存在自己的本地,在备份的时候如何操作呢?
开启两个通道并分别用TNS连接串连接到两个实例,进行备份,相当开启一个备份脚本但是同时在两个节点执行的。注:这个需要配置tnsnames文件,不然无法找到另一个节点。
- nbrbdb1$[/archivelog]more backup_log.sh
- #!/bin/sh
- #set env
- export ORACLE_HOME=/oracle/product/10.2.0/db_1
- export ORACLE_SID=orcl1
- export PATH=$PATH:$ORACLE_HOME/db_1/bin:/sbin:/usr/sbin
- echo "-----------------------------start-----------------------------";date
- #backup start
- $ORACLE_HOME/bin/rman <<EOF
- connect target
- delete noprompt obsolete;
- run {
- allocate channel c3 type disk connect 'sys/oracle@orcl1';
- allocate channel c4 type disk connect 'sys/oracle@orcl2';
- sql 'alter system archive log current';
- backup archivelog all delete input format '/archivelog/rman/%U.bak' filesperset =5;
- release channel c3;
- release channel c4;
- }
- exit;
- EOF
- echo "------------------------------end------------------------------";date
2、如果备份时候,发现操作系统限制了单个文件的大小怎么办?
在备份的时候设置通道生成的单个文件的大小,下例既设置大小为2G
- #backup start
- $ORACLE_HOME/bin/rman <<EOF
- connect target
- run {
- configure controlfile autobackup on;
- configure controlfile autobackup format device type disk to '/backup/controlfile/%F';
- allocate channel cannel1 type disk connect 'sys/oracle@rac1';
- allocate channel cannel2 type disk connect 'sys/oracle@rac2';
- set limit channel cannel1 kbytes 2000000;
- set limit channel cannel2 kbytes 2000000;
- backup incremental level 0 database tag 'fullbak_level0' format '/backup/database/full_level0_%U';
- release channel cannel1;
- release channel cannel2;
- }
- exit;
- EOF
3、如果希望删除指定日期的归档文件,可以使用以下的命令
- delete archivelog until time 'sysdate-7'; <<<<<删除归档时间大于7天的,按照归档文件FIRST_TIME计算
DELETE ARCHIVELOG ALL COMPLETED BEFORE "to_timestamp('2012-10-10 05:00:00','YYYY-MM-DD hh24:mi:ss')";
<<<<< 删除时间早于2012-10-10 05:00:00的归档,根据归档文件COMPLETION_TIME决定。
delete noprompt archivelog until time 'sysdate-1' backed up 1 times to device type disk;
<<<<< 删除归档时间早于1天,并气已经备份过一次的归档文件,而且不做询问确认,直接删除。
4、备份一天以前没有备份过的归档,在备份的过程中,跳过不可读写的文件,最后将删除这些归档文件。
- Backup not backed up 1 times archivelog until time 'sysdate-1' SKIP INACCESSIBLE DELETE INPUT;