Oracledataguard的3种创建方法.docx

上传人:b****3 文档编号:11672605 上传时间:2023-06-02 格式:DOCX 页数:12 大小:19.58KB
下载 相关 举报
Oracledataguard的3种创建方法.docx_第1页
第1页 / 共12页
Oracledataguard的3种创建方法.docx_第2页
第2页 / 共12页
Oracledataguard的3种创建方法.docx_第3页
第3页 / 共12页
Oracledataguard的3种创建方法.docx_第4页
第4页 / 共12页
Oracledataguard的3种创建方法.docx_第5页
第5页 / 共12页
Oracledataguard的3种创建方法.docx_第6页
第6页 / 共12页
Oracledataguard的3种创建方法.docx_第7页
第7页 / 共12页
Oracledataguard的3种创建方法.docx_第8页
第8页 / 共12页
Oracledataguard的3种创建方法.docx_第9页
第9页 / 共12页
Oracledataguard的3种创建方法.docx_第10页
第10页 / 共12页
Oracledataguard的3种创建方法.docx_第11页
第11页 / 共12页
Oracledataguard的3种创建方法.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Oracledataguard的3种创建方法.docx

《Oracledataguard的3种创建方法.docx》由会员分享,可在线阅读,更多相关《Oracledataguard的3种创建方法.docx(12页珍藏版)》请在冰点文库上搜索。

Oracledataguard的3种创建方法.docx

Oracledataguard的3种创建方法

OracleDataguard的3种创建方法

一)总介:

1.冷备法

优点:

操作比较简单。

缺点:

操作过程需要停止主库服务。

简介:

停止主库后,直接copy主机的所有数据文件,控制文件,归档日志文件,参数文件(spfile)到备机的相同路径下,再启动主、备库,然后修改相关配置文件完成主备自动同步。

2.热备法

优点:

无需停止主库服务。

缺点:

操作比较复杂,操作过程对主库性能影响比较大。

简介:

在主库开启状态下把主库的数据文件一个一个热备出来,然后连同控制文件,归档日志文件,参数文件(spfile)等一起复制到备机相同路径下,再启动备库并执行recover,然后修改相关配置文件完成主备自动同步。

3.RMAN复制法

优点:

无需停止主库服务,操作过程对主库性能影响比较小。

缺点:

操作比较复杂。

简介:

在主库开启状态下运行rman,对主库进行全库备份,然后把备份集与参数文件(spfile)一起复制到备机,再启动备库到nomount状态后利用rman在备机上进行forstandby的duplicate,然后修改相关配置文件完成主备自动同步。

无论上述何种方法,在开始之前,都必须先确认主库已正常运行,备机的操作系统,磁盘分区,oracle版本都必须与主机完全一致,备机上的oracle需要已安装好但不用建库。

主、备机的网络都必须已联通,并能够在客户端使用putty或其他远程登陆工具通过ssh方式登陆(本文内所讲的“登陆”都是指:

使用putty通过ssh方式以oracle账号登陆到主机或者备机的linux系统)。

本文假设主机ip地址是192.168.0.1,备机ip地址是192.168.0.2,oracle的数据文件,控制文件,联机日志文件的存放路径统一为:

/opt/oracle/oradata/orcl/,归档日志的存放路径为:

/opt/oracle/oradata/orcl/archive/,ORACLE_BASE目录为:

/opt/oracle,ORACLE_HOME目录为:

/opt/oracle/product/9ir2,ORACLE_SID=orcl,分区/opt由于要存放oracle的所有文件与备份集,所以其容量要足够大。

确认主库是否开启了归档模式。

sqlplus‘/assysdba’

SQL>archiveloglist

DatabaselogmodeArchiveMode

AutomaticarchivalEnabled

若如上显示,则说明已开启了归档模式,那么从现在开始到最后dataguard建立完毕的整个过程,对主库都没有任何影响,即不会影响主库的正常运行。

如果与上面所示不同,则需要手工开启归档模式。

开启归档模式方法:

SQL>altersystemsetlog_archive_start=truescope=spfile;

SQL>shutdownimmediate;

SQL>startupmount;

SQL>alterdatabasearchivelog;

