Oracle 12C 數據庫安裝與配置

 

 

1·數據庫介紹

Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關係數據庫管理系統。它是在數據庫領域一直處於領先地位的產品。能夠說Oracle數據庫系統是目前世界上流行的關係數據庫管理系統,系統可移植性好、使用方便、功能強,適用於各種大、中、小、微機環境。它是一種高效率、可靠性好的 適應高吞吐量的數據庫解決方案。是目前最流行的客戶/服務器(CLIENT/SERVER)或B/S體系結構的數據庫之一。ORACLE數據庫是目前世界上使用最爲普遍的數據庫管理系統,做爲一個通用的數據庫系統,它具備完整的數據管理功能;做爲一個關係數據庫,它是一個完備關係的產品;做爲分佈式數據庫它實現了分佈式處理功能。但它的全部知識,只要在一種機型上學習了ORACLE知識,便能在各類類型的機器上使用它。html

Oracle數據庫最新版本爲Oracle Database 12c。Oracle數據庫12c 引入了一個新的多承租方架構,使用該架構可輕鬆部署和管理數據庫雲。此外,一些創新特性可最大限度地提升資源使用率和靈活性,如Oracle Multitenant可快速整合多個數據庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數據和對數據分層。這些獨一無二的技術進步再加上在可用性、安全性和大數據支持方面的主要加強,使得Oracle數據庫12c 成爲私有云和公有云部署的理想平臺。linux

2·數據庫安裝教程(建議:經過軟件包安裝數據庫軟件,安裝成功後經過Database Configuration Assistant軟件實現數據庫的安裝與配置)

①  下載Oracle官網安裝壓縮包;

② 解壓至文件夾;

③ 點擊運行setup.exe可執行程序;

 

 

④ 選擇輸入電子郵件以及選擇勾選但願得到Oracle安全更新;

 

 

⑤ 選擇操做目的建立配置數據庫、僅安裝數據庫軟件&升級數據庫;

 


⑥ 三種安裝選項及對應的選項,

一、選擇安裝類型:桌面類仍是服務器類,若是在服務器安裝建議選擇服務器類;sql

 

 

二、選擇數據庫安裝類型數據庫

 

 

三、選擇數據庫升級類型express

 

 

⑦ 選擇設置主目錄用戶類型並建立帳戶;

 

 

 

 

⑧ 選擇填寫安裝Oracle安裝信息;

 

 

 

 

⑨ 檢查配置信息,若有須要保存響應文件;

 

 

⑩ 點擊安裝,等待安裝成功;

 

 

 

 

備註:database中下載12C版本的數據庫中不存在scott/tiger帳戶(官網中軟件未測試)瀏覽器

第二種安裝數據庫的方法(前提已安裝數據庫軟件)安全

 

①  打開開始菜單->Oracle文件夾->配置和移植工具->Database Configuration Assistant服務器

 

 

②  管理現有數據庫或者建立新的數據庫網絡

 

 

③  建立數據庫session

  

 

 

 

新安裝的數據庫只有SYS和SYSTEM兩個帳戶沒有鎖定,能夠經過口令管理設置解鎖和口令密碼;

④  配置現有數據庫

 

 

 

 

⑤  刪除數據庫操做

 

 

 

⑥  管理模板

 

從現有數據庫建立模板

 

 

 

 

 

從現有模板建立模板

 

 

 

做用:經過建立好的模板能夠實現數據庫的快速部署與災難恢復。

⑦  管理可插入數據庫

 

⑧  多租戶

