OCP-042之:Oracle网络服务

2. Oracle网络服务

2.1 默认监听进程

如果客户端想要连接数据库并管理数据库,需要在服务器端开启监听服务,默认监听的进程LISTENER:

[oracle@ora-server ~]$ cd $ORACLE_HOME/network/admin
[oracle@ora-server admin]$ ll
total 16
-rw-r-----. 1 oracle oinstall  334 Nov 16 16:16 listener.ora
drwxr-xr-x. 2 oracle oinstall   64 Nov 15 15:17 samples
-rw-r--r--. 1 oracle oinstall 1441 Aug 28  2015 shrept.lst
-rw-r-----. 1 oracle oinstall  198 Nov 16 16:16 sqlnet.ora
-rw-r-----. 1 oracle oinstall  406 Nov 16 16:18 tnsnames.ora

[oracle@ora-server admin]$ vim listener.ora 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-server)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

默认监听进程的管理

[oracle@ora-server admin]$ lsnrctl status	

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 18-NOV-2022 15:16:03

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora-server)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                17-NOV-2022 09:30:59
Uptime                    1 days 5 hr. 45 min. 4 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/ora-server/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-server)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=ora-server)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/orcl/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

[oracle@ora-server admin]$ lsnrctl stop

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 18-NOV-2022 15:16:59

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora-server)(PORT=1521)))
The command completed successfully
[oracle@ora-server admin]$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 18-NOV-2022 15:17:05

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora-server)(PORT=1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 2: No such file or directory

[oracle@ora-server admin]$ lsnrctl start

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 18-NOV-2022 15:17:19

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Starting /u01/app/oracle/product/12.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 12.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/ora-server/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-server)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora-server)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                18-NOV-2022 15:17:19
Uptime                    0 days 0 hr. 0 min. 1 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/ora-server/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-server)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully

web监控页面登陆:

先安装Flash插件,然后使用浏览器输入https://192.168.100.19:5500/em

在这里插入图片描述
在这里插入图片描述

Oracle SQL Developer数据库连接:

在这里插入图片描述

2.2 自定义监听进程

我们要连接Oracle数据库,需要知道三要素:服务器IP、端口号和库名

通常的做法是,不使用默认的监听进程,而创建一个自定义进程,然后把数据库指定给这个进程,这样可以实现不同的库使用不同的监听进程

  1. 通过修改配置的方式创建进程:
[oracle@ora-server admin]$ vim listener.ora 

# 定义监听进程
L1 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.19.130)(PORT = 10000))
    )
  )

# 定义数据库映射
SID_LIST_L1 =
   (SID_LIST =
      (SID_DESC =
         (GLOBAL_DBNAME = orcl)
         (ORACLE_HOME = /u01/app/oracle/product/12.2.0/db_1)
         (SID_NAME = orcl)
      )
   )

[oracle@ora-server admin]$ lsnrctl start L1

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 18-NOV-2022 15:20:39

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Starting /u01/app/oracle/product/12.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 12.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/ora-server/l1/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.19.130)(PORT=10000)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC10000)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.19.130)(PORT=10000)))
STATUS of the LISTENER
------------------------
Alias                     L1
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                18-NOV-2022 15:20:39
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/ora-server/l1/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.19.130)(PORT=10000)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC10000)))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

  1. 通过图形化添加

通过Oracle登陆操作系统图形化界面,调出终端,输入netca,进入导航

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

完成后系统会直接将监听进程启动起来

Oracle Net Services Configuration:
Configuring Listener:L2
Listener configuration complete.
Oracle Net Listener Startup:
    Running Listener Control: 
      /u01/app/oracle/product/12.2.0/db_1/bin/lsnrctl start L2
    Listener Control complete.
    Listener started successfully.
Oracle Net Services configuration successful. The exit code is 0

在终端中输入netmgr,然后根据向导添加监听进程关联的数据库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 16
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
", &tol); // allocate memory for solution ocp_nlp_out* out = ocp_nlp_out_create(solver_caps你可以使用 awk 命令来计算两个日期时间之间的时间差。 假设你有两个日期时间字符串 "ule->dims); ocp_nlp_solver_memory* solver_mem = ocp_nlp_solver_memory_create(solver_capsule->dims); 2023-05-29 15:22:10.845" 和 "2023-05-30 15:12:11 // set up simulation loop int sim_time = 1000; double x_current[NX]; double u_current[NU.747",你可以使用以下 awk 命令计算它们之间的时间差: ``` awk 'BEGIN { start]; double x_reference[NX]; double u_reference[NU]; double x_traj[(NN+1)*NX]; double u = mktime("2023 05 29 15 22 10.845"); end = mktime("2023 05 30_traj[NN*NU]; double t_current = 0.0; double t_next; // run simulation loop for 15 12 11.747"); diff = end - start; days = int(diff / 86400); hours = int((diff % 86400) / 3600); minutes = int((diff % 3600) / 60); (int i = 0; i < sim_time; i++) { // get current state for (int j = seconds = diff % 60; printf("Time difference: %d days %02d:%02d:%02d\n", days,0; j < NX; j++) { x_current[j] = ocp_nlp_out_get(out, i, "x", hours, minutes, seconds); }' ``` 这个命令将会输出 "Time difference: 1 days 23:50:00 j); } // calculate reference trajectory t_next = t_current + T; x_reference[0] = cos(",表示两个日期时间之间相差了 1 天 23 小时 50 分钟 0 秒。 解释2*PI*t_next); x_reference[1] = sin(2*PI*t_next); x_reference[2] = -一下这个命令: - `mktime("2023 05 29 15 22 10.845")` 和2*PI*sin(2*PI*t_next); x_reference[3] = 2*PI*cos(2*PI*t_next `mktime("2023 05 30 15 12 11.747")` 用于将日期时间字符串转换); // update reference trajectory for (int j = 0; j < NN; j++) { for (int k为秒数。 - `end - start` 用于计算两个日期时间之间的时间差(单位为秒) = 0; k < NX; k++) { x_traj[j*NX+k] = ocp_nlp_out_get(out,。 - `int(diff / 86400)` 用于计算时间差中包含的天数。 - `int((diff j+i, "x", k); } for (int k = 0; k < NU; k++) { u % 86400) / 3600)` 用于计算时间差中不足一天的小时数。 - `int_traj[j*NU+k] = ocp_nlp_out_get(out, j+i, "u", k); } } for((diff % 3600) / 60)` 用于计算时间差中不足一小时的分钟数。 - `diff % 60` 用于计算时间差中不足一分钟的秒数。 - `printf("Time difference: % (int j = 0; j < NX; j++) { x_traj[NN*NX+j] = x_reference[j]; d days %02d:%02d:%02d\n", days, hours, minutes, seconds)` 用于输出时间差。 你 } // update solver parameters status = ocp_nlp_solver_set_parameter(solver_capsule, "x0", x可以根据自己的需求修改日期时间字符串和输出格式。如果你想计算更为复杂的时间差,_current); status = ocp_nlp_solver_set_parameter(solver_capsule, "p", u_reference); status = ocp_n比如跨越多个月或多年的时间差,可以使用更为高级的方式来处理日期时间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-风中叮铃-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值