oracle慢sqlpdb,Oracle12c,CDB和PDB創建表空間和用戶,以及Pl/SQL連接PDB

今天上午剛安裝的12c,用來一下午的時間總結出來的,不保猜測的對錯,但保證SQL能執行成功。

CDB給用戶授權表空間的SQL是從別出整理過來的,因為我是在PDB中創建,沒測試過下面代碼是否可用。

alter user C##truedata quota unlimited onTRUEDATA;

這層目錄應該是CDB,圈住的是PDB,他們都有各自的表空間。

5ca63ffa7f02197eca0df9bf677ae38c.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。

1f1943c40f7a36856b9d5d10215de688.png

--連接可插拔PDB出現:ORACLE 正在初始化或關閉。執行一下SQL,--orclpdb :PDB名字

alter pluggable database orclpdb open;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值