mysql ora-09925_Oracle学习系列之RMAN异地恢复数据

本文详细介绍了如何通过RMAN备份在不同服务器之间恢复Oracle数据库。涉及的关键步骤包括:备份集的创建与复制、目标服务器环境配置、初始化参数文件的修改、控制文件的恢复、数据库的修复与打开。在过程中可能遇到的错误如审计文件创建失败、找不到备份集、文件创建错误等,以及相应的解决方法也一并给出。
摘要由CSDN通过智能技术生成

一:通过RMAN备份恢复数据库到其他服务器

设定环境:

源库:10.0.17.220   SID:zsddb

获取SID的方式:

(1)通过查看/data/ora11g/product/11.2.0/db_1/dbs/spfilezsddb.ora,因为spfile[sid].ora是按照此形式保存

(2)SQL> select instance from v$thread;

目标库 10.0.18.250

准备工作:记录下源数据库的DBID。(ZSDDB (DBID=1536079480))

获取DBID的两种方式:

(1) rman target / 直接看到DBID

(2) select dbid from v$database;

操作步骤:

1.在源库端创建数据库的完整备份

注意:备份集创建成功后,将其复制到目录端的相同路径下。必须是相同路径(linux可以使用SSH Secure file Transfer Client)

2.在目标服务器上创建OracleService

Linux/UNIX环境,只要在连接数据库时指定ORACLE_SID环境变量即可

3.配置目标端数据库的初始文件

第一步:将源库端的SPFILE初始化参数文件复制到目标端的适当路径下。Linux/UNIX环境是在$ORACLE_HOME\dbs目录下。

查看ORACLE_HOME的环境变量:

[root@oracle-n1 dbs]# sudo su - oracle

[oracle@oracle-n1 ~]$ echo $ORACLE_HOME

/data/ora11g/product/11.2.0/db_1

第二步:修改部分参数值,这一步不是必须得。如果目标端的路径与源端保持一致,不做任何修改。如果不一致,要保证如下几个参数所指定的值是正确有效的。

* control_files: 控制文件路径

* audit_file_dest: Oracle审计输出的debug日志路径

* background_dump_dest: LGWR,DBWn之类后台进程输出的debug日志路径

* core_dump_dest: Oracle内核输出的dump日志路径

* user_dump_dest: 用户进程输出的debug日志路径

* log_archive_dest_1:归档文件路径,如果启用了归档模式的话。

(1)将源数据库端的plife取出

set oracle_sid =zsddb

sqlplus "/as sysdba"

create pfile='/data/backup/pfile_zsddb.ora' from spfile;

(2)用文本工具修改相关参数保存,在目标端创建spfile

create spfile from pfile ='/data/backup/pfile_userdb.ora'

(3)spfile创建成功后,数据库自动启动到NOMOUNT状态。

startup nomount

4.恢复控制文件并进入到加载状态

从备份集中恢复控制文件

set oracle_sid=zsddb

rman target /

RMAN>set dbid=1536079480

RMAN>RESTORE CONTROLFILE FROM '/data/backup/c-14152845758-20090505-00';

数据库置为Mount状态:

RMAN>alter database mount;

5.修复数据库

RMAN>RESTORE DATABASE;

6.恢复数据库

RMAN>RECOVER DATABASE;

7.用open resetlogs方式打开数据库

RMAN>ALTER DATABASE OPEN RESETLOGS;

注意的细节错误:

一:startup nomount的时候,出现如下错误:

ERROR:

ORA-09925: Unable to create audit trail file

Linux-x86_64 Error: 2: No such file or directory

Additional information: 9925

ORA-01075: you are currently logged on

解决方法:创建目录

cd /data/ora11g/admin/userdb/

mkdir -p adump bdump cdump udump

二:RESTORE CONTROLFILE FROM '/data/backup/rman/con_c-3913726272-20121103-00';的时候,出现如下错误:

channel ORA_DISK_1: no AUTOBACKUP in 7 days found

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of restore command at 11/08/2012 17:46:48

RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece

解决方法:看看对应的/data/backup/rman/目录下文件的权限问题。

chown oracle:oracle ./*

三:RESTORE DATABASE;的时候,出现如下错误:

channel ORA_DISK_1: ORA-19870: error while restoring backup piece /data/backup/rman/18nop29i_1_1-USERDB-20121027.full

ORA-19504: failed to create file "/data/ora11g/oradata/userdb/hdmember01.dbf"

ORA-27040: file create error, unable to create file

Linux-x86_64 Error: 2: No such file or directory

建立对应的数据目录:

mkdir -p /data/ora11g/oradata/userdb/

四:$ORACLE_HOME/network/admin

后期配置listener的时候,出现了如下错误:

ERROR:

ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist

Linux-x86_64 Error: 2: No such file or directory

Process ID: 0

Session ID: 0 Serial number: 0

解决方法:

SQL> alter system set local_listener='(ADDRESS =(PROTOCOL = TCP)(HOST = oracle-n2)(PORT = 1588)(SID=userdb))';

SQL> alter system register;

阅读(17392) | 评论(3) | 转发(2) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值