当前位置: 首页 > wzjs >正文

wordpress模板主题关键词优化是什么

wordpress模板主题,关键词优化是什么,重庆网址大全,做电影网站哪个系统好1 需求 主库和DG都是RAC.客户端通过pri_service连接到主库。(连接到DG做查询的类似) 当主备切换时,pri_service自动在新的主库启动, 客户端不需要改动,自动重联到新的主库的pri_service 。 在11.2可以实现自动根据da…

1 需求

主库和DG都是RAC.客户端通过pri_service连接到主库。(连接到DG做查询的类似)
当主备切换时,pri_service自动在新的主库启动, 客户端不需要改动,自动重联到新的主库的pri_service 。

在11.2可以实现自动根据database role启动定义的服务。( -l PRIMARY 指定只有在primary时才启动这个服务) 但是这需要使用dg broker 才能实现自动启动。如果没有使用dg broker,只能用以前版本的方法,数据库触发器。

本文介绍使用数据库触发器实现在11g随着DG Role切换自动启动相应的service.

2 环境

2.1客户端配置的连接符

  • failover = ON 当发生dg切换时, 旧的主库没有pri_service服务,尝试第二个IP,即新主库的SCAN IP。
  • load_balance=OFF, 只有主库运行pri_service,所以不能在2个RAC之间 load balance.
    必须为OFF.
pri =(DESCRIPTION =(ADDRESS_LIST =(FAILOVER = ON)(LOAD_BALANCE = OFF)(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.78)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.205)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = pri_service)))

2.2 设置

在这里插入图片描述

3 参考文档:

How To Configure Client Failover For Data Guard Connections Using Database Services (Doc ID 1429223.1)

How to create a RAC Database Service With Physical Standby Role Option? (Doc ID 1129143.1)

https://www.oracle.com/technetwork/database/features/availability/maa-wp-11gr2-client-failover-173305.pdf

4 在主rac设置pri_service

命令

srvctl add service -d ctp -s pri_service -l PRIMARY -e SESSION -m BASIC -w 10 -z 10 -r 'ctp1,ctp2'
srvctl start service -d ctp -s pri_service
srvctl status service -d ctp -s pri_service
srvctl stop database -d ctp  
srvctl start database -d ctp 
srvctl status service -d ctp -s pri_service

输出

[oracle@rac1 trace]$ srvctl add service -d ctp -s pri_service -l PRIMARY -e SESSION -m BASIC -w 10 -z 10 -r 'ctp1,ctp2'
[oracle@rac1 trace]$ srvctl start service -d ctp -s pri_service
[oracle@rac1 trace]$ srvctl status service -d ctp -s pri_service
Service pri_service is running on instance(s) ctp1,ctp2
[oracle@rac1 trace]$ srvctl stop database -d ctp
[oracle@rac1 trace]$ srvctl start database -d ctp
[oracle@rac1 trace]$ srvctl status service -d ctp -s pri_service
Service pri_service is running on instance(s) ctp1,ctp2  # primary role, so this pri_service is started with database.
[oracle@rac1 trace]$

5 在DG添加 pri_service

命令

srvctl add service -d ctpdgrac -s pri_service -l PRIMARY -e SESSION -m BASIC -w 10 -z 10 -r 'ctp1,ctp2'

输出

oracle@rac1-target ~ $ srvctl add service -d ctpdgrac -s pri_service -l PRIMARY -e SESSION -m BASIC -w 10 -z 10 -r 'ctp1,ctp2'
oracle@rac1-target ~ $

6 在主RAC添加sby_service

命令

srvctl add service -d ctp -s sby_service -l physical_standby  -e SESSION -m BASIC -w 10 -z 10 -r "ctp1,ctp2"
srvctl start service -d ctp -s sby_service
srvctl status service -d ctp -s sby_service
srvctl stop service -d ctp 
srvctl status service -d ctp -s sby_service
srvctl stop database -d ctp
srvctl start database -d ctp
srvctl status service -d ctp -s sby_service

