Oracle在Windows和Linux上的备份方法

来源:互联网 发布:手机淘宝分类去哪 编辑:程序博客网 时间:2024/04/29 01:53

测试环境:

      硬件环境:

           Master Server:C4 1.7GHz/512 DDR/80GB IDE/D-Link 100Mbps

Client:Dell 1750/3GHz志强/512MB ECC/18.3GB SCSI/Broadcom1000Mbps*2

    软件环境:

        Master Server: Windwos 2000 Server with SP4

                        Oracle 9i (9.0.1.1.1)

                        Veritas NetBackup 5.0MP5简体中文(DiskBackup)

        Client:RedHat Linux Enterprise Server 3.0

                Oracle 9i (9.2.0.4.0)

                Veritas NetBackup Client for Linux

                Veritas NetBackup DB Agent for Oracle

对于DataBase Agent,在NetBackup Server for Windows以及NetBackup Client for Windows程序中均包含,只是需要用注册号来激活

 

随笔

启用NetBackup for Oracle

1. 在客户机上Oracle 服务。

2. 服务器上的NetBackup 管理控制台中,单击帮助(Help) > 许可证密钥(License

Keys)

3. 添加NetBackup for Oracle 可证密钥

4. 在客户机上重新Oracle 服务。

或者:激活NetBackup for Oracle 可证,重新Oracle 服务。

 

 

使用Windows 控制台设置“每个客户机的最大作业数”属性

1. NetBackup 管理控制台的窗格中,主机属性(Host Properties)

2. 选择主服务器(Master Server)

3. 右窗格中,双击服务器标。

服务器属性”对话示。

4. 在“服务器属性”对话中,单击全局属性(Global Attributes)

每个客户机的最大作业数(Maximum jobs per client) 默认值为1

5. 每个客户机的最大作业数(Maximum jobs per client)99

如果较小,请使用上提供的公式算每个客户机允许的最大备份数。

提示 为避免出现任何问题,我们建议您为每个客户机的最大作业数(Maximum jobs per client)全局属性输入值99(Veritas NetBackup 5.0 for oracle 系统管理员指南 –Windows,P45)

 

 

 

第一部分  Windows平台上使用NB备份Oracle

一、     使用模板自动备份

1.     安装数据库

2.     启用Oracle数据库归档模式

Oracle 数据库服务器上,修改Oracle 数据库的初始化文件intiSID.ora;在此文件中修改以下语句:

# log_archive_start=true                                   (启动Oracle 归档模式)

# log_archive_dest_1 = "location=/archivelog"    (设置Oracle 归档文件存放路径)

# log_archive_format = arch_%t_%s.arc           (设置Oracle 归档文件格式)

将语句前的#去掉,将log_archive_dest_1 修改为archivelog 实际的存放路径;

在命令提示符下,运行Oracle9i sqlplus 管理工具,执行以下语句启动归档:

sqlplus>shutdown immediate;              (启动归档前先要停止数据库)

sqlplus>startup mount;                        (数据库以mount 方式启动)

sqlplus>alter database archivelog;         (启动数据库归档)

sqlplus>alter database open;                 (打开数据库)

sqlplus>archive log list;                       (查看归档是否已经打开)

3.     安装Veritas NetBakcup 5.0

安装NB_50_5_M_276290.winnt.intel补丁包,并安装ZH_NBWin简体中文语言包

4.     配置主机属性中主服务器的的“每个客户机最大作业数”为“99”

5.     使用“入门”向导配置主服务器以及Catalog备份

6.     创建备份策略

对于系统自动创建的“Default-Application-Backup”备份日程表,不可更改,只可更改“保留”的时限,与自动完全备份保持相同即可

7.     运行“备份、归档和恢复”控制台,创建模板,并保存。

8.     在刚刚创建的策略中添加“备份选择”列表,选择刚创建的模板

备注:这样比较简单,不用写脚本了,直接使用在Client上生成的Oracle备份模板来备份Oracle

二、     使用RMAN脚本自动备份

1.     创建RAM备份脚本:

C:/Program Files/VERITAS/NetBackup/DbExt/Oracle/Samples/rman/中有模板,做适当更改后即可使用。建议选择hot_database_backup备份脚本模板和database_restore恢复脚本模板

修改备份脚本hot_database_backup.sh,主要修改以下几点:

ORACLE_HOME=/oracle/product/9.2.0.1/               改为实际的备份路径

ORACLE_SID=orcl                                              改为实际的SID

TARGET_CONNECT_STR=sys/sys                    改为sys 用户的登录口令

……

RUN {

ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';

#ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE';

只创建一个备份通道,所以将第二句注释掉。

BACKUP

%BACKUP_TYPE%

FORMAT '%d-c%c-p%p-s%s-t%t'

设定数据文件备份集的格式。

DATABASE;

sql 'alter system archive log current';

RELEASE CHANNEL ch00;

#RELEASE CHANNEL ch01;

只有一个备份通道,所以将第二个通道的释放语句注释掉。

# Backup all archive logs

ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';

#ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE';

只创建一个备份通道,所以将第二句注释掉。

BACKUP

FILESPERSET 20

FORMAT '%d-c%c-p%p-s%s-t%t'

设定归档日志备份集的格式。

ARCHIVELOG ALL DELETE INPUT;

此句表示在备份完归档日志后自动删除所有已备份的归档日志

RELEASE CHANNEL ch00;

#RELEASE CHANNEL ch01;

只有一个备份通道,所以将第二个通道的释放语句注释掉。

ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';

BACKUP

FORMAT '%d-c%c-p%p-s%s-t%t'

CURRENT CONTROLFILE;

RELEASE CHANNEL ch00;

增加备份控制文件的语句,并指定控制文件备份集的格式。

}

……

 

2.     创建Oracle备份策略,并“备份选择”中添加刚创建的脚本的完整路径

备注:在选择脚本时,打开浏览列表,选择C:/会导致整个控制台关闭

 

第二部分  Linux平台使用NB备份Oracle

一、         安装

1.     安装NetBackup Client,提示java的东东未能成功安装

2.     安装DataBase for Oracle的Agent

3.     启用Oracle数据库归档模式

Oracle 数据库服务器上,修改Oracle 数据库的初始化文件intiSID.ora;在此文件中修改以下语句:

# log_archive_start=true                                   (启动Oracle 归档模式)

# log_archive_dest_1 = "location=/archivelog"    (设置Oracle 归档文件存放路径)

# log_archive_format = arch_%t_%s.arc           (设置Oracle 归档文件格式)

将语句前的#去掉,将log_archive_dest_1 修改为archivelog 实际的存放路径;

在命令提示符下,运行Oracle9i sqlplus 管理工具,执行以下语句启动归档:

sqlplus>shutdown immediate;              (启动归档前先要停止数据库)

sqlplus>startup mount;                        (数据库以mount 方式启动)

sqlplus>alter database archivelog;         (启动数据库归档)

sqlplus>alter database open;                 (打开数据库)

sqlplus>archive log list;                       (查看归档是否已经打开)

4.     链接NBU5.0 备份软件与oracle 数据库的文件

Note在做此项操作前必须使用oracle 用户,且数据库必须是shutdown 的。

#su – oracle

$svrmgrl

SVRMGR>connect internal

SVRMGR>shutdown immediate

SVRMGR>exit

$cd /usr/openv/netbackup/bin

$./oracle_link

此操作需要第二次关闭数据库

注:Oracle_link 的过程包含两个动作,均由oracle_link 的脚本自动执行。

第一步,创建一个Oracle NetBackup 的系统连接文件

# su – oracle

$ cd $ORACLE_HOME/lib

$ mv libobk.a libobk.a.back 如果存在此文件,则重命名保留

$ ln –s /usr/openv/netbackup/bin/libobk.a libobk.a

第二步,重新编译新的Oracle 文件的二进制代码

$ cd $ORACLE_HOME/bin

$ mv oracle oracle.back 如果存在此文件,则重命名保留

$ make –f ins_rdbms.mk ioracle LLIBMM=-lobk

整个执行过程均由oracle_link 的脚本自动执行,包括自动判断Oracle 数据库的版本、创建Link文件和重新Make oracle 文件。

提示成功完成后,重新启动oracle 数据库。

SVRMGR>startup;

数据库被重新启动。

5.     创建RAM备份脚本:

/usr/openv/netbackup/ext/db_ext/oracle/samples/rman/中有模板,做适当更改后即可使用。建议选择hot_database_backup备份脚本模板和database_restore恢复脚本模板

修改备份脚本hot_database_backup.sh,主要修改以下几点:

ORACLE_HOME=/oracle/product/9.2.0.1/               改为实际的备份路径

ORACLE_SID=orcl                                              改为实际的SID

TARGET_CONNECT_STR=sys/sys                    改为sys 用户的登录口令

……

RUN {

ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';

#ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE';

只创建一个备份通道,所以将第二句注释掉。

BACKUP

%BACKUP_TYPE%

FORMAT '%d-c%c-p%p-s%s-t%t'

设定数据文件备份集的格式。

DATABASE;

sql 'alter system archive log current';

RELEASE CHANNEL ch00;

#RELEASE CHANNEL ch01;

只有一个备份通道,所以将第二个通道的释放语句注释掉。

# Backup all archive logs

ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';

#ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE';

只创建一个备份通道,所以将第二句注释掉。

BACKUP

FILESPERSET 20

FORMAT '%d-c%c-p%p-s%s-t%t'

设定归档日志备份集的格式。

ARCHIVELOG ALL DELETE INPUT;

此句表示在备份完归档日志后自动删除所有已备份的归档日志

RELEASE CHANNEL ch00;

#RELEASE CHANNEL ch01;

只有一个备份通道,所以将第二个通道的释放语句注释掉。

ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';

BACKUP

FORMAT '%d-c%c-p%p-s%s-t%t'

CURRENT CONTROLFILE;

RELEASE CHANNEL ch00;

增加备份控制文件的语句,并指定控制文件备份集的格式。

}