备份oracle数据库
1. 链接数据库
1) 切换到oracle用户
su  –  oracle
2) 关闭所有数据库
sqlplus /nolog
conn / as sysdba
shutdown immediate
exit
3) 运行 /usr/openv/netbackup/bin/ 目录下的 oracle_link 脚本
$ cd /usr/open/netbackup/bin
$./oracle_link
Please log into the Unix system as the Oracle owner for running this script
Do you want to continue? (y/n) [n]  y
LIBOBK path: /usr/openv/netbackup/bin
ORACLE_HOME: /oracle/product/10.2.0.1
Oracle version: 10.2.0.1.0
Platform type: i686
Linking LIBOBK:
ln -s /usr/openv/netbackup/bin/libobk.so /oracle/product/10.2.0.1/lib/libobk.so
Done
Please check the trace file located in /tmp/make_trace.3190
to make sure the linking process was successful.
4) 启动数据库
sqlplus /nolog
conn / as sysdba
startup
exit
2. 设置归档:
SQL>alter system set log_archive_start=true scope=spfile;
SQL>alter system set log_archive_dest=’/archivelog’;
将数据库关闭之后,再启动成mount状态
SQLPLUS>startup mount
将数据库设置为archivelog模式
SQL>alter database archivelog;
启动数据库为open状态
SQL>alter database open;
检查是否可以生成archive log
SQL>alter system archive log current;(然后到archivelog dest下查看生成的日志文件)
3. 修改脚本
把默认备份脚本hot_database_backup.sh
/usr/openv/netbackup/ext/db_ext/oracle/samples/rman复制到其他位置,例如:/nbu_scripts,修改脚本以下几项。
备份脚本
脚本说明
ORACLE_HOME= /db/oracle/product/ora81
改为实际的安装路径
ORACLE_SID=ora81
改为实际的SID
ORACLE_USER=ora81
改成实际的oracle用户
TARGET_CONNECT_STR=sys/manager
改为实际的数据库的管理员用户和密码。
ARCHIVELOG ALL DELETE INPUT;
备份完后删除archive log
ALLOCATE CHANNEL ch00 TYPE disk;
分配磁盘通道
copy current controlfile to ‘/nbu_l’
将当前的控制文件拷贝成文件并放在c:\scripts下。
/usr/openv/netbackup/bin/bpbackup -p con-unix -s f -h njyc /nbu_l
将控制文件以文件方式备份到磁带库中。需要建立相应的备份策略。具体见下节。
4. 配置ORACLE备份策略:
1. 新建一个策略,在策略名里输入oracle-bak,点击ok
2. AttributesPolice type里选择Oracle,Police storage unit里选择oracle_njyc
3. Schedules 里点击new新建一个日程表。
name 里输入full,在Type of backup里选择Automatic Full Backup,Frequency里选择1Days(每天备份oracle选择数据库1次),retention里选择 1month(备份的数据保留1个月)。
Start Window里设定在每天的20002100这个时间段里启动自动备份。
4. client里输入ORACLE数据库主机名njyc,点击确定。
5. Backup Selections选择前面修改好的oracle备份脚本即可。
5. 配置备份控制文件策略
1. 新建一条策略,策略名为con-unix,点击OK
2. AttributesPolice type里选择Standard,Police storage unit里选择oracle_njycCollect disaster recovery information for Bare Metal Restore前面的勾去掉
3. Schedules 里点击new新建一个日程表。
name 里输入f,在Type of backup里选择User Backup, retention里选择 1month(备份的数据保留1个月)。
Start Window里设定成7×24小时,点击确定。
4. client里输入ORACLE数据库主机名njyc,点击确定。
5. Backup Selections里不需要选择,留空就可以了。
当一个策略类型为Oracle的作业执行时,会连续产生出多个作业,这个作业是Oracle Agent调用备份脚本而产生的,包括控制文件的备份。只有当第一个作业,即备份计划不是‘Default-Application-Backup’的作业成功完成后,才认为此次备份是成功的。
附录:下面是在设定的环境下修改好的备份脚本,例如,我实际安装的oracle的主目录是/oracle/app/oracle/10.2,实例名是orcl,安装oracle的用户名是oracle,数据库的管理员是sys,密码是123
#!/bin/sh
# $Header: hot_database_backup.sh,v 1.2 2002/08/06 23:51:42 $
#
#bcpyrght
#***************************************************************************
#* $VRTScprght: Copyright 1993 - 2005 VERITAS Software Corporation, All Rights Reserv
ed $ *
#***************************************************************************
#ecpyrght
#
# ---------------------------------------------------------------------------
#              hot_database_backup.sh
# ---------------------------------------------------------------------------
#  This script uses Recovery Manager to take a hot (inconsistent) database
#  backup. A hot backup is inconsistent because portions of the database are
#  being modified and written to the disk while the backup is progressing.
#  You must run your database in ARCHIVELOG mode to make hot backups. It is
#  assumed that this script will be executed by user root. In order for RMAN
#  to work properly we switch user (su -) to the oracle dba account before
#  execution. If this script runs under a user account that has Oracle dba
#  privilege, it will be executed using this user's account.
# ---------------------------------------------------------------------------
# ---------------------------------------------------------------------------
# Determine the user which is executing this script.
# ---------------------------------------------------------------------------
CUSER=`id |cut -d"(" -f2 | cut -d ")" -f1`
# ---------------------------------------------------------------------------
# Put output in <this file name>.out. Change as desired.
# Note: output directory requires write permission.
# ---------------------------------------------------------------------------

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。