linux环境oracle冷备份,linux下对oracle的冷备份和热备份脚本

在itpub上看到,然后修改的~~~

测试环境:

1      操作系统

[oracle@localhost ORCL]$ cat /proc/version

Linux version 2.6.27.5-117.fc10.i686 (mockbuild@x86-7.fedora.phx.redhat.com) (gcc version 4.3.2

20081105 (Red Hat 4.3.2-7) (GCC) ) #1 SMP Tue Nov 18 12:19:59 EST 2008

2     数据库版本

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 for Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

3     数据库的名字

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 /opt/oracle/product/10.2.1/ora

data/ORCL/system01.dbf

2 ONLINE  READ WRITE /opt/oracle/product/10.2.1/ora

data/ORCL/undotbs01.dbf

3 ONLINE  READ WRITE /opt/oracle/product/10.2.1/ora

data/ORCL/sysaux01.dbf

4 ONLINE  READ WRITE /opt/oracle/product/10.2.1/ora

data/ORCL/users01.dbf

FILE# STATUS  ENABLED    NAME

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

5 ONLINE  READ WRITE /opt/oracle/product/10.2.1/ora

data/ORCL/example01.dbf

6 ONLINE  READ WRITE /opt/oracle/product/10.2.1/ora

data/ORCL/testtablespace

7 ONLINE  READ WRITE /opt/oracle/product/10.2.1/ora

data/ORCL/test

8 ONLINE  READ WRITE /opt/oracle/product/10.2.1/ora

FILE# STATUS  ENABLED    NAME

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

data/ORCL/testaaaa

9 ONLINE  READ WRITE /opt/oracle/product/10.2.1/ora

data/ORCL/t2m.dbf

9 rows selected.

5   控制文件的所在位置

SQL> select * from v$controlfile;

STATUS NAME          IS_ BLOCK_SIZE FILE_SIZE_BLKS

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

/opt/oracle/product/10.2.1/ora NO 16384   430

data/ORCL/control01.ctl

/opt/oracle/product/10.2.1/ora NO 16384   430

data/ORCL/control02.ctl

/opt/oracle/product/10.2.1/ora NO 16384   430

data/ORCL/control03.ctl

6    重做日志文件位置

SQL> select * from v$logfile;

GROUP# STATUS  TYPE    MEMBER        IS_

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

3 STALE   ONLINE  /opt/oracle/product/10.2.1/oradata/ORCL/ NO

redo03.log

2    ONLINE  /opt/oracle/product/10.2.1/oradata/ORCL/ NO

redo02.log

1    ONLINE  /opt/oracle/product/10.2.1/oradata/ORCL/ NO

redo01.log

4    ONLINE  /opt/oracle/product/10.2.1/oradata/ORCL/ NO

redo4.log

GROUP# STATUS  TYPE    MEMBER        IS_

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

5    ONLINE  /opt/oracle/product/10.2.1/oradata/ORCL/ NO

redo05.log

7      在/home/oracle/test/目录下写个coldbak.sql脚本

[oracle@localhost ~]$ vi /home/test/coldbak.sql

#rem script.:coldbak.sql

#rem desc:offline full backup database

#enter database

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

#--shutdown database

shutdown immediate

#--Copy  file

!cp /opt/oracle/product/10.2.1/oradata/ORCL/*.dbf /home/oracle/test/

!cp /opt/oracle/product/10.2.1/oradata/ORCL/*.ctl /home/oracle/test/

!cp /opt/oracle/product/10.2.1/oradata/ORCL/*.log /home/oracle/test/

#--startup database

startup

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

[oracle@localhost test]$ . colbak.sql

(提示过程略)

附上piner的说明:

1、以上脚本在数据库关闭状态下备份数据库所有的数据文件,联机日志,控制文件(在一个目录下),如果成功备份,所有文件是一致的。

2、没有备份参数文件,参数文件可以另外备份,没有必要每次都备份,只需要在改变设置后备份一次。

3、如果以上命令没有成功依次执行,那么备份将是无效的,如连接数据库不成功,那么肯定关闭数据库也不成功,那么备份则无效。

4、冷备份建议下人工干预下执行。

9      在/home/oracle/test/目录下写个hotbak.sql脚本

#rem script.:hotbak.sql

#rem desc:backup all database datafile in archive

#enter database

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

alter system archive log current;

#start

alter tablespace system begin backup;

!cp /opt/oracle/product/10.2.1/oradata/ORCL/system01.dbf /home/oracle/test/;

alter tablespace system end backup;

alter tablespace system begin backup;

!cp /opt/oracle/product/10.2.1/oradata/ORCL/undotbs01.dbf /home/oracle/test/;

alter tablespace system end backup;

alter tablespace system begin backup;

!cp /opt/oracle/product/10.2.1/oradata/ORCL/users01.dbf /home/oracle/test/;

alter tablespace system end backup;

alter tablespace system begin backup;

!cp /opt/oracle/product/10.2.1/oradata/ORCL/sysaux01.dbf /home/oracle/test/;

alter tablespace system end backup;

alter tablespace system begin backup;

!cp /opt/oracle/product/10.2.1/oradata/ORCL/example01.dbf /home/oracle/test/;

alter tablespace system end backup;

#backup control file

#binary

#热备份将当前的控制文件备份到文件

alter database backup controlfile to '/home/oracle/test/controlbinarybackup';

#ascii

#热备份建立控制文件的脚本到udump目录

alter database backup controlfile to trace;

alter system archive log current;

<

10      在linux启动一个终端执行该hotbak.sql脚本

[oracle@localhost test]$ . hotbak.sql

(提示过程略)

附上piner的说明:

1、热备份必须在数据库归档方式下才可以运行

2、以上脚本可以在数据库运行状态下备份数据库所有的数据文件(除了临时数据文件),没有必要备份联机日志。

3、归档日志至少需要一次完整备份之后的所有日志。

4、如果以上命令没有成功依次执行,那么备份也是无效的,如连接数据库不成功,那么备份则无效。

注意:如果热备份过程中出现错误:

alter system archive log current

*

ERROR at line 1:

ORA-00258: manual archiving in NOARCHIVELOG mode must identify log

问题处理1)第一种处理方法

问题原因是数据库没有处于归档模式,最根本的解决方法是修改数据库为归档模式,具体操作步骤请参见文章

2)第二种处理方法(意义不大)

既然错误提示“ORA-00258: manual archiving in NOARCHIVELOG mode must identify log”,那我们就可以

使用带有指定日志组的SQL命令完成归档操作。

第一种方法的步骤为:

1.查看系统的归档模式

SQL> archive log list;

Database log mode        No Archive Mode

Automatic archival        Disabled

Archive destination        USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     49

Current log sequence        53

2.彻底关闭数据库

SQL> shutdown immediate

3.启动数据状态到mount

SQL> startup mount;

4.修改数据库的归档模式

SQL> alter database archivelog;

5.开启数据库

SQL> alter database open;

6.查看数据库已经为归档模式SQL> archive log list;Automatic archival        EnabledArchive destination        USE_DB_RECOVERY_FILE_DESTOldest online log sequence     52Next log sequence to archive   56Current log sequence        56

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值