windows环境DataGuard配置.docx

上传人:b****5 文档编号:5770771 上传时间:2023-01-01 格式:DOCX 页数:11 大小:43.57KB
下载 相关 举报
windows环境DataGuard配置.docx_第1页
第1页 / 共11页
windows环境DataGuard配置.docx_第2页
第2页 / 共11页
windows环境DataGuard配置.docx_第3页
第3页 / 共11页
windows环境DataGuard配置.docx_第4页
第4页 / 共11页
windows环境DataGuard配置.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

windows环境DataGuard配置.docx

《windows环境DataGuard配置.docx》由会员分享,可在线阅读,更多相关《windows环境DataGuard配置.docx(11页珍藏版)》请在冰豆网上搜索。

windows环境DataGuard配置.docx

windows环境DataGuard配置

1.DataGuard配置

主机:

192.168.0.7(primary)

备机:

192.168.0.8(standby)

配置条件:

分别在primary、standby上安装数据库,并自动创建实例;安装路径、数据库实例名(citizen)和密码都设置成一样

特别注意:

文件夹权限必须与administartor一致

1.1.Primary主机操作

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

SQL>sqlplus"/assysdba"

SQL>alterdatabaseforcelogging;

2、设置主数据库为归档模式,并以mount 启动数据库

SQL>archiveloglist

SQL>shutdownimmediate

SQL>startupmount

SQL>alterdatabasearchivelog;

SQL>archiveloglist

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

SQL>select*fromv$logfile; 

再添加:

