环境规划:css
节点1: tc1 192.168.56.101 内存:2Gjava
节点2: tc2 192.168.56.102 内存:2Gsql
物理备库:tcdg192.168.56.108内存:1.5G数据库
操做系统:Windows 2008 R2 Enterprisewindows
会提示集群服务配置失败,因为此时并无配置过vip,忽略。缓存
另外一个警告是没法将用户 "Administrator" 做为域用户进行验证,这个可以忽略。最后一个警告是提示防火墙没有关闭。但检查了一下,确实是关闭的,依据后面OUI里面的提示。经过改动注冊表可以关闭防火墙。安全
但是后来发现是因为域配置文件里的防火墙没有关形成的网络
2.安装(略)
session
6、建立数据库实例(DBCA)
1.预检以前安装的RAC数据库软件是否正常
c:\grid> runcluvfy stage -pre dbcfg -n all -d C:\app\11.2.0\grid -verbose
2.建立数据库实例
oracle
c:\grid> dbca
***********
DG部分
***********
*****主库配置*****
1.开启归档和force logging
SQL> select database_role,log_mode,force_logging from v$database;
DATABASE_ROLE LOG_MODE FOR
---------------- ------------ ---
PRIMARY ARCHIVELOG NO
SQL> alter database force logging;
2.改动主库DG配置需要的參数
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(tc,tcdg)';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=tc';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=tcdgLGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=tcdg';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
SQL> ALTER SYSTEM SET FAL_SERVER=tcdg;
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT='AUTO';
默认状况下,假设不指定scope,默认是both,这里咱们需要让设置的參数在内存和spfile同一时候生效,因此可以不加scope=both。
此外,数据库默认的db_unique_name=db_name,所以也不做改动
SQL> show parameter db_unique_name
NAME TYPE VALUE
------------------------------------ ----------- ----------------
db_unique_name string tc
下面两个參数改动后,需从新启动生效,必须加上scope=spfile
SQL> ALTER SYSTEM SET DB_FILE_NAME_CONVERT='C:\app\oracle\oradata\tc','+data/tc/datafile' scope=spfile;
SQL> ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='C:\app\oracle\oradata\tc','+data/tc/onlinelog' scope=spfile;
生产环境停库需要先停应用,再停监听,运行检查点,把在线日志归档
C:\Users\Administrator>srvctl stop listener -n tc1
C:\Users\Administrator>srvctl stop lisetner -n tc2
SQL> alter system checkpoint;
SQL> alter system archive log current;
C:\Users\Administrator>srvctl stop database -d tc
再启动数据库(注意,启动数据库时,会本身主动开启监听)
C:\Users\Administrator>srvctl start database -d tc
SQL> show parameter file_name_convert
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string C:\app\oracle\oradata\tc, +data/tc/datafile
log_file_name_convert string C:\app\oracle\oradata\tc, +data/tc/onlinelog
可以看到,2个转换文件名称的參数已经生效了
3.建立tnsnames.ora和listener.ora
C:\Users\Administrator>netca。加入备库的NET SERVICE NAME:tcdg
也可以在原有的tnsnames.ora中进行改动。那么就不用netca了
改动完的内容例如如下:
# tnsnames.ora Network Configuration File: C:\app\oracle\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
TC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = tc-cluster-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = tc)
)
)
TCDG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.108)(PORT = 1521)) --这里HOST究竟用主机名仍是IP可以依据需求
)
(CONNECT_DATA =
(SERVICE_NAME = tc)--注意这里是tc而不是tcdg,因为实例名和主库保持一致
)
)
注意,由于GI的监听是在%ORACLE_CRS_HOME%/network/admin中的,即C:\app\11.2.0\grid\NETWORK\ADMIN,而不是单实例的%ORACLE_HOME%/network/admin。即C:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN
默认RAC数据库是用grid下的netca来建立监听的,可以经过下面命令查看
C:\Users\Administrator>call C:\app\11.2.0\grid\BIN\netca
Oracle Net Services 配置:
Oracle Net Configuration Assistant 是从网格基础结构主文件夹启动的。网络配置将是集
群范围的。
在打开的配置界面中。可以看到已经有一个LISTENER的监听了,打开C:\app\11.2.0\grid\NETWORK\ADMIN下的listener.ora,发现内容例如如下。和咱们熟悉的listener.ora并不一样:
LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))))# line added by Agent
LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1))))# line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
已经有2个监听了,而咱们需要的是能用于单实例的监听,又不和原有动态监听冲突,因此考虑给主库建立一个静态监听。用net manager应用程序来建立,完毕后会在%ORACLE_HOME%/network/admin文件夹下生成一个listener.ora的文件,内容例如如下:
# listener.ora Network Configuration File: C:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = tc)
(ORACLE_HOME = C:\app\oracle\product\11.2.0\dbhome_1)
(SID_NAME = tc1)--注意是节点1的实例,因此是tc1,不能写成tc
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = TC1)(PORT = 1521))
)
ADR_BASE_LISTENER = C:\app\oracle\product\11.2.0\dbhome_1\log
假设配置正确。那么会显演示样例如如下的监听状态:
C:\Users\Administrator>lsnrctl status
...
服务摘要..
服务 "+ASM" 包括 1 个实例。
实例 "+asm1", 状态 READY, 包括此服务的 1 个处理程序...
服务 "tc" 包括 2 个实例。
实例 "tc1", 状态 UNKNOWN, 包括此服务的 1 个处理程序...
实例 "tc1", 状态 READY, 包括此服务的 1 个处理程序...
服务 "tcXDB" 包括 1 个实例。
实例 "tc1", 状态 READY, 包括此服务的 1 个处理程序...
命令运行成功
1个动态监听,1个静态监听。都为实例tc1建立了服务tc
4.建立password文件(可省略)
C:\Users\Administrator>orapwd file=pwdtc1.ora password=oracle entries=5
5.建立备库初始化參数文件
SQL> create pfile='c:\inittc1.ora' from spfile;
6.复制tnsnames.ora,listener.ora。password文件。初始化參数文件到备库对应位置
*****备库配置*****
1.依据pfile建立对应的文件夹
mkdir C:\app\oracle\admin\tc\adump
mkdir C:\app\oracle\admin\tc\dpdump
mkdir C:\app\oracle\admin\tc\hdump
mkdir C:\app\oracle\admin\tc\pfile
mkdir C:\app\oracle\oradata\tc
mkdir C:\app\oracle\flash_recovery_area
可以仅仅建立红色部分
2.把从主库复制过来的文件作对应改动,在这些文件里,除了tnsnames.ora可以原封不动,其它都需要进行对应改动,包含改动文件名称,改动完的pfile内容例如如下:
*.__db_cache_size=0
*.__java_pool_size=0
*.__large_pool_size=0
*.__oracle_base='C:\app\oracle'#ORACLE_BASE set from environment
*.__pga_aggregate_target=0
*.__sga_target=0
*.__shared_io_pool_size=0
*.__shared_pool_size=0
*.__streams_pool_size=0
*.audit_file_dest='C:\app\oracle\admin\tc\adump'
*.audit_trail='db'
*.cluster_database=false --这个參数必须设置为false,说明是单实例数据库。不然启动会报错
*.compatible='11.2.0.0.0'
*.control_files='C:\app\oracle\oradata\tc\control01.ctl','C:\app\oracle\oradata\tc\control02.ctl'
*.db_block_size=8192
*.db_create_file_dest='C:\app\oracle\oradata'
*.db_domain=''
*.db_name='tc'
*.db_recovery_file_dest='C:\app\oracle\flash_recovery_area'
*.db_recovery_file_dest_size=3908042752
*.diagnostic_dest='C:\app\oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=tcXDB)'
*.fal_server='TC'
*.instance_number=1
*.log_archive_config='DG_CONFIG=(tc,tcdg)'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=tcdg'
*.log_archive_dest_2='SERVICE=tc LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=tc'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='ARC%S_%R.%T'
*.memory_target=857735168
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.processes=150
#*.remote_listener='tc-cluster-scan:1521' --原来的远程监听,这行要凝视掉,单实例上没有这个參数
*.remote_login_passwordfile='exclusive'
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.db_file_name_convert='+data/tc/datafile','C:\app\oracle\oradata\tc\'
*.log_file_name_convert='+data/tc/onlinelog','C:\app\oracle\oradata\tc\'
*.db_unique_name=tcdg --复制过来的pfile假设不设置这个參数,默认的值是tc。因此必须要改动掉
注意,红色部分是需要改动的内容,由于主库是RAC数据库,很是多用于RAC的參数已经去掉,没有全部列出
3.建立服务
oradim -new -sid tc -startmode manual -spfile
4.启动监听
C:\Users\Administrator>lsnrctl start
5.用pfile启动
假设启动时遇到ORA-12560: TNS: 协议适配器错误,那么请检查下面2点:
1.是否启动了OracleServervicetcdg服务
由于以前建立实例时用了-startmode manual,那么主机从新启动后需手动启动这个服务,Oracle建议这些服务都是手动的
C:\Users\Administrator>net start oracleservicetcdg
OracleServicetcdg 服务正在启动 ..
OracleServicetcdg 服务已经启动成功。
2.是否设置了正确的ORACLE_SID
C:\Users\Administrator>set oracle_sid=tc
C:\Users\Administrator>sqlplus / as sysdba
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 855982080 bytes--由memory_target參数肯定
Fixed Size 2260000 bytes
Variable Size 507511776 bytes
Database Buffers 343932928 bytes
Redo Buffers 2277376 bytes
SQL>
注意,这里系统又一次分配了各内存组件的内存,事实上刚才改动pfile的时候,把这些參数的值全部设置为0了:
*.__db_cache_size=0
*.__java_pool_size=0
*.__large_pool_size=0
*.__pga_aggregate_target=0
*.__sga_target=0
*.__shared_io_pool_size=0
*.__shared_pool_size=0
*.__streams_pool_size=0
这样就表示由数据库本身主动管理这些内存组件,包含SGA和PGA。详细是由下面这个參数来分配的:
*.memory_target=857735168
注意,生产环境务必要改大这个參数值。起码是真实物理内存的40%-60%
主库或备库运行:
C:\Users\Administrator>rman target sys/oracle@tc auxiliary sys/oracle@tcdg
恢复管理器: Release 11.2.0.3.0 - Production on 星期六 8月 9 12:26:33 2014
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
已链接到目标数据库: TC (DBID=3163057399)
已链接到辅助数据库: TC (未装载)
假设在备库上运行出现下面错误:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: 内部恢复管理器程序包初始化失败
RMAN-04005: 目标数据库中存在错误:
ORA-12545: 因目标主机或对象不存在, 链接失败
那么需要在备库主机的hosts中增长一行:
192.168.56.105 tc-cluster-scan--注意。这里加入的是scan-ip,而不是详细的节点1或节点2的主机名
RMAN> duplicate target database for standby from active database;
出现例如如下错误:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: Duplicate Db 命令 (在 08/09/2014 17:19:04 上) 失败
RMAN-05501: 终止复制目标数据库
RMAN-05517: 暂时文件 +DATA/tc/tempfile/temp.263.855057647 与目标数据库使用的文件
冲突
那么就需要用SET NEWNAME FOR TEMPFILE 1 TO 'PATH'来指定一下文件名称,例如如下(注意换了一种写法):
RMAN> run{
allocate channel c1 device type disk;
allocate auxiliary channel c2 device type disk;
set newname for tempfile 1 to 'c:\app\oracle\oradata\tc\temp01.dbf';
duplicate target database for standby from active database;
release channel c1;
release channel c2;
}
事实上还可以加上不少其它的參数来进行duplicate:
注意。假设使用了spfile參数。那么就再也不使用备库上的pfile,会直接在备库上生成一个改动好參数的spifle并使用,因此建议把备库上需要的DG參数全部加上
--备库查看文件:
SQL> set lin 80 pages 80
SQL> col name for a50
SQL> select file#,name from v$datafile;
FILE# NAME
---------- --------------------------------------------------
1 C:\APP\ORACLE\ORADATA\TC\SYSTEM.256.855057451
2 C:\APP\ORACLE\ORADATA\TC\SYSAUX.257.855057453
3 C:\APP\ORACLE\ORADATA\TC\UNDOTBS1.258.855057453
4 C:\APP\ORACLE\ORADATA\TC\USERS.259.855057453
5 C:\APP\ORACLE\ORADATA\TC\EXAMPLE.264.855057687
6 C:\APP\ORACLE\ORADATA\TC\UNDOTBS2.265.855058289
SQL> select file#,name from v$tempfile;
FILE# NAME
---------- --------------------------------------------------
1 C:\APP\ORACLE\ORADATA\TC\TEMP01.DBF
SQL> select group#,member from v$logfile;
GROUP#
----------
MEMBER
-----------------------------------------------------------------------
2
C:\APP\ORACLE\ORADATA\TC\GROUP_2.262.855057605
2
C:\APP\ORACLE\ORADATA\TCDG\ONLINELOG\O1_MF_2_9YCZCO9R_.LOG
1
C:\APP\ORACLE\ORADATA\TC\GROUP_1.261.855057597
1
C:\APP\ORACLE\ORADATA\TCDG\ONLINELOG\O1_MF_1_9YCZBZ3X_.LOG
3
C:\APP\ORACLE\ORADATA\TC\GROUP_3.266.855058587
3
C:\APP\ORACLE\ORADATA\TCDG\ONLINELOG\O1_MF_3_9YCZDHFO_.LOG
4
C:\APP\ORACLE\ORADATA\TC\GROUP_4.267.855058593
4
C:\APP\ORACLE\ORADATA\TCDG\ONLINELOG\O1_MF_4_9YCZF9L2_.LOG
1
C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\ONLINELOG\O1_MF_1_9YCZC41Y_.LOG
2
C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\ONLINELOG\O1_MF_2_9YCZCXOH_.LOG
3
C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\ONLINELOG\O1_MF_3_9YCZDOGN_.LOG
4
C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\ONLINELOG\O1_MF_4_9YCZFJTV_.LOG
已选择12行。
SQL> select group#,thread#,members from v$log;
GROUP# THREAD# MEMBERS
---------- ---------- ----------
1 1 3
2 1 3
3 2 3
4 2 3
备库共同拥有4组online redo logfile。每组3个日志文件。Oracle建议适当添加日志组。每组最多2个成员。而现在每组3个成员显然太多了,对性能会有影响,删除一组FRA如下的
SQL> alter database drop logfile member 'C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\ONLINELOG\O1_MF_1_9YCZC41Y_.LOG';
数据库已更改。
SQL> alter database drop logfile member 'C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\
ONLINELOG\O1_MF_2_9YCZCXOH_.LOG';
alter database drop logfile member 'C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\ONLIN
ELOG\O1_MF_2_9YCZCXOH_.LOG'
*
第 1 行出现错误:
ORA-01609: 日志 2 是线程 1 的当前日志 - 没法删除成员
ORA-00312: 联机日志 2 线程 1: 'C:\APP\ORACLE\ORADATA\TC\GROUP_2.262.855057605'
ORA-00312: 联机日志 2 线程 1:
'C:\APP\ORACLE\ORADATA\TCDG\ONLINELOG\O1_MF_2_9YCZCO9R_.LOG'
ORA-00312: 联机日志 2 线程 1:
'C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\ONLINELOG\O1_MF_2_9YCZCXOH_.LOG'
SQL> alter database drop logfile member 'C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\ONLINELOG\O1_MF_3_9YCZDOGN_.LOG';
数据库已更改。
SQL> alter database drop logfile member 'C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\ONLINELOG\O1_MF_4_9YCZFJTV_.LOG';
数据库已更改。
SQL> select group#,members,status from v$log;
GROUP# MEMBERS STATUS
---------- ---------- ----------------
1 2 CLEARING
2 3 CURRENT
3 2 UNUSED
4 2 UNUSED
第2组的日志由于正在使用。因此没法删除,先不管。等有机会切换日志后再进行删除
--再来看一下主库的online redo logfile的状况:
SQL> col member for a45
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- ---------------------------------------------
2 +DATA/tc/onlinelog/group_2.262.855057605
2 +FRA/tc/onlinelog/group_2.258.855057607
1 +DATA/tc/onlinelog/group_1.261.855057597
1 +FRA/tc/onlinelog/group_1.257.855057601
3 +DATA/tc/onlinelog/group_3.266.855058587
3 +FRA/tc/onlinelog/group_3.259.855058591
4 +DATA/tc/onlinelog/group_4.267.855058593
4 +FRA/tc/onlinelog/group_4.260.855058595
也是一共4组,但每组是2个成员,可以看到,用duplicate过来的备库。每组多建立了个1个成员
--在备库加入standby redo logfile
SQL> alter database add standby logfile 'C:\app\oracle\oradata\tc\std_05.log'size 50m;
SQL> alter database add standby logfile 'C:\app\oracle\oradata\tc\std_06.log'size 50m;
SQL> alter database add standby logfile 'C:\app\oracle\oradata\tc\std_07.log'size 50m;
SQL> alter database add standby logfile 'C:\app\oracle\oradata\tc\std_08.log'size 50m;
SQL> alter database add standby logfile 'C:\app\oracle\oradata\tc\std_09.log'size 50m;
注意。假设不指定组号,默认会在online redo logfile组的基础上递增,如,原来有4组online redo logfile,那么可以看到加入后的备库日志:
SQL> select group#,thread# from v$standby_log;
GROUP# THREAD#
---------- ----------
5 0 --备库日志文件从5開始编号
6 0
7 0
8 0
9 0
刚才默认建立了5组standby redo logfile。thread#为0是因为尚未被应用。应用之后应该是1
--主库查看归档路径状态
SQL> col destination for a30
SQL> col error for a20
SQL> select dest_id,destination,status,error fromv$archive_dest_state where dest_id<3;
DEST_ID DESTINATION STATUS ERROR
---------- ------------------------------ --------- --------------------
1 USE_DB_RECOVERY_FILE_DEST VALID
2 tcdg VALID
--备库查看归档路径状态
SQL> col destination for a30
SQL> col error for a20
SQL> select dest_id,destination,status,error fromv$archive_dest_state where dest_id<3
;
DEST_ID DESTINATION STATUS ERROR
---------- ------------------------------ --------- --------------------
1 USE_DB_RECOVERY_FILE_DEST VALID
2 tc VALID
--開始应用日志
SQL> alter database recover managed standby databaseusing current logfile disconnect from session;
--主库切换1第二天志
SQL> alter system switch logfile;
系统已更改。
--备库查看日志应用状况
SQL> select sequence#,applied fromv$archived_log;
SEQUENCE# APPLIED
---------- ---------
30 YES
29 YES
31 YES
32 YES
33 YES
34 IN-MEMORY --说明正在应用
已选择6行。
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 CURRENT
2 CLEARING --CLEARING状态了。而非CURRENT了
3 UNUSED
4 UNUSED
--删除刚才没有成功的那个group2的日志组成员
SQL> alter database drop logfile member 'C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\ONLINELOG\O1_MF_2_9YCZCXOH_.LOG';
alter database drop logfile member 'C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\
*
第 1 行出现错误:
ORA-01156: 进行中的恢复或闪回可能需要訪问文件
--需要先中止REDO APPLY后再删除
SQL> recover managed standby database cancel;
完毕介质恢复。
SQL> alter database drop logfile member 'C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\
ONLINELOG\O1_MF_2_9YCZCXOH_.LOG';
数据库已更改。
SQL> select group#,members from v$log;
GROUP# MEMBERS
---------- ----------
1 2
2 2
3 2
4 2
--删完日志文件后,要记得把standby_file_management參数的值改回为AUTO
SQL> show parameter standby_file_management;
NAME TYPE VALUE
------------------------------------ ----------- ------
standby_file_management string MANUAL
SQL> alter system set standby_file_management=auto;
系统已更改。
SQL> show parameter standby_file_management
NAME TYPE VALUE
------------------------------------ ----------- ------
standby_file_management string AUTO
--又一次启用REDO APPLY
SQL> recover managed standby database using current logfile disconnect from session;
完毕介质恢复。
至此,RAC-DG顺利搭建完毕。
总结:
由于本机的内存并不大,仅仅有8G。在两个节点共分配2G,DG节点分配1.5G之后。经常会出现卡顿现象,而且是在已经关闭节点2,仅仅在节点1上操做的状况下,节点1会经常由于内存不足而崩溃从新启动,预计对于Window 2008而言,2G物理内存实在是太少了,只是这个状况在生产环境应该要好一点。起码都是几十G到几百G的物理内存环境。
今天用的是duplicate方式来建立的物理备库。事实上这是11g新特性,在10g中,咱们仅仅能以rman全库备份的方式进行异机恢复,duplicate的优势是可以直接在备库建立online redo logfile,并且能用spifle指定备库所需參数,无需建立全库备份,主库所有文件可以本身主动化地由rman恢复到备库,包含password文件,暂时文件等,还可以用dorecover还原online redo logfile中的内容,使恢复出来的备库得到最新的数据文件,可以加快DG同步的时间
Tips:
1.使用远程桌面链接方式安装,可以不装VBox的辅助工具。也无需加入共享目录。就能方便的在主机和虚拟机之间方便地复制安装介质或命令。
2.在11g中数据库警告日志文件的位置与10g不一样,要注意。不要混淆了,分析日志同步故障要先看警告日志
通用路径:%ORACLE_HOME%\diag\rdbms\DB_UNIQUE_NAME\SID_NAME\trace\alertSID.log
节点1:C:\app\Administrator\diag\rdbms\tc\tc1\trace\alert_tc1.log
备库:C:\app\oracle\diag\rdbms\tcdg\tc\trace\alert_tc.log