1 安装

有其他博主说:要使用jdk1.8,并把神通装在C盘,否则可能会有问题。
本人未亲测,留言以作示警。

1.1 前提

前提:系统已安装jdk,以防万一,配置上环境变量吧。否则报错如下图:

神通数据库工具链接时提示java not 神通数据库agent服务启动_java

1.2 安装

版本:v7.0

安装流程按照指引即可,此处只列重要步骤。

神通数据库工具链接时提示java not 神通数据库agent服务启动_建表_02


神通数据库工具链接时提示java not 神通数据库agent服务启动_建表_03


神通数据库工具链接时提示java not 神通数据库agent服务启动_表空间_04


神通数据库工具链接时提示java not 神通数据库agent服务启动_数据库_05

神通数据库工具链接时提示java not 神通数据库agent服务启动_java_06


使用默认数据库名和端口,其他信息也用默认的。

神通数据库工具链接时提示java not 神通数据库agent服务启动_服务器_07

按指引操作安装结束后,可以在服务里看到有两个服务:代理服务和OSRDB实例服务,第一次手动启动?。

神通数据库工具链接时提示java not 神通数据库agent服务启动_数据库_08

1.3 遇到的问题

  1. 【暂未解决】虚拟机安装神通最后一步报错,像是卸载程序没安装成功。不知道是不是因为这影响了服务的启动。
  2. 神通数据库工具链接时提示java not 神通数据库agent服务启动_建表_09

  3. 【暂未解决】神通数据库代理服务服务无法启动,报1053
  4. 神通数据库工具链接时提示java not 神通数据库agent服务启动_表空间_10

3.【已解决】 神通数据库OSRDB实例,启动后即停止
在查看了正常启动的服务,发现C:\shentong下共有36个文件,而不能正常启动的服务下,只有34个。
对比之下发现少了jre和license目录。

解决办法:拷贝安装包下的jre和license至安装目录C:\shentong下,重启虚拟机,会发现OSRDB实例自动启动了。

但无法解决神通代理服务的启动,代理服务起不来貌似没啥影响。。。

总结:应该是和license授权有关系,无license或license过期都无法启动吧。

试用版的license不知道有效期是多久,不知道卸载重装可不可以继续试用,有机会了再研究。

神通数据库工具链接时提示java not 神通数据库agent服务启动_java_11

2 建数据库实例

2.1 自带工具创建

建库前,需要先停掉其他正在运行的实例,例如默认OSRDB数据库。
以防万一,以管理员身份运行数据库配置工具。

创建NETSEAL_7数据库实例,创建完需要手动启动该实例。

每一个新创建的数据库实例,都有3个默认管理员,第一次登录一般用sysdba登录。登录后再创建用户,即可用新用户登录。

神通数据库工具链接时提示java not 神通数据库agent服务启动_java_12


填写数据库名、端口号

神通数据库工具链接时提示java not 神通数据库agent服务启动_建表_13

后续流程按照指引即可。

2.2 Dbeaver连接

神通数据库工具链接时提示java not 神通数据库agent服务启动_java_14

3 实地演练

3.1 sysdba用户SQL初测试

谁登录,表就会建到谁下。所以不建议sysdba登录建表。



3.1.1 连接

连接工具连接:因为是多实例,连接时必须指定要连接的数据库,用有权限访问的用户进行登录;

例如dbeaver:

使用默认用户sysdba,默认密码szoscar55,登录默认创建的第一个实例OSRDB数据库。

神通数据库工具链接时提示java not 神通数据库agent服务启动_数据库_15

3.1.2 建表并插入数据

连接后即可执行SQL,默认表创建在登录的用户下。

CREATE TABLE Test
(
    ID				NUMBER(19)			NOT NULL,
    NAME			VARCHAR2(100)	    NOT NULL,
    CONSTRAINT PK_SEAL_CONFIG PRIMARY KEY(ID)
);
INSERT INTO Test VALUES(1,'test中文');

神通数据库工具链接时提示java not 神通数据库agent服务启动_表空间_16

3.1.3 创建用户

该用户只存在于当前实例下。不可跨实例使用。
在OSRDB里创建的用户,可以建表,这个权限不知道怎么来的。
在其他实例里,用户好像需要赋予权限。

CREATE USER test_user WITH PASSWORD 'test_user';

神通数据库工具链接时提示java not 神通数据库agent服务启动_java_17


再次执行建表语句,建在了当前登录的用户test_user下。

神通数据库工具链接时提示java not 神通数据库agent服务启动_服务器_18

3.2 指定表空间建用户建表

神通数据库是多实例,我们可以直接使用默认的OSRDB实例,也可以自行创建一个实例。

此处使用自己创建的实例NETSEAL_7,创建流程见上文章节2。

步骤分为:sysdba连接——建表空间——建用户并授权——新用户连接——新用户建表

3.2.1 连接

  1. 先用sysdba用户登录,密码szoscar55
  2. 创建3个表空间和1个用户

创建表空间NETSEAL_7_DATA、NETSEAL_7_TEMP、 NETSEAL_7_INDEX;

创建用户NETSEAL_7,密码NETSEAL_7,并赋予sysdba角色;

用户和数据存到表空间NETSEAL_7_DATA,索引存到表空间NETSEAL_7_INDEX ,临时文件存到表空间NETSEAL_7_TEMP;

-- 用sysdba创建表空间和用户,再用新用户建表
CREATE TABLESPACE NETSEAL_7_DATA DATAFILE 'NETSEAL_7_DATA.DBF' SIZE 500M
AUTOEXTEND ON NEXT  100M MAXSIZE UNLIMITED;

