手動創建oracle數據庫實例

linux 手動創建oracle數據庫手冊

張映 發表於 2011-06-01

分類目錄: oracle

linux下創建oracle數據庫主要有二種方法以:1,通過dbca來創建;2,手動創建。

用dbca創建比較簡單,圖形化操作。注意:要加環境變量export LC_ALL=C,不然會亂碼的。

手動創建比較麻煩,不過我們可以大致瞭解oracle就怎麼存儲數據的,目錄是怎麼安排的等。下面如何手動創建數據庫詳細的說明一下。

 

1,設置環境變量

裝oracle的時候,設置了一些環境變量,下面這些環境變量是根這次安裝有關的

  1. ORACLE_HOME=/opt/ora10   
  2. ORACLE_OWNER=oracle   
  3. DB_HOME=/opt/ora10/oradata   
  4. ORACLE_SID=ora1             //這個是默認安裝ora1數據庫的sid,下面會改掉的。  

手動創建oracle數據庫的時候,最好是切換oracle用戶,就是安裝oracle的那個用戶。su oracle

2,創建pfile文件

oracle安裝完成後,系統默認有一個數據庫ora1,我們可以利用它來創建pfile文件

  1. cd $ORACLE_HOME/dbs   
  2. strings spfileora1.ora >initmytest.ora  

然後在手動將initmytest.ora裏面ora1,全部改成mytest,這樣pfile文件就做好了。

3,生成密碼文件

  1. sudo cp $ORACLE_HOME/bin/orapwd /usr/local/bin/   
  2. orapwd file=orapwmytest password=mytest      //目錄是$ORACLE_HOME/dbs,前面已經有了  

4,創建oracle數據庫目錄

  1. mkdir $ORACLE_HOME/admin/mytest   
  2. cd $ORACLE_HOME/admin/mytest   
  3. mkdir adump bdump cdump dpdump pfile udump   
  4. mkdir $DB_HOME/mytest                      //這一步不要忘了,容易看錯  

5,修改tnsnames.ora和listener.ora

  1. //這個在tnsnames.ora中加上   
  2. MYTEST =   
  3.  (DESCRIPTION =   
  4.     (ADDRESS = (PROTOCOL = TCP)(HOST = ubuntu)(PORT = 1521))   
  5.     (CONNECT_DATA =   
  6.        (SERVER = DEDICATED)   
  7.        (SERVICE_NAME = mytest)   
  8.     )   
  9.  )   
  10.   
  11. //這個在lister.ora中加上   
  12. (SID_DESC =   
  13.  (SID_NAME = mytest)   
  14.  (GLOBAL_DBNAME=mytest)   
  15.  (ORACLE_HOME = /opt/ora10)   
  16.  (PROGRAM = extproc)   
  17. )  

其實就是將各自文件中ora1的部分,拷貝一下,把ora1改成mytest。其實就這些簡單。修改這個爲了sqlplus連接實例用的。

6,修改實例入口

  1. export ORACLE_SID=mytest  

前面提到了環境變量ORACLE_SID=ora1,在這裏要換掉,不然用sqlplus會進入到ora1數據庫的。

7,創建數據庫

  1. //1,sqlplus登錄   
  2. sqlplus / as sysdba          
  3.   
  4. //2,啓動不加載實例   
  5. SQL> startup nomount   
  6.   
  7. //3,從create開始到最後的冒號,直接copy進去執行就行了。   
  8. SQL> create database mytest   
  9. LOGFILE   
  10. GROUP 1 ('$DB_HOME/mytest/redo01.log','$DB_HOME/mytest/redo01_1.log') size 100m reuse,   
  11. GROUP 2 ('$DB_HOME/mytest/redo02.log','$DB_HOME/mytest/redo02_1.log') size 100m reuse,   
  12. GROUP 3 ('$DB_HOME/mytest/redo03.log','$DB_HOME/mytest/redo03_1.log') size 100m reuse   
  13. MAXLOGFILES 50   
  14. MAXLOGMEMBERS 5   
  15. MAXLOGHISTORY 200   
  16. MAXDATAFILES 500   
  17. MAXINSTANCES 5   
  18. ARCHIVELOG   
  19. CHARACTER SET UTF8   
  20. NATIONAL CHARACTER SET UTF8   
  21. DATAFILE '$DB_HOME/mytest/system01.dbf' SIZE 1000M EXTENT MANAGEMENT LOCAL   
  22. SYSAUX DATAFILE '$DB_HOME/mytest/sysaux01.dbf' SIZE 1000M   
  23. UNDO TABLESPACE UNDOTBS1 DATAFILE '$DB_HOME/mytest/undo.dbf' SIZE 500M   
  24. DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '$DB_HOME/mytest/temp.dbf' SIZE 500M;  

如果出現下圖,表示創建數據庫成功

手動創建oracle數據庫成功

手動創建oracle數據庫成功

8,創建ORACLE的數據字典

  1. SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql;   
  2. SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql;  

執行這二個文件,也是挺費時間的。

9,簡單設置一下權限

  1. SQL> alter user system identified by mytest;   
  2. SQL> grant sysdba to system;   
  3. SQL> shutdown immediate;         //用shutdown會很慢,加上immediate快很多   
  4. SQL> startup;  

10,查看一下表空間,以及管理方式

  1. SQL> select tablespace_name,extent_management from dba_tablespaces;   
  2.   
  3. TABLESPACE_NAME            EXTENT_MAN   
  4. ------------------------------ ----------   
  5. SYSTEM                   LOCAL   
  6. UNDOTBS1               LOCAL   
  7. SYSAUX                   LOCAL   
  8. TEMP                   LOCAL  

ora1和mytest完全一樣。

11,遇到問題以及解決

安裝過程中因爲疏忽,安裝沒有完成,但是數據庫已經建好了,提示不能重建,我嘗試的時候,就遇到這樣的情況了。遇到這種情況,最好的辦法是把數據庫刪除,重新在裝。

SQL> drop database;   
  1. drop database   
  2. *   
  3. ERROR at line 1:   
  4. ORA-12719: operation requires database is in RESTRICTED mode   
  5.   
  6. //解決辦法如下   
  7. sql> alter system enable restricted session;   
  8. sql> drop database;  

小結:創建oracle數據庫,比創建mysql數據庫要複雜的多了。創建mysql數據庫,只要一句話,create database mytest就行了。在磁盤會自動創建一個以數據名命名的文件夾。oracle的強大,也許就在於此吧。

 

文章轉載於:http://blog.51yip.com/oracle/1305.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章