输出

[oracle@rac1 trace]$ srvctl add service -d ctp -s sby_service -l physical_standby  -e SESSION -m BASIC -w 10 -z 10 -r "ctp1,ctp2"
[oracle@rac1 trace]$ srvctl start service -d ctp -s sby_service
[oracle@rac1 trace]$ srvctl status service -d ctp -s sby_service
Service sby_service is running on instance(s) ctp1,ctp2
[oracle@rac1 trace]$  srvctl stop service -d ctp
[oracle@rac1 trace]$  srvctl status service -d ctp -s sby_service
Service sby_service is not running.
[oracle@rac1 trace]$  srvctl stop database -d ctp
[oracle@rac1 trace]$  srvctl start database -d ctp
[oracle@rac1 trace]$ srvctl status service -d ctp -s sby_service
Service sby_service is not running. # primary database, so dby_service is not started with database.
[oracle@rac1 trace]$

7 主库建立trigger

命令

CREATE OR REPLACE TRIGGER startDgServices after startup on database
DECLAREdb_role VARCHAR(30);db_open_mode VARCHAR(30);
BEGINSELECT DATABASE_ROLE, OPEN_MODE INTO db_role, db_open_mode FROM V$DATABASE;IF db_role = 'PRIMARY' THEN DBMS_SERVICE.START_SERVICE('pri_service'); END IF;IF db_role = 'PHYSICAL STANDBY' AND db_open_mode LIKE 'READ ONLY%' THEN DBMS_SERVICE.START_SERVICE('sby_service'); END IF;
END;
/

8 主库切换日志

检查当前DG库实时apply

可以检查备库apply的instance. 看到如下内容,说明在实时同步:

Recovery of Online Redo Log: Thread 2 Group 6 Seq 129 Reading mem 0Mem# 0: +DATADG/ctpdgrac/onlinelog/group_6.759.1200613107
Media Recovery Waiting for thread 1 sequence 483 (in transit)
Recovery of Online Redo Log: Thread 1 Group 7 Seq 483 Reading mem 0Mem# 0: +DATADG/ctpdgrac/onlinelog/group_7.761.1200613109

然后主库切换日志,把建立的service, trigger传导DG库。

alter system archive log current;
alter system archive log current;

输出

SYS@ctp1>alter system archive log current;System altered.SYS@ctp1>alter system archive log current;System altered.SYS@ctp1>

9 在DG库建sby_service

在主库日志传到dg并apply后,可以在dg添加sby_service

srvctl add service -d ctpdgrac -s sby_service -l physical_standby -e SESSION -m BASIC -w 10 -z 10 -r "ctp1,ctp2"
srvctl start service -d ctpdgrac -s sby_service
srvctl status service -d ctpdgrac -s sby_service
#restart db the sby_service should start automatically.
srvctl stop database -d ctpdgrac
srvctl start database -d ctpdgrac
srvctl status service -d ctpdgrac -s sby_service 
#sby_service should be started automatically with database.

输出

oracle@rac1-target ~ $ srvctl add service -d ctpdgrac -s sby_service -l physical_standby -e SESSION -m BASIC -w 10 -z 10 -r "ctp1,ctp2"
oracle@rac1-target ~ $  srvctl start service -d ctpdgrac -s sby_service
oracle@rac1-target ~ $  srvctl status service -d ctpdgrac -s sby_service
Service sby_service is running on instance(s) ctp1,ctp2
oracle@rac1-target ~ $  srvctl stop database -d ctpdgrac
oracle@rac1-target ~ $  srvctl start database -d ctpdgrac
oracle@rac1-target ~ $ srvctl status service -d ctpdgrac -s sby_service
Service sby_service is running on instance(s) ctp1,ctp2  -- sby_service is automatically started with database.
oracle@rac1-target ~ $

10 关闭其它instance

主库只保留instance 1, 其它instance都关闭。

dg库只保留instance 1, 其它instance都关闭。

用sqlplus关闭其它instance 或者 srvctl

