windows环境DataGuard配置Word文档下载推荐.docx
《windows环境DataGuard配置Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《windows环境DataGuard配置Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
![windows环境DataGuard配置Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/30/13dfd865-24de-4f4f-87a3-8ace711f0a62/13dfd865-24de-4f4f-87a3-8ace711f0a621.gif)
D:
\app\oradata\orcl\redo04.log'
)size50m;
alterdatabaseaddstandbylogfilegroup5('
\app\oradata\orcl\redo05.log'
alterdatabaseaddstandbylogfilegroup6('
\app\oradata\orcl\redo06.log'
alterdatabaseaddstandbylogfilegroup7('
\app\oradata\orcl\redo07.log'
路径与原来的日志路径一样
4、创建主库的初始化参数给备库用
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=
(ADDRESS=(PROTOCOL=TCP)(HOST=19.128.249.51)(PORT=1521))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=citizen)
standby=
(ADDRESS=(PROTOCOL=TCP)(HOST=19.128.249.52)(PORT=1521))
监听配置完后,重启监听后,需要时间久一点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='
关闭数据库shutdownimmediate,再用initcitizen.ora重启
startuppfile='
\oracle\product\10.2.0\db_1\database\initcitizen.ora'
;
7、用Rman备份,不用停机
$rmantarget/
RMAN>
backupfullformat'
/db/FULL_%d_%T_%s.bak'
databaseincludecurrentcontrolfileforstandby;
sql'
altersystemarchivelogcurrent'
BackupArchiveLogallformat='
/db/arch_%d_%T_%s.bak'
备份完后将备份文件拷到standby上同样的目录,强调:
同样的目录(D盘),在standby进行rman恢复即可
8、启动主数据库
startup
1.2.Standby备机操作
1、以mount
启动备库,添加"
先查看日志文件位置:
D:
\app\oradata\orcl\citizen\redo04.log'
\ORACLE\PRODUCT\10.2.0\ORADATA\citizen\redo05.log'
\ORACLE\PRODUCT\10.2.0\ORADATA\citizen\redo06.log'
\ORACLE\PRODUCT\10.2.0\ORADATA\citizen\redo07.log'
2、在备库创建监听和配置tnsnams.ora
(同主库)
3、测试主备之间网络连通
测试非常重要
Primary:
C:
>
lsnrctlstart
tnspingstandby
Standby:
tnspingprimary
再主库中测试
Tnspingprimary/tnsping19.130.218.32/primary
Tnspingstandby/tnsping19.130.218.30/standby
备库
Tnspingstandby/tnsping19.130.218.30/standby
4、
复制主库的参数文件到备库中,编辑$ORACLE_HOME/database目录下的initcitizen.ora添加以下容
\oracle\product\10.2.0\oradata\archVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=standby'
SERVICE=primaryarchASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=primary'
以及密码文件"
\app\product\11.2.0\dbhome_1\database\PWDorcl.ora"
备份到相同路径
5、启动备用数据库开始把主库复制到备库中
startupnomountpfile='
重启主、备库监听,用Rman还原数据库
$rmantarget
sys/adminprimary
auxiliary/
duplicatetargetdatabaseforstandbydorecoversenofilenamecheck;
duplicatetargetdatabaseforstandbynofilenamecheck;
alterdatabasemountstandbydatabase;
--该语句如果报错可忽略
alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;
这里插入一下:
如果服务器或者数据库需要重启,在重启之后
主库:
SQL>
startuppfile='
\app\product\11.2.0\dbhome_1\database\INITorcl.ORA'
Startup后面没有添加任何参数就直接打开到open状态
备库:
alter
database
mount
standby
database;
alterdatabaserecovermanagedstandbydatabasecancel;
--该语句如果报错,可忽略
recover
managed
disconnect
from
session;
备库手动应用归档日志
ALTER
DATABASE
RECOVER
MANAGED
STANDBY
USING
CURRENT
LOGFILE
DISCONNECT
FROM
SESSION;
备库只能开启到mont(挂载)的状态,如果启动到open状态,备库无法应用归档日志。
如果想查看同步后的表:
--
alterdatabaseopenreadonly
查看完之后,需要切换回到session模式才能继续同步并且应用归档日志
查看归档日志情况
SELECTREGISTRAR,CREATOR,THREAD#,SEQUENCE#,FIRST_CHANGE#,NEXT_CHANGE#FROMV$ARCHIVED_LOG;
查看归档日志的同步情况
\app\diag\rdbms\standby\orcl\trace查看oracle的操作日志
1.3.测试
注意Data
Guard
启动顺序:
●启动顺序:
先standby,后primary;
●关闭顺序:
先primary后standby;
1、在备库将实例启动到mount状态:
startup
nomount;
#如果有需要应用的日志并想手工应用,可以运行如下命令
automatic
2、在主库启动实例:
startup;
3、在主库验证日志:
system
switch
logfile;
主库主动同步
select
max(sequence#)
v$archived_log;
4、在备库检查日志是否和主库一致
注:
主备查询结果一致,Data
搭建结束。
1.4.备库standby和readonly切换
1、主库创建一个表,用于备库打开时验证数据
createtabletest02asselect*fromv$parameter;
commit;
altersystemswitchlogfile;
2、将备库启动到readonly状态
1)如果standbydb处于mount状态,则可以通过下面的命令启动到read-only状态
selectopen_mode,database_rolefromv$database;
OPEN_MODE
DATABASE_ROLE
-------[oraclestandbydb~]$sqlplus/assysdba
-------------------
MOUNTED
PHYSICALSTANDBY
alterdatabaseopen;
2)如果standbydb数据库处于关闭状态,则执行下面的命令启动到read-only状态
startup
3、切换回standby状态.
断开所有,执行以下语句
--------------------------
在standbydb打开的过程中,主库的日志文件还是传递过来,只不过不做日志的应用。
所以standbydb打开的时间越长,以后做日志应用的时间就越长,如果主库故障,则启用备库到正常状态的时间就越长,这是需要您来权衡的。
如果切换后发现日志不能同步,重新切换一下即可
1.5.主/备库切换
一般SWITCHOVER切换都是计划中的切换,特点是在切换后,不会丢失任何的数据,而且这个过程是可逆的,整个DATAGUARD环境不会被破坏,原来DATAGUARD环境中的所有物理和逻辑STANDBY都可以继续工作。
在进行DATAGUARD的物理STANDBY切换前需要注意:
●确认主库和从库间网络连接通畅;
●确认没有活动的会话连接在数据库中;
●PRIMARY数据库处于打开的状态,STANDBY数据库处于MOUNT状态;
●确保STANDBY数据库处于ARCHIVELOG模式;
●如果设置了REDO应用的延迟,那么将这个设置去掉;
●确保配置了主库和从库的初始化参数,使得切换完成后,DATAGUARD机制可以顺利的运行。
1、主库切换成备库
1)查看switchover状态
SELECTSWITCHOVER_STATUSFROMV$DATABASE;
如果返回tostandby
ALTERDATABASECOMMITTOSWITCHOVERTOPHYSICALSTANDBY;
否则
Alterdatabasecommittoswitchovertophysicalstandbywithsessionshutdown;
2)启动到mount和应用日志状态
startupnomount
查看数据库模式
selectdest_name,status,database_mode,recovery_mode,protection_modefromv$archive_dest_status;
selectstatus,database_modefromv$archive_dest_status;
2、备库切换成主库
1)查看switchover状态
selectswitchover_statusfromv$database;
如果返回TOPRIMARY
alterdatabasecommittoswitchovertoprimary;
alterdatabasecommittoswitchovertoprimarywithsessionshutdown
2)查看数据库模式
如果做了switchover,主库参数设置成以下方式,会触发ora-16009错误,按以下操作即可:
Alertsystemsetlog_archive_dest_2=’service=primary
DB_UNIQUE_NAME=citizen’scope=spfile;
1.6.切换保护模式
1、在primary上操作
1)首先查看当前的保护模式
protection_mode,protection_level
v$database;
2)修改初始化参数
altersystemsetlog_archive_dest_2='
SERVICE=standbyOPTIONALLGWRSYNCAFFIRMVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=standby'
3)重启数据库并设置新的数据保护模式
alterdatabasesetstandbydatabasetomaximizeavailability;
selectprotection_mode,protection_levelfromv$database;
提示:
maximize后可跟{PROTECTION|AVAILABILITY|PERFORMANCE},分别对应最大保护,最高可用性及最高性能。
2、在standby上操作
1)修改standby初始化参数设置(主要考虑角色切换,如果只测试的话本步可跳过)
SERVICE=primaryOPTIONALLGWRSYNCAFFIRMVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=primary'
2)查看当前的保护模式
selectinstance_namefromv$instance;
INSTANCE_NAME
----------------