用RMAN创建Standby Database

用RMAN创建Standby Database[@more@]

数据库软件必须为企业版,主数据库和备用数据库软件版本相同(最好打了相同补丁)

一.主数据库用rman创建数据库备份
在进行操作前先备用原来的备用的文件和归档日志文件,以免复制的内容太多。
1.备份和删除以前rman备份的文件
把原来用rman备用的文件地址备份一下,建议修改一下文件目录名字,然后再创建一个目录。
同样对归档日志文件进行相同的操作。

1.1 sqlplus登陆修改参数
检查数据库是否为归档模式,如果为非归档模式请先修改为归档模式,请参考以前的文档
SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 D:oraclearch01
最早的概要日志序列 217
下一个存档日志序列 219
当前日志序列 219
SQL>
查看归档相关的参数,这里主要参看的是归档日志文件目前是用的是log_archive_dest参数
控制还是用的log_archive_dest_n参数控制,Physical Standby Database中需要修改为用参数
log_archive_dest_n控制,
SQL> show parameter log_archive_dest

NAME TYPE VALUE
------------------------------------ ----------- -----------------------
log_archive_dest string D:oraclearch01(目前次数据库用的参数设置)
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>
清除参数log_archive_dest的设置
SQL> ALTER SYSTEM SET log_archive_dest='' SCOPE=BOTH;

系统已更改。
修改为参数LOG_ARCHIVE_DEST_1控制归档日志文件存放路径
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=D:oraclearch01arch MANDATORY' SCOPE=BOTH;
SQL> create pfile from spfile;
文件已创建。

修改主服务器tnsnames.ora文件,增加指向备用数据库的TNS


1.2 rman登陆
C:>set oracle_sid=orcl

C:>rman target /

恢复管理器: 版本9.2.0.7.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

连接到目标数据库: ORCL (DBID=1104969440)

RMAN> crosscheck backup;(检查已经移走的文件,因为所有的已经移走,此检查会使所有的都标记为过期)

RMAN> delete expired backup;(删除过期的备份)yes确认


数据库进行一次日志切换
RMAN> sql 'alter system switch logfile';

sql statement: alter system switch logfile

备份主数据库
RMAN> backup database format 'W:backuporabackOACL_%U';
注意W:backuporaback目录可以是主数据库或者备用数据库的一个映射共享目录,但是要求从主数据库和备用数据库
W:backuporaback目录下都能够访问到产生的备份文件(有读写权限)
()
RMAN>
RMAN> backup current controlfile for standby format='W:backuporabackstdby_cfile.%U';
(为备用数据库创建需要的控制文件-同享的相同目录下)
启动 backup 于 13-1月 -07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括备用控制文件
通道 ORA_DISK_1: 正在启动段 1 于 13-1月 -07
通道 ORA_DISK_1: 已完成段 1 于 13-1月 -07
段 handle=E:ORABAKORCLSTANDBYSTDBY_CFILE.0AI7C06C_1_1 comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 13-1月 -07

启动 Control File and SPFILE Autobackup 于 13-1月 -07
段 handle=E:ORABAKORCLC-1104969440-20070113-00 comment=NONE
完成 Control File and SPFILE Autobackup 于 13-1月 -07


1.3 sqlplus登陆
SQL> alter system switch logfile;

系统已更改。

SQL> alter system switch logfile;

系统已更改。

SQL> select sequence# from v$archived_log;

SEQUENCE#
----------
1
2
3
4
5
6 (记住最后一个日志序列号)

已选择6行。

二.备用数据库服务器操作:

2.1 备用服务器创建和主服务器相同的数据库目录结构

2.2 修改参数
从主服务器上复制参数文件(initorcl.ora),listener.ora,tnsnames.ora和刚产生的归档日志文件到备用数据库响应目录
修改initorcl.ora文件,增加:
*.standby_file_management=AUTO
*.remote_archive_enable=TRUE
*.standby_archive_dest='D:oracleoradatastandby'(此目录为归档日志文件传到备用数据库存放目录)

修改
listener.ora 中的IP地址为本机IP

2.3 创建相关的后台服务

为数据库orcl创建后台服务
C:> oradim -NEW -SID orcl -STARTMODE auto

创建监听服务
C:>lsnrctl start

2.4 启动备用数据库到nomount状态

C:>set oracle_sid=orcl

C:>sqlplus /nolog

SQL*Plus: Release 9.2.0.7.0 - Production on 星期二 10月 31 01:56:21 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn / as sysdba;(用sysdba连接)

SQL> STARTUP NOMOUNT PFILE='c:/oracle/ora92/database/initorcl.ora'; (启动到nomount状态)
ORACLE 例程已经启动。

Total System Global Area 370221140 bytes
Fixed Size 454740 bytes
Variable Size 343932928 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes

2.5 rman执行创建备用数据库命令

C:>rman

恢复管理器: 版本9.2.0.7.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

RMAN>CONNECT TARGET sys/fangqikai@orcl(指向主数据库的tns)
RMAN>CONNECT auxiliary sys/fangqikai@orcl_aux(指向备用数据库的tns)
RUN
{
SET UNTIL SEQUENCE = 6 THREAD =1;
DUPLICATE TARGET DATABASE FOR STANDBY NOFILENAMECHECK DORECOVER;
}
(其中SEQUENCE = 6 为 128行查询的最近的日志序列号)

待成功完成后
sqlplus 执行

SQL>
SQL>
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;(设置数据库为后台恢复)


三.主数据库执行

3.1
SQL> ALTER DATABASE FORCE LOGGING;

数据库已更改。

3.2 启动日志传输服务
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=orcl_aux' SCOPE=BOTH;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH;
SQL> create pfile from spfile;
文件已创建。

四.测试是否成功:

4.1 主数据库执行:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;(主数据库上手工日志切换生成归档日志文件)

系统已更改。
备用数据库查询日志文件是否传输过来:
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

SEQUENCE# FIRST_TIME NEXT_TIME
---------- ---------- ----------
219 30-10? -06 31-10? -06(传输过来一个文件,就是刚才切换归档的日志文件)

4.2 主数据库执行:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;(再生成一个归档日志文件)

备用数据库查询:
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUEN
CE#;

SEQUENCE# FIRST_TIME NEXT_TIME
---------- ---------- ----------
219 30-10? -06 31-10? -06
220 31-10? -06 31-10? -06
(目前就已经传输过来了两个日志文件)

4.3 查询日志文件的应用情况(备用数据库操作)
SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

SEQUENCE# APP
---------- ---
219 YES
220 YES
其中SEQUENCE#就是刚才船过来的两个日志文件,APP表示本地是否已经应用到数据库YES表示已经应用,NO表示还没有应用
SQL>

如果这修结果是这样的话,那就已经OK了!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/178357/viewspace-896210/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/178357/viewspace-896210/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值