Oracle 多租戶是 Oracle Database 12c 中的新選項。使用多租戶體系結構,Oracle DB 能夠包含一組可移植的方案、對象和相關結構,面向應用程序做爲一個邏輯上的單獨數據庫出現。
使用 Oracle 多租戶選項,DBA 能夠將大量小的部門數據庫應用程序合併爲單個較大的RDBMS 安裝。
在 Oracle Database 11 中,每一個數據庫實例與一個且僅一個數據庫相關聯。在 RAC 環境中,多個實例能夠與一個數據庫關聯。
在 Oracle Database 12c 中,一個實例將與整個 CDB 關聯。
若是同一個服務器上有多個數據庫,則每一個非 CDB 或 CDB 具備單獨的相異實例。
實例不能在非 CDB 和 CDB 之間共享。
在 Oracle Database 12c 中,有三個可能的配置選項:
一、多租戶配置:一般每一個 CDB 有多個 PDB,可是任什麼時候候能夠一次存放零個、一個
或許多 PDB,從而利用新體系結構的所有功能,這須要受權的 Oracle 多租戶選項
二、單租戶配置:新體系結構的特殊案例,這不須要受權的選項
三、非 CDB :舊的 Oracle Database 11 體系結構
容器
在 Oracle 12c 中,引入了容器的概念來將 Oracle 提供的對象和用戶數據(包括元數據)分離到不一樣容器中。
可將其視爲水平分區。在存放數據字典的每一個容器中有一個 SYSTEM 表空間。
在僅 Oracle 元數據容器(其包含 Oracle 提供的對象的元數據)中有一個字典。
在存放用戶元數據的用戶容器中有一個字典。

Oracle 提供的對象位於稱爲根容器(名爲 CDB$ROOT)的容器中。用戶容器稱爲可插入
數據庫 (PDB),其名稱是在建立該容器或者將其插入 CDB 時爲其提供的名稱。
使用存放多個 PDB 的多租戶體系結構,這些曾經分離的非 CDB 如今能夠位於單個實例
中,共享內存、磁盤和 CPU 資源,但維護應用程序分離。這些數據庫經過使用數據庫連接(快速CDB內db連接)共享數據。
數據庫連接仍起做用,可是如今由於「連接」通訊不離開實例,因此該連接很是快。

Oracle 12c的V$CONTAINERS 中有兩種類型的容器:
一、根容器:
– 在建立 CDB 時建立的第一個容器
– 必需
– Oracle 系統提供的公用對象和元數據
– Oracle 系統提供的公用用戶和角色
二、可插入數據庫容器 (PDB):
– 應用程序的容器:
— 表空間(永久和臨時)
— 方案/對象/權限
— 已建立/已克隆/已移走/已插入
– 特定種子 PDB:
— PDB$SEED 提供新 PDB 的快速預配
– 限制一個 CDB 中只能有 253 個 PDB(包括種子)
– 限制一個 CDB 中只能有 1024 個服務

使用多租戶體系結構,Oracle DB 能夠包含方案、方案對象和非方案對象的可移植集合,
面向 Oracle Net 客戶機做爲一個單獨數據庫出現。爲了 PDB 存在和運行,CDB 要求在
建立 CDB 時生成特定類型的容器,即根容器。根是存儲公用用戶的系統提供的容器,這
些容器能夠鏈接到多個容器以及系統提供的元數據和數據。例如,系統提供的 PL/SQL 程
序包的源代碼存儲在根中。存在根容器時,您能夠建立其餘類型的容器,即 PDB。
CDB 中僅有一個種子 PDB。種子 PDB 是用於建立新 PDB 的系統提供的模板。
CDB 最多能夠包含 253 個 PDB,包括種子。所以,能夠建立 252 個用戶定義的 PDB。
V$CONTAINERS 視圖顯示包括根在內的全部容器。

PDB與根
下列組件位於某個PDB中而不在根中,也不在另外一PDB中,分別是:
應用程序表空間、本地臨時表空間、本地用戶和本地角色、本地用戶鏈接到其所在的 PDB、
非共享的本地元數據、不與其餘 PDB 共享的應用程序數據、PDB 資源管理器計劃。
下列組件在PDB中而不在根中,分別是:
應用程序表空間、
本地臨時表空間、
本地用戶和本地角色、
非共享的本地元數據、
PDB 資源管理器計劃,容許在 PDB 內進行資源管理。

