Windows 环境下配置 Oracle 11gR2 Data Guard 手记
我是在以前从未接触Oracle的情况下来配置Data Guard的。付费下载了一份很详细的data guard 11g在windows下的配置文档(需要的留下邮箱),但是对于一个其中很多参数都得需要根据自己的环境修改,这对我这个新手来说颇有难度。配了整整8天终于初步成功,现把经验及配置过程中可能遇到的问题和大家分享一下。
以下介绍均根据配置文档同步说明。
文档2:“在安装 oracle 时,主库安装数据库,从库只安装软件。
安装路径为 D 盘,具体路径为默认 D:\app\Administrator\。
实例名为 orcl
数据文件放在 D:\Data\orcl 文件夹下,归档日志放在 D:\Arch_Log 文件夹下,联机日志
位置默认”
oracl是安装oracle数据库后默认的实例名,在oracle中每个一个实例名对应一个数据库。我用oracle自带的工具Database configuration Assistant又新建了一个实例(跟数据库一个意思),名字为tt
主库上运行sqlplus来进行配置,开始——运行——cmd
sqlplus / as sysdba; 这个命令的意思是仅连接实例不启动数据库。
sqlplus /nolog; conn sys/123@tt as sysdba; 这个命令连接指定数据库
当前归档日志查看命令为:
select name from v$archived_log;
归档日志路径设置命令为:
alter system set log_archive_dest_1='LOCATION=d:\arch_log MANDATORY' scope=both;
3.4 创建参数文件
create pfile='d:\initora.ora' from spfile;
3.5 编辑参数文件
光标拖到最后。 添加如下内容并保存:。。。。。。。。
这一步如果按照其添加参数后,发现无法启动。我的initora.ora文件配置如下:
tt.__db_cache_size=322961408
tt.__java_pool_size=4194304
tt.__large_pool_size=4194304
tt.__oracle_base='d:\app\Administrator'#ORACLE_BASE set from environment
tt.__pga_aggregate_target=322961408
tt.__sga_target=482344960
tt.__shared_io_pool_size=0
tt.__shared_pool_size=142606336
tt.__streams_pool_size=0
*.archive_lag_target=1800
*.audit_file_dest='d:\app\Administrator\admin\tt\adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='d:\app\Administrator\oradata\tt\control01.ctl','d:\app\Administrator\flash_recovery_area\tt\control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_file_name_convert=' D:\DATA\ORCL\','D:\DATA\ORCL\'
*.db_name='tt'
*.db_recovery_file_dest='d:\app\Administrator\flash_recovery_area'
*.db_recovery_file_dest_size=4039114752
*.db_unique_name='tt'
*.diagnostic_dest='d:\app\Administrator'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ttXDB)'
*.fal_client='primary'
*.fal_server='standby'
*.log_archive_config='DG_CONFIG=(tt,standby)'
*.log_archive_dest_1='location=D:\arch_log'
*.log_archive_dest_2='SERVICE=standby LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=standby'
*.log_archive_dest_state_1='enable'
*.log_archive_dest_state_2='enable'
*.log_archive_format='%t_%s_%r.arc'
*.log_file_name_convert='D:\DATA\ORCL\','D:\DATA\ORCL\'
*.memory_target=804257792
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.standby_file_management='auto'
*.undo_tablespace='UNDOTBS1'
注意:有的命令输入在SQL下,有的在根目录下,你可以新建cmd去运行,因为如果运行在同一命令窗口下可能会导致数据库被关闭。
3.8 配置主库网络监听(备用库同理)
修改 listener.ora 文件,内容如下:
listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = d:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:d:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = tt)
(ORACLE_HOME = d:\app\Administrator\product\11.2.0\dbhome_1)
(SID_NAME = tt)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.166)(PORT = 1521))
)
)
修改 tnsnames.ora 文件,内容如下:
# tnsnames.ora Network Configuration File: d:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.166)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = tt)
)
)
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.121)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = tt)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
TT =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.166)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = tt)
)
)
3.12 备库新建实例
实例名称必须和主库的一致
oradim -new-sid tt
3.14 备库参数文件
在备库中需要新加系统变量,变量名:oracle_sid 变量值:tt
注:tt为实例名
原文没有做这一步,导致启动出错。
3.15.3 复制数据库
RMAN> connect auxiliary sys/sys@standby
此次的意思是连接备库,如果出现问题打开命令窗口输入tnsping 192.168.1.121
IP地址为备库IP。
如果无法连接通,重启备库电脑上服务里的OracleOraDb11g_homeTNSListener.