oracle sys账号被锁(01)冷备份

Oracle备份恢复弄得蛮多的,不过记录得零零碎碎的,准备把它给整整,集中起来弄弄。

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

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

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

此条目发表在oracle metalink账号分类目录,贴了标签。将固定链接加入收藏夹。