关于数据库冷备份还原到其他实例的问题

jjoulejcc 2014-06-23 03:49:00
我将一个数据库冷备份(实例名orcl),现在需要把这个库还原到另外一台机器上,因这台机上已经有了实例名为orcl的数据库,现在我想把原来这个实例名为orcl的数据库还原到新机器上实例名为orclnew的数据库上,具体该怎么操作,望大家指点下!
...全文
332 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灰狼W 2014-06-25
  • 打赏
  • 举报
回复
两个实例共存只要区分好sid就可以了。而且修改很简单,只要将对应的参数文件名称、环境变量、密码文件改名即可 你这里的rman还原除了修改sid以外,还涉及到路径的转换,以免和原实例的数据文件冲突 建议你将新机器上的orcl数据库的实例名改成orclnew,并将目录改名,然后再还原orcl库。操作会简单得多
美到心痛 2014-06-24
  • 打赏
  • 举报
回复
引用 3 楼 huangdh12 的回复:
[quote=引用 2 楼 sjcss 的回复:] 不知道你是windows还是linux,不过大概的原理相同. 大概就是修改参数文件,重建控制文件,然后启动就可以了. 以下是以linux为例: PCA:用来准备的数据库服务器 PCB:将还原的数据库服务器 --PCA 1.在sqlplus 下create pfile from spile;产生参数文件, 修改参数文件名的为initorclnew.ora, 打开initorclnew.ora,除了db_name=orcl不改,其它所以的orcl替换成orclnew 加入*.db_unique_name=orclnew这行. 2.在sqlplus下alter database backup controlfile to trace;产生重建控制文件的代码. 3.复制 initorclnew.ora到PCB的$ORACLE_HOME/dbs 复制数据文件到跟踪控制文件中指定的目录 --PCB 打开 initorclnew.ora,根据参数中的路径,新建没有的文件夹 然后ORACLE_SID=orclnew sqlplus / as sysdba startup nomount; CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 '/u02/oradata/orclnew/redo01.log' SIZE 50M, GROUP 2 '/u02/oradata/orclnew/redo02.log' SIZE 50M, GROUP 3 '/u02/oradata/orclnew/redo03.log' SIZE 50M -- STANDBY LOGFILE DATAFILE '/u02/oradata/orclnew/system01.dbf', '/u02/oradata/orclnew/undotbs01.dbf', '/u02/oradata/orclnew/sysaux01.dbf', '/u02/oradata/orclnew/users01.dbf', '/u02/oradata/orclnew/example01.dbf' CHARACTER SET ZHS16GBK ; alter database open; 就可以了.
这样重建建立的数据库不是 orcl?[/quote] db_name还是 oracl, 但是只要sid改为orclnew就可以保证两个数据库放在一台了.因为在参数文件中有加 *.db_unique_name=orclnew. 用户连接也是指定sid或service_name,根db_name无关的
huangdh12 2014-06-23
  • 打赏
  • 举报
回复
引用 2 楼 sjcss 的回复:
不知道你是windows还是linux,不过大概的原理相同. 大概就是修改参数文件,重建控制文件,然后启动就可以了. 以下是以linux为例: PCA:用来准备的数据库服务器 PCB:将还原的数据库服务器 --PCA 1.在sqlplus 下create pfile from spile;产生参数文件, 修改参数文件名的为initorclnew.ora, 打开initorclnew.ora,除了db_name=orcl不改,其它所以的orcl替换成orclnew 加入*.db_unique_name=orclnew这行. 2.在sqlplus下alter database backup controlfile to trace;产生重建控制文件的代码. 3.复制 initorclnew.ora到PCB的$ORACLE_HOME/dbs 复制数据文件到跟踪控制文件中指定的目录 --PCB 打开 initorclnew.ora,根据参数中的路径,新建没有的文件夹 然后ORACLE_SID=orclnew sqlplus / as sysdba startup nomount; CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 '/u02/oradata/orclnew/redo01.log' SIZE 50M, GROUP 2 '/u02/oradata/orclnew/redo02.log' SIZE 50M, GROUP 3 '/u02/oradata/orclnew/redo03.log' SIZE 50M -- STANDBY LOGFILE DATAFILE '/u02/oradata/orclnew/system01.dbf', '/u02/oradata/orclnew/undotbs01.dbf', '/u02/oradata/orclnew/sysaux01.dbf', '/u02/oradata/orclnew/users01.dbf', '/u02/oradata/orclnew/example01.dbf' CHARACTER SET ZHS16GBK ; alter database open; 就可以了.
这样重建建立的数据库不是 orcl?
美到心痛 2014-06-23
  • 打赏
  • 举报
回复
不知道你是windows还是linux,不过大概的原理相同. 大概就是修改参数文件,重建控制文件,然后启动就可以了. 以下是以linux为例: PCA:用来准备的数据库服务器 PCB:将还原的数据库服务器 --PCA 1.在sqlplus 下create pfile from spile;产生参数文件, 修改参数文件名的为initorclnew.ora, 打开initorclnew.ora,除了db_name=orcl不改,其它所以的orcl替换成orclnew 加入*.db_unique_name=orclnew这行. 2.在sqlplus下alter database backup controlfile to trace;产生重建控制文件的代码. 3.复制 initorclnew.ora到PCB的$ORACLE_HOME/dbs 复制数据文件到跟踪控制文件中指定的目录 --PCB 打开 initorclnew.ora,根据参数中的路径,新建没有的文件夹 然后ORACLE_SID=orclnew sqlplus / as sysdba startup nomount; CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 '/u02/oradata/orclnew/redo01.log' SIZE 50M, GROUP 2 '/u02/oradata/orclnew/redo02.log' SIZE 50M, GROUP 3 '/u02/oradata/orclnew/redo03.log' SIZE 50M -- STANDBY LOGFILE DATAFILE '/u02/oradata/orclnew/system01.dbf', '/u02/oradata/orclnew/undotbs01.dbf', '/u02/oradata/orclnew/sysaux01.dbf', '/u02/oradata/orclnew/users01.dbf', '/u02/oradata/orclnew/example01.dbf' CHARACTER SET ZHS16GBK ; alter database open; 就可以了.
huangdh12 2014-06-23
  • 打赏
  • 举报
回复
没有动手做过,你可以试验一下 。 1. 在新机器上用dbca 创建 orclnew的数据库 2.停止orclnew中数据库服务,把orclnew 中的 控制文件,日志文件,数据文件全删掉 3.拷贝你冷备份的文件到orclnew中 3.重建控制文件,应用数据文件和日志文件。 4.启动。 只是我不知道数据文件里面有没有记录oracle的oracle_sid信息, 如果有的话,估计上面就不成功了。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