公用用戶和本地用戶
本地用戶
非 CDB 中的用戶映射到非 PDB 中的本地用戶。
在 PDB 本身的數據字典中定義本地用戶,因此在該 PDB 以外不知道該用戶。
本地用戶僅可鏈接到在其中定義該用戶的 PDB。
本地用戶特定於特定 PDB,在該 PDB 中擁有方案。
根據授予的權限,用戶能夠處理 PDB 內的應用程序數據或者使用數據庫連接處理
其餘 PDB 的應用程序。並且,不能在根中定義任何本地用戶。
公用用戶
公用用戶在 root 的數據字典中定義。
僅能夠在根中定義公用用戶:經過建立公用用戶,CDB 管理員能夠一次建立將在
每一個 PDB 中複製的用戶。
公用用戶不只在根中其定義的位置並且在屬於 CDB 的每一個 PDB 中爲已知。
公用用戶能夠執行特定於根或 PDB 的管理任務,例如插入和移走 PDB、啓動 CDB
或在授予正確權限時打開 PDB。

共享和非共享對象
在非 CDB 中,全部對象都是本地對象。12c 中引入了公用對象,以免在 CDB 中存儲
數據和元數據的冗餘表示,並簡化 CDB 的升級過程。共享對象僅存在於 Oracle 提供的
方案中。
共享對象多是與元數據連接的或者與對象連接的。
一、與元數據連接的對象僅在根中存儲有關字典對象的元數據。每一個 PDB 具備對象的專
用數據副本,指向根中存儲的元數據連接。
二、與對象連接的對象及其數據僅位於根中,由全部 PDB 共享。

3·常見Oracle操做配置

①  Winodw操做系統DOS界面輸入SQLplus進入命令行模式;

②  命令行界面輸入SELECT name,cdb, from v$database;能夠判斷數據庫類型是不是CDB;

③  ~\product\12.2.0\dbhome_1\network\admin\tnsnames.ora 文件中對相應數據庫的網絡狀況進行配置;

# PROTOCOL 指明要鏈接使用的協議

# HOST 是TCP/IP協議使用的服務器IP地址。

# PORT 是TCP/IP使用的端口地址。

# ADDRESS_LIST 表示該客戶機要經由多種協議與一臺或多臺服務器鏈接。在該樣式文件中就表示該客戶機要用TCP/IP協議來和服務器相連

# SID 指定要鏈接的服務器上ORACLE數據庫的ORACLE_SID。

# SERVER=DEDICATED 表示用專用服務器鏈接ORACLE數據庫

# SERVICE_NAME 服務器數據庫全局名稱

同時也要在監聽配置中設置IP信息(~\product\12.2.0\dbhome_1\network\admin\listener.ora)

④  SYS用戶默認密碼changer_on_install

⑤  查詢當前連接實例:命令行模式輸入select name from v$database;

查詢當前實例下數據庫:命令行模式輸入select instance_name from v$instance;

服務名稱OracleService+sid的個數;

⑥  命令行模式查看錶空間:select * from v$tablespace;

查看每一個表空間有哪些數據文件:desc dba_data_files;

查詳細數據文件:select file_name,tablespace_name from dba_data_files;

建立表空間:create tablespace paul datafile '/ora10/product/oradata/ora10/paul01.dbf' size 20m;

查看錶空間大小:Select Tablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name

 

能幫助DBA用戶完成如下工做:決定數據庫實體的空間分配;設置數據庫用戶的空間份額;控制數據庫部分數據的可用性;分佈數據於不一樣的設備之間以改善性能;備份和恢復數據。

因此要操縱一個ORACLE數據庫中的數據,應該:被授予關於一個或多個表空間中的RESOURCE特權;被指定缺省表空間;被分配指定表空間的存儲空間使用份額;被指定缺省臨時段表空間,創建不一樣的表空間,設置最大的存儲容量。

咱們能夠經過建立用戶而且指定用戶默認表空間來實現對不一樣數據的管理工做

①  用戶建立、受權、登陸&使用

推薦使用Oracle自帶的數據庫管理進行用戶建立、受權、登陸&使用。

 

 

 

 

 

 

②  用戶經常使用工具

開始菜單

 

 

4·監聽程序配置

①  打開工具軟件Net Manager

②  打開數據庫配置

 

 

③  測試服務是否聯通

 

④ 

⑤  更改數據庫網絡配置後點擊文件->保存網絡配置保存配置結果

注:)咱們推薦使用Net Manager工具軟件來進行數據庫網絡配置而非直接更改配置文件