SQL>alterdatabaseopen;

 

二)方法一详细操作步骤:

(冷备法)

1.为备库创建控制文件

登陆主库后,运行:

sqlplus‘/assysdba’

SQL>alterdatabasecreatestandbycontrolfileas'/opt/oracle/control01.ctl';

SQL>exit

cpcontrol01.ctlcontrol02.ctl

cpcontrol01.ctlcontrol03.ctl

2.复制主库文件到备机 

1)先登陆备库,执行:

mkdir–p/opt/oracle/oradata/orcl

mkdir–p/opt/oracle/oradata/orcl/archive

mkdir–p/opt/oracle/admin/orcl/bdump

mkdir–p/opt/oracle/admin/orcl/cdump

mkdir–p/opt/oracle/admin/orcl/udump

2)然后登陆主库,运行:

sqlplus‘/assysdba’

SQL>shutdownimmediate;

SQL>exit

然后复制文件到备机的相同目录。

 

cd

scpcontrol0*.ctl192.168.0.2:

/opt/oracle/oradata/orcl/

然后需要输入oracle密码,后面的每次scp都一样需要输入此密码

cd/opt/oracle/oradata/orcl/

scp*.dbf192.168.0.2:

/opt/oracle/oradata/orcl/

cd/opt/oracle/oradata/orcl/archive/

scp*.dbf192.168.0.2:

/opt/oracle/oradata/orcl/archive/

3.配置备库

1)生成密码文件。

登陆备库后,执行:

cd$ORACLE_HOME/dbs

orapwdfile=orapworclpassword=xxxxxxentries=5

2)配置备机数据库的监听器。

登陆备库后,执行:

cd$ORACLE_HOME/network/admin

scp192.168.0.1:

/opt/oracle/product/9ir2/network/admin/listener.oralistener.ora

scp192.168.0.1:

/opt/oracle/product/9ir2/network/admin/tnsnames.oratnsnames.ora

修改listener.ora中的“HOST=”后面的内容为备机的IP地址,然后启动监听

lsnrctlstart

4.启动备库 

登陆备库后,执行:

 

sqlplus‘/assysdba’

SQL>startupnomount 

SQL>altersystemsetservice_names=standby;

SQL>altersystemsetfal_client=standby;

SQL>altersystemsetfal_server=orcl;

SQL>altersystemsetstandby_file_management=auto;

SQL>alterdatabasemountstandbydatabase;

建立3组standbyredolog:

SQL>alterdatabaseaddstandbylogfilegroup4

2'/opt/oracle/oradata/orcl/redo_stb01.log'size100m;

SQL>alterdatabaseaddstandbylogfilegroup5

2'/opt/oracle/oradata/orcl/redo_stb02.log'size100m;

SQL>alterdatabaseaddstandbylogfilegroup6

2'/opt/oracle/oradata/orcl/redo_stb03.log'size100m;

启动自动应用归档日志:

SQL>alterdatabaserecovermanagedstandbydatabasedisconnectfromsession; 

5.启动主库 

登陆主库后,执行:

 

sqlplus‘/assysdba’

SQL>startup 

建立3组standbyredolog:

SQL>alterdatabaseaddstandbylogfilegroup4

2'/opt/oracle/oradata/orcl/redo_stb01.log'size100m;

SQL>alterdatabaseaddstandbylogfilegroup5

2'/opt/oracle/oradata/orcl/redo_stb02.log'size100m;

SQL>alterdatabaseaddstandbylogfilegroup6

2'/opt/oracle/oradata/orcl/redo_stb03.log'size100m;

SQL>altersystemsetlog_archive_dest_2='service=standbylgwrreopen=60';

SQL>altersystemsetfal_server=standby;

SQL>altersystemsetfal_client=orcl;

 

三)方式二详细操作步骤:

(热备法)

由于方法二与方法一大部分相同,只有第2-2小点不同,这里只列出不同点:

登陆主库,热备表空间:

sqlplus‘/assysdba’

SQL>altertablespacesystembeginbackup;

SQL>!

cp/opt/oracle/oradata/orcl/system01.dbf/opt/oracle/system01.dbf

