测试环境: OS:HPUNIX 11.11 Primary: IP:10.134.196.123 SID:orapri Hostname:MPEDB DB_UNIQUE_NAME:orapri DBNAME=oradata Database:10.2.0.5(64) OS:HPUNIX 11.11 Primary: IP:10.134.196.124 SID:orapri Hostname:MSEDB DB_UNIQUE_NAME:orastd DBNAME=oradata Database:10.2.0.5(64) 实施DG前的准备工作 装好备库数据库 建实例:(windows) oradim -new -sid 实例名 linux 直接export=实例名就OK 开启数据库logging及数据库archivelog 开启数据库logging select FORCE_LOGGING from v$database; SQL> alter database force logging; 检查数据库是否开启archivelog SQL> archive log list; 如果数据库未开启archivelog,则要开启archivelog SQL> shutdown immediate; SQL> startup mount; SQL> alter database archivelog; 检查数据库是否开启archivelog SQL> archive log list; standby端: export ORACLE_SID=orapri 修改或新增listener.ora 和tnsnames.ora(或者用GUI工具配置) 注意:listener.ora 中新增的部分在括号内而非括号外 primary端: listener.ora: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/oracle/production/10.2) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = orapri) (ORACLE_HOME = /u01/oracle/production/10.2) ) ) LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.134.196.123)(PORT = 1521)) ) tnsnames.ora orapri = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.134.196.123)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orapri) ) ) orastd = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.134.196.124)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orastd) ) ) standby端: listener.ora: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/oracle/production/10.2) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = orapri) (ORACLE_HOME = /u01/oracle/production/10.2) (SID_NAME = orapri) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = MSEDB)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) ) tnsnames.ora orapri = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.134.196.123)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orapri) ) ) orastd = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.134.196.124)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orapri) ) ) 具体实施DG的步骤: 在primary端修改相应参数 primary端: Oracle$sqlplus / as sysdba ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT='AUTO' scope=both; ALTER SYSTEM SET fal_server='orastd(網絡服務名)' scope=both; ALTER SYSTEM SET fal_client='orapri(網絡服務名)' scope=both; ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(orapri,orastd(是指數據庫的DB_UNIQUE_NAME))' scope=both; ALTER SYSTEM SET log_archive_dest_1='LOCATION=/data1/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orapri' scope=both; ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=orastd(網絡服務名) LGWR ASYNC=40960 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orastd' scope=both; ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1='ENABLE' scope=both; ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='ENABLE' scope=both; #ALTER SYSTEM SET standby_archive_dest='/data1/stdlog' scope=both;(11g不需要) 在primary上生成pfile,并修改添加相应参数,生成standby需要的pfile primary端: oracle$>sqlplus / as sysdba SQL> CREATE PFILE='/export/home/oracle/standby.ora' FROM SPFILE; 將生成的pfile拷贝到standby端 scp /u01/oracle/production/10.2/dbs/file.ora oracle@10.134.196.124:/u01/oracle/production/10.2/dbs/file.ora 對照编辑生成的pfile文件('/export/home/oracle/standby.ora'),更改添加如下参数: *.db_unique_name='orastd' *.fal_server='orapri' *.fal_client='orastd' *.log_archive_config='DG_CONFIG=(orapri,orastd)' *.log_archive_dest_1='LOCATION=/data1/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orastd' *.log_archive_dest_2='SERVICE=orapri LGWR ASYNC=40960 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orapri' *.LOG_ARCHIVE_DEST_STATE_1='ENABLE' *.LOG_ARCHIVE_DEST_STATE_2='ENABLE' *.standby_archive_dest='/data1/archstd' (備幾端路徑) *.standby_file_management='AUTO' 创建pfile中相应目录(根据具体情况,primary和standby端要一致) 創建數據文件需要的相應目錄(在主機數據庫中查看dba_data_files) 主機備份控制文件成standby類型,備份完copy到備機器 alter database create standby controlfile as '/data1/rmanbk/control01.ctl' reuse; 在primary端用命令创建数据库密码文件,并接拷贝至standby端相同路径下(如已存在,可直接拷贝) primary端手工创建数据库密码文件 orapwd file='$ORACLE_HOME/dbs/orapw$ORACLE_SID' password=system entries=10 force=y primary端拷贝数据库密码文件至standby端 scp $ORACLE_HOME/dbs/orapw$ORACLE_SID oracle@10.134.196.124:$ORACLE_HOME/dbs 在standby端使用pfile启动实例 oradim -new -sid orapri----windows上執行 export ORACLE_SID=orapri--linux執行 sqlplus / as sysdba或sqlplus sys/Foxconn99 as sysdba sqlplus / as sysdba startup nomount pfile='$ORACLE_HOME/dbs/file.ora'; CREATE SPFILE FROM PFILE='$ORACLE_HOME/dbs/file.ora'; 在primary端开始使用rman备份数据库 primary端: rman target / backup full format='/data1/rmanbk/ora10g_%d_%T_%s' database include current controlfile for standby plus archivelog format='/data1/rmanbk/arch_%d_%T_%s'; 备份完毕后,把相应备份文件拷贝到丛库的相应目录(目录必须一致) scp /data1/rmanbk/* oracle@10.134.196.124:/data1/rmanbk/ 还原standby数据库 primary端: rman target / auxiliary sys/system@orastd duplicate target database for standby nofilenamecheck dorecover;(此法一般不用) catalog start with '備份文件': #註冊備份(一般用這個) restore database; (這一步一般不做) //********** 收尾工作及开启dg standby端建立standby log(至少比redo多一组): sqlplus / as sysdba ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/data1/stdlog/stdredo01.log') size 50M; ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/data1/stdlog/stdredo02.log') size 50M; ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ('/data1/stdlog/stdredo03.log') size 50M; ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 ('/data1/stdlog/stdredo04.log') size 50M; ALTER DATABASE ADD STANDBY LOGFILE GROUP 8 ('/data1/stdlog/stdredo05.log') size 50M; ALTER DATABASE ADD STANDBY LOGFILE GROUP 9 ('/data1/stdlog/stdredo06.log') size 50M; ***************// (備庫應處於mount狀態) 开启服务(standby端): SQL> alter database recover managed standby database disconnect from session; 關閉服务(standby端): SQL> alter database recover managed standby database cancel; 测试服务是否正常 standby端(看归档日志号): SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; primary端(强制一个日志切换): SQL> alter system switch logfile; standby端(看归档日志号): SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; standby端(看应用归档日志的号): SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; 查看數據庫角色: select database_role from v$database; 查錯:select status,target,archiver,error,process from v$archive_dest; 实现primary、standby的切换: primary端: SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; primary端(上一步的结果必须是”TO STANDBY”才可以) SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY; OR(上一步结果为”SESSIONS ACTIVE”,且解决不掉) SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN; Primary端: SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; standby端: SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; standby端(上一步的结果必须是”TO STANDBY”才可以): SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY; OR(上一步结果为”SESSIONS ACTIVE”,且解决不掉) SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN; 打开新的primary: SQL>ALTER DATABASE OPEN; OR(最后一次启动后以read only模式打开过) SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP; 在新standby上重新启动log apply services(如果必要): SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE; OR(后台模式) SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT; OR(实时应用redo) SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE; 新primary端(开始发送redo 数据到新standby端): SQL> ALTER SYSTEM SWITCH LOGFILE; DG不能正常传archivelog 可能的原因及解决办法: 1,服务没开,重启服务; 2,主库密码变更,重新将主库密码文件copy到备库,重启备库; 3,监听问题
oracle DG案例测试
来源:这里教程网
时间:2026-03-03 17:21:20
作者:
编辑推荐:
- 数据迁移03-03
- oracle DG案例测试03-03
- oracle 9i 搭建DG03-03
- 备库删除日志脚本03-03
- [20211227]抽取跟踪文件中的绑定变量值.txt03-03
- oracle ocp 19c考题7,科目082考试题-listener tnsnames03-03
- 临时表空间ORA-1652问题解决03-03
- 【CORE】在UNIX环境下从核心文件获取堆栈信息03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 数据迁移
数据迁移
26-03-03 - 临时表空间ORA-1652问题解决
临时表空间ORA-1652问题解决
26-03-03 - 【CORE】在UNIX环境下从核心文件获取堆栈信息
【CORE】在UNIX环境下从核心文件获取堆栈信息
26-03-03 - 「Oracle」客户端 PL/SQL DEVELOPER 安装使用
「Oracle」客户端 PL/SQL DEVELOPER 安装使用
26-03-03 - Oracle的过载保护-数据库资源限制
Oracle的过载保护-数据库资源限制
26-03-03 - 「Oracle」数据库字符集编码修改
「Oracle」数据库字符集编码修改
26-03-03 - 连上无线网却不能上网?为你解答
连上无线网却不能上网?为你解答
26-03-03 - databas如何避免重复故障
databas如何避免重复故障
26-03-03 - database(Oracle MySQL)查询速度和数据量有关系吗?
database(Oracle MySQL)查询速度和数据量有关系吗?
26-03-03 - Oracle clone database
Oracle clone database
26-03-03
