环境:
Linux : RedHat 7.6(3.10.0-957.el7.x86_64)
Oracle:19C Oracle Database 19c Download for Linux x86-64(使用单机,下载rpm包即可)
安装步骤:
未打算学习oracle安装和配置的最佳实践,因此参考大神的博客,快速安装oracle19C redhat 安装OracleDataBase-19c
注:
(1)oracle是需要账号的,电脑死活打不开,发到手机,速速注册后,就可以下载了
安装后,后台进程查看
(2)卸载oracle
卸载rpm包 rpm -e oracle-database-ee-19c-1.0-1.x86_64 oracle-database-preinstall-19c-1.0-3.el7.x86_64
删除oralce配置的目录 rm -rf /opt/oracle/*
oracle 19C安装的时候默认创建的CBD,默认创建了PDB
数据库:19C(12C的小版本)提供了CBD与PDB的概念,安装完19C后,默认值创建一个CBD,之前的版本一个实例对应一个数据库,19C后为支持云化,支持了PDB,实现了一个实例,多个数据库。
实例:一次安装创建多个进程,实现类似于安装多次
数据文件.dbf:数据的物理存储单位,存储数据的文件,
表空间:用于管理数据文件,是一个或多个数据文件的逻辑名称,一个数据文件只能属于一个表空间,相当于把整个数据库划分了很多区域,分为段>区>数据块>磁盘块
用户:用户建立表,登录后只能看到用户的表,一个表空间可以对应多个表空间
sqlplus登录到服务器的本地数据库
sqlplus / as sysdba
查看有哪些用户
select username from dba_users;
查看当前用户
show user;
修改sys用户的密码
alter user sys identified by 'hsf123456#';
注:不能数字开头,必须包含字母数字和特殊字符
Navicat配置
服务名为SID,连接方式选择Basic,高级选像选择成角色SYSDBA,测试连接成功
刚连接上oracle的是后,navicat显示的就是所有用户
(1)sqlplus登录后查看cbd与pdb
sqlplus / as sysdba默认连接的是cbd,默认创建的PDB是ORACLEPDB1
(2)进入oraclePDB1,并且启动
alter session set container=ORCLPDB1;
startup;
(3)配置ora
/opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora,加入下面的orclpdb1即可
# tnsnames.ora Network Configuration File: /opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCLCDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLCDB)
)
)
orclpdb1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclpdb1)
)
)
LISTENER_ORCLCDB =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(4)测试是否可以本地连接
tnsping orclpdb1
(5)重启监听
lsnrctl stop
lsnrctl start
(6)navicat连接
服务名改成ora里面配置的=之前的服务名即可
在连接到pdb后执行,相当于在sqlplus / as sysdba,然后alter到pdb后进行操作。
(1)创建表空间(即创建数据文件) -- 现在的表保存在哪,仅可以在SYS或者SYSTEM用户下可以创建表空间
CREATE tablespace waterboss
datafile '/opt/oracle/data/waterboss.dbf'
size 1500M
autoextend on
next 10M maxsize 3000M;
size是此时的文件大小,会直接创建1.5G的文件,耗时较长,next 10M每次增长10M,最大增长到3000M
注:drop tablespace DEMOSPACE including contents and datafiles // 删除表空间
(2)创建用户 注:需要进入PDB
CREATE USER waterboss IDENTIFIED BY hsf123456# DEFAULT tablespace warterboss;
(3)创建表
建表语句为标准sql,不在赘述,同样使用Navicat可视化创建后,拷贝出建表语句。
CREATE TABLE "WATERBOSSFACTORY"."T_OWNERS"
( "ID" NUMBER(5,0) NOT NULL ENABLE,
"NAME" VARCHAR2(30) DEFAULT '' NOT NULL ENABLE,
"ADDRESSID" NUMBER(20,0) DEFAULT '' NOT NULL ENABLE,
"HOUSENUMBER" VARCHAR2(30) DEFAULT '' NOT NULL ENABLE,
"WATERMETER" VARCHAR2(30) DEFAULT '',
"ADDDATE" DATE NOT NULL ENABLE,
"OWNERTYPEID" NUMBER(2,0) DEFAULT '' NOT NULL ENABLE,
PRIMARY KEY ("ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
TABLESPACE "WATERBOSSFACTORY" ENABLE
) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
TABLESPACE "WATERBOSSFACTORY"
字符型
CHAR 固定长度的字符类型,最多存储2000个字节,当存入的数据不够长度时,会使用空格补齐长度;
VARCHAR2:可变长度的字符类型,最多可存储4000个字节,长度不够长度时,不会自动补齐。
LONG:大文本类型,最大可存储2G
数值型:长度在 1-38 之间
NuMBWER(5,2) : 5代表为几位数字,2代表几位小数,最大999.99
NUMBER(5) : 最多5位十进制数,最大99999
日期型
DATE:日期时间,精确到s
TIMESTAMP:精确到小数点后9位
二进制型:
CLOB:存储字符,最多4个G
BLOB:存储声音、图像、视频,最多2个G
CBD、PDB
(1)SELECT name,cdb from v$database; //查看所有cbd rpm包安装默认ORCLCDB
(2)select pdb_id,pdb_name,dbid,status,creation_scn from dba_pdbs; // 查看所有pdb rpm安装,默认ORCLCDB1
(3)show con_name; // 显示当前容器名称 show con_id;查看当前容器的id show pdbs; // 显示当前容器的所有pdb,只有在根容器时生效
(3)select sys_context('userenv','con_name'),sys_context('userenv','con_id') from dual; // 查看当前会话的容器和容器id
(4)select name,con_id,open_mode FROM v$pdbs; //查看pdb启动状态,SEED是种子PDB,按照模板创建其它PDB
(5)登录PDB ORACLPDB1
alter session set container=ORACLPDB1; // 切换到PDB
alter session set container=cdb$root // 切换到CBD
注:
(1)SID显示的实例名称,不要修改哟,多租户的实例是共享的哟
(2)创建表空间和用户时,先进入pdb后再
表空间
select tablespace_name, sum(bytes)/1024/1024 from dba_data_files group by tablespace_name; //查看所有表空间
进入CDB后创建表空间
CREATE tablespace waterbossFactory
datafile '/opt/oracle/data/waterbossFactory.dbf'
size 150M
autoextend on
next 10M maxsize 3000M;
用户
Oracle用户权限_冷漠;的博客-CSDN博客_oracle 用户权限
show user; // 查看当前是哪个用户登录
select username from dba_users; //查看所有用户
进入PDB后创建用户
CREATE USER waterbossFactory IDENTIFIED BY hsf123456# DEFAULT tablespace waterbossFactory;
查看所有用户,CBD与PDB用户空间不同,查询的不一样。
select * from tabs; //查看所有表
Oracle 19C 手把手安装教程二_哔哩哔哩_bilibili
Oracle 官网文档 https://docs.oracle.com/en/database/oracle/oracle-database/19/lacli/database-client-installation-guide-linux.pdf
黑马程序员Oracle数据库精讲,从0到1学会Oracle数据库_哔哩哔哩_bilibili