- 论坛徽章:
- 0
|
目的:对Oracle数据库在一台计算机备份,在另一台计算机中进行恢复.数据库的备份采用非目录模式,直接放在控制文件中
OS Envionment:Windows 2000 Sp4
DataBase Version:Oracle 9.2.0.1
DataBase Name:WEEKMIS
Machine A roadvancer IP:172.16.234.200
Machine B:Adv06 IP:172.16.234.199
第一步:在Machine A机上设置数据库为归档模式
第二步:在Machine A机上备份控制文件,参数文件及数据文件,同时将备份文件复制到Machine B机上(注意路径名与Machine A机器上一致)
第三步:在Machine B装相同版本的数据库
第四步:在Machine B建立与Machine A相同的数据库目录
ControlFile
DataBaseFile
LogFile
第五步:为Machine B数据库建立服务文件,采用ORADIM命令
第六步:为Machine B数据库建立密码文件,采用ORAPWD命令
第七步:为Machine B数据库建立Listener
第八步:为Machine B数据库建立TnsName
第九步:测试监听器及服务是否正确工作
第十步:在Machine B上恢复文件
第一步:在Machine A机上设置数据库为归档模式
(注意:更改数据库默认归档路径)
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 11月 25 14:12:45 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn /as sysdba
已连接。
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 d:\oracle\ora92\RDBMS
最早的概要日志序列 1
当前日志序列 3
SQL> show parameter log_archive_start
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_start boolean FALSE
SQL> show parameter log_archive_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
log_archive_dest_9 string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_1 string enable
log_archive_dest_state_10 string enable
log_archive_dest_state_2 string enable
log_archive_dest_state_3 string enable
log_archive_dest_state_4 string enable
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable
SQL> alter system set log_archive_start=true scope=spfile;
系统已更改。
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string %ORACLE_HOME%\DATABASE\SPFILE%
ORACLE_SID%.ORA
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 d:\oracle\ora92\RDBMS
最早的概要日志序列 1
当前日志序列 3
SQL> alter system set log_archive_dest='D:\oracle\admin\WEEKMIS\archive';
系统已更改。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 185670316 bytes
Fixed Size 453292 bytes
Variable Size 134217728 bytes
Database Buffers 50331648 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 D:\oracle\admin\WEEKMIS\archive
最早的概要日志序列 1
下一个存档日志序列 3
当前日志序列 3
SQL> show parameter log_archive_start;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_start boolean TRUE
SQL> show parameter log_archive_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string D:\oracle\admin\WEEKMIS\archiv
e
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
第二步:在Machine A机上备份控制文件,参数文件及数据文件,同时将备份文件复制到Machine B机上(注意路径名与Machine A机器上一致)
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.
C:\Documents and Settings\Administrator>rman
恢复管理器: 版本9.2.0.1.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
RMAN> connect target
连接到目标数据库: WEEKMIS (DBID=1350036729)
RMAN> report schema;
正在使用目标数据库控制文件替代恢复目录
数据库方案报表
文件 KB 表空间 RB segs 数据文件名称
---- ---------- -------------------- ------- -------------------
1 256000 SYSTEM *** D:\ORACLE\ORADATA\WEEKMIS\SYSTEM01
DBF
2 204800 UNDOTBS1 *** D:\ORACLE\ORADATA\WEEKMIS\UNDOTBS0
.DBF
3 25600 INDX *** D:\ORACLE\ORADATA\WEEKMIS\INDX01.D
F
4 10240 TOOLS *** D:\ORACLE\ORADATA\WEEKMIS\TOOLS01.
BF
5 25600 USERS *** D:\ORACLE\ORADATA\WEEKMIS\USERS01.
BF
6 512000 TCALS *** D:\ORACLE\ORADATA\WEEKMIS\TCALS.DB
7 102400 HICMP_CALS_TSP *** D:\ORACLE\ORADATA\WEEKMIS\HICMP_CA
S_TSP.DBF
RMAN> list backup;
RMAN> report obsolete;
RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
未找到已废弃的备份
RMAN> report unrecoverable;
由于操作无法被恢复,文件的报表需要备份
备份请求名称的文件类型
---- ----------------------- -----------------------------------
RMAN> list backup;
RMAN> list backup summary;
RMAN> list copy ;
说明与恢复目录中的任何存档日志均不匹配
RMAN> show all;
RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\ORA92\DATABASE\SNCFWEEKMIS.OR'; # default
RMAN> configure controlfile autobackup format for device type disk to 'D:\backu\weekmis_%F';
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'D:\backup\weekis_%F';
已成功存储新的 RMAN 配置参数
RMAN> allocate channel for maintenance type disk ;
分配的通道: ORA_MAINT_DISK_1
通道 ORA_MAINT_DISK_1: sid=13 devtype=DISK
RMAN> backup database format='D:\backup\weekmis_%U_%s';
启动 backup 于 25-11月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=14 devtype=DISK
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00006 name=D:\ORACLE\ORADATA\WEEKMIS\TCALS.DBF
输入数据文件 fno=00001 name=D:\ORACLE\ORADATA\WEEKMIS\SYSTEM01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\ORADATA\WEEKMIS\UNDOTBS01.DBF
输入数据文件 fno=00007 name=D:\ORACLE\ORADATA\WEEKMIS\HICMP_CALS_TSP.DBF
输入数据文件 fno=00003 name=D:\ORACLE\ORADATA\WEEKMIS\INDX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\ORADATA\WEEKMIS\USERS01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\ORADATA\WEEKMIS\TOOLS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 25-11月-06
通道 ORA_DISK_1: 已完成段 1 于 25-11月-06
段 handle=D:\BACKUP\WEEKMIS_01I39NCI_1_1_1 comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:56
完成 backup 于 25-11月-06
RMAN> release channel;
释放的通道: ORA_MAINT_DISK_1
备份完成之后,在Machine B建立与Machine A对应的数据文件目录
第五步:为Machine B数据库建立服务文件,采用ORADIM命令
C:\Documents and Settings\Administrator>oradim -new -SID WEEKMIS -INTPWD solex -MAXUSERS 10
第六步:为Machine B数据库建立密码文件,采用ORAPWD命令
C:\Documents and Settings\Administrator>orapwd file=D:\oracle\ora92\database\PWDWEEKMIS.ora password=solex entries=10
第七步:为Machine B数据库建立Listener
# LISTENER.ORA Network Configuration File: D:\oracle\ora92\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.234.199)(PORT = 1521))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = weekmis)
(ORACLE_HOME = d:\oracle\ora92)
(SID_NAME = weekmis)
)
)
第八步:为Machine B数据库建立TnsName
# TNSNAMES.ORA Network Configuration File: D:\oracle\ora92\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
WEEKMIS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = adv06)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = WEEKMIS)
)
)
第九步:测试监听器及服务是否正确工作
C:\>lsnrctl status
LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 25-11月-2006 15:54
:57
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.234.199)(PORT=1521))
)
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Produc
tion
启动日期 25-11月-2006 12:58:21
正常运行时间 0 天 2 小时 56 分 37 秒
跟踪级别 off
安全性 OFF
SNMP OFF
监听器参数文件 D:\oracle\ora92\network\admin\listener.ora
监听器日志文件 D:\oracle\ora92\network\log\listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.234.199)(PORT=1521)))
服务摘要..
服务 "weekmis" 包含 1 个例程。
例程 "weekmis", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
C:\>tnsping weekmis
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 25-11月-2
006 15:55:17
Copyright (c) 1997 Oracle Corporation. All rights reserved.
已使用的参数文件:
D:\oracle\ora92\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = adv06)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = WEEKMIS)))
OK(50毫秒)
第十步:在Machine B上恢复从Machine A复制过来的文件
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.
C:\Documents and Settings\Administrator>rman
恢复管理器: 版本9.2.0.1.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
RMAN> connect target sys/solex
已连接到目标数据库 (未启动)
正在执行命令: SET DBID
RMAN> startup force nomount
启动失败: ORA-01078: failure in processing system parameters
LRM-00109: N^7(4r?*2NJ}ND<~ 'D:\ORACLE\ORA92\DATABASE\INITWEEKMIS.ORA'
正在尝试在没有参数文件的情况下启动 Oracle 例程...
Oracle 例程已启动
系统全局区域总计 97589952 字节
Fixed Size 453312 字节
Variable Size 46137344 字节
Database Buffers 50331648 字节
Redo Buffers 667648 字节
RMAN> restore spfile from 'D:\backup\WEEKMIS_01I39NCI_1_1_1'
2> ;
启动 restore 于 25-11月-06
正在使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=9 devtype=DISK
通道 ORA_DISK_1: 已找到的自动备份: D:\backup\WEEKMIS_01I39NCI_1_1_1
通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成
完成 restore 于 25-11月-06
RMAN> shutdown immediate
Oracle 例程已关闭
RMAN> startup nomount
已连接到目标数据库 (未启动)
Oracle 例程已启动
系统全局区域总计 185670316 字节
Fixed Size 453292 字节
Variable Size 134217728 字节
Database Buffers 50331648 字节
Redo Buffers 667648 字节
RMAN> restore controlfile from 'd:\backup\WEEKMIS_01I39NCI_1_1_1';
启动 restore 于 25-11月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=11 devtype=DISK
通道 ORA_DISK_1: 正在恢复控制文件
通道 ORA_DISK_1: 恢复完成
正在复制控制文件
输出文件名=D:\ORACLE\ORADATA\WEEKMIS\CONTROL01.CTL
输出文件名=D:\ORACLE\ORADATA\WEEKMIS\CONTROL02.CTL
输出文件名=D:\ORACLE\ORADATA\WEEKMIS\CONTROL03.CTL
完成 restore 于 25-11月-06
RMAN> alter database mount;
数据库已加载
RMAN> restore database;
启动 restore 于 25-11月-06
使用通道 ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 11/25/2006 14:55:09
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 7 found to restore
RMAN-06023: no backup or copy of datafile 6 found to restore
RMAN-06023: no backup or copy of datafile 5 found to restore
RMAN-06023: no backup or copy of datafile 4 found to restore
RMAN-06023: no backup or copy of datafile 3 found to restore
RMAN-06023: no backup or copy of datafile 2 found to restore
RMAN-06023: no backup or copy of datafile 1 found to restore
RMAN> restore database from 'd:\backup\WEEKMIS_01I39NCI_1_1_1';
启动 restore 于 25-11月-06
使用通道 ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 11/25/2006 14:56:10
RMAN-06509: only SPFILE or controlfile can be restored from autobackup
RMAN> restore database;
启动 restore 于 25-11月-06
使用通道 ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 11/25/2006 14:56:34
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 7 found to restore
RMAN-06023: no backup or copy of datafile 6 found to restore
RMAN-06023: no backup or copy of datafile 5 found to restore
RMAN-06023: no backup or copy of datafile 4 found to restore
RMAN-06023: no backup or copy of datafile 3 found to restore
RMAN-06023: no backup or copy of datafile 2 found to restore
RMAN-06023: no backup or copy of datafile 1 found to restore
RMAN>
疑问:
1.在客户机上密码文件后,会出现ORA-01031: insufficient privileges错误.
客户机上的Administrator用户与服务器上Administrator用户的密码一致,且都属于ORA_DBA用户组
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 11月 25 15:17:11 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn /as sysdba
ERROR:
ORA-01031: insufficient privileges
C:\Documents and Settings\Administrator>rman
恢复管理器: 版本9.2.0.1.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
RMAN> connect target
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
ORA-01031: insufficient privileges
2.在Machine B机上在启动数据库为Mount状态下,采用restore Database会出现下面的错误
RMAN> restore database;
启动 restore 于 25-11月-06
使用通道 ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 11/25/2006 14:56:34
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 7 found to restore
RMAN-06023: no backup or copy of datafile 6 found to restore
RMAN-06023: no backup or copy of datafile 5 found to restore
RMAN-06023: no backup or copy of datafile 4 found to restore
RMAN-06023: no backup or copy of datafile 3 found to restore
RMAN-06023: no backup or copy of datafile 2 found to restore
RMAN-06023: no backup or copy of datafile 1 found to restore
[ 本帖最后由 proadvancer 于 2006-11-25 16:51 编辑 ] |
|