Oracle 9i Data Guard 安装配置与操作使用指南.docx
《Oracle 9i Data Guard 安装配置与操作使用指南.docx》由会员分享,可在线阅读,更多相关《Oracle 9i Data Guard 安装配置与操作使用指南.docx(34页珍藏版)》请在冰豆网上搜索。
Oracle9iDataGuard安装配置与操作使用指南
Oracle9iDataGuard安装配置与操作使用指南
Hewill
主库:
winxpora9i(9.2.0.1.0)192.168.1.119主机名:
HPCSID:
PRIMARY
从库:
win2003serverora9i(9.2.0.1.0)192.168.1.120主机名:
ServerSID:
STANDBY
1、主库和从库的Oracle安装的时候都选择相同的安装路径c:
\oracle\ora92;并且先不要安装数据库,即在安装过程中“数据库配置”一项下面选择“只安装软件”;
2、在主库上使用DatabaseConfigurationAssistant建一个数据库,SID设为PRIMARY;
3、在主库上使用NetConfigurationAssistant创建监本地Net服务名配置
4、在主库上使用NetConfigurationAssistant创建监听器
5、设置主库归档路径为C:
\oracle\ora92\database\archive
SQL>altersystemsetlog_archive_dest_1='LOCATION=C:
\oracle\ora92\database\archiveMANDATORY'scope=both;
系统已更改。
6、将主库实例、数据库关闭,然后启动实例,但不打开数据库,只启动到数据库挂载模式:
SQL>shutdownimmediate;
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL>startupmount;
ORACLE例程已经启动。
TotalSystemGlobalArea135338868bytes
FixedSize453492bytes
VariableSize109051904bytes
DatabaseBuffers25165824bytes
RedoBuffers667648bytes
数据库装载完毕。
7、将主库设置成归档状态和自动归档模式:
SQL>alterdatabasearchivelog;
数据库已更改。
SQL>altersystemsetlog_archive_start=truescope=spfile;
系统已更改。
8、在主库上面创建从库的控制文件standby.ctl:
SQL>alterdatabasecreatestandbycontrolfileas'C:
\oracle\oradata\standby.ctl';
数据库已更改。
9、在主库上面创建从库的初始化参数文件standby.ora(将其拷贝回从库后转换成从库的spfile):
SQL>createpfile='C:
\oracle\oradata\standby.ora'fromspfile;
文件已创建。
10、查看主库的数据文件及其的位置:
SQL>selectnamefromv$datafile;
NAME
---------------------------------------------------------
C:
\ORACLE\ORADATA\PRIMARY\SYSTEM01.DBF
C:
\ORACLE\ORADATA\PRIMARY\UNDOTBS01.DBF
C:
\ORACLE\ORADATA\PRIMARY\CWMLITE01.DBF
C:
\ORACLE\ORADATA\PRIMARY\DRSYS01.DBF
C:
\ORACLE\ORADATA\PRIMARY\EXAMPLE01.DBF
C:
\ORACLE\ORADATA\PRIMARY\INDX01.DBF
C:
\ORACLE\ORADATA\PRIMARY\ODM01.DBF
C:
\ORACLE\ORADATA\PRIMARY\TOOLS01.DBF
C:
\ORACLE\ORADATA\PRIMARY\USERS01.DBF
C:
\ORACLE\ORADATA\PRIMARY\XDB01.DBF
已选择10行。
11、关闭实例:
SQL>shutdownimmediate;
ORA-01109:
数据库未打开
已经卸载数据库。
ORACLE例程已经关闭。
12、将第6步中的standby.ctlC:
\oracle\oradata\standby.ctl
第7步中的standby.oraC:
\oracle\oradata\standby.ora
第8步骤中的数据文件xxxxx.DBFC:
\oracle\oradata\PRIMARY
第8步骤中的联机日志文件REDO01.LOGC:
\oracle\oradata\PRIMARY
数据库口令文件PWDPRIMARY.oraC:
\oracle\ora92\database
拷贝到从库中
在从库中创建路径C:
\oracle\oradata\PRIMARY,存放standby.ctl、数据文件、联机日志文件;创建空间文件夹archive
在从库中创建路径C:
\oracle\admin\PRIMARY在里面创建空文件夹bdump、cdump、udump、create、pfile
将standby.ora放到C:
\盘根目录下面
将口令文件PWDPRIMARY.ora更名为PWDSTANDBY.ora,存到从库的C:
\oracle\ora92\database
13、回到主库,启动主库实例和数据库:
SQL>startup
ORACLE例程已经启动。
TotalSystemGlobalArea135338868bytes
FixedSize453492bytes
VariableSize109051904bytes
DatabaseBuffers25165824bytes
RedoBuffers667648bytes
数据库装载完毕。
数据库已经打开。
14、转回到从库,使用cmd创建服务OracleServiceSTANDBY
MicrosoftWindows[版本5.2.3790]
(C)版权所有1985-2003MicrosoftCorp.
C:
\DocumentsandSettings\Administrator>oradim-new-sidSTANDBY-startmodemanual
C:
\DocumentsandSettings\Administrator>
15、设置环境变量:
在环境变量的“Administrator的用户变量”一栏里面新建一个值,变量名为ORACLE_SID,变量值为STANDBY
16、创建从库监听器OracleOraHome92TNSListener:
进入NetConfigurationAssistant,使用“监听程序配置”来创建从库的监听器
打开文件C:
\oracle\ora92\network\admin\listener.ora
主库listener.ora文件内容:
#LISTENER.ORANetworkConfigurationFile:
C:
\oracle\ora92\NETWORK\ADMIN\listener.ora
#GeneratedbyOracleconfigurationtools.
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.119)(PORT=1521))
)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))
)
)
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME=C:
\oracle\ora92)
(PROGRAM=extproc)
)
(SID_DESC=
(GLOBAL_DBNAME=primary)
(ORACLE_HOME=C:
\oracle\ora92)
(SID_NAME=primary)
)
)
备库listener.ora内容:
#LISTENER.ORANetworkConfigurationFile:
C:
\oracle\ora92\NETWORK\ADMIN\listener.ora
#GeneratedbyOracleconfigurationtools.
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.120)(PORT=1521))
)
(DESCRIPTION=
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))
)
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME=C:
\oracle\ora92)
(PROGRAM=extproc)
)
(SID_DESC=
(GLOBAL_DBNAME=primary)
(ORACLE_HOME=C:
\oracle\ora92)
(SID_NAME=primary)
)
)
17、配置主从库本地NET服务名:
进入NetConfigurationAssistant,使用“本地NET服务名配置”来配置本地NET服务名
打开文件C:
\oracle\ora92\network\admin下面生成tnsnames.ora文件
主库tnsnames.ora内容:
#TNSNAMES.ORANetworkConfigurationFile:
C:
\oracle\ora92\NETWORK\ADMIN\tnsnames.ora
#GeneratedbyOracleconfigurationtools.
PRIMARY=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.119)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=PRIMARY)
)
)
STANDBY=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.120)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=PRIMARY)
)
)
备库tnsnames.ora内容:
#TNSNAMES.ORANetworkConfigurationFile:
C:
\oracle\ora92\network\admin\tnsnames.ora
#GeneratedbyOracleconfigurationtools.
STANDBY=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.120)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=PRIMARY)
)
)
PRIMARY=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.119)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=PRIMARY)
)
)
18、在主从库上使用tnsping测试
主机:
tnspingstandby
主机:
tnspingprimary
从机:
tnspingprimary
从机:
tnspingstandby
19、修改C根目录下面的初始化参数文件standby.ora,里面的全部内容如下(删除了原来的control_files参数,将instance_name改成了STANDBY,最后面的7行红体部分是新添加的内容):
*.aq_tm_processes=1
*.background_dump_dest='C:
\oracle\admin\PRIMARY\bdump'
*.compatible='9.2.0.0.0'
*.core_dump_dest='C:
\oracle\admin\PRIMARY\cdump'
*.db_block_size=8192
*.db_cache_size=25165824
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='PRIMARY'
*.dispatchers='(PROTOCOL=TCP)(SERVICE=PRIMARYXDB)'
*.fast_start_mttr_target=300
*.hash_join_enabled=TRUE
*.instance_name='STANDBY'
*.java_pool_size=33554432
*.job_queue_processes=10
*.large_pool_size=8388608
*.log_archive_dest_1='LOCATION=C:
\oracle\ora92\database\archiveMANDATORY'
*.log_archive_format='%t_%s.dbf'
*.log_archive_start=TRUE
*.open_cursors=300
*.pga_aggregate_target=25165824
*.processes=150
*.query_rewrite_enabled='FALSE'
*.remote_login_passwordfile='EXCLUSIVE'
*.shared_pool_size=50331648
*.sort_area_size=524288
*.star_transformation_enabled='FALSE'
*.timed_statistics=TRUE
*.undo_management='AUTO'
*.undo_retention=10800
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='C:
\oracle\admin\PRIMARY\udump'
*.standby_file_management=AUTO
*.remote_archive_enable=TRUE
*.lock_name_space='standby'
*.fal_server='primary'
*.fal_client='standby'
*.standby_archive_dest='C:
\oracle\ora92\database\archive'
*.control_files='C:
\oracle\oradata\primary\STANDBY.CTL'
20、在从库中进入sqlplus将standby.ora创建成从库的spfile
SQL>conn/assysdba
已连接到空闲例程。
SQL>createspfilefrompfile='C:
\standby.ora';
文件已创建。
21、启动从库的实例,并且将从库设置成standby模式:
SQL>startupnomount;
ORACLE例程已经启动。
TotalSystemGlobalArea135338868bytes
FixedSize453492bytes
VariableSize109051904bytes
DatabaseBuffers25165824bytes
RedoBuffers667648bytes
SQL>alterdatabasemountstandbydatabase;
SQL>alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;
22、转到主库,启动到物理从库的归档:
SQL>ALTERSYSTEMSETLOG_ARCHIVE_DEST_2='SERVICE=STANDBY'SCOPE=BOTH;
系统已更改。
SQL>ALTERSYSTEMSETLOG_ARCHIVE_DEST_STATE_2=ENABLESCOPE=BOTH;
系统已更改。
23、校验DataGuard的运转:
主库,归档当前日志:
SQL>ALTERSYSTEMARCHIVELOGCURRENT;
系统已更改。
从库,查看新的归档日志是否正常用于恢复:
SQL>SELECTSEQUENCE#,APPLIEDFROMV$ARCHIVED_LOGORDERBYSEQUENCE#;
SEQUENCE#APP
-------------
10YES
11YES
24、查看主从库的C:
\oracle\ora92\database\archive文件夹里面的内容
主库:
从库:
如果从库的和主库的内容一致,就算dataguard配置成功了。
25、这个时候从库只是将日志文件拿过来存放起来,但并没有执行日志文件,所以在主库上所做的操作无法在从库上得到结果,即无法在从库上查询数据。
要在从库上查询数据,要执行以下语句:
在主库上以sysdba执行:
SQL>connsystem/system@primaryassysdba
已连接。
SQL>createtabletest1(row1varchar2(50));
表已创建。
SQL>insertintotest1values('heweilo@');
已创建1行。
SQL>commit;
提交完成。
SQL>ALTERSYSTEMARCHIVELOGCURRENT;
系统已更改。
在从库上以sysdba执行:
SQL>connsystem/system@standbyassysdba
已连接。
SQL>alterdatabaserecovermanagedstandbydatabasecancel;
数据库已更改。
SQL>alterdatabaseopenreadonly;
数据库已更改。
SQL>select*fromtest1;
ROW1
----------
heweilo@
在从库上查询完成以后,需要恢复从库为恢复模式
SQL>alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;
数据库已更改。
查询完后一定要将从库设回恢复模式。