5·Oracle Instance Manager 實例管理器

 

 

6·Net Configuration Assistant 數據庫網絡配置(做用相似於Net Manager)

7·Microsoft ODBC 管理員 對數據庫鏈接進行管理

 

 

8·Oracle Locale Builder 定製本地數據

 

 

9·Database Upgrade Assistant 數據庫升級助手

 

 

10·Database Migration Assistant for Unicode 數據庫遷移助手

 

 

角色限定爲SYSDBA

11·Administration Assistant for Windows Windows管理助手

 

 

12·網絡控制檯管理

參考資料:Oracle Database12c新特性:EM Express - 精簡EM版本

①  打開登陸至SQL操做界面

②  設置服務器端口號

SQL命令行中輸入一下命令

show parameter dispatchers;// 確認Oracle 12c中,XDB是強制安裝的,因此在數據庫安裝完成以後,只須要確認基本的XDB配置,設置端口便可啓用EM Express,如下配置8080端口做爲EM Express的監聽端口:

exec DBMS_XDB_CONFIG.setHTTPPort(8080);

③  打開瀏覽器輸入http://服務器IP:設置端口號/em/login

eg:http://192.168.12.244:8080/em/login

 

 

 

 

 

注)經過網絡控制檯URL實現遠程管理Oracle數據庫,方便現實遠程管理

 

功能:

配置:設置初始化參數、內存狀況監控、數據庫當前使用狀況監控、當前數據庫屬性、資源管理配置;

存儲:還原管理、重作日誌組、日誌歸檔、控制文件查看及備份;

安全:對用戶增刪查改、對角色增刪查改;

性能:性能中心(查看、保存報告)、SQL優化指導、SQL性能分析

4·常見錯誤及處理方案

 

①  錯誤提示:沒有匹配的驗證協議

解決方案:~\product\12.2.0\dbhome_1\network\admin\sqlnet.ora 文件末尾添加 SQLNET.ALLOWED_LOGON_VERSION=8

②  錯誤提示:端口問題

解決方案:~\product\12.2.0\dbhome_1\network\admin\tnsnames.ora 文件中記錄數據庫端口信息

③  判斷數據庫是否爲CDB

解決方案:select CDB from v$database; 結果爲YES則證實爲CDB數據庫不然爲PDB數據庫

④  用戶口令丟失

解決方案:一、右鍵「計算機」 ->「管理」 ->選擇"本地用戶和組" ->便可看到oracle用戶,單擊右鍵選擇"設置密碼 ",而後設置新的登錄密碼便可

              二、開始菜單中找到oracle12c的文件夾,會在裏面看到「更新oracle主目錄用戶的口令」,打開它,便可彈出一個dos窗口,進而修改密碼

⑤   

5·常見名詞解釋

 

表空間:Oracle的表空間屬於Oracle中的存儲結構,是一種用於存儲數據庫對象(如:數據文件)的邏輯空間,是Oracle中信息存儲的最大邏輯單元,其下還包含有段、區、數據塊等邏輯數據類型。表空間是在數據庫中開闢的一個空間,用於存放數據庫的對象,一個數據庫能夠由多個表空間組成。能夠經過表空間來實現對Oracle的調優。(Oracle數據庫獨特的高級應用)

.

容器數據庫(多租用戶環境):在ORACLE 12C數據庫引入的多租用戶環境(Multitenant Environment)中,容許一個數據庫容器(CDB)承載多個可插拔數據庫(PDB)。CDB全稱爲ContainerDatabase,中文翻譯爲數據庫容器,PDB全稱爲Pluggable Database,便可插拔數據庫。在ORACLE 12C以前,實例與數據庫是一對一或多對一關係(RAC):即一個實例只能與一個數據庫相關聯,數據庫能夠被多個實例所加載。而實例與數據庫不多是一對多的關係。當進入ORACLE 12C後,實例與數據庫能夠是一對多的關係。關於CDB與PDB的關係圖

 