--with sqlplus
shut  immediate;
-- with srvctl
srvctl stop instance -d ctp -i ctp2
srvctl stop instance -d ctpdgrac -i ctp2

输出

--primary RAC ctp2SYS@ctp2>shut immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@ctp2>--DG RAC ctp2SYS@ctp2>shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@ctp2>

11 切换

主库切换为DG

set linesize 200
select name,database_role,switchover_status from v$database;
--返回switchover_status值为 TO STANDBY or SESSIONS ACTIVE,可以进行转换
alter database commit to switchover to physical standby with session shutdown;
srvctl stop database -d ctp
srvctl start database -d ctp
srvctl status service -d ctp
用srvctl重启数据库后,触发器根据role启动相应的service.

输出

[oracle@rac1 scripts]$ srvctl stop instance -d ctp -i ctp2
[oracle@rac1 scripts]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Wed May 21 22:39:51 2025Copyright (c) 1982, 2013, Oracle.  All rights reserved.Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing optionsUSERNAME             INST_NAME            HOST_NAME                  I# SID   SERIAL#  VERSION    STARTED  SPID       OPID  CPID            SADDR            PADDR
-------------------- -------------------- ------------------------- --- ----- -------- ---------- -------- ---------- ----- --------------- ---------------- ----------------
SYS                  ctp1                 rac1                        1 60    97       11.2.0.4.0 20250521 23983      54    23982           000000008F79B768 000000008F4DCDC8SYS@ctp1>set linesize 200
select name,database_role,switchover_status from v$database;
--返回switchover_status值为 TO STANDBY or SESSIONS ACTIVE,可以进行转换
alter database commit to switchover to physical standby with session shutdown;SYS@ctp1>
NAME      DATABASE_ROLE    SWITCHOVER_STATUS
--------- ---------------- --------------------
CTP       PRIMARY          FAILED DESTINATIONSYS@ctp1>SYS@ctp1>Database altered.SYS@ctp1>
SYS@ctp1>
SYS@ctp1>
SYS@ctp1>
SYS@ctp1>exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
[oracle@rac1 scripts]$ srvctl stop database -d ctp
PRCC-1016 : ctp was already stopped
[oracle@rac1 scripts]$ srvctl start database -d ctp
[oracle@rac1 scripts]$ srvctl status database -d ctp
Instance ctp1 is running on node rac1
Instance ctp2 is running on node rac2
[oracle@rac1 scripts]$ srvctl status service -d ctp
Service pri_service is not running.
Service sby_service is running on instance(s) ctp1,ctp2
Service testlb is not running.
[oracle@rac1 scripts]$

可以看到新的DG库启动了sby_service.

DG切换为主库

如果当前dg不在apply,需要先开启apply, 追平后再cancel

SQL> recover managed standby database using current logfile disconnect;
Media recovery complete.
SQL> recover managed standby database cancel;
Media recovery complete.
set linesize 200
select name,open_mode,database_role,switchover_status from v$database;
alter database commit to switchover to primary with session shutdown ;
alter database open;
srvctl stop database -d ctpdgrac
srvctl start database -d ctpdgrac
srvctl status service -d ctpdgrac
用srvctl重启数据库后,触发器根据role启动相应的service.

输出

oracle@rac1-target ~/scripts $ srvctl stop instance -d ctpdgrac -i ctp2
oracle@rac1-target ~/scripts $ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Wed May 21 22:41:05 2025Copyright (c) 1982, 2013, Oracle.  All rights reserved.Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing optionsUSERNAME             INST_NAME            HOST_NAME                  I# SID   SERIAL#  VERSION    STARTED  SPID       OPID  CPID            SADDR            PADDR
-------------------- -------------------- ------------------------- --- ----- -------- ---------- -------- ---------- ----- --------------- ---------------- ----------------
SYS                  ctp1                 rac1                        1 51    17       11.2.0.4.0 20250521 30228      32    30227           000000008F7B6F48 000000008F4C5DF8SQL> set linesize 200
select name,open_mode,database_role,switchover_status from v$database;SQL>NAME                        OPEN_MODE                                                    DATABASE_ROLE                                    SWITCHOVER_STATUS
--------------------------- ------------------------------------------------------------ ------------------------------------------------ ------------------------------------------------------------
CTP                         READ ONLY                                                    PHYSICAL STANDBY                                 NOT ALLOWEDSQL> recover managed standby database using current logfile disconnect;
Media recovery complete.
SQL> recover managed standby database cancel;
Media recovery complete.
SQL> set linesize 200
select name,open_mode,database_role,switchover_status from v$database;SQL>NAME                        OPEN_MODE                                                    DATABASE_ROLE                                    SWITCHOVER_STATUS
--------------------------- ------------------------------------------------------------ ------------------------------------------------ ------------------------------------------------------------
CTP                         READ ONLY                                                    PHYSICAL STANDBY                                 TO PRIMARYSQL> alter database commit to switchover to primary with session shutdown ;Database altered.SQL> alter database open;Database altered.SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
oracle@rac1-target ~/scripts $ srvctl stop database -d ctpdgrac
oracle@rac1-target ~/scripts $ srvctl start database -d ctpdgrac
oracle@rac1-target ~/scripts $ srvctl status database -d ctpdgrac
Instance ctp1 is running on node rac1
Instance ctp2 is running on node rac2
oracle@rac1-target ~/scripts $ srvctl status service -d ctpdgrac
Service pri_service is running on instance(s) ctp1,ctp2
Service sby_service is not running.
oracle@rac1-target ~/scripts $

可以看到新的主库启动了pri_service.

12 其它

客户端

在切换后,客户端连接会断开。重连时连接到新的主库。

删除service

oracle@rac1-target /u01/app/oracle/product/11.2.0/dbhome_1/dbs $ srvctl remove service -s pri_service -d ctpdgrac
oracle@rac1-target /u01/app/oracle/product/11.2.0/dbhome_1/dbs $ srvctl remove service -s sby_service -d ctpdgrac[oracle@rac1 admin]$ srvctl remove service -s pri_service -d ctp
[oracle@rac1 admin]$ srvctl remove service -s sby_service -d ctp
http://www.dtcms.com/wzjs/85293.html

相关文章:

  • 手机网站设计知识潍坊网站建设优化
  • 钟表网站开发背景文章全球搜索引擎网站
  • 怎么自己做充值网站优化软件下载
  • 厦门网站优化公司郑州网络seo公司
  • 塘厦仿做网站营销推广48个方法
  • 做视频网站带宽外贸网站推广平台有哪些
  • 企业网站如何做网警备案江苏seo技术教程
  • 秦淮做网站价格百度搜索图片
  • 教做奥数的网站商品关键词举例
  • 公司网站的具体步骤必应收录提交入口
  • ppt做网站百度识图识别
  • tp5网站文档归档怎么做怎么推广公司网站
  • 下沙做网站公司软文怎么写
  • 重庆网站设计制造厂家百度客户端手机版
  • 上海专业网站建设 公司旺道seo优化
  • 佛山建设局网站网络营销的seo是做什么的
  • 手机网站报名链接怎么做软件定制开发
  • 网站标题名字和备案名字谷歌浏览器手机版下载
  • 遵义做网站的公司网络销售好不好做
  • django做网站快吗电商广告网络推广
  • 抖音代运营一般几个周期四川seo快速排名
  • 网店推广计划怎么写免费的seo报价单
  • 珠海网站建设公司排名投资网站建设方案
  • 临泉做网站常州百度关键词优化
  • 做医院健康专题网站惠州seo怎么做
  • 彩票站自己做网站镇江seo快速排名
  • 张浦专业做网站网络推广营销
  • 黄图网站有哪些 推荐seo引擎优化专员
  • 做网站好的网络公司站长工具四叶草
  • wordpress弄个人博客好哪里有整站优化