Oracle 10G windows 平台 DataGuard 实例.docx

上传人:b****7 文档编号:11163193 上传时间:2023-02-25 格式:DOCX 页数:21 大小:21.08KB
下载 相关 举报
Oracle 10G windows 平台 DataGuard 实例.docx_第1页
第1页 / 共21页
Oracle 10G windows 平台 DataGuard 实例.docx_第2页
第2页 / 共21页
Oracle 10G windows 平台 DataGuard 实例.docx_第3页
第3页 / 共21页
Oracle 10G windows 平台 DataGuard 实例.docx_第4页
第4页 / 共21页
Oracle 10G windows 平台 DataGuard 实例.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

Oracle 10G windows 平台 DataGuard 实例.docx

《Oracle 10G windows 平台 DataGuard 实例.docx》由会员分享,可在线阅读,更多相关《Oracle 10G windows 平台 DataGuard 实例.docx(21页珍藏版)》请在冰豆网上搜索。

Oracle 10G windows 平台 DataGuard 实例.docx

Oracle10Gwindows平台DataGuard实例

Oracle10Gwindows平台DataGuard

serverA:

10.85.10.44SID=orcl

targetserverB:

10.85.10.43

oracleversion:

10.2.0.1

OSplatform:

windowsXP

Primary设置:

1.设置主数据库为forcelogging模式

SQL>sqlplus"/assysdba"

SQL>alterdatabaseforcelogging;

2.设置主数据库为归档模式

SQL>archiveloglist

SQL>shutdownimmediate

SQL>startupmount

SQL>alterdatabasearchivelog;

SQL>archiveloglist

3.添加"备用联机日志文件"

先查看日志文件位置:

SQL>select*fromv$logfile;

在添加:

SQL>alterdatabaseaddstandbylogfilegroup4('D:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo04.log')size50m;

SQL>alterdatabaseaddstandbylogfilegroup5('D:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo05.log')size50m;

SQL>alterdatabaseaddstandbylogfilegroup6('D:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo06.log')size50m;

SQL>alterdatabaseaddstandbylogfilegroup7('D:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo07.log')size50m;

4.创建主库的初始化参数给备库用

SQL>Createpfilefromspfile;

产生的文件名为initorcl.ora存放目录默认放在$ORACLE_HOME/database下

5.在主库创建备库的控制文件和密码文件

SQL>Alterdatabasecreatestandbycontrolfileas'D:

\oracle\product\10.2.0\control01.ctl';

D:

>orapwdfile=D:

\PWDorcl.orapassword=adminentries=5;

缺省情况下,win下口令文件的格式是pwdsid.ora,unix下的格式是orapwSID(大小写敏感)

6.在主库创建监听和配置tnsnams.ora

listener.ora配置如下:

#listener.oraNetworkConfigurationFile:

D:

\oracle\product\10.2.0\db_1\network\admin\listener.ora

#GeneratedbyOracleconfigurationtools.

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(SID_NAME=PLSExtProc)

(ORACLE_HOME=D:

\oracle\product\10.2.0\db_1)

(PROGRAM=extproc)

(SID_DESC=

(GLOBAL_DBNAME=orcl)

(ORACLE_HOME=D:

\oracle\product\10.2.0\db_1)

(SID_NAME=orcl)

LISTENER=

(DESCRIPTION_LIST=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))

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

tnsnames.ora配置如下:

#tnsnames.oraNetworkConfigurationFile:

D:

\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora

#GeneratedbyOracleconfigurationtools.

primary=

(DESCRIPTION=

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

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAME=orcl)

standby=

(DESCRIPTION=

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

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAME=orcl)

EXTPROC_CONNECTION_DATA=

(DESCRIPTION=

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))

