swingbench 数据生成器连接字符串

swingbench datagenerator connect string

我需要使用 swingbench to quantify performance of a given host. However since I am pretty new to Databases as such cannot get the datagenerator 程序连接到主机上 "opened" 的 Oracle 数据库实例。

在主机上安装 Oracle 12c(并与其一起创建数据库)后,我将启动数据库

由于初始化文件不存在,我第一次遇到启动数据库的问题。所以我必须从现有的 'spfile' 创建一个 'pfile',我发现它存在于 $ORACLE_HOME

SQL> CREATE PFILE = full path to init.ora FROM SPFILE = full path to existing spfile.ora;

之后,我启动了“装载”和“打开”数据库的数据库。

SQL> startup
ORACLE instance started.

Total System Global Area 2421825536 bytes
Fixed Size                  2291232 bytes
Variable Size             654313952 bytes
Database Buffers         1744830464 bytes
Redo Buffers               20389888 bytes
Database mounted.
Database opened.

我的数据库中的相关详细信息是:

SQL> SELECT sys_context('USERENV', 'SID') FROM DUAL;

SYS_CONTEXT('USERENV','SID')
--------------------------------------------------------------------------------
355

SQL>
SQL> select sys_context('userenv','instance_name') from dual;

SYS_CONTEXT('USERENV','INSTANCE_NAME')
--------------------------------------------------------------------------------
db1

SQL> select sys_context('userenv', 'server_host') from dual;

SYS_CONTEXT('USERENV','SERVER_HOST')
--------------------------------------------------------------------------------
oracle_12c

我的主机名是:

oracle_12c.localdomain

现在,当我尝试测试从数据生成器到此数据库的连接时(P.S。来自安装数据库的同一主机),我总是会收到错误消息。我尝试同时使用 service-name(或者它被称为 instance name??)以及 SID 连接方法描述 here。所以在尝试使用 'thin style service name syntax' 我的连接字符串是:

//oracle_12c.localdomain:1521/db1

我的错误是一个 IO 错误,说没有给出太多就无法建立连接。

我试过 'thin style SID syntax' 像这样:

//oracle_12c.localdomain:1521:355

这给了我一个类似的错误,但没有说明太多。

确切的错误是"Can't connect using parameters supplied : IO Error : Network adapter couldn't establish the connection"

有了这些细节,谁能帮我设计一个合适的连接字符串来与数据生成器一起使用?还有一个文件,我可以在主机上 tail -f 指出它到底在哪里失败?

此外,我认为 listener 不会出现在本地发起的请求中?真的吗?那么是不是说这样的请求不需要配置listerner.ora呢?

编辑:我的 Lister 配置文件是:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_12C.localdomain)(PORT = 1521))
    )
  )

SID_LIST_LISTENER=
  (SID_LIST=
       (SID_DESC=
         (GLOBAL_DBNAME=db1)
         (SID_NAME=db1)
         (ORACLE_HOME=/oracle/product/12.1.0/db_1)
       )
  )

所以现在在更新这个文件之后,我像这样启动我的监听器:

[oracle@oracle_12c db_1]$ lsnrctl start

LSNRCTL for Linux: Version 12.1.0.1.0 - Production on 06-APR-2017 04:31:38

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

Starting /oracle/product/12.1.0/db_1/bin/tnslsnr: please wait...

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.1.0 - Production
Start Date                06-APR-2017 04:31:39
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /oracle/product/12.1.0/db_1/network/admin/listener.ora
Listener Log File         /oracle/diag/tnslsnr/oracle_12c/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle_12c.localdomain)(PORT=1521)))
Services Summary...
Service "db1" has 1 instance(s).
  Instance "db1", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

现在至少看起来我来自 swingbench 的请求确实影响了我的数据库,因为现在我得到了一个不同的错误: ORA-01017: invalid username/password, logon denied

所以现在我将收到以下错误的用户的大小写从 SYS 更改为 sysORA-28009: Connection as SYS should be as SYSDBA or SYSOPER

我什至尝试将大小写设置为不敏感:

SQL> ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;
System altered.

但无济于事。 很想听

您必须为 swingbench 使用的 JDBC 瘦驱动程序配置一个 tcp 侦听器以连接到您的数据库。

在 listener.ora 中,您将需要这样的东西:

LISTENER = (ADDRESS_LIST= 
 (ADDRESS=(PROTOCOL=tcp)(HOST=yourhostname)(PORT=yourport))
) 

然后必须使用 lsnctrl 命令行启动侦听器。我假设您已经创建了一个服务,该服务将自动向侦听器注册。只有这样,您才能连接 swingbench。

然后您可以使用长格式连接字符串:

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yourhostname)(PORT=yourport))(CONNECT_DATA=(SERVICE_NAME=yourervice)))

也可以用sqlplus测试:

sqlplus 'scott/tiger@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yourhostname)(PORT=yourport))(CONNECT_DATA=(SERVICE_NAME=yourervice)))'