海鷗航際

          JAVA站
          posts - 11, comments - 53, trackbacks - 1, articles - 102

          Oracle 基本知識及問題解決

          Posted on 2005-02-03 21:18 海天一鷗 閱讀(230) 評論(0)  編輯  收藏 所屬分類: Java數據庫技術
          概序

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

          一、基本知識

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

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

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

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

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

          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
          主站蜘蛛池模板: 介休市| 夏邑县| 苏尼特右旗| 滕州市| 湘乡市| 莫力| 嘉祥县| 柯坪县| 葫芦岛市| 临夏县| 五常市| 江源县| 仙桃市| 镇江市| 龙江县| 育儿| 贵南县| 昭平县| 诸城市| 麟游县| 武穴市| 舒兰市| 古交市| 牟定县| 古田县| 勐海县| 元氏县| 漳浦县| 临汾市| 贵阳市| 宜兰市| 繁昌县| 商丘市| 台南市| 宣武区| 扎兰屯市| 双辽市| 张家口市| 法库县| 平定县| 镇原县|