• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

使用rman复制数据库_sqlserver

sqlserver 搞代码 7年前 (2018-06-16) 190次浏览 已收录 0个评论

——————————————–

实验环境:windows + oracle 10.1.0.2.0

http://www.gaodaima.com/34474.html使用rman复制数据库_sqlserver

原数据库:ning[归档模式]  复制数据库:test

Author:NinGoo    2005-3-27

——————————————-

 

在同一台server上使用rman的Duplicate Database创建复制数据库。

 

1.    创建新的instance

 

准备好相应的目录结构

E:/oracle/product/10.1.0/admin/test/bdump

E:/oracle/product/10.1.0/admin/test/cdump

E:/oracle/product/10.1.0/admin/test/create

E:/oracle/product/10.1.0/admin/test/pfile

E:/oracle/product/10.1.0/admin/test cripts

E:/oracle/product/10.1.0/admin/test/udmp

 

创建参数文件inittest.ini(可使用原库的pfile进行修改),主要参数如下:

db_name=test

background_dump_dest=E:/oracle/product/10.1.0/admin/test/bdump

core_dump_dest=E:/oracle/product/10.1.0/admin/test/cdump

user_dump_dest=E:/oracle/product/10.1.0/admin/test/udump

control_files=’E:/oracle/oradata/test/control01.ctl’,’E:/oracle/oradata/test /control02.ctl’,’E:/oracle/oradata/test /control03.ctl’

DB_FILE_NAME_CONVERT=(‘E:/oracle/oradata/ning’,’E:/oracle/oradata/test’)

LOG_FILE_NAME_CONVERT=(‘E:/oracle/oradata/ning’,’E:/oracle/oradata/test’)

置于E:/oracle/product/10.1.0/admin/test/pfile或者E:/oracle/product/10.1.0/db_1/database即可。

 

使用oradim创建新的instance

c:/>oradim -new -sid test

例程已创建。

 

使用orapwd创建password文件

c:/>orapwd file=E:/oracle/product/10.1.0/db_1/database/PWDtest.ora password=test entries=10

 

配置好监听和tnsnames,然后使用sqlplus测试连接

 

c:/>sqlplus /nolog

 

SQL*Plus: Release 10.1.0.2.0 – Production on 星期日 3月 27 21:01:13 2005

 

Copyright (c) 1982, 2004, Oracle.  All rights reserved.

 

SQL> conn sys@test as sysdba

请输入口令:

已连接到空闲例程。

 

 

2.使用rman备份原库

 

RMAN> connect target sys/ning@ning

 

连接到目标数据库: NING (DBID=1141544503)

正在使用目标数据库控制文件替代恢复目录

 

RMAN> backup full database tag ‘fullbk’ format ‘e:/oracle/oraback/full%u_%s_%p’;

 

启动 backup 于 27-3月 -05

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 启动全部数据文件备份集

通道 ORA_DISK_1: 正在指定备份集中的数据文件

输入数据文件 fno=00001 name=E:/ORACLE/ORADATA/NING YSTEM01.DBF

输入数据文件 fno=00002 name=E:/ORACLE/ORADATA/NING/UNDOTBS01.DBF

输入数据文件 fno=00004 name=E:/ORACLE/ORADATA/NING/USERS01.DBF

输入数据文件 fno=00003 name=E:/ORACLE/ORADATA/NING YSAUX01.DBF

输入数据文件 fno=00005 name=E:/ORACLE/ORADATA/NING/TEST01.DBF

通道 ORA_DISK_1: 正在启动段 1 于 27-3月 -05

通道 ORA_DISK_1: 已完成段 1 于 27-3月 -05

段 handle=E:/ORACLE/ORABACK/FULL03GGCQA4_3_1 comment=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:45

通道 ORA_DISK_1: 启动全部数据文件备份集

通道 ORA_DISK_1: 正在指定备份集中的数据文件

备份集中包括当前控制文件

在备份集中包含当前的 SPFILE

通道 ORA_DISK_1: 正在启动段 1 于 27-3月 -05

通道 ORA_DISK_1: 已完成段 1 于 27-3月 -05

段 handle=E:/ORACLE/ORABACK/FULL04GGCQBH_4_1 comment=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:09

完成 backup 于 27-3月 -05

 

 

3.使用rman复制数据库

 

c:/>rman target sys/ning@ning  AUXILIARY sys/test@test

 