(CONNECT_DATA=

(SID=PLSExtProc)

(PRESENTATION=RO)

7.在initorcl.ora添加以下内容:

*.log_archive_format='%T%S%r.ARC'

*.DB_UNIQUE_NAME='primary'

*.log_archive_config='DG_CONFIG=(primary,standby)'

*.log_archive_dest_1='location=D:

\oracle\product\10.2.0\oradata\archVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=primary'

*.log_archive_dest_2='SERVICE=standbyarchASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=standby'

*.STANDBY_FILE_MANAGEMENT=AUTO

*.LOG_ARCHIVE_DEST_STATE_1=ENABLE

*.LOG_ARCHIVE_DEST_STATE_2=ENABLE

*.FAL_SERVER='standby'

*.FAL_CLIENT='primary'

关闭数据库,在用initorcl.ora重启,并创建spfile文件

SQL>startuppfile='$ORACLE_HOME/database/initorcl.ora'

SQL>createspfilefrompfile='$ORACLE_HOME/database/initorcl.ora'

8.

A.拷贝数据文件,参数文件,控制文件,密码文件到备库上

initorcl.ora参数文件,PWDorcl.ora密码文件考到$ORACLE_HOME/database下的,

controlbak.ctl考到$ORACLE_base/oradata/orcl/下,并分别重命名为control01.ctl,control01.ctl,control01.ctl

数据文件考到$ORACLE_base/oradata/orcl/下

B.用Rman拷贝,不用停机

$rmantarget/

RMAN>backupfullformat'D:

/FULL_%d_%T_%s.bak'databaseincludecurrentcontrolfileforstandby;

RMAN>sql'altersystemarchivelogcurrent';

RMAN>BackupArchiveLogallformat='D:

/arch_%d_%T_%s.bak';

备份完后将备份文件拷到standby上同样的目录,强调:

同样的目录,在standby进行rman恢复即可

9.启动主数据库

SQL>startup

---------------------------------------------------------------------

Standy操作:

1.用oradim工具创建备库orcl实例

oradim.exe-new-sidorcl-startmodem

oradim.exe-edit-sidorcl-startmodea

2.创建备库存放数据文件和后台跟踪目录

$ORACLE_BASE\ORADATA\ORCL

$ORACLE_BASE\admin\orcl

$ORACLE_BASE\admin\orcl\adump

$ORACLE_BASE\admin\orcl\bdump

$ORACLE_BASE\admin\orcl\cdump

$ORACLE_BASE\admin\orcl\dpdump

$ORACLE_BASE\admin\orcl\pfile

$ORACLE_BASE\admin\orcl\udump

$ORACLE_BASE\admin\orcl\

3.添加"备用联机日志文件"

SQL>startupmount

先查看日志文件位置:

SQL>select*fromv$logfile;

在添加:

SQL>alterdatabaseaddstandbylogfilegroup4('D:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo04.log')size50m;

SQL>alterdatabaseaddstandbylogfilegroup5('D:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo05.log')size50m;

SQL>alterdatabaseaddstandbylogfilegroup6('D:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo06.log')size50m;

SQL>alterdatabaseaddstandbylogfilegroup7('D:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo07.log')size50m;

4.在备库创建监听和配置tnsnams.ora

listener.ora配置如下:

#listener.oraNetworkConfigurationFile:

D:

\oracle\product\10.2.0\db_1\network\admin\listener.ora

#GeneratedbyOracleconfigurationtools.

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(SID_NAME=PLSExtProc)

(ORACLE_HOME=D:

\oracle\product\10.2.0\db_1)

(PROGRAM=extproc)

(SID_DESC=

(GLOBAL_DBNAME=orcl)

(ORACLE_HOME=D:

\oracle\product\10.2.0\db_1)

(SID_NAME=orcl)

LISTENER=

(DESCRIPTION_LIST=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))

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

tnsnames.ora配置如下:

#tnsnames.oraNetworkConfigurationFile:

D:

\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora

#GeneratedbyOracleconfigurationtools.

primary=

(DESCRIPTION=

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

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAME=orcl)

standby=

(DESCRIPTION=

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

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAME=orcl)

EXTPROC_CONNECTION_DATA=

(DESCRIPTION=

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))

