【Oracle12C】部署服務創建用戶及建庫建表中遇到的問題以及12C的一些新特性

這是一篇oracle小白因爲領導壓迫,不堪折磨,苦苦掙扎研究所做。
詳細安裝文檔在上篇博客,安裝中可能遇到的錯誤以及親測可用的解決方式已給出。sql

Oracle12C與11g版本的差別

在建立用戶時遇到一個問題(個人發現都是根據遇到的問題來研究的):
問題描述:
在建立服務所需用戶時提示ORA-65096:公用用戶名或角色無效。
問題緣由:
根據Oracle官方文檔得知,12C版本建立公有用戶名(CDB用戶)必須以c##或C##開頭,測試後發現登錄時也必須加C##用戶名登錄。
【Oracle12C】部署服務創建用戶及建庫建表中遇到的問題以及12C的一些新特性docker

CDB與PDB解釋:
Oracle 12C引入了CDB與PDB的新特性,在ORACLE 12C數據庫引入的多租用戶環境(Multitenant Environment)中,容許一個數據庫容器(CDB)承載多個可插拔數據庫(PDB)。
CDB全稱爲Container Database,中文翻譯爲數據庫容器,PDB全稱爲Pluggable Database,便可插拔數據庫。
在ORACLE 12C以前,實例與數據庫是一對一或多對一關係(RAC):即一個實例只能與一個數據庫相關聯,數據庫能夠被多個實例所加載。而實例與數據庫不多是一對多的關係。當進入ORACLE 12C後,實例與數據庫能夠是一對多的關係。
下面是官方文檔給出的概念圖:
【Oracle12C】部署服務創建用戶及建庫建表中遇到的問題以及12C的一些新特性
個人理解:這個結構有點相似於docker的關係。一個管理庫(CDB)來管理全部的可插拔數據庫(PDB),若是你想在PDB庫中建立用戶是不用加c##的,可是一樣這個用戶也只能在這一個PDB庫中使用,沒法應用到其餘庫中。
建立公有用戶的示例sql:
CREATE USER c##test IDENTIFIED BY test DEFAULT TABLESPACE test ACCOUNT UNLOCK ;
一樣在作受權或登錄等操做時也必須加c##:
GRANT RESOURCE TO c##test;數據庫

附帶PDB與CDB有關的一些經常使用SQL語句:
建立PDB空間的示例語句(須要先建立表空間文件):
create tablespace TSCREDITLOG datafile '/home/oracle/app/oracle/creditdb/CREDITLOG/TSCREDITLOG01.dbf' size 20M;c#

查詢全部的PDB及CDB的Name:
SELECT name, pdb FROM v$services ORDER BY name;bash

只查看PDB庫:show pdbs;
(PDB我看到的有兩種狀態 讀寫和只讀 )session

打開全部PDB庫: alter pluggable database all open;
切換到某個PDB(容器切換):ALTER SESSION SET container=NAMEPDB;
切換到CDB:alter session set container=cdb$root;
察看如今的容器的名稱:show  conname;oracle


操做中遇到的一些問題以及解決方式:

只是報錯爲問號或亂碼:字符集不一致致使 :
運行:alter session set nls_language=american;
若是數據庫提示符都爲問號亂碼:
須要在oracle用戶下.bash_profile中添加環境變量NLS_LANG
建立表空間失敗問題:
1.表空間文件夾受權有問題;
2.表空間文件夾不存在
建立表時提示建立失敗(提示權限不足,沒有用戶等等):
檢查了建立用戶的腳本,在第一遍執行的時候返回的都是受權成功或者建立成功可是沒有權限,因此從新執行了一遍,問題解決(問題規律—大招:不少問題均可以經過重啓實例或者從新執行來解決)。
建立表空間錯誤ORA-65048:
在可插入數據庫PDBORCL中處理當前DDL語句時出錯 ORA-00959:表空間‘TEST’不存在
只須要重啓數據庫便可解決!
 Oracle數據庫的啓動與關閉方法
  sql>shutdown abort;    --一一異常關閉,可是最快的關機方式,因新裝的數據庫,就沒有那麼多顧忌。
sql>startup 
能夠開心的正常建立用戶了~~app

Navicat沒法鏈接oracle12c問題,提示沒有匹配的驗證協議:
問題緣由:Navicat有一個OCI.dll文件版本太低。再深刻的沒研究,下面直接放找到的解決方法。
須要Oracle 的二個文件:
百度雲連接:http://pan.baidu.com/s/1jIfQ95G 密碼:wm9l
若是沒有Navicat就去百度下一個(Nacicat for oracle)
這裏直接把 instantclient-basic-nt-12.1.0.2.0.zip 解壓到 Navicat for Oracle 的解壓目錄的instantclient_10_2目錄下
而後這個目錄下多了instantclient_12_1 這個目錄 ,而後再把instantclient-sqlplus-nt-12.1.0.2.0.zip 解壓到 instantclient_12_1下
完成
最後打開Navicat for Oracle 單擊 工具->選項-> OCI
這裏有二個選項 參考個人路徑就知道了
OCI 你的路徑\instantclient_12_1.oci.dll
SQL 你的路徑\instantclient_12_1.sqlplus.exe
【Oracle12C】部署服務創建用戶及建庫建表中遇到的問題以及12C的一些新特性ide

而後新建鏈接,鏈接數據庫:
【Oracle12C】部署服務創建用戶及建庫建表中遇到的問題以及12C的一些新特性
搞定。工具

相關文章
相關標籤/搜索