1 安装
有其他博主说:要使用jdk1.8,并把神通装在C盘,否则可能会有问题。
本人未亲测,留言以作示警。
1.1 前提
前提:系统已安装jdk,以防万一,配置上环境变量吧。否则报错如下图:
1.2 安装
版本:v7.0
安装流程按照指引即可,此处只列重要步骤。
使用默认数据库名和端口,其他信息也用默认的。
按指引操作安装结束后,可以在服务里看到有两个服务:代理服务和OSRDB实例服务,第一次手动启动?。
1.3 遇到的问题
- 【暂未解决】虚拟机安装神通最后一步报错,像是卸载程序没安装成功。不知道是不是因为这影响了服务的启动。
- 【暂未解决】神通数据库代理服务服务无法启动,报1053
3.【已解决】 神通数据库OSRDB实例,启动后即停止
在查看了正常启动的服务,发现C:\shentong下共有36个文件,而不能正常启动的服务下,只有34个。
对比之下发现少了jre和license目录。
解决办法:拷贝安装包下的jre和license至安装目录C:\shentong下,重启虚拟机,会发现OSRDB实例自动启动了。
但无法解决神通代理服务的启动,代理服务起不来貌似没啥影响。。。
总结:应该是和license授权有关系,无license或license过期都无法启动吧。
试用版的license不知道有效期是多久,不知道卸载重装可不可以继续试用,有机会了再研究。
2 建数据库实例
2.1 自带工具创建
建库前,需要先停掉其他正在运行的实例,例如默认OSRDB数据库。
以防万一,以管理员身份运行数据库配置工具。
创建NETSEAL_7数据库实例,创建完需要手动启动该实例。
每一个新创建的数据库实例,都有3个默认管理员,第一次登录一般用sysdba登录。登录后再创建用户,即可用新用户登录。
填写数据库名、端口号
后续流程按照指引即可。
2.2 Dbeaver连接
3 实地演练
3.1 sysdba用户SQL初测试
谁登录,表就会建到谁下。所以不建议sysdba登录建表。
3.1.1 连接
连接工具连接:因为是多实例,连接时必须指定要连接的数据库,用有权限访问的用户进行登录;
例如dbeaver:
使用默认用户sysdba,默认密码szoscar55,登录默认创建的第一个实例OSRDB数据库。
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中文');
3.1.3 创建用户
该用户只存在于当前实例下。不可跨实例使用。
在OSRDB里创建的用户,可以建表,这个权限不知道怎么来的。
在其他实例里,用户好像需要赋予权限。
CREATE USER test_user WITH PASSWORD 'test_user';
再次执行建表语句,建在了当前登录的用户test_user下。
3.2 指定表空间建用户建表
神通数据库是多实例,我们可以直接使用默认的OSRDB实例,也可以自行创建一个实例。
此处使用自己创建的实例NETSEAL_7,创建流程见上文章节2。
步骤分为:sysdba连接——建表空间——建用户并授权——新用户连接——新用户建表
3.2.1 连接
- 先用sysdba用户登录,密码szoscar55
- 创建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;
- 使用新用户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 架构
创建数据库实例时,默认创建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;
指定用户登录,报错了???
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 版本