一、安装问题
1、win11 安装Oracle19c报错:【TINS-130011】 此操作系统不支持 Oracle 数据库。安装程序将不在系统上执行先决条件检查。
先决条件检查不通过,这个需要更改电脑的归属用户名,不能使用中文的,就算是跳过,后边一样会阻塞到。
需要在我的电脑处属性里重命名该电脑,不然安装进行不下去的。
二、登陆好难
1、创建的用户无法使用
在安装过程中创建的用户很可能不能用,登陆的时候如果用创建的用户一直登陆不进去
那么直接使用系统管理员用户进行登陆吧,登陆进去之后去解锁你创建的用户,然后同时可以改个密码。
#连接到sqlplus,如果你直接使用的本机自带的sqlplus,已经进入到该状态,不需要执行该步
sqlplus /nolog
#以管理员的身份连接到数据库
conn /as sysdba
#解锁system用户,(去替换成你自己的)
alter user system account unlock;
#登陆不上也可能是密码问题,下一条也会写,尽量不要使用特殊字符,使用了之后会报错,也可能和我的编码格式有关系吧
alter user system identified by pass123;
2、密码问题
输入密码的时候建议输的简单点,特殊字符输入会有问题,并且在sql plus命令行里修改密码这个也修改不了。(也可能和我的编码格式有关系吧)
三、使用过程中的问题
1、oracle19c新建模式报错
SQL 错误 [65096] [99999]: ORA-65096: 公用用户名或角色名无效 Error : 65096, Position : 12, SQL = CREATE USER SCOTTT IDENTIFIED BY "123456", Original SQL = CREATE USER SCOTTT IDENTIFIED BY "123456", Error Message = ORA-65096: 公用用户名或角色名无效 ORA-65096: 公用用户名或角色名无效
原因是oracle12c之后的版本出现此错误时需要在用户名前加"c##"。
2、cdb和pdb
cdb容器(数据库容器)和pdb容器(可插拔数据库)(12c之后引入了这个概念)
如果在cdb模式下,创建用户,创建模式都需要加c##,如果在pdb模式下,则一切正常,初始化进去都是cdb模式,需要手动切换。
#这里要用系统管理员连接,不然切换不成功
#以管理员的身份连接到数据库
sqlplus / as sysdba 或 conn /as sysdba
然后查看当前使用的数据库类型
select sys_context('USERENV','CON_NAME') from dual;
若是CDB,则需要切换,先查看当前PDB数据库名称
显示pdb名称和状态
show pdbs;
#如果pdb对应的状态不是on,则需要手动开启pdb,文尾放了pdb自启动
alter pluggable database ORCLPDB open;
根据显示的pdb名称进行切换到PDB数据库
alter session set container=ORCLPDB1;
再查看当前使用容器
select sys_context('USERENV','CON_NAME') from dual;
这个时候创建用户的时候不加c##就不会再报错了
pdb数据库自启动
create or replace trigger open_pluggable_db
after startup
on database
begin
execute immediate 'alter pluggable database all open';
end open_pluggable_db;
/
3、SQL 错误 【1950】 【42000】: ORA-01950: 对表空间 'USERS' 无权限
模式创建好以后,用户没有权限,这个是DBeaver的报错
解决方式:
先把之前创建的模式删除后->
-- 使用超级管理员登录 -进入cmd窗口 sqlplus 登录进去后
sqlplus / as sysdba 或 conn /as sysdba
-- 创建c##scott用户
CREATE USER c##scott IDENTIFIED BY tiger ;
-- 为用户授权
GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO c##scott CONTAINER=ALL ;
-- 设置用户使用的表空间
ALTER USER c##scott DEFAULT TABLESPACE USERS;
ALTER USER c##scott TEMPORARY TABLESPACE TEMP;
结束之后,dbeaver需要重新连接一下,然后删掉之前的sql界面,在这个表里重新开一个,然后就可以正常使用了。
4、重启电脑后发现oracle的sql语句执行速度特别慢
执行完垃圾清理之后,我这个就恢复正常了。
PURGE RECYCLEBIN;
有的是通过清空临时表来解决,先创建a临时表空间,然后把临时表空间指向a,然后删掉原来的表空间,然后重新创建原有的表空间,然后再指回来,然后干掉。
###初学者学习过程中碰到的问题,如有不对,欢迎指正。