- 浏览: 51568 次
- 性别:
- 来自: 北京
最新评论
主库:win2003 server ora9i(9.2.0.1.0) 192.168.3.135主机名:data580 SID:PRIMARY
从库:win2003 server ora9i(9.2.0.1.0) 192.168.3.136主机名:data380 SID:STANDBY
1、主库和从库的Oracle 安装的时候都选择相同的安装路径 D:\oracle\ora92 ;并且先不要安装数据库,即在安装过程中“数据库配置”一项下面选择“只安装软件”;
2、在主库上使用DBCA(Database Configuration Assistant)建一个数据库,SID设为PRIMARY;
3、设置主库归档路径为d:\oracle\ora92\database\Archive :
SQL> alter system set log_archive_dest_1='LOCATION=d:\oracle\ora92\database\Arch
ive MANDATORY' scope=both;
系统已更改。
4、将主库实例、数据库关闭,然后启动实例,但不打开数据库,只启动到数据库挂载模式:
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
5、将主库设置成归档状态和自动归档模式:
SQL> alter database archivelog;
数据库已更改。
SQL> alter system set log_archive_start=true scope=spfile;
系统已更改。
6、在主库上面创建从库的控制文件standby.ctl :
SQL> alter database create standby controlfile as 'd:\oracle\oradata\standby.ctl';
数据库已更改。
7、在主库上面创建从库的初始化参数文件standby.ora(将其拷贝回从库后转换成从库的 spfile):
SQL> create pfile='d:\oracle\oradata\standby.ora' from spfile;
文件已创建。
8、查看主库的数据文件及其的位置:
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
D:\ORACLE\ORADATA\PRIMARY\SYSTEM01.DBF
D:\ORACLE\ORADATA\PRIMARY\UNDOTBS01.DBF
D:\ORACLE\ORADATA\PRIMARY\CWMLITE01.DBF
D:\ORACLE\ORADATA\PRIMARY\DRSYS01.DBF
D:\ORACLE\ORADATA\PRIMARY\EXAMPLE01.DBF
D:\ORACLE\ORADATA\PRIMARY\INDX01.DBF
D:\ORACLE\ORADATA\PRIMARY\ODM01.DBF
D:\ORACLE\ORADATA\PRIMARY\TOOLS01.DBF
D:\ORACLE\ORADATA\PRIMARY\USERS01.DBF
D:\ORACLE\ORADATA\PRIMARY\XDB01.DBF
已选择10行。
9、关闭实例:
SQL> shutdown immediate;
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
10、将第6步中的standby.ctl、第7步中的standby.ora和第8步骤中的数据文件、还有D:\oracle\oradata\PRIMARY路径下面的联机日志文件(REDO.LOG)、D:\oracle\ora92\database里面的口令文件PWDPRIMARY.ora备份出来,拷贝到从库中;在从库中创建路径D:\oracle\oradata\PRIMARY ,存放standby.ctl、数据文件、联机日志文件;创建路径D:\oracle\admin\PRIMARY ,在里面创建空文件夹bdump、cdump、udump、create、pfile ;将standby.ora 放到D盘根目录下面;将口令文件PWDPRIMARY.ora更名为PWDSTANDBY.ora ,放到从库的D:\oracle\ora92\database下面。
11、回到主库,启动主库实例和数据库:
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
12、转回到从库,手动创建服务OracleServiceSTANDBY:
C:\Documents and Settings\Administrator>oradim -new -sid STANDBY -startmode manual
C:\Documents and Settings\Administrator>
设置环境变量:在环境变量的“Administrator的用户变量”一栏里面新建一个值,变量名为ORACLE_SID ,变量值为STANDBY(服务名)。
13、创建主从库监听器OracleOraHome92TNSListener:进入Net Configuration Assistant ,使用“监听程序配置”来创建从库的监听器,同时会在D:\oracle\ora92\network\admin下面生成listener.ora文件:
主库listener.ora文件内容:
# LISTENER.ORA Network Configuration File: D:\oracle\ora92\network\admin\listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = data580)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\ora92)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = primary)
(ORACLE_HOME = d:\oracle\ora92)
(SID_NAME = primary)
)
)
备库listener.ora内容:
# LISTENER.ORA Network Configuration File: D:\oracle\ora92\network\admin\listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = data380)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = primary)
(ORACLE_HOME = d:\oracle\ora92)
(SID_NAME = primary)
)
)
14、配置主从库本地NET服务名:进入Net Configuration Assistant ,使用“本地NET服务名配置”来配置,同时会在D:\oracle\ora92\network\admin下面生成tnsnames.ora文件;
主库tnsnames.ora内容:
# TNSNAMES.ORA Network Configuration File: D:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.136)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = PRIMARY)
)
)
PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.135)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = PRIMARY)
)
)
备库tnsnames.ora内容:
# TNSNAMES.ORA Network Configuration File: D:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.136)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = PRIMARY)
)
)
PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.136)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = PRIMARY)
)
)
15、在主库上tnsping测试
C:\Documents and Settings\Administrator>tnsping standby
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 31-10月-2
009 21:55:53
Copyright (c) 1997 Oracle Corporation. All rights reserved.
已使用的参数文件:
D:\oracle\ora92\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.3.136)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = PRIMARY)))
OK(20毫秒)
C:\Documents and Settings\Administrator>tnsping primary
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 31-10月-2
009 21:56:03
Copyright (c) 1997 Oracle Corporation. All rights reserved.
已使用的参数文件:
D:\oracle\ora92\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.3.135)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = PRIMARY)))
OK(30毫秒)
在从库上tnsping测试
C:\Documents and Settings\Administrator>tnsping primary
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 31-10月-2
009 21:58:30
Copyright (c) 1997 Oracle Corporation. All rights reserved.
已使用的参数文件:
D:\oracle\ora92\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.3.135)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = PRIMARY)))
OK(10毫秒)
C:\Documents and Settings\Administrator>tnsping standby
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 31-10月-2
009 21:58:36
Copyright (c) 1997 Oracle Corporation. All rights reserved.
已使用的参数文件:
D:\oracle\ora92\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.3.136)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = PRIMARY)))
OK(30毫秒)
16、修改D根目录下面的初始化参数文件standby.ora ,里面的全部内容如下(删除了原来的control_files参数,将instance_name改成了STANDBY,最后面的7行红体部分是新添加的内容):
*.aq_tm_processes=1
*.background_dump_dest='D:\oracle\admin\PRIMARY\bdump'
*.compatible='9.2.0.0.0'
*.core_dump_dest='D:\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=d:\oracle\ora92\database\Archive MANDATORY'
*.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='D:\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='d:\oracle\ora92\database\Archive'
*.control_files='d:\oracle\oradata\primary\STANDBY.CTL'
17、在从库中进入sqlplus将standby.ora创建成从库的spfile :
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 10月 31 15:19:12 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn /as sysdba
已连接到空闲例程。
SQL> create spfile from pfile='d:\standby.ora';
文件已创建。
18、启动从库的实例,并且将从库设置成standby模式:
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
SQL> alter database mount standby database;
19、在从库启动日志应用服务:
SQL>alter database recover managed standby database disconnect from session;
20、转到主库,启动到物理从库的归档:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=STANDBY' SCOPE=BOTH;(注意红色部分,这里我曾经出错)
系统已更改。
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH;
系统已更改。
上面两句SQL也可改为(alter system set log_archive_dest_2='service=standby mandatory reopen=60';),不过我没有做过
21、校验Data Guard的运转:
(1)主库,归档当前日志:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
系统已更改。
(2)从库,校验归档日志是否正常接收:
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUEN
CE#;
SEQUENCE# FIRST_TIME NEXT_TIME
---------- ---------- ----------
9 31-10月-09 31-10月-09
10 31-10月-09 31-10月-09
11 31-10月-09 31-10月-09
已选择6行。
(3)从库,查看新的归档日志是否正常用于恢复:
SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# APP
---------- ---
9 YES
10 YES
11 YES
12 YES
13 YES
14 YES
已选择6行。
如果都是像以上那样的内容,都是YES的话,那就成功了。也可以分别查看主从库的D:\oracle\ora92\database\archive文件夹里面的内容,如果从库的和主库的内容一致,就算data guard配置成功了。
22、(这个时候从库只是将日志文件拿过来存放起来,但并没有执行日志文件,所以在主库上所做的操作无法在从库上得到结果,即无法在从库上查询数据。要在从库上查询数据,要执行以下语句:在从库上用sysdba 用户连接 Sql>alter database recover managed standby database disconnect from session ; Sql>alter database recover managed standby database cancel ; Sql>alter database open read only ; 查询数据即可。查询完成以后,需要恢复从库为恢复模式 Sql>alter database recover managed standby database disconnect from session ; 这个功能的可以用来查询前一天(或者前若干时间)以前的数据,比如报表之类的,因为今天只能查询昨天以前的报表,对数据的同步性的要求不是那么严格。查询完后一定要将从库设回恢复模式。)
这段内容我表示怀疑,第一次在从库上运行
SQL> alter database recover managed standby database disconnect from session ;
alter database recover managed standby database disconnect from session
*
ERROR 位于第 1 行:
ORA-01153: 激活了不兼容的介质恢复
说明managed media recover正在运行中
在主库上以sysdba执行:
SQL> conn /as sysdba
已连接。
SQL> create table t(x varchar2(10));
表已创建。
SQL> insert into t values('test1');
已创建 1 行。
SQL> commit;
提交完成。
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
系统已更改。
SQL>
在从库上以sysdba 执行:
SQL> conn /as sysdba
已连接。
SQL> alter database recover managed standby database cancel ;
数据库已更改。
SQL> alter database open read only ;
数据库已更改。
SQL> select * from t;
X
----------
test1
在从库上查询完成以后,需要恢复从库为恢复模式
SQL> alter database recover managed standby database disconnect from session ;
数据库已更改。
查询完后一定要将从库设回恢复模式。
从库:win2003 server ora9i(9.2.0.1.0) 192.168.3.136主机名:data380 SID:STANDBY
1、主库和从库的Oracle 安装的时候都选择相同的安装路径 D:\oracle\ora92 ;并且先不要安装数据库,即在安装过程中“数据库配置”一项下面选择“只安装软件”;
2、在主库上使用DBCA(Database Configuration Assistant)建一个数据库,SID设为PRIMARY;
3、设置主库归档路径为d:\oracle\ora92\database\Archive :
SQL> alter system set log_archive_dest_1='LOCATION=d:\oracle\ora92\database\Arch
ive MANDATORY' scope=both;
系统已更改。
4、将主库实例、数据库关闭,然后启动实例,但不打开数据库,只启动到数据库挂载模式:
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
5、将主库设置成归档状态和自动归档模式:
SQL> alter database archivelog;
数据库已更改。
SQL> alter system set log_archive_start=true scope=spfile;
系统已更改。
6、在主库上面创建从库的控制文件standby.ctl :
SQL> alter database create standby controlfile as 'd:\oracle\oradata\standby.ctl';
数据库已更改。
7、在主库上面创建从库的初始化参数文件standby.ora(将其拷贝回从库后转换成从库的 spfile):
SQL> create pfile='d:\oracle\oradata\standby.ora' from spfile;
文件已创建。
8、查看主库的数据文件及其的位置:
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
D:\ORACLE\ORADATA\PRIMARY\SYSTEM01.DBF
D:\ORACLE\ORADATA\PRIMARY\UNDOTBS01.DBF
D:\ORACLE\ORADATA\PRIMARY\CWMLITE01.DBF
D:\ORACLE\ORADATA\PRIMARY\DRSYS01.DBF
D:\ORACLE\ORADATA\PRIMARY\EXAMPLE01.DBF
D:\ORACLE\ORADATA\PRIMARY\INDX01.DBF
D:\ORACLE\ORADATA\PRIMARY\ODM01.DBF
D:\ORACLE\ORADATA\PRIMARY\TOOLS01.DBF
D:\ORACLE\ORADATA\PRIMARY\USERS01.DBF
D:\ORACLE\ORADATA\PRIMARY\XDB01.DBF
已选择10行。
9、关闭实例:
SQL> shutdown immediate;
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
10、将第6步中的standby.ctl、第7步中的standby.ora和第8步骤中的数据文件、还有D:\oracle\oradata\PRIMARY路径下面的联机日志文件(REDO.LOG)、D:\oracle\ora92\database里面的口令文件PWDPRIMARY.ora备份出来,拷贝到从库中;在从库中创建路径D:\oracle\oradata\PRIMARY ,存放standby.ctl、数据文件、联机日志文件;创建路径D:\oracle\admin\PRIMARY ,在里面创建空文件夹bdump、cdump、udump、create、pfile ;将standby.ora 放到D盘根目录下面;将口令文件PWDPRIMARY.ora更名为PWDSTANDBY.ora ,放到从库的D:\oracle\ora92\database下面。
11、回到主库,启动主库实例和数据库:
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
12、转回到从库,手动创建服务OracleServiceSTANDBY:
C:\Documents and Settings\Administrator>oradim -new -sid STANDBY -startmode manual
C:\Documents and Settings\Administrator>
设置环境变量:在环境变量的“Administrator的用户变量”一栏里面新建一个值,变量名为ORACLE_SID ,变量值为STANDBY(服务名)。
13、创建主从库监听器OracleOraHome92TNSListener:进入Net Configuration Assistant ,使用“监听程序配置”来创建从库的监听器,同时会在D:\oracle\ora92\network\admin下面生成listener.ora文件:
主库listener.ora文件内容:
# LISTENER.ORA Network Configuration File: D:\oracle\ora92\network\admin\listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = data580)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\ora92)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = primary)
(ORACLE_HOME = d:\oracle\ora92)
(SID_NAME = primary)
)
)
备库listener.ora内容:
# LISTENER.ORA Network Configuration File: D:\oracle\ora92\network\admin\listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = data380)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = primary)
(ORACLE_HOME = d:\oracle\ora92)
(SID_NAME = primary)
)
)
14、配置主从库本地NET服务名:进入Net Configuration Assistant ,使用“本地NET服务名配置”来配置,同时会在D:\oracle\ora92\network\admin下面生成tnsnames.ora文件;
主库tnsnames.ora内容:
# TNSNAMES.ORA Network Configuration File: D:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.136)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = PRIMARY)
)
)
PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.135)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = PRIMARY)
)
)
备库tnsnames.ora内容:
# TNSNAMES.ORA Network Configuration File: D:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.136)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = PRIMARY)
)
)
PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.136)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = PRIMARY)
)
)
15、在主库上tnsping测试
C:\Documents and Settings\Administrator>tnsping standby
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 31-10月-2
009 21:55:53
Copyright (c) 1997 Oracle Corporation. All rights reserved.
已使用的参数文件:
D:\oracle\ora92\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.3.136)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = PRIMARY)))
OK(20毫秒)
C:\Documents and Settings\Administrator>tnsping primary
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 31-10月-2
009 21:56:03
Copyright (c) 1997 Oracle Corporation. All rights reserved.
已使用的参数文件:
D:\oracle\ora92\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.3.135)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = PRIMARY)))
OK(30毫秒)
在从库上tnsping测试
C:\Documents and Settings\Administrator>tnsping primary
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 31-10月-2
009 21:58:30
Copyright (c) 1997 Oracle Corporation. All rights reserved.
已使用的参数文件:
D:\oracle\ora92\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.3.135)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = PRIMARY)))
OK(10毫秒)
C:\Documents and Settings\Administrator>tnsping standby
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 31-10月-2
009 21:58:36
Copyright (c) 1997 Oracle Corporation. All rights reserved.
已使用的参数文件:
D:\oracle\ora92\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.3.136)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = PRIMARY)))
OK(30毫秒)
16、修改D根目录下面的初始化参数文件standby.ora ,里面的全部内容如下(删除了原来的control_files参数,将instance_name改成了STANDBY,最后面的7行红体部分是新添加的内容):
*.aq_tm_processes=1
*.background_dump_dest='D:\oracle\admin\PRIMARY\bdump'
*.compatible='9.2.0.0.0'
*.core_dump_dest='D:\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=d:\oracle\ora92\database\Archive MANDATORY'
*.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='D:\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='d:\oracle\ora92\database\Archive'
*.control_files='d:\oracle\oradata\primary\STANDBY.CTL'
17、在从库中进入sqlplus将standby.ora创建成从库的spfile :
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 10月 31 15:19:12 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn /as sysdba
已连接到空闲例程。
SQL> create spfile from pfile='d:\standby.ora';
文件已创建。
18、启动从库的实例,并且将从库设置成standby模式:
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
SQL> alter database mount standby database;
19、在从库启动日志应用服务:
SQL>alter database recover managed standby database disconnect from session;
20、转到主库,启动到物理从库的归档:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=STANDBY' SCOPE=BOTH;(注意红色部分,这里我曾经出错)
系统已更改。
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH;
系统已更改。
上面两句SQL也可改为(alter system set log_archive_dest_2='service=standby mandatory reopen=60';),不过我没有做过
21、校验Data Guard的运转:
(1)主库,归档当前日志:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
系统已更改。
(2)从库,校验归档日志是否正常接收:
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUEN
CE#;
SEQUENCE# FIRST_TIME NEXT_TIME
---------- ---------- ----------
9 31-10月-09 31-10月-09
10 31-10月-09 31-10月-09
11 31-10月-09 31-10月-09
已选择6行。
(3)从库,查看新的归档日志是否正常用于恢复:
SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# APP
---------- ---
9 YES
10 YES
11 YES
12 YES
13 YES
14 YES
已选择6行。
如果都是像以上那样的内容,都是YES的话,那就成功了。也可以分别查看主从库的D:\oracle\ora92\database\archive文件夹里面的内容,如果从库的和主库的内容一致,就算data guard配置成功了。
22、(这个时候从库只是将日志文件拿过来存放起来,但并没有执行日志文件,所以在主库上所做的操作无法在从库上得到结果,即无法在从库上查询数据。要在从库上查询数据,要执行以下语句:在从库上用sysdba 用户连接 Sql>alter database recover managed standby database disconnect from session ; Sql>alter database recover managed standby database cancel ; Sql>alter database open read only ; 查询数据即可。查询完成以后,需要恢复从库为恢复模式 Sql>alter database recover managed standby database disconnect from session ; 这个功能的可以用来查询前一天(或者前若干时间)以前的数据,比如报表之类的,因为今天只能查询昨天以前的报表,对数据的同步性的要求不是那么严格。查询完后一定要将从库设回恢复模式。)
这段内容我表示怀疑,第一次在从库上运行
SQL> alter database recover managed standby database disconnect from session ;
alter database recover managed standby database disconnect from session
*
ERROR 位于第 1 行:
ORA-01153: 激活了不兼容的介质恢复
说明managed media recover正在运行中
在主库上以sysdba执行:
SQL> conn /as sysdba
已连接。
SQL> create table t(x varchar2(10));
表已创建。
SQL> insert into t values('test1');
已创建 1 行。
SQL> commit;
提交完成。
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
系统已更改。
SQL>
在从库上以sysdba 执行:
SQL> conn /as sysdba
已连接。
SQL> alter database recover managed standby database cancel ;
数据库已更改。
SQL> alter database open read only ;
数据库已更改。
SQL> select * from t;
X
----------
test1
在从库上查询完成以后,需要恢复从库为恢复模式
SQL> alter database recover managed standby database disconnect from session ;
数据库已更改。
查询完后一定要将从库设回恢复模式。
发表评论
-
Oracle的left join中on和where的区别
2012-10-26 15:43 960Oracle的left join中on和where的区别 数 ... -
动态sql拼接单引号与 变量赋值
2012-06-21 10:09 3827if (lower(s_table)='gl_deta ... -
ora-00031:session marked for kill处理oracle中杀不掉的锁
2012-06-19 16:36 1042转: 一些ORACLE中的进程被杀掉后,状态被置为" ... -
使用DBLINK为远程数据库的用户表创建同义词
2012-06-19 14:39 9121、创建db_link create database l ... -
以字符串数组为输入参数的存储过程
2012-06-19 14:27 2725今天项目中需要用到存 ... -
函数的使用
2012-06-04 17:09 967create or replace function Fun_ ... -
Oracle中decode的使简单例子
2012-06-04 17:06 1462decode(字段,表达式1,表达式2,表达式。。。) 当,字 ... -
oracle触发器
2012-04-20 09:11 722表: A 字段:a, b, c 当修改a字段的值时触发 c字段 ... -
oracle的全文索引
2012-04-16 14:29 781已有几个项目组开始使 ... -
单独的plsql链接数据库
2011-10-14 16:03 895转的: plsql 可不可以 ... -
Oracle经验集锦
2011-09-24 13:32 6801.删除表空间 DROP ... -
两个数据库字符集不一样,如何快速增量同步数据.
2011-09-23 15:00 1137环境: DB-A 字符集:US7ASC ... -
Oracle分区表详解 .
2011-08-06 10:42 636一、Oracle分区简介 ORACLE的分区是一种处理超大型 ... -
利用 rowid 提升update性能 .
2011-08-04 23:52 1798能不能想办法 提升一下如下update语句的性能 UPDA ... -
oracle全文索引的简单配置
2011-08-04 23:49 9951.创建数据存储定义(Datastore),使用多列数据存储在 ... -
用java调用oracle存储过程总结
2011-08-04 23:45 6361、什么是存储过程。存 ... -
Oracle SCN详解
2011-08-04 23:38 600pre. Oracle中的SCN(system change ... -
oracle 数据库里查看表空间使用状况
2011-08-04 23:34 636oracle表空间的事情状况要经常查看,一般空闲比例过低的时候 ... -
采用全文索引解决模糊查询速度慢的问题
2011-08-04 23:31 750众所周知,使用 like 进行模糊查询速度极差,包括 like ... -
Rman duplicate数据库复制(单系统)
2011-08-04 23:22 643一、实验环境: 1. 虚拟机:VMware Ser ...
相关推荐
综上所述,"windows2003 server oracle9i dataguard max availabilty"涉及到的是在Windows 2003 Server上使用Oracle 9i DataGuard构建最大可用性的双机配置,以确保数据库的高可用性和数据安全性。这一过程中涉及的...
Oracle9i DataGuard的引入,使得数据库管理员在面对数据增长、性能优化和数据安全性等多重挑战时,有了更强大的工具支持。 **总体概要** Oracle9i DataGuard的核心在于建立和维护主数据库(Primary Database)与一...
• 图解Oracle9i在Windows2000下的安 • Linux环境下oracle9i的Dataguard配 • 修改oracle9i数据库字符集的方法 • windows优化系统后oracle9i本地连 • Oracle9i进程内存占用问题解决方法 • 在所有linux版本...
Oracle9i DataGuard高性能实时备份,使数据最少丢失 在文档tnsping步骤时请注意防火墙设置
### Oracle9i Data Guard 安装配置与操作使用详解 #### 一、概述 Oracle Data Guard 是 Oracle 提供的一种高可用性解决方案,主要用于实现数据库的容灾和恢复。本篇文章将详细介绍如何在 Windows 环境下搭建 Oracle...
在Oracle 9i DataGuard配置中,主数据库与备用数据库各司其职,支持操作系统和硬件的维护操作通常需要计划内的角色转接,即“switchover”。而在非计划性的故障情况下,主数据库可快速恢复至任一备用数据库,这一...
在本文中,我们将探讨Oracle 9i DataGuard的原理、构建步骤、不同数据保护模式以及实施容灾的关键点。 1. Oracle 9i DataGuard的基本概念 Oracle DataGuard提供了多种保护模式,包括最大保护模式、最大性能模式和...
通过学习《Oracle9i数据库管理员指南》,不仅可以掌握Oracle 9i数据库的日常管理,还能提升在复杂环境中解决问题的能力,为企业的数据库运维工作提供坚实的技术保障。这本书是数据库管理员的必备参考资料,对于希望...
综上所述,Oracle 9i Data Guard的配置和管理是一个复杂的过程,需要精确的规划和操作,以确保在面临系统故障时,能快速有效地恢复服务,保护关键数据不受损失。在实际应用中,还需要根据具体业务需求和环境调整配置...
Oracle Dataguard 是 Oracle 数据库的一种高可用性解决方案,通过在备库(Standby)上维护一份主库(Primary)的副本,实现数据的实时同步和灾难恢复。本文将详细介绍 Oracle Dataguard 的实施步骤。 环境说明 在...
- 在配置过程中,应仔细检查参数设置,特别是与归档日志相关的参数,避免因配置不当导致数据丢失或服务中断。 通过以上步骤,可以在 Oracle 9i RAC 环境中成功安装和配置 Data Guard,提供更高水平的业务连续性和...
5 ADG BLOG_Oracle_lhr_一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg 6 ADG Creating Standby Database with Grid Control-15 7 ADG data-guard-far-sync 8 ADG DataGuard环境搭建详细...
然后,配置Oracle9i数据库的环境变量,这包括设置ORACLE_BASE、ORACLE_HOME、ORACLE_SID等参数。此外,还需要安装Oracle数据库软件,并在主数据库上创建数据库,选择相应的字符集,并备份主库的控制文件和其他重要...
Oracle 9i还支持多种可选组件,如实时应用集群(Real Application Clusters)、智能代理(DBSNMP)、数据守护(DataGuard)等,这些组件提供了高可用性、故障恢复和性能优化等功能。 总结而言,Oracle 9i架构通过...
在Data Guard 10g中,引入了一些新特性,如自动化的在线重配置,使得在不中断服务的情况下,可以调整数据库的保护模式。此外,还支持滚动升级,即在不中断服务的前提下升级数据库软件。快速恢复区(Flashback and ...