oracle 10g dataguard 搭建
2016-03-22 11:34
513 查看
1、主库归档模式:
--两个库路径不同,需要这样定义来转换
4、创建pfile拷贝到备库使用
SQL> select log_mode from v$database; LOG_MODE ------------ ARCHIVELOG如果非归档,修改为归档模式
SQL> shutdown immediate SQL> startup mount; SQL> alter database archivelog; SQL> alter database open;2、允许强制日志
SQL> alter database force logging;3、修改主库参数
SQL> show parameter db_unique_name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_unique_name string test SQL> alter system set log_archive_config='dg_config=(test,std)'; SQL> show parameter log_archive_dest_1 SQL> alter system set log_archive_dest_1='location=/usr/oracle/oradata/test/archive/ valid_for=(all_logfiles,all_roles) db_unique_name=test'; SQL> show parameter log_archive_dest_1 SQL> alter system set log_archive_dest_2='service=std lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=std'; SQL> show parameter log_archive_dest_state_1 SQL> show parameter log_archive_dest_state_2 --enable SQL> alter system set fal_server=std; SQL> alter system set fal_client=test; SQL> alter system set DB_FILE_NAME_CONVERT='/usr/oracle/oradata/test/','/usr/oracle/oradata/std/' scope=spfile; SQL> alter system set LOG_FILE_NAME_CONVERT='/usr/oracle/oradata/test/','/usr/oracle/oradata/std/' scope=spfile;
--两个库路径不同,需要这样定义来转换
备库需要修改initstd.ora文件
DB_FILE_NAME_CONVERT='/usr/oracle/oradata/test/','/usr/oracle/oradata/std/' LOG_FILE_NAME_CONVERT='/usr/oracle/oradata/test/','/usr/oracle/oradata/std/'
4、创建pfile拷贝到备库使用
create pfile from spfile;5、主库备份
mkdir /usr/oracle/oracle_bak RMAN> backup format '/usr/oracle/oracle_bak/full_%U' database plus archivelog; --全备 RMAN> backup format '/usr/oracle/oracle_bak/con_%U' current controlfile for standby; --注意控制文件要加一个for standby,因为主库两边是不同的将备份文件拷贝到备库
复制密码文件:
scp oracle@192.168.137.81:/usr/oracle/product/10.2.0/dbs/orapwtest /usr/oracle/product/10.2.0/dbs/orapwstd复制参数文件:
scp oracle@192.168.137.81:/usr/oracle/product/10.2.0/dbs/inittest.ora /usr/oracle/product/10.2.0/dbs/initstd.ora复制备份文件:
scp oracle@192.168.137.81:/usr/oracle/oracle_bak/* /usr/oracle/oracle_bak/6、备库目录创建:
mkdir -p /usr/oracle/oradata/std/archive mkdir -p /usr/oracle/admin/std/{a,b,u,dp,c}dump8、监听、tnsnetcatnsping 192.168.137.81:3173tnsping 192.168.137.86:3173相互能够ping通创建tns(主库备库都增加)
test = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.137.81)(PORT = 3173)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = test) ) ) std = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.137.86)(PORT = 3173)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = std) ) )测试备库通过tns能链接到主库sqlplus sys/sys@test as sysdba如果修改端口,需要修改静态监听(主库、备库都需要修改):
alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.137.86)(PORT = 3173))';9、修改备库参数文件:std和test互换,注意:db_name不要改,和主库一样增加:db_unique_name='std'创建spfile
sqlplus / as sysdbaSQL*Plus: Release 10.2.0.4.0 - Production on 星期二 3月 22 06:45:03 2016Copyright (c) 1982, 2007, Oracle. All Rights Reserved.Connected to an idle instance.SQL> create spfile from pfile;File created.SQL> startup nomount10、连接到主库进行恢复rman连接备库
启动时,有几个参数报错,先从参数文件中将这几个参数去掉
[oracle@uoraclestd ~]$ rman target sys/sys@test auxiliary /Recovery Manager: Release 10.2.0.4.0 - Production on 星期二 3月 22 06:58:18 2016Copyright (c) 1982, 2007, Oracle. All rights reserved.connected to target database: TEST (DBID=2204597168)开始恢复(由于修改了路径,需要建立对应关系)
connected to auxiliary database: STD (not mounted)
run { set newname for datafile 1 to '/usr/oracle/oradata/std/system01.dbf'; set newname for datafile 2 to '/usr/oracle/oradata/std/undotbs01.dbf'; set newname for datafile 3 to '/usr/oracle/oradata/std/sysaux01.dbf'; set newname for datafile 4 to '/usr/oracle/oradata/std/users01.dbf'; set newname for tempfile 1 to '/usr/oracle/oradata/std/temp01.dbf'; duplicate target database for standby; }配置对应参数之后,可以直接
duplicate target database for standby;创建redo
SQL> alter system set standby_file_management=auto;
SQL> alter database add standby logfile group 4 '/usr/oracle/oradata/std/standbyredo4.log' size 50m;
SQL> alter database add standby logfile group 5 '/usr/oracle/oradata/std/standbyredo5.log' size 50m;
SQL> alter database add standby logfile group 6 '/usr/oracle/oradata/std/standbyredo6.log' size 50m;为了以后主库切换为备库,主库也同样创建,但需要注意,创建之前需要修改
standby_file_management=MANUAL11、应用日志
sqlplus / as sysdba SQL> recover managed standby database disconnect from session; Media recovery complete.12、验证日志传输
主库执行: SQL> alter system switch logfile; System altered. 备库执行: SQL> select name from v$archived_log; 检查新归档的重做日志文件已经应用(备库): SQL> select sequence#,applied from v$archived_log order by sequence#;13、问题排查1、检查归档目录
column DEST_NAME format a20 column status format a20 column error format a20 select DEST_NAME,status,error from v$archive_dest;2、rman 连接实例rman连接哪个实例,根据参数文件中的db_name连接,dataguard配置时,db_name都写的一样14、测试取消应用日志
recover managed standby database cancel;
相关文章推荐
- win7 64位下安装oracle 10g(10.2.1)切身体会,不需要安装oracle客户端,实现navicat和plsql连接数据库
- Oracle12c的数据库向11g导进的方法
- oracle的command_type
- Oracle -- Oracle存储过程学习笔记
- oracle sqlplus 连接时,connection to 显示的是问号
- Oracle EBS LOV速度优化
- 远程连接oracle数据库telnet 1521端口失败
- oracle union 用法总结
- ORACLE表锁定的解决办法
- Oracle 的自治事务 AUTONOMOUS TRANSACTION
- Oracle Purge和drop的区别
- 查看oracle数据库表空间
- node_oracle连接
- oracle 10g 安装
- 关于Oracle中的as和with as 的用法
- oracle11g 云迁移报错 ORA-01180: can not create datafile 1
- Oracle Library Cache
- Library cachelatches gone in Oracle 11g
- Settings for Oracle Library Cache Reload andLibrary Cache Hit Ratios
- understanding the Oracle Library Cache Pin WaitEvent