ORACLE 备份与异机恢复
(nocatalog 方式)
目 录
一、ORACLE 安装 .............................................................................................................................. 2
1.1、Windows2003 下 oracle 安装 ...........................................................................................2
二、配置 oralce 备份 ........................................................................................................................ 6
2.1、配置 nsrnmo......................................................................................................................6
2.2、配置 oracle 数据库...........................................................................................................7
2.3、配置备份脚本 ...................................................................................................................8
2.4、配置 networker................................................................................................................. 9
2.5、测试备份 ........................................................................................................................... 9
三、oracle 异机恢复 ......................................................................................................................... 9
3.1、准备工作 ........................................................................................................................... 9
3.2、恢复并修改 pflie .............................................................................................................10
3.3、恢复控制文件 .................................................................................................................10
3.4、恢复数据库 ..................................................................................................................... 11
3.5、恢复完成后的工作 .........................................................................................................12
一、ORACLE 安装
1.1、Windows2003 下 oracle 安装
运行安装文件,选择基本安装,指定安装目录、类型。选中创建启动数据库,设定数据库名,
此处名即 oracle 实例名。设定 sys 用户口令。
下一步
查看设置概要,确认后点安装
安装完成
二、配置 oralce 备份
环境信息:
客户端:Windows2003/ RedHat Linux,ORACLE 10g,nmo5.0
服务器端:Windows2003,networker7.5
2.1、配置 nsrnmo
在 client 主 机 上 安 装 networker 客 户 端 软 件 , 安 装 networker module for oracle 。 在
networker 服务器上配置好 client 端的备份组、池、时间表等信息。
Windows 下,在 client 主机的 networker 安装路径 legato\nsr\bin 下找到 nsrnmo.bat,编
辑脚本,指定以下变量的值:
ORACLE_HOME=
ORACLE_BIN=
将注释掉的 SET NSRRMN_ARGUMENTS 行取消注释,去掉行前的 REM
注 : Windows 系 统 下 查 看 ORACLE_HOME 的 值 , 可 在 注 册 表
HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_Ora10g 下查看。
ORACLE_BIN 的值需要加入$ORACLE_HOME\bin 和 legato\nsr\bin。
另外两个变量 PRECMD 和 POSTCMD 分别指向备份前脚本和备份后脚本,一般不设置,
有特别需要时可在此指定。
Linux 和 unix 下同样修改 nsrnmo 文件,一般在/bin 或者/usr/bin 目录下。变量的值可参
考 oracle 用户的环境变量。unix 下还需要连接库文件:
# su - oracle
$ env | grep HOME
JAVA_HOME=/usr/java/j2sdk1.4.2_14
HOME=/home/oracle
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
$ cd /u01/app/oracle/product/10.1.0/db_1
$ ls -l /usr/lib/libnwora*
-rwxr-xr-x
$ cd lib
$ pwd
/u01/app/oracle/product/10.2.0/db_1/lib
$ ln -s /usr/lib/libnwora.so
libobk.so
$ ls -l libobk.so
lrwxrwxrwx
1 oracle oinstall 20
1 root root 1324556 2005-04-15 /usr/lib/libnwora.so
3 月 11 00:15 lib/libobk.so -> /usr/lib/libnwora.so
2.2、配置 oracle 数据库
Windows 下用 administrator 用户登录,UNIX 下需要在 oracle 用户下操作。
首先必须打开 oracle 数据的日志归档。执行:
sqlplus sys/123 as sysdba
进入 SQL 提示符下。sys/123 是 oracle 的管理账户 sys 和口令,as sysdba 表示以 dba 的
身份登录。查看日志归档模式
SQL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG
修改日志模式需要在 mount 模式下进行,如果当前数据库为在线状态,需要关闭数据
库:
SQL>shutdown immediate
SQL>startup mount
SQL>alter database archivelog;
SQL>archive log start;
SQL>alter database open;
SQL>select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
SQL>archive log list;
建立备份用户。(可选,也可直接使用 sys 用户备份)
$ sqlplus /nolog
SQL> connect / as sysdba
SQL>create user backup identified by lgtonmo;
User created.
SQL>grant sysdba to backup;
Grant succeeded.
创建了用户 backup,设置密码为 lgtonmo,并授予 sysdba 权限。
Select * from dba_users;
select username from dba_users;
配置控制文件的自动备份。在命令行下执行:
RMAN nocatalog
进到 RMAN 提示符下
Rman
RMAN>connect target;
RMAN>show all
关注 configure retention policy to redundancy 和 configure controlfile autobackup 的值,前
者是自动备份的有效循环数,一般设置为 4 即可,即控制文件自动备份四次以后,第一次备
份的控制文件自动失效。后者是是否打开控制文件的自动备份。此处的备份采用 nocatalog
方式,需要使用控制文件来恢复,所以选择打开控制文件的自动备份。
RMAN>configure retention policy to redundancy 4;
RMAN>configure controlfile autobackup on;
完成后即可。
2.3、配置备份脚本
创建全备份脚本
connect target backup/lgtonmo;
run {
allocate channel t1 type 'SBT_TAPE' parms
'ENV=(NSR_CLIENT=delteq-filesys,NSR_SERVER=delteq-filesys,NSR_DATA_VOLUME_POOL=oraclf
ull)';
backup full filesperset 4 format '/FULL%d%U/' (database include current controlfile);
release channel t1;
}
这是单通道全备份脚本,也可用 sys 用户备份。在 ENV 中指定 NSR_CLIENT 即备份客户
端主机名,NSR_SERVER 即备份服务器主机名,NSR_DATA_VOLUME_POOL 即全备份数据存放
池的名字。
类似的,创建归档日志备份脚本
connect target sys/123;
run {
allocate channel t1 type 'SBT_TAPE' parms
'ENV=(NSR_CLIENT=delteq-filesys,NSR_SERVER=delteq-filesys,NSR_DATA_VOLUME_POOL=oracle
archive)';
allocate channel t2 type 'SBT_TAPE' parms
'ENV=(NSR_CLIENT=delteq-filesys,NSR_SERVER=delteq-filesys,NSR_DATA_VOLUME_POOL=oracle
archive)';
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
backup filesperset 10
(archivelog all skip inaccessible delete input format '/al_%s_%p/');
release channel t1;
release channel t2;
}
这里配置了两个通道。在备份前用命令将当前的日志归档出来,保证启动备份时备出来
的是最新的数据。archivelog all skip inaccessible 可将不可访问的归档日志号跳过,这样手动
删除归档日志后备份可跳过删除掉的归档日志,不报错。