1.编写备份脚本
通过操作系统的命令来实现的备份机制:cp、scp
1.1查询所有的文件所在位置(数据文件,控制文件,参数文件,重做日志文件,密码文件)
SYS@orcl11g> select name from v$datafile
2 union
3 select name from v$controlfile
4 union
5 select member from v$logfile;
1.2创建备份的路径
SYS@orcl11g> host mkdir /u01/app/backup
1.3通过select语句构建拷贝脚本
SYS@orcl11g> set trim on 截取掉不必要的空格
SYS@orcl11g> set trims on 每个行的空格
SYS@orcl11g> set heading off 去掉标题
SYS@orcl11g> set echo off 去掉反馈
SYS@orcl11g> set feedback off 去掉回显
SYS@orcl11g> set term off 关闭终端信息
SYS@orcl11g> spool /home/oracle/cp.sql
SYS@orcl11g>select 'cp '||name||' /u01/app/backup' from v$datafile
union
select 'cp ' ||name|| ' /u01/app/backup' from v$controlfile
union
select 'cp '||member||' /u01/app/backup' from v$logfile
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SYS@orcl11g> select 'cp ' || name || ' /u01/app/backup/' from v$datafile; --只备份数据文件
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
cp /u01/app/oracle/fast_recovery_area/orcl11g/control02.ctl /home/backup
cp /u01/app/oracle/oradata/orcl11g/control01.ctl /home/backup
cp /u01/app/oracle/oradata/orcl11g/example01.dbf /home/backup
cp /u01/app/oracle/oradata/orcl11g/redo01.log /home/backup
cp /u01/app/oracle/oradata/orcl11g/redo02.log /home/backup
cp /u01/app/oracle/oradata/orcl11g/redo03.log /home/backup
cp /u01/app/oracle/oradata/orcl11g/sysaux01.dbf /home/backup
cp /u01/app/oracle/oradata/orcl11g/system01.dbf /home/backup
cp /u01/app/oracle/oradata/orcl11g/undotbs01.dbf /home/backup
cp /u01/app/oracle/oradata/orcl11g/users01.dbf /home/backup
[oracle@db253 ~]$ spool off
[oracle@db253 ~]$ vi cp.sql
[oracle@db253 ~]$ cat cp.sql
cp /u01/app/oracle/fast_recovery_area/orcl11g/control02.ctl /home/backup
cp /u01/app/oracle/oradata/orcl11g/control01.ctl /home/backup
cp /u01/app/oracle/oradata/orcl11g/example01.dbf /home/backup
cp /u01/app/oracle/oradata/orcl11g/redo01.log /home/backup
cp /u01/app/oracle/oradata/orcl11g/redo02.log /home/backup
cp /u01/app/oracle/oradata/orcl11g/redo03.log /home/backup
cp /u01/app/oracle/oradata/orcl11g/sysaux01.dbf /home/backup
cp /u01/app/oracle/oradata/orcl11g/system01.dbf /home/backup
cp /u01/app/oracle/oradata/orcl11g/undotbs01.dbf /home/backup
cp /u01/app/oracle/oradata/orcl11g/users01.dbf /home/backup
[oracle@db253 ~]$ chmod +x cp.sql
awk构建命令:
ls -lSr /test | awk '{print "mv " $NF" /tmp/test/t"NR".conf"}' | bash
2.停止数据库
sql> shutdown immediate;
3.拷贝数据文件
[oracle@db253 ~]$ /home/oracle/cp.sql --执行脚本
4.开启数据库
sql> startup;