若system表空间有第2个数据文件system02.dbf,那么还需要:

SQL>!

cp/opt/oracle/oradata/orcl/system02.dbf/opt/oracle/system02.dbf

SQL>altertablespacesystemendbackup;

………………

其他的表空间都按上面方法进行热备

………………

SQL>alterdatabasecreatestandbycontrolfileas'/opt/oracle/control01.ctl';

SQL>exit

cpcontrol01.ctlcontrol02.ctl

cpcontrol01.ctlcontrol03.ctl

然后将备份出来的所有数据文件(注意不是原始数据文件)、控制文件等复制到备机上去

cd

scpcontrol0*.ctl192.168.0.2:

/opt/oracle/oradata/orcl/

scp*.dbf192.168.0.2:

/opt/oracle/oradata/orcl/

cd/opt/oracle/oradata/orcl/archive/

scp*.dbf192.168.0.2:

/opt/oracle/oradata/orcl/archive/

后面的步骤就与方法一都相同了。

四)方法三详细操作步骤:

(RMAN复制法)

1.利用RMAN备份主库

先确定可以运行rman命令:

rmantarget/nocatalog

RecoveryManager:

Release9.2.0.6.0-Production

Copyright(c)1995,2002,OracleCorporation.Allrightsreserved.

connectedtotargetdatabase:

ORC1(DBID=1236509999)

usingtargetdatabasecontrolfileinsteadofrecoverycatalog

RMAN>

出现上面所示,说明可以正常运行rman命令,否则,请检查环境变量,确保oracle安装目录被优先搜索。

如:

PATH=$ORACLE_HOME/bin:

$PATH

若在环境变量定义文件.bash_profile中的最后增加上面这一行,可以保证oracle的安装目录被优先搜索。

假如存放数据库备份集的路径是:

/opt/back

编辑(vi)一个空白的文本文件,所在路径及文件名为/opt/oracle/rmanstb,将下面红色代码加入到rmanstb中去:

run{

allocatechanneldev1typedisk;

backup

incrementallevel0

filesperset=1

format'/opt/back/dbbak_%s_%p_%t'

database;

backupformat'/opt/back/ctrlbak_%s_%p_%t'currentcontrolfileforstandby;

sql'altersystemarchivelogcurrent';

backupfilesperset=40

format'/opt/back/bakset/logbak_%s_%p_%t'

archivelogalldeleteinput;

releasechanneldev1;

}

然后运行下面的命令开始对主库进行rman备份:

rmantarget/nocatalogcmdfile/opt/oracle/rmanstbmsglog/opt/oracle/rmanstb.log

此时可以另外打开一个登录窗口,运行tail–f/opt/oracle/rmanstb.log

检查备份过程是否正常,确保备份正确完成。

2.备机环境准备

1)登陆备机后,从主机拷贝spfile文件到备机的相同路径下。

cd$ORACLE_HOME/dbs

scp192.168.0.1:

/opt/oracle/product/9ir2/dbs/spfileorcl.oraspfileorcl.ora

2)建立数据库密码文件。

cd$ORACLE_HOME/dbs

orapwdfile=orapworclpassword=xxxxxxentries=5

3)配置备机数据库的监听器。

cd$ORACLE_HOME/network/admin

scp192.168.0.1:

/opt/oracle/product/9ir2/network/admin/listener.oralistener.ora

scp192.168.0.1:

/opt/oracle/product/9ir2/network/admin/tnsnames.oratnsnames.ora

修改listener.ora中的“HOST=”后面的内容为备机的IP地址,然后启动监听

lsnrctlstart

4)建立数据文件,归档日志,控制文件以及各种系统日志文件的目录

mkdir–p/opt/oracle/oradata/orcl

mkdir–p/opt/oracle/oradata/orcl/archive

mkdir–p/opt/oracle/admin/orcl/bdump

mkdir–p/opt/oracle/admin/orcl/cdump

mkdir–p/opt/oracle/admin/orcl/udump

5)启动备库到nomount状态

sqlplus‘/assysdba’

SQL>startupnomount

SQL>altersystemsetservice_names=standby;

SQL>altersystemsetfal_client=standby;