①     Oracle用戶角色與權限:Oracle 權限容許用戶訪問屬於其它用戶的對象或執行程序,ORACLE系統提供三種權限:Object 對象級、System 系統級、Role 角色級。這些權限能夠授予給用戶、特殊用戶public或角色,若是授予一個權限給特殊用戶"Public"(用戶public是oracle預約義的,每一個用戶享有這個用戶享有的權限),那麼就意味做將該權限授予了該數據庫的全部用戶。對管理權限而言,角色是一個工具,權限可以被授予給一個角色,角色也能被授予給另外一個角色或用戶。用戶能夠經過角色繼承權限,除了管理權限外角色服務沒有其它目的。權限能夠被授予,也能夠用一樣的方式撤銷。

權限分類

一、系統權限:系統規定用戶使用數據庫的權限。(系統權限是對用戶而言)。

二、實體權限:某種權限用戶對其它用戶的表或視圖的存取權限。(是針對表或視圖而言的)。

系統權限分類

DBA: 擁有所有特權,是系統最高權限,只有DBA才能夠建立數據庫結構。

RESOURCE:擁有Resource權限的用戶只能夠建立實體,不能夠建立數據庫結構。

CONNECT:擁有Connect權限的用戶只能夠登陸Oracle,不能夠建立實體,不能夠建立數據庫結構。

對於普通用戶:授予connect, resource權限;對於DBA管理用戶:授予connect,resource, dba權限。注:系統權限只能由DBA用戶授出:sys, system(最開始只能是這兩個用戶)

      實體權限分類

                      select, update, insert, alter, index, delete, all  //all包括全部權限

execute  //執行存儲過程權限

Oracle 角色管理

角色是一組權限的集合,將角色賦給一個用戶,這個用戶就擁有了這個角色中的全部權限。系統預約義角色是在數據庫安裝後,系統自動建立的一些經常使用的角色。下介簡單的介紹一下這些預約角色。角色所包含的權限能夠用如下語句查詢:

sql>select * from role_sys_privs where role='角色名';

                 推薦建立角色權限能夠經過SQL Developer或者網絡控制檯進行操做

常見角色:.

CONNECT, RESOURCE, DBA:這些預約義角色主要是爲了向後兼容。其主要是用於數據庫管理。oracle建議用戶本身設計數據庫管理和安全的權限規劃,而不要簡單的使用這些預約角色。未來的版本中這些角色可能不會做爲預約義角色。

DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE:這些角色主要用於訪問數據字典視圖和包。

EXP_FULL_DATABASE, IMP_FULL_DATABASE:這兩個角色用於數據導入導出工具的使用。

AQ_USER_ROLE, AQ_ADMINISTRATOR_ROLE:AQ:Advanced Query。這兩個角色用於oracle高級查詢功能。

SNMPAGENT:用於oracle enterprise manager和Intelligent Agent

RECOVERY_CATALOG_OWNER:用於建立擁有恢復庫的用戶。關於恢復庫的信息,參考oracle文檔《Oracle9i User-Managed Backup and Recovery Guide》

HS_ADMIN_ROLE:A DBA using Oracle's heterogeneous services feature needs this role to access appropriate tables in the data dictionary.

oracle的系統和對象權限列表

 

