标签云
asm恢复 asm 恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 kfed MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-01110 ORA-01555 ORA-01578 ORA-08103 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (101)
- 数据库 (1,629)
- DB2 (22)
- MySQL (71)
- Oracle (1,493)
- Data Guard (50)
- EXADATA (8)
- GoldenGate (21)
- ORA-xxxxx (158)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (13)
- ORACLE 21C (3)
- Oracle 23ai (3)
- Oracle ASM (65)
- Oracle Bug (7)
- Oracle RAC (48)
- Oracle 安全 (6)
- Oracle 开发 (27)
- Oracle 监听 (27)
- Oracle备份恢复 (545)
- Oracle安装升级 (89)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (75)
- PostgreSQL (18)
- PostgreSQL恢复 (6)
- SQL Server (27)
- SQL Server恢复 (8)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (37)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (20)
-
最近发表
- oracle 23ai(23.5.0.24.07)完整功能版安装体验
- win平台安装oracle遭遇INS-30131处理
- 配置win环境ssh和sftp并实现免密登录
- 11.2.0.4最新psu-202407
- Oracle 19c 2024.07补丁(RUs+OJVM)
- ORA-00756 ORA-10567故障处理
- ORA-01092 ORA-00604 ORA-08103故障处理
- 数据库启动报ORA-600 6711故障分析处理
- RMAN SBT_TAPE备份无法被DISK通道识别
- ORA-27154 ORA-27300 ORA-27301 ORA-27302故障处理
- Patch SCN工具for Linux
- awr创建snapshot等待library cache: mutex X
- exadata换flash卡的一些操作
- RMAN-06207 RMAN-06208报错解决
- RAC主机相差超过10分钟导致crs无法启动
- O/S-Error: (OS 23) 数据错误(循环冗余检查)—故障处理
- 异常断电数据库恢复-从ORA-600 2131到ORA-08102: 未找到索引关键字, 对象号 39
- 数据泵迁移Wrapped PLSQL之后报PLS-00753
- 数据库open报ORA-600 kcratr_scan_lastbwr故障处理
- resetlogs强制拉库失败并使用备份system文件还原数据库故障处理
分类目录归档:Data Guard
WINDOWS 下用dg broker搭建ADG(单机to单机)
环境
#主备库 C:\Windows\System32\drivers\etc\hosts 文件 192.168.11.10 dg1 192.168.11.11 dg2 #环境 主库主机名:dg1 现有实例orcl 备库主机名:dg2 只安装软件
一,主库配置
–主库设置强制日志,保证所有的操作都记录到日志文件
–查看当前force\_logging的设置
#主库如果已开启归档,不需要停机 sqlplus / as sysdba select force_logging from v$database; select flashback_on from v$database; alter database force logging; -- 开启强制日志模式 ####################################################### #如果没开归档 sqlplus / as sysdba shudown immediate; startup mount; alter database archivelog; -- 开启归档模式 alter database force logging; -- 开启强制日志模式 #alter database flashback on; -- 开启闪回,不是必须,推荐开启 ####################################################### #主库添加standby日志组 #查看日志文件大小 select bytes/1024/1024 from v$log;这里是50M alter database add standby logfile group 10 ('D:\app\Administrator\oradata\orcl\standby_redo01.log') size 50m; alter database add standby logfile group 11 ('D:\app\Administrator\oradata\orcl\standby_redo02.log') size 50m; alter database add standby logfile group 12 ('D:\app\Administrator\oradata\orcl\standby_redo03.log') size 50m; alter database add standby logfile group 13 ('D:\app\Administrator\oradata\orcl\standby_redo04.log') size 50m; ######################################################## #设置文件管理自动 alter system set standby_file_management=auto;
二、主备库网络设置
#主库listener.ora SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1) (SID_NAME = orcl) ) (SID_DESC = (GLOBAL_DBNAME = orcl_DGMGRL) #用于dg broker的静态监听 (ORACLE_HOME = D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1) (SID_NAME = orcl) ) ) LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dg1)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) #主库tnsnames.ora ORCL_STBY = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dg2)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dg1)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) #备库listener.ora SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1) (SID_NAME = orcl) ) (SID_DESC = (GLOBAL_DBNAME = orcl_stby_DGMGRL) #用于dg broker的静态监听 (ORACLE_HOME = D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1) (SID_NAME = orcl) ) ) LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dg2)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) #备库tnsnames.ora ORCL_STBY = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dg2)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dg1)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) #主库监听reload lsnrctl reload #备库启动监听 lsnrctl start
三、备库配置
#创建一个临时参数文件如d:\pfile.txt内容如下 *.db_name='orcl' #创建密码文件,或者从主库拷贝一个 orapwd file=D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\database\PWDorcl.ora password=oracle entries=10 #创建备库所需目录 mkdir D:\app\Administrator\oradata\orcl\ mkdir D:\app\Administrator\admin\orcl\adump\ mkdir D:\app\Administrator\fast_recovery_area\orcl\ #用ORADIM创建实例 oradim -new -sid orcl #用临时参数文件启动 sqlplus / as sysdba starup nomount pfile='d:\pfile.txt';
四、RMAN duplicate创建备库
#tnsping测试互通性 tnsping orcl tnsping orcl_stby #主库连接备库 sqlplus sys/oracle@stddb as sysdba #备库连接主库 sqlplus sys/oracle@orcl as sysdba ######################################################### #备库执行,连接主备库 rman target sys/oracle@orcl auxilary sys/oracle@orcl_stby #创建dg备库,这里假设主备库路径相同 duplicate target database for standby from active database dorecover spfile set db_unique_name='orcl_stby' nofilenamecheck; ######################################################### #如果主备库路径不同 duplicate target database for standby from active database dorecover spfile set db_unique_name='orcl_stby' set db_file_name_convert='orcl','orcl_stby' set log_file_name_convert='orcl','orcl_stby' set job_queue_processes='0' nofilenamecheck; #开启ADG sqlplus / as sysdba alter database open read only; alter database recover managed standby database disconnect from session;
五、配置DG BROKER
#主备库两边执行 alter system set dg_broker_start=true; #主库连接dgmgrl dgmgrl sys/oracle@orcl #创建dg broker配置 create configuration dg_config as primary database is orcl connect identifier is orcl; #添加备库到配置文件 add database orcl_stby as connect identifier is orcl_stby; #启用配置 enable configuration; ############################################################################ #显示DG配置信息 show configuration show configuration verbose #显示主备库信息 show database orcl show database orcl_stby show database verbose orcl show database verbose orcl_stby
六、一些测试
#测试Database Switchover dgmgrl sys/oracle@orcl switchover to orcl_stby; show configuration #切换回来 switchover to orcl; show configuration ########################################################################### #测试Database Failover,此时dg关系已经打破 dgmgrl sys/oracle@orcl failover to orcl_stby; #如果主库开启了flashback,执行以下语句自动重建主库 reinstate database orcl; #如果没有开启flashback,删除重建主库,重新建立dg关系 ############################################################################ #测试快照备库 dgmgrl sys/oracle@orcl convert database orcl_stby to snapshot standby; show configuration; #快照转成正常备库 convert database orcl_stby to physical standby; show configuration;
七、总结
优点在于除监听设置外主备库都不需要做过多的设置,备库临时参数文件只需要一个dbname,其余dg有关的参数dg broker会自动设置。
八、参考资料
ORACLE-BASE – Data Guard Physical Standby Setup Using the Data Guard Broker in Oracle Database 11g Release 2
发表在 Data Guard
评论关闭
ORA-16188: LOG_ARCHIVE_CONFIG settings inconsistent with previously started instance
客户反馈,rac有一个节点无法open(可以mount),在open过程报如下错误
alert日志内容中报错主要为:
ORA-16188: LOG_ARCHIVE_CONFIG settings inconsistent with previously started instance
Thu Feb 29 17:46:15 2024 Successful mount of redo thread 1, with mount id 354054158 Database mounted in Shared Mode (CLUSTER_DATABASE=TRUE) Lost write protection disabled Completed: ALTER DATABASE MOUNT /* db agent *//* {1:32636:2} */ ALTER DATABASE OPEN /* db agent *//* {1:32636:2} */ Picked broadcast on commit scheme to generate SCNs ARCH: STARTING ARCH PROCESSES Thu Feb 29 17:46:16 2024 ARC0 started with pid=39, OS id=15401176 ARC0: Archival started ARCH: STARTING ARCH PROCESSES COMPLETE ARC0: STARTING ARCH PROCESSES Thu Feb 29 17:46:18 2024 ARC1 started with pid=41, OS id=11993228 Thu Feb 29 17:46:18 2024 ARC2 started with pid=42, OS id=15007986 Thu Feb 29 17:46:18 2024 ARC3 started with pid=43, OS id=12779724 ARC1: Archival started ARC2: Archival started ARC1: Becoming the 'no FAL' ARCH ARC1: Becoming the 'no SRL' ARCH ARC2: Becoming the heartbeat ARCH WARNING: The 'LOG_ARCHIVE_CONFIG' init.ora parameter settings are inconsistent with another started instance. This may be caused by the 'DB_UNIQUE_NAME' init.ora parameter being specified differently on one or more of the other RAC instances; the DB_UNIQUE_NAME parameter value MUST be identical for all instances of the database. Errors in file /oracle/oracle/diag/rdbms/xff/xff1/trace/xff1_lgwr_12976288.trc: ORA-16188: LOG_ARCHIVE_CONFIG settings inconsistent with previously started instance LGWR (ospid: 12976288): terminating the instance due to error 16188 Thu Feb 29 17:46:18 2024 System state dump requested by(instance=1, osid=12976288 (LGWR)),summary=[abnormal instance termination]. System State dumped to trace file /oracle/oracle/diag/rdbms/xff/xff1/trace/xff1_diag_13041806.trc Thu Feb 29 17:46:18 2024 ORA-1092 : opitsk aborting process Thu Feb 29 17:46:19 2024 License high water mark = 1 Instance terminated by LGWR, pid = 12976288 USER (ospid: 15532254): terminating the instance Instance terminated by USER, pid = 15532254
检查LOG_ARCHIVE_CONFIG和DB_UNIQUE_NAME参数配置
SQL> select inst_id,value,name,length(value) from gv$parameter where name in ('log_archive_config','db_unique_name'); INST_ID VALUE NAME LENGTH(VALUE) ---------- ------------------------------ ------------------------------------- ------------- 2 log_archive_config 2 xff db_unique_name 8 1 log_archive_config 1 xff db_unique_name 8
设置尝试log_archive_config配置为”和reset 均数据库无法正常启动
SQL> alter system set log_archive_config='' sid='*'; 系统已更改。 SQL> alter system reset log_archive_config scope=both sid='*'; 系统已更改。
设置log_archive_config=NODG_CONFIG数据库启动成功
SQL> alter system set log_archive_config=NODG_CONFIG scope=both sid='*'; 系统已更改。 SQL> alter database open; 数据库已更改。 SQL> exit 从 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options 断开
Oracle 19C 备库DML重定向—DML Redirection
在19c之前,oracle Data Guard备用数据库上不能执行DML操作,但是,从19c开始备库就可以进行DML操作了;Active Data Guard备用数据库上运行DML操作,可以在备用数据库上运行只读应用程序,偶尔执行DML(太频繁影响主库性能),备库上的DML操作可以透明地重定向到主数据库并在主数据库上运行。也包括PL/SQL块中的DML语句。Active Data Guard会话将等待,直到将相应的更改发送到Active Data Guard备用数据库并将其应用于Active Data Guard备用数据库为止。在DML操作期间将保持读取一致性,并且运行DML的备用数据库可以查看其未提交的更改。但是,所有其他备用数据库实例只有在提交事务后才能查看这些更改。
在主库上创建测试表
SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- BANNER_FULL -------------------------------------------------------------------------------- BANNER_LEGACY -------------------------------------------------------------------------------- CON_ID ---------- Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.5.0.0.0 Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production 0 SQL> select database_role ,open_mode from v$database; DATABASE_ROLE OPEN_MODE ---------------- -------------------- PRIMARY READ WRITE SQL> create table system.t_xff as select * from dba_objects; Table created. SQL> select count(*) from system.t_xff; COUNT(*) ---------- 72407
在备库上进行dml操作
SQL> select database_role ,open_mode from v$database; DATABASE_ROLE OPEN_MODE ---------------- -------------------- PHYSICAL STANDBY READ ONLY WITH APPLY SQL> select count(*) from system.t_xff; COUNT(*) ---------- 72407 SQL> alter session enable adg_redirect_dml; Session altered. SQL> delete from system.t_xff; 72407 rows deleted. SQL> commit; Commit complete.
在主库上验证备库dml操作结果
SQL> select count(*) from system.t_xff; COUNT(*) ---------- 0 SQL>
在18c中可以通过_enable_proxy_adg_redirect隐含参数实现dml重定向