Oracle數據庫的一些常用維護操作總結
我們知道,對數據庫的維護是數據庫保證數據庫安全穩定運行中必不可少的一個環節。本文我們總結了一些Oracle數據庫的一些常用的維護操作,包括一些常規的維護操作,一些系統的維護操作以及命名空間的維護操作等,接下來就讓我們來一起了解一下吧!
常規:
Oracle在sqlplus命令行下,執行完數據庫操作以后,需要跟上commit才能生效。
主要監聽兩個端口,1521是數據庫連接端口,8080是服務器端口。
Oracle默認安裝完畢,會自帶一個http服務器,以web的形式提供用戶管理界面,該服務器端口8080與tomcat的默認端口一樣,是導致tomcat啟動不了的常見原因,我一般是修改tomcat的配置文件server.xml,把http1.1的端口改成8081。
系統維護:
登錄
sqlplus username/password@addr [as sysdba,sysoper]
不寫地址默認是localhost 不寫身份默認是sysoper
查詢sid
select instance_name from v$instance
查詢數據庫版本
Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle';
查詢監聽:lsnrctl status--在cmd下而不是sqlplus下
啟動監聽:lsnrctl start--在cmd下而不是sqlplus下
停止監聽:lsnrctl stop--在cmd下而不是sqlplus下
創建用戶
- create user weinianjie identified by "123" default tablespace sheep temporary tablespacetemp profile default;
- grant resource,connect,dba to weinianjie;
查詢當前用戶
show user;
命名空間:
解釋:
百度百科原話:“ORACLE數據庫被劃分成稱作為表空間的邏輯區域——形成ORACLE數據庫的邏輯結構。一個ORACLE數據庫能夠有一個或多個Oracle,而一個表空間則對應著一個或多個物理的數據庫文件。表空間是ORACLE數據庫恢復的最小單位,容納著許多數據庫實體,如表、視圖、索引、聚簇、回退段和臨時段等。
每個ORACLE數據庫均有SYSTEM表空間,這是數據庫創建時自動創建的。SYSTEM表空間必須總要保持聯機,因為其包含著數據庫運行所要求的基本信息(關于整個數據庫的數據字典、聯機求助機制、所有回退段、臨時段和自舉段、所有的用戶數據庫實體、其它ORACLE軟件產品要求的表)。”
我的理解,表空間跟庫的概念差不多,一個表空間對應一個或者多個物理文件,每個用戶屬于一個或多個表空間,其中有一個是默認的。連接數據庫的時候不需要制定表空間,用戶創建的對象會在用戶默認的表空間里存放著。
命名空間定義了一組對象類型,在命名空間里,對象的名字必須是唯一的,當然,在不同的命名空間里,是可以使用相同的的名字的。
下面的對象類型共享同一個命名空間:
- ? Tables
- ? Views
- ? Sequences
- ? Private synonyms
- ? Stand-alone procedures
- ? Stand-alone stored functions
- ? Packages
- ? Materialized views
- ? User-defined types
創建數據表空間:create tablespace sheep datafile 'c:/sheep.dbf' size 20m autoextend on;
創建臨時表空間:create temporary tablespace sheep tempfile 'c:/sheep.dbf' size 20m autoextend on;
查詢空間:
- select tablespace_name from dba_tablespaces;
- select tablespace_name from user_tablespaces;
查詢表空間的物理情況:
- select * from dba_data_files where tablespace_name='SYSTEM';--這里一定要是全大寫的,哪怕你建空間的時候沒有使用大寫
- select * from dba_temp_files where tablespace_name='TEMP';--這里一定要是全大寫的,哪怕你建空間的時候沒有使用大寫
查詢表空間內的表:
select table_name from dba_all_tables where tablespace_name='USERS';
表:
查詢當前用戶空間的所有表:
select tname from tab
序列:
查詢當前用戶空間的所有序列:
select squence_name from seq
創建序列:
create sequence user_seq minvalue 1 maxvalue 99999 start with 1 increment by 1 nocache nocycle
使用序列:
insert into user values(user_seq.nextval);
腳本:
- begin--必須以begin開頭。
- for column_ in (select * from tb1) loop
- insert into tb2 values(column_.field1);
- end loop;
- end;
java交互:
驅動名稱:oracle.jdbc.driver.OracleDriver
連接字符串:jdbc:oracle:thin:@localhost:1521:xe,其中***一個量是sid 。
關于Oracle數據庫的常用維護就介紹到這里,如果您想了解更多的關于Oracle數據庫的知識,可以看一下這里的文章:http://database.51cto.com/oracle/,相信一定可以帶給您收獲的。
【編輯推薦】