CREATE TABLESPACE NETSEAL_7_TEMP DATAFILE 'NETSEAL_7_TEMP.DBF' SIZE 500M
AUTOEXTEND ON NEXT  100M MAXSIZE UNLIMITED;

CREATE TABLESPACE NETSEAL_7_INDEX DATAFILE 'NETSEAL_7_INDEX.DBF' SIZE 500M
AUTOEXTEND ON NEXT  100M MAXSIZE UNLIMITED;

CREATE USER NETSEAL_7 WITH PASSWORD 'NETSEAL_7' DEFAULT TABLESPACE NETSEAL_7_DATA;
GRANT ROLE SYSDBA TO USER NETSEAL_7;
  1. 使用新用户NETSEAL_7登录
    注:dbeaver连接切用户时,一定要断开重连,否则还是上一个用户。

3.2.2 建表

切记,表会建在登录的用户下!!!

CREATE TABLE Test
(
    ID				NUMBER(19)			NOT NULL,
    NAME			VARCHAR2(100)	    NOT NULL,
    CONSTRAINT PK_SEAL_CONFIG PRIMARY KEY(ID) USING INDEX TABLESPACE NETSEAL_7_INDEX
) TABLESPACE NETSEAL_7_DATA;
INSERT INTO Test VALUES(1,'test中文');

4. 基础知识

4.1 架构

神通数据库工具链接时提示java not 神通数据库agent服务启动_服务器_19

创建数据库实例时,默认创建4个表空间,3个用户,7个角色:
表空间:SYSTEM、TEMP、AUDIT、UNDOTS01,创建的用户、数据等,若无指定均存储在SYSTEM表空间里;
用户:sysdba、sysaudit、syssecure,密码均为szoscar55,谐音“神州奥斯卡55”;
角色:SYSDBA、AUDIT、ADUIT_OPER、SECURE、SECURE_OPER、RESOURCE、EXTERNAL_AUTH;

4.2 字段定义

4.2.1 所有

按字段顺序排列:
bigint、binary、bit、blob、bool、
char、clob、
date、decimal、double precision、
float、
int、interval year to month、interval day to second、
numeric、
real、
serial、smallint、
text、time、timestamp、tinyint、
varbinary、varchar、xmltype

4.2.2 常用的

描述

字段

描述

字段

小数值

int

字符

char

大数值

bigint

时间戳

timestamp

小数

numeric

日期

data

字符串

varchar

文本

text

4.2.3 兼容情况

建表时的兼容情况:
number(19),自动转为numeric(19)
varchar2(n),自动转为varchar(n)

4.2.4 敏感情况

表名:不敏感;
字段名:不敏感;
字段值:敏感;

4.3 常见命令

4.3.1 命令行操作

注意大小写和分号问题!!!

默认用户登录:

isql -h “10.20.61.61” -d NETSEAL_7 -p 2004;

神通数据库工具链接时提示java not 神通数据库agent服务启动_java_20

指定用户登录,报错了???

神通数据库工具链接时提示java not 神通数据库agent服务启动_建表_21

4.3.2 SQL

4.3.2.1 表空间:
-- 创建表空间
CREATE TABLESPACE NETSEAL_7_DATA
DATAFILE 'NETSEAL_7_DATA.DBF' SIZE 500M
AUTOEXTEND ON NEXT  100M 
MAXSIZE UNLIMITED;

-- 修改表空间

-- 删除表空间:表空间有数据时不能删除
DROP TABLESPACE NETSEAL_7_DATA;
4.3.2.2 用户:
-- 创建用户:方式1: 仅指定密码,需要额外授权;
CREATE USER NETSEAL_7 WITH PASSWORD 'NETSEAL_7';
-- 创建用户:方式2
CREATE USER NETSEAL_7 WITH PASSWORD 'NETSEAL_7' ROLE SYSDBA;
-- 创建用户:方式3
CREATE USER NETSEAL_7 WITH PASSWORD 'NETSEAL_7' DEFAULT TABLESPACE NETSEAL_7_DATA;

-- 用户授权:
GRANT ROLE SYSDBA TO USER NETSEAL_7;

-- 修改密码:
alter user test_usr with password 'test_change'

-- 删除用户
DROP USER NETSEAL_7;
4.3.2.3 表:
-- 创建表:
CREATE TABLE Test
(
    ID				BIGINT			NOT NULL,
    NAME			VARCHAR(100)	    NOT NULL,
    CONSTRAINT PK_SEAL_CONFIG PRIMARY KEY(ID)
);
INSERT INTO Test VALUES(1,'test中文');

-- 删除表:
DROP TABLE test;
DROP TABLE test CASCADE CONSTRAINTS;

-- 查询表空间里的表,拼成删除SQL展示
SELECT 'DROP TABLE ' || TABLE_NAME || ' CASCADE CONSTRAINTS;' V_NAME
  FROM all_tables
 WHERE TABLESPACE_NAME = 'NETSEAL_7_DATA';
4.3.2.4 索引:
-- 创建索引:
-- 删除索引:
4.3.2.5 查询类:
-- 查询指定用户的信息
SELECT * FROM all_tables WHERE OWNER = 'NETSEAL_7_USER';

-- 查询指定表空间的信息
SELECT * FROM all_tables WHERE TABLESPACE_NAME = 'NETSEAL_7_DATA';

4.4 版本

神通数据库工具链接时提示java not 神通数据库agent服务启动_数据库_22

神通数据库工具链接时提示java not 神通数据库agent服务启动_建表_23


神通数据库工具链接时提示java not 神通数据库agent服务启动_java_24


神通数据库工具链接时提示java not 神通数据库agent服务启动_java_25