(CONNECT_DATA=

(SID=PLSExtProc)

(PRESENTATION=RO)

5.测试主备之间网络连通

primary:

C:

>lsnrctlstart

C:

>tnspingstandby

standby

C:

>lsnrctlstart

C:

>tnspingprimary

6.配置备库初始化参数

编辑$ORACLE_HOME/database目录下的initorcl.ora添加以下内容

*.log_archive_format='%T%S%r.ARC'

*.DB_UNIQUE_NAME='standby'

*.log_archive_config='DG_CONFIG=(primary,standby)'

*.log_archive_dest_1='location=D:

\oracle\product\10.2.0\oradata\archVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=standby'

*.log_archive_dest_2='SERVICE=primaryarchASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=primary'

*.STANDBY_FILE_MANAGEMENT=AUTO

*.LOG_ARCHIVE_DEST_STATE_1=ENABLE

*.LOG_ARCHIVE_DEST_STATE_2=ENABLE

*.FAL_SERVER='primary'

*.FAL_CLIENT='standby'

7.启动备用数据库

C:

>setORACLE_SID=orcl

SQL>sqlplus"/assysdba"

SQL>startupnomountpfile='D:

\oracle\product\10.2.0\db_1\database\initorcl.ora';

SQL>createspfilefrompfile='D:

\oracle\product\10.2.0\db_1\database\initorcl.ora';

若采用Rman备份的,则在此standby端进行Rman还原数据库:

$rmantargetsys/admin@primaryauxiliary/

RMAN>duplicatetargetdatabaseforstandbydorecovernofilenamecheck;

SQL>alterdatabasemountstandbydatabase;

SQL>alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;

---------------------------------------------------------------------------

测试

注意DataGuard启动顺序:

启动顺序:

先standby,后primary;

关闭顺序:

先primary后standby;

在备库将实例启动到mount状态:

SQL>startupnomount;

SQL>alterdatabasemountstandbydatabase;

SQL>ALTERDATABASERECOVERMANAGEDSTANDBYDATABASECANCEL;

SQL>alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;

在备库启动监听:

$lsnrctlstart

在主库启动实例:

SQL>startup;

在主库启动监听:

$lsnrctlstart

在主库验证归档目录是否有效:

SQL>SELECTSTATUS,DESTINATION,ERRORFROMV$ARCHIVE_DEST;

如果有错误,要排查原因。

SQL>altersystemswitchlogfile;

SQL>selectmax(sequence#)fromv$archived_log;

MAX(SEQUENCE#)

--------------

70

主备查询结果一致,DataGuard搭建结束。

1.测试主库产生的归档日志是否能正常传送到归档日志

主库进行日志切换:

SQL>Altersystemswitchlogfile;

然后分别查看主库和备库的D:

\arch目录下是否产生了同样的归档日志

文件。

selectmax(sequence#)fromv$archived_log;

selectmax(sequence#)fromv$log_history;

selectgroup#,sequence#,archived,statusfromv$log;

selectname,sequence#,appliedfromv$archived_log;

selectsequence#,appliedfromv$archived_log;

若不同步,

1.看log日志,archive是否有丢失

2.可以在备库坐如下操作:

alterdatabaserecovermanagedstandbydatabasecancel;

alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;

-----------------------------------------------------------------------

主备库切换

1.switchover

一般SWITCHOVER切换都是计划中的切换,特点是在切换后,不会丢失任何的数据,而且这个过程是可逆的,整个DATAGUARD环境不会被破坏,原来DATAGUARD环境中的所有物理和逻辑STANDBY都可以继续工作。

在进行DATAGUARD的物理STANDBY切换前需要注意:

确认主库和从库间网络连接通畅;

确认没有活动的会话连接在数据库中;

PRIMARY数据库处于打开的状态,STANDBY数据库处于MOUNT状态;

确保STANDBY数据库处于ARCHIVELOG模式;

如果设置了REDO应用的延迟,那么将这个设置去掉;

确保配置了主库和从库的初始化参数,使得切换完成后,DATAGUARD机制可以顺利的运行。

主库:

1.查看switchover状态

SQL>SELECTSWITCHOVER_STATUSFROMV$DATABASE;

tostandby

附:

A:

switchover_status出现sessionactive/notallowed

当出现sessionactive的时候表示还有活动的session,则运行

Alterdatabasecommittoswitchovertophysicalstandbywithsessionshutdown;

当出现notallowed时,在官方文档说转换会不成功,但是我测试的时候成功了,如果大家在测试不成功的时候再和我说,让我看看在什么情况下会不成功。

B.ora-01153:

anincompatiblemediarecoveryisactive

运行下面代码

Alterdatabaserecovermanagedstandbydatabasefinish;

或者Alterdatabaserecovermanagedstandbydatabasefinishforce;

Alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;

2切换成备库

SQL>Alterdatabasecommittoswitchovertophysicalstandbywithsessionshutdown;

SQL>ALTERDATABASECOMMITTOSWITCHOVERTOPHYSICALSTANDBY;

Databasealtered.

3启动到mount和应用日志状态

SQL>SHUTDOWNIMMEDIATE

SQL>startupnomount;

SQL>alterdataba

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

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1