您的位置:首页 > 其它

(01)冷备份

2013-12-16 21:11 267 查看
 Oracle备份恢复弄得蛮多的,不过记录得零零碎碎的,准备把它给整整,集中起来弄弄。

   先成冷备份说起。记得以前刚弄Oracle时,冷备份在单实例用得很多的,不过后面数据库的架构搞得越来越麻烦,RAC这类也很多了。冷备份才用的少了起来。不过有些场景还是蛮合适用它的。

1. 建立目录,并授权限Oracle用户,依实际数据库所在用户名为准,本例为oracle.
 mkdir -p /xcl/cold_backup/dbs
 chown -R oracle:oinstall /xcl ##可依id oracle查出查

2. 创建sql文件,用手执行备份
    参数文件如有改动参数,记得手工备份一份,平常就不需备份了。
   至于密码文件和tnsnames.ora 也可以加到.sh中。
    剩下的要备份的东东看下面的脚本。
--/xcl/cold_exec.sql
set feedback off heading off verify off trimspool off
set pagesize 0 linesize 200
define dir = '/xcl/cold_backup'
define cmdfile = '/xcl/cold_backup.sql'
alter database backup controlfile to ' /xcl/cold_backup/backup_control.ctl' reuse;
alter database backup controlfile to trace;
prompt *** spooling to &cmdfile
spool &cmdfile
select 'host cp ' || name || ' &dir' from v$datafile order by 1;
select 'host cp ' || member || ' &dir' from v$logfile order by 1;
select 'host cp ' || name || ' &dir' from v$controlfile order by 1;
select 'host cp ' || name || ' &dir' from v$tempfile order by 1;
spool off;
shutdown immediate;
@&cmdfile
startup;
exit;

3. 创建SHELL文件,
##cold_startup.sh
#!/bin/sh
su - oracle -c "	 ##对应具体的用户名,本例中为"oracle"
export ORACLE_SID=xcldb ##对应具体的数据库名,本例中为"xcldb"
sqlplus / as sysdba @/xcl/colddb.sql "

4.在root用户下,执行备份  
   cd /xcl
   chmod +x *.sh
   ./cold_startup.sh

好了,搞定,手工执行足够了。  

MAIL:xcl_168@aliyun.com
Blog:http://blog.csdn.net/xcl168
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息