恢复管理器: 版本10.1.0.2.0 – Production

 

opyright (c) 1995, 2004, Oracle.  All rights reserved.

 

连接到目标数据库: NING (DBID=1141544503)

已连接到备用数据库: test (未装载)

 

RMAN> DUPLICATE TARGET DATABASE TO ‘test’;

启动 Duplicate Db 于 27-3月 -05

使用通道 ORA_AUX_DISK_1

 

内存脚本的内容:

{

   set until scn  169960;

   set newname for datafile  1 to

 "E:/ORACLE/ORADATA/TEST YSTEM01.DBF";

   set newname for datafile  2 to

 "E:/ORACLE/ORADATA/TEST/UNDOTBS01.DBF";

   set newname for datafile  3 to

 "E:/ORACLE/ORADATA/TEST YSAUX01.DBF";

   set newname for datafile  4 to

 "E:/ORACLE/ORADATA/TEST/USERS01.DBF";

   set newname for datafile  5 to

 "E:/ORACLE/ORADATA/TEST/TEST01.DBF";

   restore

   check readonly

   clone database

   ;

}

正在执行内存脚本

 

正在执行命令: SET until clause

 

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

启动 restore 于 27-3月 -05

使用通道 ORA_AUX_DISK_1

 

通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集

通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件

正将数据文件00001恢复到E:/ORACLE/ORADATA/TEST YSTEM01.DBF

正将数据文件00002恢复到E:/ORACLE/ORADATA/TEST/UNDOTBS01.DBF

正将数据文件00003恢复到E:/ORACLE/ORADATA/TEST YSAUX01.DBF

正将数据文件00004恢复到E:/ORACLE/ORADATA/TEST/USERS01.DBF

正将数据文件00005恢复到E:/ORACLE/ORADATA/TEST/TEST01.DBF

通道 ORA_AUX_DISK_1: 已恢复备份段 1

段句柄 = E:/ORACLE/ORABACK/FULL03GGCQA4_3_1 标记 = FULLBK

通道 ORA_AUX_DISK_1: 恢复完成

完成 restore 于 27-3月 -05

sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "test" RESETLOGS ARCHIVELOG

  MAXLOGFILES     16

  MAXLOGMEMBERS      3

  MAXDATAFILES      100

  MAXINSTANCES     8

  MAXLOGHISTORY      454

 LOGFILE

  GROUP  1 ‘E:/oracle/oradata/test/redo01.log’ SIZE 10 M ,

  GROUP  2 ‘E:/oracle/oradata/test/redo02.log’ SIZE 10 M ,

  GROUP  3 ‘E:/oracle/oradata/test/redo03.log’ SIZE 10 M

 DATAFILE

  ‘E:/ORACLE/ORADATA/TEST YSTEM01.DBF’

 CHARACTER SET ZHS16GBK

 

 

内存脚本的内容:

{

   switch clone datafile all;

}

正在执行内存脚本

 

数据文件 2 已转换成数据文件副本

输入数据文件副本 recid=1 stamp=554071105 文件名=E:/ORACLE/ORADATA/TEST/UNDOTBS01

.DBF

数据文件 3 已转换成数据文件副本

输入数据文件副本 recid=2 stamp=554071105 文件名=E:/ORACLE/ORADATA/TEST YSAUX01.

DBF

数据文件 4 已转换成数据文件副本

输入数据文件副本 recid=3 stamp=554071105 文件名=E:/ORACLE/ORADATA/TEST/USERS01.D

BF

数据文件 5 已转换成数据文件副本

输入数据文件副本 recid=4 stamp=554071105 文件名=E:/ORACLE/ORADATA/TEST/TEST01.DB

F

 

内存脚本的内容:

{

   set until scn  169960;

   recover

   clone database

    delete archivelog

   ;

}

正在执行内存脚本

 

正在执行命令: SET until clause

 

启动 recover 于 27-3月 -05

使用通道 ORA_AUX_DISK_1

 

正在开始介质的恢复

 

存档日志线程 1 序列 16 已作为文件 E:/ORACLE/ARCH/ARC00016_0553949015.001 存在于

磁盘上

存档日志文件名 =E:/ORACLE/ARCH/ARC00016_0553949015.001 线程 =1 序列 =16

完成介质的恢复

完成 recover 于 27-3月 -05

 

