oracle pdb还原为no-cdb,Oracle12c,CDB和PDB创建表空间和用户,以及Pl/SQL连接PDB

今天上午刚安装的12c,用来一下午的时间总结出来的,不保猜测的对错,但保证SQL能执行成功。

CDB给用户授权表空间的SQL是从别出整理过来的,因为我是在PDB中创建,没测试过下面代码是否可用。

alter user C##truedata quota unlimited onTRUEDATA;

这层目录应该是CDB,圈住的是PDB,他们都有各自的表空间。

c384c76d1ce120456aab1325374f1c79.png

下面这段话是看到一个大神的话,他应该看了不少oracle相关的书。

oracle启动的时候,读取ctl文件(叫控制文件),这个控制文件里记录的内容告诉oracle目前这个数据库都是由哪些dbf组成的。然后读取所有的dbf文件,看这些dbf文件的最后修改时间是否和控制文件中记录的一样(同事还要比对日志文件中记录的最后修改时间),如果这些文件的最后修改时间都一致,那么说明oracle上次关闭是正常的,假如不一致,则利用日志文件重现之前的操作(日志文件里记录oracle的所有操作),最终时所有类型的文件的最后修改时间一致,然后打开,相信你已经看出来了,如果ctl文件坏了的话,你的数据实际上全都无法读取,因为oracle已经不知道自己的结构了。因此oracle默认将控制文件复制3份保存,足见其重要性。

因为估计你没有看过书,所以我用了浅显易懂的词来描述,他们在oracle中应该叫:

最后修改时间: SCN(System Change Number)

日志文件:redo log(可能还涉及到Archive 归档文件)

重现操作:roll forward (前滚)(实际上发生SCN不一致时需要进行恢复,在前滚后还要回滚)

用system用户操作选择PDB要选择ORCLPDB,PDB$SEED的模式是只读,无法创建表空间:ORA-00604, ORA-16000: 打开数据库以进行只读访问

--查看CDB容器中包含的PDB容器

select con_id,dbid,guid,name,open_mode fromv$pdbs;--CDB和PDC切换

alter session set container=ORCLPDB;alter session set container=CDB$ROOT;

show con_name--查看当前容器

--创建临时表空间

create temporarytablespace TRUEDATA_TEMP

tempfile'D:\Tools\Oracle_12C\oradata\mhyorcl\orclpdb\TRUEDATA_TEMP.DBF'size 32m

autoextendon

next32m maxsize 2048m

extent management local;--创建表空间

createtablespace TRUEDATA

logging

datafile'D:\Tools\Oracle_12C\oradata\mhyorcl\orclpdb\TRUEDATA.DBF'size 32m

autoextendon

next32m maxsize 2048m

extent management local;--CDB中给用户授权表空间 CDB创建用户需加上c##(c大小写无所谓)

create user C##truedata identified by 1234;alter user C##truedata quota unlimited onTRUEDATA;--PDB创建用户并指定表空间

create user truedata identified by 1234

defaulttablespace TRUEDATAtemporarytablespace TRUEDATA_TEMP;--给用户授予权限

grant connect,resource,dba totruedata;

--删除用户

drop user truedata cascade;--删除表空间包括物理

drop tablespace truedata_temp including contents anddatafiles;drop tablespace truedata including contents and datafiles;

用plsql连接,还需要配置D:\Tools\Oracle_12C\product\12.2.0\dbhome_1\network\admin\tnsnames.ora,新建ORCPDB。

ab505018e05e6d218c165e2533a396a2.png

--连接可插拔PDB出现:ORACLE 正在初始化或关闭。执行一下SQL,--orclpdb :PDB名字

alter pluggable database orclpdb open;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值