alter any cluster 修改任意簇的權限
alter any index 修改任意索引的權限
alter any role 修改任意角色的權限
alter any sequence 修改任意序列的權限
alter any snapshot 修改任意快照的權限
alter any table 修改任意表的權限
alter any trigger 修改任意觸發器的權限
alter cluster 修改擁有簇的權限
alter database 修改數據庫的權限
alter procedure 修改擁有的存儲過程權限
alter profile 修改資源限制簡表的權限
alter resource cost 設置佳話資源開銷的權限
alter rollback segment 修改回滾段的權限
alter sequence 修改擁有的序列權限
alter session 修改數據庫會話的權限
alter sytem 修改數據庫服務器設置的權限
alter table 修改擁有的表權限
alter tablespace 修改表空間的權限
alter user 修改用戶的權限
analyze 使用analyze命令分析數據庫中任意的表、索引和簇
audit any 爲任意的數據庫對象設置審計選項
audit system 容許系統操做審計
backup any table 備份任意表的權限
become user 切換用戶狀態的權限
commit any table 提交表的權限
create any cluster 爲任意用戶建立簇的權限
create any index 爲任意用戶建立索引的權限
create any procedure 爲任意用戶建立存儲過程的權限
create any sequence 爲任意用戶建立序列的權限
create any snapshot 爲任意用戶建立快照的權限
create any synonym 爲任意用戶建立同義名的權限
create any table 爲任意用戶建立表的權限
create any trigger 爲任意用戶建立觸發器的權限
create any view 爲任意用戶建立視圖的權限
create cluster 爲用戶建立簇的權限
create database link 爲用戶建立的權限
create procedure 爲用戶建立存儲過程的權限
create profile 建立資源限制簡表的權限
create public database link 建立公共數據庫鏈路的權限
create public synonym 建立公共同義名的權限
create role 建立角色的權限
create rollback segment 建立回滾段的權限
create session 建立會話的權限
create sequence 爲用戶建立序列的權限
create snapshot 爲用戶建立快照的權限
create synonym 爲用戶建立同義名的權限
create table 爲用戶建立表的權限
create tablespace 建立表空間的權限
create user 建立用戶的權限
create view 爲用戶建立視圖的權限
delete any table 刪除任意表行的權限
delete any view 刪除任意視圖行的權限
delete snapshot 刪除快照中行的權限
delete table 爲用戶刪除錶行的權限
delete view 爲用戶刪除視圖行的權限
drop any cluster 刪除任意簇的權限
drop any index 刪除任意索引的權限
drop any procedure 刪除任意存儲過程的權限
drop any role 刪除任意角色的權限
drop any sequence 刪除任意序列的權限
drop any snapshot 刪除任意快照的權限
drop any synonym 刪除任意同義名的權限
drop any table 刪除任意表的權限
drop any trigger 刪除任意觸發器的權限
drop any view 刪除任意視圖的權限
drop profile 刪除資源限制簡表的權限
drop public cluster 刪除公共簇的權限
drop public database link 刪除公共數據鏈路的權限
drop public synonym 刪除公共同義名的權限
drop rollback segment 刪除回滾段的權限
drop tablespace 刪除表空間的權限
drop user 刪除用戶的權限
execute any procedure 執行任意存儲過程的權限
execute function 執行存儲函數的權限
execute package 執行存儲包的權限
execute procedure 執行用戶存儲過程的權限
force any transaction 管理未提交的任意事務的輸出權限
force transaction 管理未提交的用戶事務的輸出權限
grant any privilege 授予任意系統特權的權限
grant any role 授予任意角色的權限
index table 給表加索引的權限
insert any table 向任意表中插入行的權限
insert snapshot 向快照中插入行的權限
insert table 向用戶表中插入行的權限
insert view 向用戶視圖中插行的權限
lock any table 給任意表加鎖的權限
manager tablespace 管理(備份可用性)表空間的權限
references table 參考表的權限
restricted session 建立有限制的數據庫會話的權限
select any sequence 使用任意序列的權限
select any table 使用任意表的權限
select snapshot 使用快照的權限
select sequence 使用用戶序列的權限
select table 使用用戶表的權限
select view 使用視圖的權限
unlimited tablespace 對錶空間大小不加限制的權限
update any table 修改任意表中行的權限
update snapshot 修改快照中行的權限
update table 修改用戶表中的行的權限
update view 修改視圖中行的權限

 

6·參考資料

    Oracle表空間

    Oracle12C用戶建立、受權、登陸

    MySql與Oracle的幾個主要區別

    Oracle和MySQL的對比

    oracle 12C SYS,SYSTEM用戶的密碼都忘記或是丟失

    Oracle Database 12c 多租戶容器數據庫和可插入數據庫 

    Oracle 12c新特性(For DBA)

    Oracle 12C新特性-CDB和PDB 詳解

    Oracle 表空間詳解

    建立數據庫時,模板選擇「通常用途或事務處理」與「數據倉庫」有何不一樣?

    dbca建立數據庫不一樣模板之間的區別

     ORACLE利用模板建立數據庫

    Oracle權限管理詳解

    oracle數據庫用戶刪除及表空間刪除

    Oracle建立用戶並受權

相關文章
相關標籤/搜索