程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數據庫基本知識及問題解決

Oracle數據庫基本知識及問題解決

編輯:Oracle數據庫基礎

概序

Oracle數據庫作為一個大型的關系型數據庫,它與其他關系型數據庫相比,有許多個性的東西,下面作一個簡單的說明,其中包括我們在日常運行和維護中可能用到的知識,希望對大家有所幫助

一、基本知識

1、表空間對於數據庫是唯一性的,且要求每個數據庫最少有一個表空間。

表空間可以分為系統表空間和非系統表空間、回滾段表空間;也可以分為用戶表空間和非用戶表空間,他們只是分類方式不同,其實實質差不多;

臨時表空間:臨時表空間並不包含真正的數據,恢復的方法是刪除臨時表空間並重建即可.。系統表空間:如果備份不可用,則只能采用重建數據庫的方法 。

表空間的大小可以根據需要和設備的情況進行設置

表空間可以簡單的理解為存放信息的空間,我們一般按如下順序進行數據庫系統的創建:創建表空間---》修改表空間---》創建回滾段---》創建用戶和授權---》創建用戶表---》創建表索引,用戶只要按這個順序就可以建立自己的數據庫系統了,至於創建的數據庫是否有最佳的性能,我會在以後的文章中做專門的討論。表空間的建立可以用圖形用戶界面的方式很方便的建立,相信大家都會,在這裡我不進行詳細的介紹。

2、控制文件在每個數據庫中必不可少,為了使數據庫的性能提高建議多建幾個控制文件,求要求放在不同的磁盤上。 Oracle數據庫由數據文件,控制文件和聯機日志文件三種文件組成。由於磁盤空間的變化,或者基於數據庫磁盤I/O性能的調整等,數據庫管理員可能會考慮移動數據庫文件。下面以UNIX平台為例,分別討論三種數據庫文件的移動方法

不能被忽視的數據庫日志文件

請注意日志文件在恢復數據庫時非常重要

日志可分為在線日志和離線日志,在線日志能記錄每一個Oracle數據庫中所作的全部修改。一個在線日志由多個在線日志文件組成,每一個運行的Oracle數據庫實例相應地有一個在線日志,它與Oracle後台進程LGWR一起工作,立即記錄該實例所作的全部修改。離線日志是可選擇的·當Oracle填滿了在線日志文件後,就要進行歸檔了。

二、創建表空間、回滾段、用戶、表的語法

1、創建表空間(這是在建數據庫時的第一步要做的工作,表空間好比容器,將數據庫的各種東西包含在裡面)

CREATE TABLESPACE test DATAFILE '/dev/test_name1' SIZE
1000M, '/dev/test_name2' SIZE 1000M , '/dev/test_name3' SIZE 1000M 
DEFAULT STORAGE ( INITIAL 64K NEXT 64K MAXEXTENTS UNLIMITED PCTINCREASE 50 );

注意:這裡沒有對表空間的擴展進行限制。

2、修改表空間

alter TABLESPACE ts_name1 add DATAFILE '/dev/name4' SIZE 1000M;

3、回滾段

CREATE ROLLBACK SEGMENT "RStest" TABLESPACE "Test_name" 
STORAGE ( INITIAL 16M NEXT 16M MAXEXTENTS UNLIMITED);

注意不要建不同的大小的回滾段,因為Oracle不會自己挑選和需要最相符的回滾段

4、創建用戶和授權

CREATE USER test_user IDENTIFIED BY test_user 
DEFAULT TABLESPACE Test_name1 TEMPORARY TABLESPACE Test_name2; 
GRANT CONNECT TO test_user; 
GRANT DBA TO test_user; 
GRANT resource TO test_user;

5、創建表

create table test_name1
( 
a NUMBER(10) not null, 
b NUMBER(10) null , 
c NUMBER(3) defalut 0, 
d number(3) not null , 
constraint PK_ test_user primary key (a) 
using index 
tablespace test_name1 
storage
( 
initial 1m 
next 1m 
pctincrease 0 
) 
) 
pctfree 10 
tablespace test_name1 
storage 
( 
initial 1m 
next 1m 
pctincrease 0 
) 
partition by range(d) 
(partition part000 values less than (1) tablespace test_name1, 
partition part001 values less than (2) tablespace test_name1, 
)

6、創建索引

create index id_tablename1 on test_name1 (f2) 
tablespace ts_name 
storage 
(  
initial 500k 
next 500k 
pctincrease 0 
)

三、查詢表空間

select substr(a.TABLESPACE_NAME,1,10) TablespaceName, 
sum(a.bytes/1024/1024) totle_size, 
sum(nvl(b.free_space1/1024/1024,0)) free_space, 
sum(a.bytes/1024/1024)-sum(nvl(b.free_space1/1024/1024,0)) used_space, 
round((sum(a.bytes/1024/1024)-sum(nvl(b.free_space1/1024/1024,0)))*100/sum
(a.bytes/1024/1024),2) used_percent 
from dba_data_files a, 
(select sum(nvl(bytes,0)) free_space1,file_id 
from dba_free_space 
group by file_id) b 
where a.file_id = b.file_id(+) 
group by a.TABLESPACE_NAME
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved