oracle数据库中有2个实例,监听怎么配置

装修宝典06

oracle数据库中有2个实例,监听怎么配置,第1张

oracle数据库中有2个实例,监听怎么配置
导读:  环境 centos 54 + oracle 10g r2  已有实例 xxxio 和监听listener 端口1521  现又新建实例 xxxdb 监听名称listener02 端口 1522实现 listener02 只加载实例 x

  环境 centos 54 + oracle 10g r2

  已有实例 xxxio 和监听listener 端口1521

  现又新建实例 xxxdb 监听名称listener02 端口 1522实现 listener02 只加载实例 xxxdb

  1创建数据库 实例名xxxdb

  2netca 创建监听 listener02 端口1522

  3配置listenerora 如下

  # listenerora Network Configuration File: /u01/app/oracle/product/10g//network/admin/listenerora

  # Generated by Oracle configuration tools

  SID_LIST_LISTENER =

  (SID_LIST =

  (SID_DESC =

  (SID_NAME = xxxio)

  (ORACLE_HOME = /u01/app/oracle/product/10g/)(PROGRAM = extproc)

  )

  (SID_DESC =

  (SID_NAME = +A *** )

  (ORACLE_HOME = /u01/app/oracle/product/10g/))

  (SID_DESC =

  (SID_NAME = xxxdb)

  (ORACLE_HOME = /u01/app/oracle/product/10g/))

  )

  SID_LIST_LISTENER02 =

  (SID_LIST =

  (SID_DESC =

  (SID_NAME = xxxdb)

  (ORACLE_HOME = /u01/app/oracle/product/10g/))

  )

  LISTENER =

  (DESCRIPTION_LIST =

  (DESCRIPTION =

  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))(ADDRESS = (PROTOCOL = TCP)(HOST = 127001)(PORT = 1521)))

  )

  LISTENER02 =

  (DESCRIPTION_LIST =

  (DESCRIPTION =

  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2))(ADDRESS = (PROTOCOL = TCP)(HOST = 127001)(PORT = 1522)))

  )

  说明 : 自己在配置过程中也遇到了好多问题 ,最后通过查看资料和实际测试 证明上述的配置是正确的1首先用netca创建 listener02 后 会在配置文件listenerora中 生成如下的信息 。这说明一个监听创建成功。

  可以启动 、关闭 。但是没有加载实例。

  LISTENER02 =

  (DESCRIPTION_LIST =

  (DESCRIPTION =

  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2))(ADDRESS = (PROTOCOL = TCP)(HOST = 127001)(PORT = 1522)))

  )

  2在配置文件listenerora 中加入如下信息 ,才能将实例xxxdb 加载到监听 listener02中 实现 各尽其职SID_LIST_LISTENER02 = --这的命名是SID_LIST_监听名(SID_LIST =

  (SID_DESC =

  (SID_NAME = xxxdb)

  (ORACLE_HOME = /u01/app/oracle/product/10g/))

  )

教程: https://tutorialedgenet/python/python-socket-io-tutorial/

python-socketio 原文地址 ,在google浏览器中可以翻译为中文去使用。

首先要搞明白几个问题:

说明

1)之一种room是每一个单独的客户端都有的。(通过 session ID 可以找到)

2)第二种是应用程序自己创建的。

在下面这个 *** 中,如果省略掉room参数,将会自动发送给所有的连接了的客户端。

译文:

Python-socketio实现了一个Python SocketIO 服务,这个服务可以单独运行也可以综合于一个web项目中。下面是一些它的特征:

什么是SocketIO

SocketIO是一个基于事件的双向通讯的传输协议(一般是web浏览器),和一个服务端。原始的客户端和服务端组件实现是通过JavaScript写的。

入门指南

可以使用 pip 安装SocketIO:

下面是一个使用 aiohttp 框架(只支持Python 35+)实现异步IO的 SocketIO server 简单的例子:

下面是一个类似的例子,但是使用的Flask和Eventlet的例子,兼容Python27和33+:

客户端应用必须引入 socketio-client 库(135版本以及以上,越高越好)。

每次客户端连接到服务器的连接事件处理程序调用sid(会话ID)分配给连接和WSGI环境字典。

每次客户端连接到服务端的 conenct 事件都是由sid(session ID)分配到连接和WSGI环境字典调用的。服务端可以检查身份认证或者其他的头部信息去决定是否这个客户端允许被连接。要想拒绝一个客户端的连接,这个处理器必须返回 False 。

当客户端发送发送一个事件给服务端,相应的事件处理器会被 sid 和这个信息调用,可以是单个或者多个参数。这个应用可以定义尽量多的如果被需要的可以被事件处理器关联的事件。一个事件可以通过一个名称简单定义。

当一个客户端连接中断了, disconnect 事件就被调用,允许应用去执行清理工作。

服务端

SocketIO 服务端是 socketioServer 类的实例,他们可以被一个WSGI适用应用程序使用 socketioMiddleware 去合并:

使用 socketioServeron() *** 来注册服务端的事件处理器:

对于异步服务端来说,事件处理器可以是常规 *** ,或者是协程:

聊天室

因为SocketIO是一个双向的协议,服务端可以在任意时间发送消息给任意的连接到的客户端。为了让它方便去将客户端定位到组中,应用程序可以将客户端放入到聊天室中去,然后将消息定位到整个聊天室中。

当客户端之一次连接,他们是被分配到他们自己的聊天室中,这个聊天是是以session ID(sid 参数会传递给所有的事件处理器)命名的。应用可以通过 socketioServerenter_room() 和 socketioServerleave_room() 自由地去创建聊天室和管理客户端。客户端可以在尽量多的房间里,也可以根据需求尽量频繁地被拉入拉出聊天室。当他们的连接不在特别的时候,单独的聊天室将会分配给她它们,应用程序可以自由地增加和移除客户端从聊天室中,尽管它只要这样做就会失去定位独立客户端的能力。

socketioServeremit() *** 会获得一个事件名称,一个可能是 str , bytes , list , dict 或者 tuple 类型的消息载体。当发送一个 tuple ,在其中的元素必须是上面的其他类型。元组中的元素将会被传递给客户端的回调函数为多个参数。定位一个个人客户端,客户端的 sid 将会被给一个聊天室(假设这个应用没有修改这些初始的聊天室)。定位所有的连接的客户端们,这个聊天室参数将会被触发。

通常在聊天室中当广播一个消息到一个用户组的时候,发送者是否接受他自己的消息是可选的。 soicketioServeremit() *** 提供了一个可选的 skip_sid 参数去指定一个想在广播中跳过的客户端。

Response

当一个客户端发送一个事件给服务端,它可以选择提供一个回调 *** ,当服务端返回一个响应的时候会被触发。服务端可以便捷地从相应的事件处理器返回它从而提供一个响应。

事件处理器可以返回一个单独的值,一个带多个值的元组。这个在客户端的回调函数将会调用这些返回的值。

Callbacks

回调

服务端可以请求一个响应通过发送一个事件给客户端。 socketioServeremit() *** 有一个可选的 callback 参数能够被设置为可回调的。当这个参数被传递之后,当客户端返回相应的时候,这个可回调的 *** 将会被请求。

当广播给多个客户端的时候使用回调函数是不被推荐的,因为回调 *** 将会被只执行一次。

Namespace

命名空间

SocketIO 协议支持多个逻辑性连接,所有的多路复用都是在相同的物理连接上。客户端可以通过给每个连接指定不同的 namespace 从而开多个连接。一个命名空间是由 主机名+端口+路径名称构成的。比如,连接到 http://examplecom:8000/chat 将会开一个连接到命名空间 /chat 。

由于分离的不同的session ID( sid s),不同的事件处理器,不同的聊天室,每一个命名空间都是独立的。应用程序使用多个命名空间从而来区分命名空间,是非常重要的。可以参考 socketioServer 类。

当 namespace 参数被触发了,比如设置为 None 或者 / , 那么一个默认的命名空间将会被使用。

Class-Based Namespaces

作为一个基于装饰器的事件处理器的代替,这个属于一个命名空间事件处理器可以被创建为 socketioNamesapce 的子类:

对于基于异步io的服务端,域名空间必须继承与 socketioAsyncNamespace , 也可以定义普通的 *** 或者协程作为事件处理器:

当使用基于类的命名空间的时候,任何被服务端接受的事件将会被分派到一个被事件名称命名的 *** 中作为 *** 名称(with the on_pfrefix )。比如:事件 my_event 将会被一个名叫 on_my_event 的 *** 处理。

题主是否想询问“西门子触摸屏io域怎么显示北京时间”?

1、首先进入触摸屏设置界面。

2、进入停止运行系统功能,进入settings菜单。

3、最后进入datetime项目进行修改即可。

估计是数据库名称错了:jdbc:oracle:thin:@localhost:1521:myora1;myora1应该是数据库SID,查看当前数据库SID的 *** :select INSTANCE_NAME from v$instance; (使用system或sys用户查看)

cpu高估计还是sql语句有问题,我也是新手,转帖一个给你参考参考

1-- 检查系统

sar -u 5 5

2-- 看谁在用CPU

topas

ps -ef |grep ora #检查第四列,C的大小(unit,100 per cpu)

3-- 检查CPU数量

/usr/ *** in/bindprocessor -q

lsattr El proc0

4-- 2种可能:

1) A Background (instance) process

2) An oracle (user) process #此种可能更大。

5-- 如果是用户进程:那么高CPU的主要原因有:

Large Queries, Procedure compilation or execution, Space management and Sorting

51-- 查看每个Session的CPU利用情况:

select sssid, *** mand,ssvalue CPU ,seusername,seprogram from v$sesstat ss, v$session se where ssstatistic# in (select statistic# from v$statname where name = 'CPU used by this session') and sesid=sssid and sssid>6 order by sssid;

52-- 比较上述Session,看那个session的CPU使用时间最多,然后查看该Session的具体情况:

select ssid, wevent, wwait_time, wseq#, qsql_text from v$session_wait w, v$session s, v$process p, v$sqlarea q where spaddr=paddr and ssid=&p and ssql_address=qaddress;

53-- 得到上述信息后,查看相应操作是否有hash joins 和 full table scans。如果有hash joins 和 full table scans那么必须创建相应的Index或者检查Index是否有效。

另外必须检查是否有并行的查询存在和同一时刻有多个用户在执行相同的SQL语句,如果有必须关闭并行的查询和任何类型的并行提示(hints);如果查询使用intermedia数据,那么为了减少总的Index大小,必须限制使用Intermedia的Worldlist。(try restricting the wordlist that intermedia uses to help reduce the total indexsize)。

6-- 上述方案只能根据已经运行完成的操作,对于正在执行的长时间操作只能等操作完成后才能检测得到。因此我们可以通过另外一个很好的工具来检测正在运行的长时间操作语句。v$session_longops,这个视图显示那些操作正在被运行,或者已经完成。每个process完成后会刷新本视图的信息。

7-- 怎样寻找集中使用CPU的Process:

很多时候会发现有N个Process在平均分享着CPU的利用率,这种情况唯一的可能性就是这些Process在执行着相同的Package或者Query

这种情况:建议通过statspack,在CPU高利用率额时候运行几个快照,然后根据这些快照检查Statspack报告,检查报告中最TOP的 Query。然后使用 sql_trace and tkprof 工具去跟踪一下。同时检查buffer cache 的命中率是否大雨95%。

同时在报告中还需要检查一下table scans (long tables),看是否在报告生成期间有存在全表扫描。

8-- 另外还有一些不是特别重要的,但是也必须关心检查的参数可能消耗CPU。