学习笔记 | 生活平淡又惊奇

Oracle的安装

2022.07.01

1、Oracle版本选择

大部分书籍中介绍的是Oracle 11g的版本,是比较早年的一个稳定版本,但是到目前Oracle已经更新了很多版本了。
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
这个网站上能够找到最新的Oracle版本,可以看到目前已经更新到了21c
因为20年疫情的影响,20c并未发布线下版本,只在云上发布了版本;21年线下发布了21c,官方指出未来23c将是长期稳定的版本,即23c可以取代19c,作为下一个稳定版本使用。而21c和22c只是过渡版本,学习了解其新特性即可。
早在2019年1月1日,Oracle 11g就停止向外部的所有支持,结束官方支持,现在安装11g有不少问题,而且从官网可以了解到现在的19c是长期稳定版本的。
所以总结一下就是目前Oracle的稳定版本是Oracle 11g、Oracle 19c、Oracle 23c。
Oracle 11g:版本太老可能不适配
Oracle 19c:刚刚好
Oracle 23c:未来可替代19c的另一个稳定版本
所以我选择Oracle 19c~(Oracle Database 19c-19.3)

2、下载安装包

可以去官网下载,觉得慢可以选择网盘里的安装包:
链接:https://pan.baidu.com/s/1t6guQagYh02ntNC86WOIcA?pwd=e16h
提取码:e16h
建议安装在D盘,此处我安装的位置是D:\Oracle,另外还有需要注意的是:
(1)任何路径都不要出现中文字符、空格等,命名文件最好是只由英文字母、数字、下划线组成。否则运行setup.exe很可能一闪而过无法启动
(2)Oracle18c开始,zip安装包解压后的目录作为ORACLE_HOME目录
下载安装包后将压缩包在D:\Oracle处解压

3、开始安装

❗❗❗有两个安装的点需要注意。第一点就是要选择创建Windows账户,第二点就是要取消勾选创建容器数据库(这两点没注意在最后安装的时候就会卡在42%)
❗❗❗如果真的第一次安装没有注意这些已经卡在了42%,那在等待很久还没有前进后可以直接取消安装,然后关闭服务、删除安装的文件和注册表,重新安装一遍
下面开始安装:
右键setup.exe以管理员身份运行,等待出现新的弹框
image-1656679747354

image-1656679798520

image-1656679926934

桌面类占用系统资源少,相当于本机既当服务器又当客户机,可以自己访问自己;而服务器类是能让别人也访问到数据库,提供更多高级配置选项,后期的优化及更改操作更方便(自己安装为了方便可以选择桌面类,此处我安装的是服务器类)

image-1656680031225

image-1656680137722

image-1656728293911

❗❗❗此处要选择创建新Windows用户,不然最后安装阶段可能会卡在42%❗❗❗
接下来的安装位置就放在D盘

image-1656728484280

image-1656680508063

image-1656728675459

❗❗❗此处要取消勾选“创建为容器数据库”,不然最后安装阶段可能会卡在42%❗❗❗

image-1656680650134

image-1656680679380

接下去的几个步骤都选择默认,直到“方案口令”界面,本次为了方便统一,设置密码为“admin”,虽然本次密码不属于标准密码格式,但依然可以通过
Oracle建议输入的口令应该至少长8个字符,至少包含1个大写字符,1个小写字符和1个数字[0-9]

image-1656681203982

所有的选项完成后,会进入“先决条件检查”,最后会出现下图界面,单击“完成”按钮,即可完成Oracle数据库的安装(勾选后安装读条时会在42%卡很久)

image-1656681306812

image-1656730185579

4、验证是否成功

(1)win+r后输入cmd打开命令行窗口,输入sqlplus/nolog,此时没有登陆密码直接以nolog的形式登录

image-1656730487124

(2)win+r后输入cmd打开命令行窗口,输入sqlplus,此时需要输入用户名和口令,试了之前安装设置的密码结果都不对,大坑。。。
查找了一些资料才发现此处使用的是Oracle默认密码
用户名:sys/as sysdba
口令密码:change_on_install

image-1656739775306

另外scott数据库是一个样例数据库,在实际使用的时候经常作为实例使用,但有的时候在安装过程会因为一些未知的原因,造成没有scott这个用户及数据库,此时可以通过手工添加的方式完成:

image-1656740984711

用户名:scott
口令密码:tiger

image-1656741109199

在SQL Plus窗口中运行文本,分别创建emp数据表、dept数据表、bonus数据表、salgrade数据表,然后插入相应数据

image-1658143423758
image-1658143442473
image-1658143590692
image-1658143602921

SET TERMOUT OFF  
SET ECHO OFF  
GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO SCOTT IDENTIFIED BY TIGER;  
ALTER USER SCOTT DEFAULT TABLESPACE USERS;  
ALTER USER SCOTT TEMPORARY TABLESPACE TEMP;  

CONNECT SCOTT/TIGER  
DROP TABLE DEPT;  
CREATE TABLE DEPT  
(DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,  
DNAME VARCHAR2(14) ,  
LOC VARCHAR2(13) ) ;  
DROP TABLE EMP;  
CREATE TABLE EMP  
(EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,  
ENAME VARCHAR2(10),  
JOB VARCHAR2(9),  
MGR NUMBER(4),  
HIREDATE DATE,  
SAL NUMBER(7,2),  
COMM NUMBER(7,2),  
DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);  

INSERT INTO DEPT VALUES  
(10,'ACCOUNTING','NEW YORK');  
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');  
INSERT INTO DEPT VALUES  
(30,'SALES','CHICAGO');  
INSERT INTO DEPT VALUES  
(40,'OPERATIONS','BOSTON');  
INSERT INTO EMP VALUES  
(7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);  
INSERT INTO EMP VALUES  
(7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);  
INSERT INTO EMP VALUES  
(7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);  
INSERT INTO EMP VALUES  
(7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);  
INSERT INTO EMP VALUES  
(7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);  
INSERT INTO EMP VALUES  
(7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);  
INSERT INTO EMP VALUES  
(7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);  
INSERT INTO EMP VALUES  
(7788,'SCOTT','ANALYST',7566,to_date('13-JUL-87')-85,3000,NULL,20);  
INSERT INTO EMP VALUES  
(7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);  
INSERT INTO EMP VALUES  
(7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);  
INSERT INTO EMP VALUES  
(7876,'ADAMS','CLERK',7788,to_date('13-JUL-87')-51,1100,NULL,20);  
INSERT INTO EMP VALUES  
(7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);  
INSERT INTO EMP VALUES  
(7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);  
INSERT INTO EMP VALUES  
(7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);  

DROP TABLE BONUS;  
CREATE TABLE BONUS  
(  
ENAME VARCHAR2(10)        ,  
JOB VARCHAR2(9)  ,  
SAL NUMBER,  
COMM NUMBER  
) ;  
DROP TABLE SALGRADE;  
CREATE TABLE SALGRADE  
( GRADE NUMBER,  
LOSAL NUMBER,  
HISAL NUMBER );  
INSERT INTO SALGRADE VALUES (1,700,1200);  
INSERT INTO SALGRADE VALUES (2,1201,1400);  
INSERT INTO SALGRADE VALUES (3,1401,2000);  
INSERT INTO SALGRADE VALUES (4,2001,3000);  
INSERT INTO SALGRADE VALUES (5,3001,9999);  
COMMIT;  
SET TERMOUT ON  
SET ECHO ON