内存脚本的内容:

{

   shutdown clone;

   startup clone nomount ;

}

正在执行内存脚本

 

数据库已卸载

Oracle 例程已关闭

 

已连接到备用数据库 (未启动)

Oracle 例程已启动

 

系统全局区域总计     142606336 字节

 

Fixed Size                      787848 字节

Variable Size                116390520 字节

Database Buffers              25165824 字节

Redo Buffers                    262144 字节

sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "test" RESETLOGS ARCHIVELOG

  MAXLOGFILES     16

  MAXLOGMEMBERS      3

  MAXDATAFILES      100

  MAXINSTANCES     8

  MAXLOGHISTORY      454

 LOGFILE

  GROUP  1 ‘E:/oracle/oradata/test/redo01.log’ SIZE 10 M ,

  GROUP  2 ‘E:/oracle/oradata/test/redo02.log’ SIZE 10 M ,

  GROUP  3 ‘E:/oracle/oradata/test/redo03.log’ SIZE 10 M

 DATAFILE

  ‘E:/ORACLE/ORADATA/TEST YSTEM01.DBF’

 CHARACTER SET ZHS16GBK

 

 

内存脚本的内容:

{

   catalog clone datafilecopy  "E:/ORACLE/ORADATA/TEST/UNDOTBS01.DBF";

   catalog clone datafilecopy  "E:/ORACLE/ORADATA/TEST YSAUX01.DBF";

   catalog clone datafilecopy  "E:/ORACLE/ORADATA/TEST/USERS01.DBF";

   catalog clone datafilecopy  "E:/ORACLE/ORADATA/TEST/TEST01.DBF";

   switch clone datafile all;

}

正在执行内存脚本

 

已将数据文件副本列入目录

数据文件副本 filename=E:/ORACLE/ORADATA/TEST/UNDOTBS01.DBF recid=1 stamp=5540716

73

 

已将数据文件副本列入目录

数据文件副本 filename=E:/ORACLE/ORADATA/TEST YSAUX01.DBF recid=2 stamp=55407167

3

 

已将数据文件副本列入目录

数据文件副本 filename=E:/ORACLE/ORADATA/TEST/USERS01.DBF recid=3 stamp=554071673

 

 

已将数据文件副本列入目录

数据文件副本 filename=E:/ORACLE/ORADATA/TEST/TEST01.DBF recid=4 stamp=554071673

 

数据文件 2 已转换成数据文件副本

输入数据文件副本 recid=1 stamp=554071673 文件名=E:/ORACLE/ORADATA/TEST/UNDOTBS01

.DBF

数据文件 3 已转换成数据文件副本

输入数据文件副本 recid=2 stamp=554071673 文件名=E:/ORACLE/ORADATA/TEST YSAUX01.

DBF

数据文件 4 已转换成数据文件副本

输入数据文件副本 recid=3 stamp=554071673 文件名=E:/ORACLE/ORADATA/TEST/USERS01.D

BF

数据文件 5 已转换成数据文件副本

输入数据文件副本 recid=4 stamp=554071673 文件名=E:/ORACLE/ORADATA/TEST/TEST01.DB

F

 

内存脚本的内容:

{

   Alter clone database open resetlogs;

}

正在执行内存脚本

 

数据库已打开

完成 Duplicate Db 于 27-3月 -05

 

 

4.检查复制库的状态

 

C:/>sqlplus /nolog

 

SQL*Plus: Release 10.1.0.2.0 – Production on 星期日 3月 27 21:05:52 2005

 

Copyright (c) 1982, 2004, Oracle.  All rights reserved.

 

SQL> conn sys@test as sysdba

请输入口令:

已连接。

 

SQL> select instance_name,status from v$instance;

 

INSTANCE_NAME    STATUS

—————- ————

test             OPEN

 

 

然后去掉inittest.ora的DB_FILE_NAME_CONVERT和LOG_FILE_NAME_CONVERT参数,再使用该文件生成spfile

 

SQL> create spfile from pfile=’E:/oracle/product/10.1.0/db_1/database/inittest.ora’;

 

文件已创建。

 

 

===============================================================

参考文章:

Oracle® Database Backup and Recovery Advanced User’s Guide 10g Release 1 (10.1) Part Number B10734-01

欢迎大家阅读《使用rman复制数据库_sqlserver,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用rman复制数据库_sqlserver

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址