2、安装数据库系统
3、安装nbu软件及配置
--安装客户端
上传SYMCnbclient_Linux-RedHat2.6.18_7.5.0.2.tar编辑本机hosts
vi /etc/hosts
添加:192.168.99.252 hdnbu1
解压:
[root@scmtest u01]# tar -xvf SYMCnbclient_Linux-RedHat2.6.18_7.5.0.2.tar[root@scmtest u01]# cd SYMCnbclient_Linux-RedHat2.6.18_7.5.0.2[root@scmtest SYMCnbclient_Linux-RedHat2.6.18_7.5.0.2]# ./install过程当中要输入备份服务端:hdnbu1
然后再用oracle用户执行:
[root@scmtest bin]# su - oracle
[oracle@scmtest ~]$ cd /usr/openv/netbackup/bin[oracle@scmtest bin]$ ./oracle_link
Thu Feb 21 14:03:02 CST 2013
All Oracle instances should be shutdown before running this script.
Please log into the Unix system as the Oracle owner for running this scriptDo you want to continue? (y/n) [n] y
LIBOBK path: /usr/openv/netbackup/bin
ORACLE_HOME: /software/oracle/product/10.2.0/db1Oracle version: 10.2.0.5.0
Platform type: x86_64
Linking LIBOBK:
ln -s /usr/openv/netbackup/bin/libobk.so64 /software/oracle/product/10.2.0/db1/lib/libobk.soDone
Please check the trace file located in /tmp/make_trace.23602to make sure the linking process was successful.
4、编辑初始参数文件
这时候,需要进行修改,比如原来用的什么盘,现在用什么盘等编辑后如下:
*._addm_auto_enable=FALSE
*._b_tree_bitmap_plans=FALSE
*._db_block_numa=1
*._enable_NUMA_optimization=FALSE
*._optimizer_cartesian_enabled=FALSE
*._optimizer_skip_scan_enabled=FALSE
*.archive_lag_target=1800
*.audit_file_dest='/software/oracle/admin/ncerp/adump'
*.background_dump_dest='/software/oracle/admin/ncerp/bdump'
*.compatible='10.2.0.5.0'
*.control_files='/u01/ncerp/control/control01.ctl','/u01/ncerp/control/control02.ctl'
*.core_dump_dest='/software/oracle/admin/ncerp/cdump'
*.db_block_size=8192
*.db_cache_size=4294967296
*.db_create_file_dest='/u01/ncerp/flash_recover'
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='ncerp'
*.java_pool_size=33554432
*.job_queue_processes=10
*.large_pool_size=33554432
*.log_archive_dest_1='location=/u01/ncerp/arch'
*.log_archive_format='%s_%t_%r.log'
*.max_dump_file_size='1024'
*.open_cursors=1000
*.optimizer_dynamic_sampling=4
*.optimizer_index_cost_adj=40
*.parallel_max_servers=5
*.pga_aggregate_target=2147483648
*.processes=800
*.recyclebin='OFF'
*.shared_pool_size=838860800
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
5、根据参数文件,建相应的目录
[oracle@scmtest ~]$ mkdir -p /u01/ncerp/control/[oracle@scmtest u01]$ mkdir -p /app/oracle/admin/ncerp/cdump[oracle@scmtest u01]$ mkdir -p /app/oracle/admin/ncerp/bdump[oracle@scmtest u01]$ mkdir -p /app/oracle/admin/ncerp/adump[oracle@scmtest u01]$ mkdir -p /app/oracle/admin/ncerp/pfile[oracle@scmtest u01]$ mkdir -p /u01/ncerp/flash_recover[oracle@scmtest u01]$ mkdir -p /u01/ncerp/arch[oracle@scmtest ncerp]$ mkdir oradata
注意:这些要与参数文件对应,要不然无法启动!
6、恢复控制文件
export ORACLE_SID=ncerp
[oracle@scmtest u01]$ rman target /
Recovery Manager: Release 10.2.0.5.0 - Production on Thu Feb 21 14:17:10 2013Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database (not started)RMAN>startup nomount pfile='/u01/ncpfile.ora'Oracle instance started
Total System Global Area5217714176 bytesFixed Size 2103536 bytesVariable Size905971472 bytesDatabase Buffers4294967296 bytesRedo Buffers 14671872 bytes从nbu的服务器上查询要恢复的控制文件
hdnbu1:/tmp # bplist -C RD162 -t 4 -R -b -l / | more-rw-rw---- oracledba 10747904 Mar 28 11:26 /c-3383507379-20130328-0b-rw-rw---- oracledba 11010048 Mar 28 11:25 /c-2177845250-20130328-0d-rw-rw---- oracledba 10747904 Mar 28 11:25 /cntrl_9202_1_811250475-rw-rw---- oracledba 10747904 Mar 28 11:25 /cntrl_7788_1_811250456-rw-rw---- oracledba 10747904 Mar 28 11:25 /c-3383507379-20130328-0a-rw-rw---- oracledba 11010048 Mar 28 11:24 /c-2177845250-20130328-0c-rw-rw---- oracledba 114032640 Mar 28 11:17 /al_7786_1_811249961-rw-rw---- oracledba 123207680 Mar 28 11:17 /al_7785_1_811249961-rw-rw---- oracledba 3670016 Mar 28 11:17 /al_9200_1_811249960-rw-rw---- oracledba 3932160 Mar 28 11:17 /al_9199_1_811249959-rw-rw---- oracledba 11010048 Mar 28 09:25 /c-2177845250-20130328-0b-rw-rw---- oracledba 10747904 Mar 28 09:25 /c-3383507379-20130328-09-rw-rw---- oracledba 10747904 Mar 28 09:25 /cntrl_9197_1_811243259-rw-rw---- oracledba 10747904 Mar 28 09:25 /cntrl_7783_1_811243253RMAN>run
2>{
3>allocate channel c1 type 'sbt_tape'
4>send 'NB_ORA_CLIENT=RD162'
5>restore controlfile from '/cntrl_24145_1_828414748'6>release channel c1
7>}
using target database control file instead of recovery catalogallocated channel: c1
channel c1: sid=874 devtype=SBT_TAPE
channel c1: Veritas NetBackup for Oracle - Release 7.5 (2012050902)sent command to channel: c1
Starting restore at 2013-03-28 12:41:30
channel c1: restoring control file
channel c1: restore complete, elapsed time: 00:05:16output filename=/u02/ncerp/control/control01.ctloutput filename=/u02/ncerp/control/control02.ctlFinished restore at 2013-03-28 12:46:47
released channel: c1
7、还原数据库文件
在这里要查一下数据库是否已经mount
SQL>select status from v$instance
STATUS
------------
MOUNTED
RMAN>run {
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE'
send 'NB_ORA_CLIENT=RD162'
set newname for datafile '/backup/ncerp/oradata/system01.dbf' to '/u02/ncerp/oradata/system01.dbf' set newname for datafile '/backup/ncerp/oradata/system02.dbf' to '/u02/ncerp/oradata/system02.dbf' set newname for datafile '/backup/ncerp/oradata/nnc_index03_1.dbf' to '/u02/ncerp/oradata/nnc_index03_1.dbf'set newname for datafile '/backup/ncerp/oradata/undotbs1.dbf' to '/u02/ncerp/oradata/undotbs1.dbf' set newname for datafile '/backup/ncerp/oradata/sysaux01.dbf' to '/u02/ncerp/oradata/sysaux01.dbf' set newname for datafile '/backup/ncerp/oradata/users01.dbf' to '/u02/ncerp/oradata/users01.dbf' set newname for datafile '/backup/ncerp/oradata/nnc_data01_1.dbf' to '/u02/ncerp/oradata/nnc_data01_1.dbf' set newname for datafile '/backup/ncerp/oradata/nnc_data01_2.dbf' to '/u02/ncerp/oradata/nnc_data01_2.dbf' set newname for datafile '/backup/ncerp/oradata/nnc_data01_3.dbf' to '/u02/ncerp/oradata/nnc_data01_3.dbf' set newname for datafile '/backup/ncerp/oradata/nnc_data01_4.dbf' to '/u02/ncerp/oradata/nnc_data01_4.dbf' set newname for datafile '/backup/ncerp/oradata/nnc_data02_1.dbf' to '/u02/ncerp/oradata/nnc_data02_1.dbf' set newname for datafile '/backup/ncerp/oradata/nnc_data02_2.dbf' to '/u02/ncerp/oradata/nnc_data02_2.dbf' set newname for datafile '/backup/ncerp/oradata/nnc_data03_1.dbf' to '/u02/ncerp/oradata/nnc_data03_1.dbf' set newname for datafile '/backup/ncerp/oradata/nnc_data03_2.dbf' to '/u02/ncerp/oradata/nnc_data03_2.dbf' set newname for datafile '/backup/ncerp/oradata/nnc_data03_3.dbf' to '/u02/ncerp/oradata/nnc_data03_3.dbf' set newname for datafile '/backup/ncerp/oradata/nnc_data03_4.dbf' to '/u02/ncerp/oradata/nnc_data03_4.dbf' set newname for datafile '/backup/ncerp/oradata/nnc_index02_1.dbf' to '/u02/ncerp/oradata/nnc_index02_1.dbf'set newname for datafile '/backup/ncerp/oradata/nnc_index01_1.dbf' to '/u02/ncerp/oradata/nnc_index01_1.dbf'set newname for datafile '/backup/ncerp/oradata/nnc_index01_2.dbf' to '/u02/ncerp/oradata/nnc_index01_2.dbf'set newname for datafile '/backup/ncerp/oradata/nnc_index01_3.dbf' to '/u02/ncerp/oradata/nnc_index01_3.dbf'set newname for datafile '/backup/ncerp/oradata/nnc_index01_4.dbf' to '/u02/ncerp/oradata/nnc_index01_4.dbf'set newname for datafile '/backup/ncerp/oradata/iufo01.dbf'to '/u02/ncerp/oradata/iufo01.dbf' set newname for datafile '/backup/ncerp/oradata/iufo02.dbf'to '/u02/ncerp/oradata/iufo02.dbf' set newname for datafile '/backup/ncerp/oradata/nnc_data03_5.dbf' to '/u02/ncerp/oradata/nnc_data03_5.dbf' Restore database
Switch datafile all
}
vi res_test.sh 内容如下:
export ORACLE_SID=ncerp
rman target / <run {
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE'
send 'NB_ORA_CLIENT=RD162'
做一次恢复测试看看
说明需要3556这个归档日志
所以恢复时,从这个日志进行恢复!
也可以采用后台运行方式
9、数据库恢复
SQL>
cancel
说明,如果上面日志可能有点大的时候,我们需要调整,比如说删除日志组等,然后还重新添加日志到新位置10、打开数据库
SQL>alter database open resetlogs
Database altered.
11、创建临时表空间
1.新建PFILE2.用pfile启动到MOUNT,恢复控制文件
3.根据控制文件恢复数据文件
4.resetlog打开数据库
大致流程就这样了!
使用NetBackup进行oracle备份和恢复??一、环境介绍:
这个实验都是在vmware workstation里完成的。由于NetBackup7只能装在64位的系统上,所以这里采用了64位的rhel5.5系统,以及oracle 10gr2 for linux_x64的软件包。数据库的数据文件存储在ASM中。安装rhel、oracle、netbackup这里不提,可以参考网上其他博文。NetBackup的服务端、客户端以及媒体服务器都在同一台主机上(oradb.xzxj.edu.cn)。在安装netbackup7过程中,数据库的agent不需要额外再单独安装,安装客户端以及服务器端时默认已经安装了,只需要以oracle身份执行oracle_links将rman和netbackup结合在一块即可。以下主要针对备份和恢复做详细描述。
二、备份:
在备份之前要创建一个适用于oracle的策略,否则无法进行备份的。至于如何创建策略,可以参考官方文档。这里已经创建了一个策略orabak,此策略类型是oracle,如图所示:
创建完成后在页面存在一个名为“Default-Application-Backup”的默认日程,可以在日程选项里进行新增、删除、更新日程等 *** 作。本次试验不进行策略设置,默认日程已经能够满足测试的。
注意:jnbSA程序是netbackup的管理窗口,而jbpSA是客户端进行备份、恢复、归档 *** 作的窗口。
要进行oracle的备份,必须以oracle用户运行jbpSA命令,如图所示:
登录成功后会看到如下画面:
选中要备份的数据库实例,这里只有db01一个实例,然后点击右下角的Backup按钮,会d出Netbackup for oracle backup向导画面:
点击下一步:
这里选择认证方式,有OS认证以及oralce认证,如果是OS认证,则NBU会以oracle身份运行相关命令,因为之前登录的用户就是oracle。如果是oracle认证,则User Name必须是具有sysdba权限的数据库用户,一般就是sys用户:
Net service name可选的。下一步:
这里默认就可以了,下一步:
默认即可,下一步:
这里指定备份文件的格式,默认即可,下一步:
这里执行的都是在线热备份的,所以这里默认即可,下一步:
这里需要手工输入备份策略名、日程名、服务端名称以及客户端名称。由于这里的服务器端、客户端以及数据库都在同一台上面,所以服务器端名称和客户端名称是一样的。下一步:
这里使用rman默认的设置即可,下一步:
这里选中立即执行备份,然后点击右下角的Finish即可开始备份。
点击Task Progress可查看备份的实时过程以及备份输出日志。在netbackup管理窗口,可以点击Activity Monitor查看活动的工作,如图,有一个Job Id是147的正处于活动状态,在类型栏里可以看到正在备份:
点击Job Id可以查看备份的详细过程,如图:
archivelog文件的备份:
备份完成后,在备份、恢复、归档窗口会显示备份已经成功:
这里运行的rman脚本如下所示:
完了后,可以使用bplist命令查看备份后的文件名称:
图中列出的10月5号的备份文件名就是刚才备份的。/27lpkqdb_1_1是10月4号spfile的单独备份。
其中的/27lpkqdb_1_1是单独备份spfile的文件名。如果没有单独备份spfile,在上述备份过程中,已经自动备份了spfile,文件名是/bk_u29lpm63q_s73_p1_t731584634。
二、恢复:
1、模拟spfile文件丢失,进行恢复spfile *** 作:
关闭数据库,执行asmcmd,将spfiledb01.ora文件删除,删除之前要确认下dbid的值(使用rman连接,会出现DBID或者查询v$database视图),这个在恢复spfile的时候要用到的。
运行rman程序,设置dbid,启动数据库至nomount状态,执行以下脚本:
完成后,关闭数据库,重启数据库至open状态:
2、模拟单个数据文件丢失进行恢复:
目前存在以下数据文件,将数据库关闭,删除test.dbf后重启数据库至mount状态,将表空间重置为offline状态然后进行恢复:
这里恢复可以有两种,一是在rman中敲命令,另一种是图形界面,这里用图形界面 *** 作:
点击右上角的 ,指定策略类型为oracle:
然后选中要恢复的表空间进行恢复:
点击右下角的restore开始恢复:
恢复成功完成,将表空间online,数据库切换至open状态:
以上 *** 作可以在rman中执行以下命令即可完成:
3、控制文件的丢失:
数据库实例起不来,报控制文件错误,接着使用rman进行恢复:
使用rman连接后,数据库的状态是nomount状态,执行以下语句恢复控制文件:
恢复成功:
然后以resetlogs方式打开数据库:
这里报错,因为刚恢复的控制文件比较老,运行recover database后,在以resetlogs方式打开数据库:
4、完全恢复:
这个是指数据文件、控制文件、日志文件以及spfile文件丢失,只有备份存在的恢复。这个恢复顺序是:
(1)、先恢复spfile文件,然后将数据库重启至nomount状态下,恢复控制文件
(2)、在nomount状态下恢复控制文件,完成后将数据库切换至mount状态
(3)、在mount状态下,执行restore database和recover database命令,恢复数据库,完了后以resetlogs方式打开数据库。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)