Duplicate复制数据库之创建辅助实例
2011-02-23 21:55
375 查看
Duplicate复制数据库之创建辅助实例 |
[君三思] 2007-10-18 |
辅助实例是创建副本数据库的重要一步,一般而言会有下列几个步骤,有些你已经听说了,有些,你还从未听过。。。。。。。: 一、创建辅助实例的密码文件(Create an Oracle Password File for the Auxiliary Instance) Oracle 提供了一个创建密码文件的命令:ORAPWD。该命令有两种调用 方式 ,带参调用和不带参调用。 不带参调用时,会返回该命令的调用方式 和参数形式 。 F:/oracle>orapwd Usage: orapwd file= password= entries= force= where file - name of password file (mand), password - password for SYS (mand), entries - maximum number of distinct DBA and force - whether to overwrite existing file (opt),OPERs (opt), There are no spaces around the equal-to (=) character. File 表示文件名称和路径,password表示sys用户密码,entries指定拥有sys权限的用户最大数,force表示如果文件存在是否覆盖。File和password为必填参。 该命令使用非常简单,不详述了,举示例如下: F:/oracle> orapwd file=F:/oracle/product/10.2.0/db_1/database/PWDjssdup.ora password=verysafe:) entries=30 二、 连接到实例(Establish Oracle Net Connectivity to the Auxiliary Instance) 注意,如果是windows环境,需要首先通过ORADIM命令创建一个新的OracleService,linux环境可以跳过这一步,我是说,跳过oradim这步。本小节其它操作还是要做的。 F:/oracle> oradim -new -sid jssdup 实例已创建。 F:/oracle>set oracle_sid=jssdup F:/oracle>sqlplus "/ as sysdba" SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 10月 18 17:26:03 2007 Copyright (c) 1982, 2005, Oracle. All rights reserved. 已连接到空闲例程。 然后就是配置监听啦,修改tnsname.ora之类,总之就是你要能够连接到这个辅助实例上来才算了事。 三、 创建辅助实例的初始化参数文件(Create an Initialization Parameter File for the Auxiliary Instance) 注意:辅助实例的 BLOCK SIZE 必须与目标库相同。如果目标库的参数文件包括DB_BLOCK_SIZE的参数,你必须指定辅助实例中该参数的值与目标库相同。如果目标库的参数文件中未指定该参数,则辅助实例的参数文件中也不必指定。 如果是复制到一个新系统或新站点的话,还需要注意各项初始化参数中的路径,必须确认该路径对于你的复制是有效的。 由于是手工建库,相应目录也需要自己手工创建: F:/oracle>md product/10.2.0/admin/jssdup F:/oracle>cd product/10.2.0/admin/jssdup F:/oracle/product/10.2.0/admin/jssdup>md adump bdump cdump dpdump pfile udump 1. 首先创建本地初始化参数文件,比着原库的pfile改改就是,内容不需要太多,DB_NAME,CONTROL_FILES两项参数为必须项。 本例中副本数据库与主库在同一台机器,所以需要注意DB_NAME不能相同。 同时还有一些其它参数,反正你就看着改吧,觉着必须的话就用上。 下面是三思操作时的示例,为了省事参数设置非常简单。实际上还可以更简单,比如只保留前6项。当然最简单的就是只保留前3项。呵呵,这就得你自己根据实际情况定了,但是需要注意第3项,虽然官方文件中并没有声明shared_pool_size为必须项,但如果该项不指定或者指定了较小值,在执行RMAN时都极可能报错,建议此处设定的值不要太小,我这里设置接近200M。 db_name=¨jssdup¨ control_files=¨F:/oracle/oradata/jssdup/control01.ctl¨,¨F:/oracle/oradata/jssdup/control02.ctl¨,¨F:/oracle/oradata/jssdup/control03.ctl¨ shared_pool_size=200000000 db_block_size=8192 db_file_name_convert=(¨F:/oracle/oradata/jssweb¨,¨F:/oracle/oradata/jssdup¨) log_file_name_convert=(¨F:/oracle/oradata/jssweb¨,¨F:/oracle/oradata/jssdup¨) audit_file_dest=¨F:/oracle/product/10.2.0/admin/jssdup/adump¨ background_dump_dest=¨F:/oracle/product/10.2.0/admin/jssdup/bdump¨ compatible=¨10.2.0.1.0¨ core_dump_dest=¨F:/oracle/product/10.2.0/admin/jssdup/cdump¨ user_dump_dest=¨F:/oracle/product/10.2.0/admin/jssdup/udump¨ 2. 通过CREATE SPFILE命令创建服务器端初始化参数文件 SQL> create spfile from pfile =¨F:/oracle/product/10.2.0/admin/jssdup/pfile/init.ora¨; 文件已创建。 这一步也并非完全必须,如果你愿意在执行duplicate命令时指定pfile参数的话呢,也可以不用创建spfile。一般情况下,除非脑袋被门挤了,没人愿意采用麻烦的方式专门自己给自己找不痛快吧。更何况spfile是做为oracle9i以来的一项进步而存在,其优势就不用多提了吧:) 四、 启动辅助实例(Start the Auxiliary Instance) 接着上一步,创建完spfile之后: SQL> startup force nomount; ORACLE 例程已经启动。 Total System Global Area 117440512 bytes Fixed Size 1247588 bytes Variable Size 58721948 bytes Database Buffers 50331648 bytes Redo Buffers 7139328 bytes SQL> 重启实例以加载服务器端初始化参数文件。 由于尚无控制文件,你也只能将其启动到nomount模式 。Oracle说,千万 不要尝试去创建控制文件,或者加载到mount或open状态。 RMAN 重启辅助实例是复制操作的一部分。因此,默认情况下创建服务器端的初始化参数文件是最佳选择。哎,又回老话题上了。如果没能创建服务器端初始化参数文件的话,你就必须指定客户端初始化参数文件做为duplicate的参数。 五、 Mount 或open目标数据库(Mount or Open the Target Database) 注意哟,这步连接的是目标库。如果目标库尚未处于mount或open状态的话,将其加载到mount或open状态。 F:/oracle> set oracle_sid=jssweb F:/oracle> sqlplus "/ as sysdba" SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 10月 19 13:11:22 2007 Copyright (c) 1982, 2005, Oracle. All rights reserved. 已连接到空闲例程。 SQL> startup ORACLE 例程已经启动。 Total System Global Area 113246208 bytes Fixed Size 1247564 bytes Variable Size 83887796 bytes Database Buffers 20971520 bytes Redo Buffers 7139328 bytes 数据库装载完毕。 数据库已经打开。 SQL> 六、 确认拥有必备的备份(Make Sure You Have the Necessary Backups and Archived Redo Logs) 检查备份,没备份就没法恢复,而恢复又是duplicate的主要工作。So...........What are you waiting for? Just CheckCheckCheck!!! 七、 分配辅助通道(Allocate Auxiliary Channels if Automatic Channels Are Not Configured) 首先 运行rman连接到目标数据库和辅助实例 ( 如果有catalog的话,可以同时指定catalog ) 。如果辅助实例是通过客户端初始化参数文件启动的话,该文件在运行rman的客户端也必须存在。 F:/oracle>set oracle_sid=jssweb ### 目标数据库使用操作系统认证,所以首先设置SID F:/oracle>rman target / auxiliary sys/verysafe:)@jssdup 恢复管理器: Release 10.2.0.1.0 - Production on 星期五 10月 19 15:03:10 2007 Copyright (c) 1982, 2005, Oracle. All rights reserved. 连接到目标数据库: JSSWEB (DBID=3402005373) 已连接到辅助数据库: JSSDUP (未装载) RMAN> 辅助实例的事儿基本上就完了,最后一步是分配通道。如果你没有设置自动分配通道的话,那么在运行duplicate命令之前,至少要手工指定一个通道。通道是在RMAN的RUN块中指定,如下例: RUN { # 手工分配通道类型为sbt: ALLOCATE AUXILIARY CHANNEL ch1 DEVICE TYPE sbt; # 手工分配通道类型为disk # 通道名为自定义 ALLOCATE AUXILIARY CHANNEL aux1 DEVICE TYPE DISK; ALLOCATE AUXILIARY CHANNEL aux2 DEVICE TYPE DISK; ALLOCATE AUXILIARY CHANNEL aux3 DEVICE TYPE DISK; . . . DUPLICATE TARGET DATABASE TO jssdup; } 如果备份文件保存在磁盘上,分配的通道越多则速度越快,如果备份文件在磁带上,最少指定设备数量个通道。 |
相关文章推荐
- 11g 使用rman duplicate复制数据库,创建辅助实例
- Duplicate复制数据库之创建辅助实例
- Duplicate复制数据库之创建辅助实例
- RMAN创建辅助实例(副本数据库) - 不同环境下的复制流程
- RMAN高级应用之Duplicate复制数据库(2)辅助实例
- Duplicate复制数据库并创建物理StandBy(spfile+不同实例名)
- Duplicate复制数据库并创建物理StandBy(spfile+不同实例名+不同路径)
- Duplicate复制数据库并创建物理StandBy(pfile版本)
- 用rman创建辅助数据库duplicate
- RMAN创建辅助实例(副本数据库)
- Duplicate复制数据库并创建物理StandBy(spfile版本)
- Duplicate复制数据库并创建物理StandBy(pfile版本)
- 复制图层使用实例-创建一个loading效果
- 本地创建Duplicate数据库
- 创建ASM实例及ASM数据库(转)
- Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库
- 【学习笔记】AWS体验之创建RDS实例/创建数据库支持中文编码
- Oracle 12c R2 单实例数据库创建 和 开机自启
- Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库
- postgresql多实例创建与Slony-I复制配置