这里写自定义目录标题
Oracle19C数据库基本介绍
说到Oracle19c,先要了解清楚Oracle19C得结构;
cdb->pdb->schema(和用户一对一)->表空间->表数
CDB :容器数据库,名称为 CDB$ROOT。其作用就是系统数据库,sys等账号都保存在里面。同时它可以管理PDB数据库
PDB :可插拔的数据库。用户可以在PDB自建数据库
Oracle安装成功后有个默认的pdb数据库(在安装Oracle的时候自己设定)
PDB中自带有PDB$SEED,属于PDB的模板数据库,自己创建数据库的时候以此库为模板
命令:如何查看当前的位置是CDB还是PDB使用sys登录,输入命令:
show con_name; – 查看当前所在容器位置
show pdbs; – 查看所有的PDB
由于安装Oracle的时候设定PDB数据库为schooldb,故查询到两个PDB数据库
注意:PDB是收费的,免费的版本最多两个PDB
PDB的常规操作
开启和关闭所有的PDB
alter pluggable database all open; – 打开PDB
alter pluggable database schooldb close immediate; – 关闭schooldb数据库
切换到PDB和CDB
alter session set container=schooldb; – 切换到schooldb数据库
alter session set container=cdb$root; – 切换到CDB
直连PDB
检查监听文件是否有下面的内容,没有则加上,其中的IP地址是虚拟机的ip
1.创建新的PDB
create pluggable database 数据库名称 admin user 新用户名 identified by 新密码 roles=(dba
) file_name_convert=(‘C:\写oracle的安装目录名\oradata\orcl\pdbseed’,'C:\写oracle的安装目录名\oradata
\orcl\school’);
说明:需要使用sys账号切换到CDB才能创建PDB
如果要删除PDB执行:
drop pluggable database 数据库名称 including datafiles;
注意:免费使用Oracle 19C 最多让你创建2个PDB
附:全局用户和本地用户
创建全局用户c##admin (全局用户名必须是c##为前缀)
create user c##admin identified by 123; – 123是c##admin用户的密码
说明:创建成功后,在CDB和PDB里面都有c##admin用户
2. 创建本地用户test
alter session set container=schooldb; – 先切换到schooldb数据库
create user test identified by 123; – 再创建test用户,密码也是123
说明:只有在schooldb数据库才有test用户
3.删除用户
drop user c##admin; – 删除用户c##admin
drop user test; – 删除用户test
密码过期问题
上面说到数据库CDB可以管理PDB,平时咱们是使用pdb数据库,对数据库不了解得朋友都会去设置pdb用户密码永不过期,类似于只修改了子库得用户永不过期,父库用户过期导致字库无法登录。
登录CDB将用户设置密码永不过期,然后重设密码后生效
直接上过程(cdb,pdb都要这是永不过期)
首先登录pdb
$ sqlplus sys/oracle@localhost/aml as sysdba
查看连接名
sql>show con_name
切换至cdb
sql>alter session set container=cdb$root
查看用户到期时间
sql>select username,account_status,expiry_date,profile from dba_users;
查看有效期天数
sql>select * from dba_profiles s where s.profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
设置永不过期
sql>alter profile default limit password_life_time unlimited;
重新设置用户密码
sql>alter user 用户名 identified by 原来的密码;
切回pdb
alter session set container=aml;