alterdatabaseaddstandbylogfilegroup4('D:

\app\oradata\orcl\redo04.log')size50m;

alterdatabaseaddstandbylogfilegroup5('D:

\app\oradata\orcl\redo05.log')size50m;

alterdatabaseaddstandbylogfilegroup6('D:

\app\oradata\orcl\redo06.log')size50m;

alterdatabaseaddstandbylogfilegroup7('D:

\app\oradata\orcl\redo07.log')size50m;

路径与原来的日志路径一样

 

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

SQL>Createpfilefromspfile; 

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

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

listener.ora配置如下:

SID_LIST_LISTENER中添加:

红色添加

(SID_DESC=

(GLOBAL_DBNAME=citizen)

(ORACLE_HOME=D:

\oracle\product\10.2.0\db_1)

(SID_NAME=citizen)

LISTENER=

(DESCRIPTION_LIST=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))

(ADDRESS=(PROTOCOL=TCP)(HOST=WIN-RKCE8P1N4VV)(PORT=1521))

此处HOST最好使用主机名

tnsnames.ora配置如下:

添加:

primary=

(DESCRIPTION=

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

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAME=citizen)

standby=

(DESCRIPTION=

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

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAME=citizen)

监听配置完后,重启监听后,需要时间久一点primary的服务才能启动起来。

特别注意,需要使用下面pfile启动,primary的服务才正式启动

6、在initcitizen.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:

\app\flash_recovery_area\orcl\ARCHIVELOGVALID_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'

 

关闭数据库shutdownimmediate,再用initcitizen.ora重启

SQL>startuppfile='D:

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

7、用Rman备份,不用停机

$rmantarget/

RMAN>backupfullformat'D:

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

RMAN>sql'altersystemarchivelogcurrent';

RMAN>BackupArchiveLogallformat='D:

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

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

同样的目录(D盘),在standby进行rman恢复即可

8、启动主数据库 

SQL>startup

1.2.Standby备机操作

1、以mount 启动备库,添加"备用联机日志文件"  

SQL>sqlplus"/assysdba"

SQL>shutdownimmediate

SQL>startupmount

先查看日志文件位置:

SQL>select*fromv$logfile;

再添加:

alterdatabaseaddstandbylogfilegroup4('D:

\app\oradata\orcl\citizen\redo04.log')size50m;

alterdatabaseaddstandbylogfilegroup5('D:

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

alterdatabaseaddstandbylogfilegroup6('D:

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

alterdatabaseaddstandbylogfilegroup7('D:

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

2、在备库创建监听和配置tnsnams.ora (同主库)

3、测试主备之间网络连通 测试非常重要

Primary:

C:

>lsnrctlstart

C:

>tnspingstandby

Standby:

C:

>lsnrctlstart

C:

>tnspingprimary

再主库中测试

Tnspingprimary/tnsping19.130.218.32/primary

Tnspingstandby/tnsping19.130.218.30/standby

备库

Tnspingstandby/tnsping19.130.218.30/standby

Tnspingprimary/tnsping19.130.218.32/primary

4、

复制主库的参数文件到备库中,编辑$ORACLE_HOME/database目录下的initcitizen.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'

以及密码文件"D:

\app\product\11.2.0\dbhome_1\database\PWDorcl.ora"备份到相同路径

 

5、启动备用数据库开始把主库复制到备库中

SQL>sqlplus"/assysdba"

SQL>startupnomountpfile='D:

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

重启主、备库监听,用Rman还原数据库

$rmantarget sys/adminprimary auxiliary/

RMAN>duplicatetargetdatabaseforstandbydorecoversenofilenamecheck;

duplicatetargetdatabaseforstandbynofilenamecheck;

SQL>alterdatabasemountstandbydatabase; --该语句如果报错可忽略

SQL>alterdatabaserecovermanagedstandbydatabasedisconnectfromsession; 

这里插入一下:

如果服务器或者数据库需要重启,在重启之后

主库:

SQL>sqlplus"/assysdba"

SQL>startuppfile='D:

\app\product\11.2.0\dbhome_1\database\INITorcl.ORA';

Startup后面没有添加任何参数就直接打开到open状态

备库:

SQL>sqlplus"/assysdba"

SQL>startupnomountpfile='D:

\app\product\11.2.0\dbhome_1\database\INITorcl.ORA';

SQL>alter database mount standby database;

SQL>alterdatabaserecovermanagedstandbydatabasecancel;--该语句如果报错,可忽略

SQL>alter database recover managed standby database disconnect from session;

备库手动应用归档日志

 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

备库只能开启到mont(挂载)的状态,如果启动到open状态,备库无法应用归档日志。

如果想查看同步后的表:

SQL>alterdatabaserecovermanagedstandbydatabasecancel;--

SQL>alterdatabaseopenreadonly

查看完之后,需要切换回到session模式才能继续同步并且应用归档日志

SQL>alter database recover managed standby database disconnect from session;

 

查看归档日志情况

SELECTREGISTRAR,CREATOR,THREAD#,SEQUENCE#,FIRST_CHANGE#,NEXT_CHANGE#FROMV$ARCHIVED_LOG;查看归档日志的同步情况

D:

\app\diag\rdbms\standby\orcl\trace查看oracle的操作日志

 

1.3.测试 

注意Data Guard 启动顺序:

●启动顺序:

先standby,后primary;

●关闭顺序:

先primary后standby;

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

SQL>startup nomount;

SQL>alter database mount standby database;

SQL>alterdatabaserecovermanagedstandbydatabasecancel;--该语句如果报错,可忽略

SQL>alter database recover managed standby database disconnect from session;

#如果有需要应用的日志并想手工应用,可以运行如下命令 

SQL>recover automatic standby database;

2、在主库启动实例:

SQL>startup;

3、在主库验证日志:

SQL>alter system switch logfile;主库主动同步

SQL>select max(sequence#) from v$archived_log;

4、在备库检查日志是否和主库一致

SQL>select max(sequence#) from v$archived_log;

注:

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

 

1.4.备库standby和readonly切换

1、主库创建一个表,用于备库打开时验证数据

SQL>createtabletest02asselect*fromv$parameter;

SQL>commit;

SQL>altersystemswitchlogfile;

2、将备库启动到readonly状态

1)如果standbydb处于mount状态,则可以通过下面的命令启动到read-only状态

SQL>selectopen_mode,database_rolefromv$database;

OPEN_MODE DATABASE_ROLE

-------[oraclestandbydb~]$sqlplus/assysdba

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

MOUNTED PHYSICALSTANDBY

SQL>alterdatabaserecovermanagedstandbydatabasecancel;

SQL>alterdatabaseopen;

2)如果standbydb数据库处于关闭状态,则执行下面的命令启动到read-only状态

SQL>startup

3、切换回standby状态.

断开所有,执行以下语句

SQL>alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;

SQL>selectopen_mode,database_rolefromv$database;

OPEN_MODE DATABASE_ROLE

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

MOUNTED PHYSICALSTANDBY

注:

在standbydb打开的过程中,主库的日志文件还是传递过来,只不过不做日志的应用。

所以standbydb打开的时间越长,以后做日志应用的时间就越长,如果主库故障,则启用备库到正常状态的时间就越长,这是需要您来权衡的。

注:

如果切换后发现日志不能同步,重新切换一下即可

1.5.主/备库切换

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

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

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

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

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

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

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

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

1、主库切换成备库

1)查看switchover状态

SQL>SELECTSWITCHOVER_STATUSFROMV$DATABASE; 

如果返回tostandby 

SQL>ALTERDATABASECOMMITTOSWITCHOVERTOPHYSICALSTANDBY; 

否则

SQL>Alterdatabasecommittoswitchovertophysicalstandbywithsessionshutdown; 

2)启动到mount和应用日志状态 

SQL>shutdownimmediate

SQL>startupnomount

SQL>alterdatabasemountstandbydatabase;

SQL>alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;

查看数据库模式 

SQL>selectdest_name,status,database_mode,recovery_mode,protection_modefromv$archive_dest_status; 

SQL>selectstatus,database_modefromv$archive_dest_status; 

2、备库切换成主库

1)查看switchover状态 

SQL>selectswitchover_statusfromv$database;

如果返回TOPRIMARY

SQL>alterdatabasecommittoswitchovertoprimary;

否则

SQL>alterdatabasecommittoswitchovertoprimarywithsessionshutdown

启动数据库

SQL>shutdownimmediate

SQL>startup

SQL>altersystemswitchlogfile;

SQL>select max(sequence#) from v$archived_log;

2)查看数据库模式 

SQL>selectdest_name,status,database_mode,recovery_mode,protection_modefromv$archive_dest_status; 

SQL>selectstatus,database_modefromv$archive_dest_status; 

注:

如果做了switchover,主库参数设置成以下方式,会触发ora-16009错误,按以下操作即可:

Alertsystemsetlog_archive_dest_2=’service=primary DB_UNIQUE_NAME=citizen’scope=spfile; 

1.6.切换保护模式

1、在primary上操作

1)首先查看当前的保护模式

SQL>select protection_mode,protection_level from v$database;

2)修改初始化参数

SQL>altersystemsetlog_archive_dest_2='SERVICE=standbyOPTIONALLGWRSYNCAFFIRMVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=standby';

3)重启数据库并设置新的数据保护模式

SQL>shutdownimmediate

SQL>startupmount

SQL>alterdatabasesetstandbydatabasetomaximizeavailability;

SQL>alterdatabaseopen;

SQL>selectprotection_mode,protection_levelfromv$database;

提示:

maximize后可跟{PROTECTION|AVAILABILITY|PERFORMANCE},分别对应最大保护,最高可用性及最高性能。

2、在standby上操作

1)修改standby初始化参数设置(主要考虑角色切换,如果只测试的话本步可跳过)

SQL>altersystemsetlog_archive_dest_2='SERVICE=primaryOPTIONALLGWRSYNCAFFIRMVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=primary';

2)查看当前的保护模式

SQL>selectinstance_namefromv$instance;

INSTANCE_NAME

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

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

当前位置:首页 > 幼儿教育 > 育儿知识

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

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