备份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. 在Attributes的Police 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里设定在每天的20:00-21:00这个时间段里启动自动备份。
4. 在client里输入ORACLE数据库主机名njyc,点击确定。
5. 在Backup Selections选择前面修改好的oracle备份脚本即可。
5. 配置备份控制文件策略
1. 新建一条策略,策略名为con-unix,点击“OK”
2. 在Attributes的Police type里选择Standard,Police storage unit里选择oracle_njyc,把Collect 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小时内删除。
发表评论