SQL>altersystemsetfal_server=orcl;

SQL>altersystemsetstandby_file_management=auto;

6)将主机上的rman备份集拷贝到备机的相同路径下。

cd/opt/back/

scp192.168.0.1:

/opt/back/*bak*.

3.测试主机与备机之间通讯是否正常

1)编辑主机的tnsnames.ora,增加到备机数据库的连接串,将下面这段红色代码添加进去即可:

STANDBY=

(DESCRIPTION=

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521))

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAME=orcl)

然后测试与备机数据库通讯是否通畅:

sqlplus/nolog

SQL>connsys/xxxxxx@standbyassysdba

若能够连接,证明与备机数据库通讯正常。

2)登陆备机,测试与主机数据库通讯是否通畅:

sqlplus/nolog

SQL>connsys/xxxxxx@orclassysdba

若能够连接,证明与主库通讯正常。

4.在备机上生成dataguard

1)登陆备机,将主库上的归档日志拷贝过来,放置路径要与主库一致。

cd/opt/oracle/oradata/orcl/archive/

scp192.168.0.1:

/opt/oracle/oradata/orcl/archive/*.dbf.

2)在备机上使用rman从备份集duplicate出一个dataguard

rmantargetsys/xxxxxx@orclnocatalogauxiliarysys/xxxxxx@standby

RMAN>run

{

allocateauxiliarychanneldup1typedisk;

allocateauxiliarychanneldup2typedisk;

duplicatetargetdatabaseforstandbynofilenamecheckdorecover;

}

此过程花费时间会比较长,请注意观察是否有错误产生,若遇到错误请检查是否将命令写错,直到成功完成为止。

5.备机数据库的自动同步

1)分别在主机与备机的数据库中建立3组standbyredolog。

SQL>alterdatabaseaddstandbylogfilegroup4

2'/opt/oracle/oradata/orcl/redo_stb01.log'size100m;

SQL>alterdatabaseaddstandbylogfilegroup5

2'/opt/oracle/oradata/orcl/redo_stb02.log'size100m;

SQL>alterdatabaseaddstandbylogfilegroup6

2'/opt/oracle/oradata/orcl/redo_stb03.log'size100m;

2)登陆备机,将数据库置于自动同步状态。

SQL>recoverstandbydatabase;

检查所需要的归档日志是否是主库还未产生的,若不是,请从主机拷贝所需要的archivelog到备机,然后输入“auto”。

SQL>alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;

3)登陆主机,修改发送归档日志参数。

SQL>altersystemsetlog_archive_dest_2='service=standbylgwrreopen=60';

SQL>altersystemsetfal_server=standby;

SQL>altersystemsetfal_client=orcl;

 

附录:

1)如何启动备机数据库(Dataguard)

登陆备机,执行:

SQL>startupnomount;

SQL>alterdatabasemountstandbydatabase;

SQL>alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;

2)检查主机与备机的数据库是否同步。

分别登陆主机与备机,都执行下面这条SQL:

SQL>selectmax(sequence#)fromv$log_history;

若得到的数字相等,说明主机与备机的数据库已经同步。

3)测试主库的归档日志能否自动传送到备机。

登陆主库,进行手工归档:

SQL>altersystemarchivelogcurrent;

再次检查主机与备机的数据库是否同步,若依然保持同步,说明主库的归档日志能自动传送到备机。

到此,Dataguard就已建立成功!

但是别忘了,要定时清理备机上的归档日志,以免时间长了将磁盘撑爆,最好使用crontab来定时清理,可以参考如下的清理脚本:

find/opt/oracle/oradata/orcl/archive/*.dbf–cmin+60–execrm{}\;

4)激活备机数据库

当主机硬件或者操作系统故障导致数据库无法启动时,可激活Dataguard。

登陆备机,执行:

SQL>alterdatabaserecovermanagedstandbydatabasecancel;

SQL>alterdatabaseactivatephysicalstandbydatabaseskipstandbylogfile;

SQL>shutdownimmediate;

SQL>startup

然后修改监听(更改listener.ora中HOST=为原主库的服务IP)并重启之后,原来的备机现在就开始扮演主机的角色了。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2