测试环境是10,但配置方法是9的
10支持9的配置方法
09年初写的,辣椒到我这找方法翻出来的
创建物理DG
==========================
SQL> SELECT * FROM V$VERSION;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
---------------------------
主库
sid:minedb
ip:192.168.0.100
从库
sid:minedb
ip:192.168.0.120
---------------------------
1、配置两节点间通信
简单说就是配置两服务器监听以及tnsnames
直接修改$ORACLE_HOME/network/admin/lisner.ora
监听
主库
# listener.ora Network Configuration File: d:\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 = PLSExtProc)
(ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = an)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
从库:
# listener.ora Network Configuration File: d:\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 = PLSExtProc)
(ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.120)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
确认后在两节点分别执行
lsnrctl start
启动监听
---------------------------------------
tnsnames
文件在$ORACLE_HOME\network\admin\tnsnames.ora
两节点一致
PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = minedb)
)
)
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.120)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = minedb)
)
)
需要注意ip、端口以及service-name
配置完成之后使用在两节点都使用tnsping测试网络连通情况
C:\Documents and Settings\an>tnsping primary
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 09-12月-20
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的参数文件:
d:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(H
)
OK (10 毫秒)
C:\Documents and Settings\an>tnsping standby
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 09-12月-20
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的参数文件:
d:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(H
)
OK (30 毫秒)
证明通信无障碍后继续操作
=====================================
主库准备
C:\Documents and Settings\Administrator>sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 12月 9 22:31:12 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 318767104 bytes
Fixed Size 1248744 bytes
Variable Size 109052440 bytes
Database Buffers 201326592 bytes
Redo Buffers 7139328 bytes
SQL> alter database mount
2 ;
数据库已更改。
数据库mount后确认使用的参数文件为spfile
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string D:\ORACLE\PRODUCT\10.2.0\DB_1\DBS\SPFILEMINEDB.ORA
创建备用库使用的参数文件
SQL> create pfile='e:\1.ora' from spfile;
文件已创建。
设置主库归档
SQL> alter database archivelog;
数据库已更改。
设置主库强制记日志
SQL> alter database force logging;
数据库已更改。
创建从库控制文件
SQL> alter database create standby controlfile as 'e:\standby.ctl';
数据库已更改。
停库,并将数据文件、控制文件、在线日志文件传送到从节点相应位置
同时还需要将口令文件、参数文件以及从库standby控制文件传送到从库
scp ftp rzsz随便
====================================
修改从库参数文件
修改前为:
minedb.__db_cache_size=201326592
minedb.__java_pool_size=4194304
minedb.__large_pool_size=4194304
minedb.__shared_pool_size=100663296
minedb.__streams_pool_size=0
*.audit_file_dest='d:\oracle\product\10.2.0/admin/minedb/adump'
*.background_dump_dest='d:\oracle\product\10.2.0/admin/minedb/bdump'
*.compatible='10.2.0.1.0'
*.control_files='d:\oracle\product\10.2.0/oradata/minedb/\standby.ctl'
*.core_dump_dest='d:\oracle\product\10.2.0/admin/minedb/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='minedb'
*.db_recovery_file_dest='d:\oracle\product\10.2.0/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=minedbXDB)'
*.job_queue_processes=10
*.log_archive_format='ARC%S_%R.%T'
*.open_cursors=300
*.pga_aggregate_target=104857600
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=316669952
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='d:\oracle\product\10.2.0/admin/minedb/udump'
添加以下内容
*.aq_tm_processes=1
*.log_archive_dest_1='LOCATION=D:\oracle\product\10.2.0\flash_recovery_area\MINEDB\ARCHIVELOG\parch'
*.log_archive_dest_2=''
*.standby_archive_dest='D:\oracle\product\10.2.0\flash_recovery_area\MINEDB\ARCHIVELOG\sarch'
*.fal_server='primary'
*.fal_client='standby'
*.standby_file_management='AUTO'
因为归档路径改变为闪回恢复区中的parch和sarch,所以需要手动创建目录
注意从库中控制文件的内容,将主库生成的standby.ctl指定为控制文件
==================================
启动主库
使用修改后的参数文件启动从库
C:\Documents and Settings\an>sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 12月 9 22:45:50 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup nomount pfile=e:\1.ora
ORACLE 例程已经启动。
Total System Global Area 318767104 bytes
Fixed Size 1248744 bytes
Variable Size 109052440 bytes
Database Buffers 201326592 bytes
Redo Buffers 7139328 bytes
SQL> alter database mount standby database;
数据库已更改。
SQL> alter database recover managed standby database disconnect from session;
数据库已更改。
======================================
修改主库参数
SQL> alter system set log_archive_dest_1='LOCATION=D:\oracle\product\10.2.0\flash_recovery_area\MINEDB\ARCHIVELOG\parch';
系统已更改。
SQL> alter system set log_archive_dest_2='service=standby mandatory reopen=60';
系统已更改。
=======================================
验证dg的有效性
主库:
SQL> create table an(id int);
表已创建。
SQL> insert into an select 1 from dual;
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
切换日志后,主库中应该有新日志生成
在从库sarch中应该有相同的日志
在从库中验证数据
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
数据库已更改。
SQL> ALTER DATABASE OPEN READ ONLY;
数据库已更改。
SQL> select * from an;
ID
----------
1
从库继续接收日志
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
数据库已更改。
=================================
以上设置其实是oracle9中设置物理dg的方法,因为对9比较熟悉,所以一直使用,有空可以做下10的
这个做法是最大性能配置
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13177610/viewspace-676333/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13177610/viewspace-676333/