linux环境oracle冷备份,备份&恢复系列之一:怎样在linux中写对oracle的冷备份脚本!...

在www.itpub.net上看到piner的备份&恢复案例,写得非常好!因为有很具体的步骤,就在自己的数据库中测试了一下:

测试环境:

1      操作系统:Redhat Linux 5

[oracle@mzl proc]$ cat /proc/version

Linux version 2.6.18-8.el5 (brewbuilder@ls20-bc2-14.build.redhat.com) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Fri Jan 26 14:15:21 EST 2007

2     数据库版本:Oracle10g

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE    10.2.0.1.0      Production

TNS Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

3     数据库的名字:orcl

SQL> show parameter db_name;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_name                              string      orcl

4    数据库的所有数据文件所在位置

SQL> select file#,status,enabled,name from v$datafile;

FILE# STATUS  ENABLED    NAME

---------- ------- ---------- ------------------------------------------

1 SYSTEM  READ WRITE /u01/app/oracle/oradata/orcl/system01.dbf

2 ONLINE  READ WRITE /u01/app/oracle/oradata/orcl/undotbs01.dbf

3 ONLINE  READ WRITE /u01/app/oracle/oradata/orcl/sysaux01.dbf

4 ONLINE  READ WRITE /u01/app/oracle/oradata/orcl/users01.dbf

5 ONLINE  READ WRITE /u01/app/oracle/oradata/orcl/example01.dbf

5   控制文件的所在位置

SQL> select * from v$controlfile;

STATUS  NAME                                       IS_ BLOCK_SIZE FILE_SIZE_BLKS

------- ------------------------------------------ --- ---------- --------------

/u01/app/oracle/oradata/orcl/control01.ctl NO       16384            430

/u01/app/oracle/oradata/orcl/control02.ctl NO       16384            430

/u01/app/oracle/oradata/orcl/control03.ctl NO       16384            430

6    重做日志文件位置

SQL> col member format a45

SQL> l

1* select * from v$logfile

SQL> /

GROUP# STATUS  TYPE    MEMBER                                        IS_

---------- ------- ------- --------------------------------------------- ---

3         ONLINE  /u01/app/oracle/oradata/orcl/redo03.log       NO

2 STALE   ONLINE  /u01/app/oracle/oradata/orcl/redo02.log       NO

1 STALE   ONLINE  /u01/app/oracle/oradata/orcl/redo01.log       NO

7      我在/home/mzl/BackupDatabase/目录下写个coldbak.sql脚本

[oracle@mzl proc]$ vi /home/mzl/BackupDatabase/coldbak.sql

脚本内容如下:

#rem script.:coldbak.sql

#rem creater:mengzhaoliang

#rem data:2008/2/4

#rem desc:offline full backup database

#enter database

$ORACLE_HOME/bin/sqlplus "/as sysdba" <

#--shutdown database

shutdown immediate

#--Copy Data file

!cp /u01/app/oracle/oradata/orcl/*.dbf /home/mzl/BackupDatabase/

#--Copy Control file

!cp /u01/app/oracle/oradata/orcl/*.ctl /home/mzl/BackupDatabase/

--Copy Log file

!cp /u01/app/oracle/oradata/orcl/*.log /home/mzl/BackupDatabase/

#--startup database

startup

8      在linux启动一个终端执行该coldbak.sql脚本

[oracle@mzl BackupDatabase]$ ./coldbak.sql

备份完毕! 附上piner的说明: 说明: 1、以上脚本在数据库关闭状态下备份数据库所有的数据文件,联机日志,控制文件(在一个目录下),如果成功备份,所有文件是一致的。 2、没有备份参数文件,参数文件可以另外备份,没有必要每次都备份,只需要在改变设置后备份一次。 3、如果以上命令没有成功依次执行,那么备份将是无效的,如连接数据库不成功,那么肯定关闭数据库也不成功,那么备份则无效 4、冷备份建议下人工干预下执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值