4, 手工建立資料庫(筆記)

tonykorn97發表於2006-04-12

4, 手工建立資料庫

管理例程服務


windows/linux/unix系統中,例程是用環境變數ORACLE_SID唯一標識的.當在linux/unix平臺上管理特定例程是,可以直接使用EXPORT ORACLE_SID命令設定要管理的例程.當在windows平臺上管理特定的例程是,必須首先啟動例程服務.然後使用SET ORACLE_SID命令設定要掛零的例程如果沒有啟動例程服務,或者不存在對應的例程服務.那麼當連線到例程時會顯示如下錯誤資訊:

D:>set oracle_sid=test

D:>sqlplus sys/oracle as sysdba

ERROR:

ORA—12560:TNS:協議介面卡錯誤

管理例程是使用工具ORADIM完成的,該工具不僅可以用於建立例程服務,還可以用於編輯和刪除例程服務.

1 建立例程服務,

當在windows平臺上建立新資料庫時,應首先建立例程服務.建立例程服務是使用ORADIM命令的NEW選項來完成的.

ORADIM –NEW –SID sid | SRVC service [ - INTPWD password ]

[ -MAXUSERS number ] [ -STARTMODE a|m ] [ -PFILE file ]

其中,NEW用於指定建立新例程服務;SID用於指定例程名;SRVC用於指定例程的服務名;INTPWD用於指定特權使用者的口令;MAXUSERS用於指定特權使用者的最大個數;STARTMODE用於指定例程服務的啟動類別(a:自動啟動b:手工啟動);PFILE用於指定例程對應的文字引數檔案.

需要注意,當使用SRVC選項指定例程服務名時,必須帶有OracleService字首.

: (例程服務名:OracleServiceTEST)

Oradim –new –sid test –intpwd oracle

(或者)Oradim –new –srvc OracleServiceTEST –intpwd oracle

執行以上命令後,不僅會建立例程服務,還會自動建立口令檔案(口令檔案的位置為%ORACLE_HOME%database,名稱為pwdtest.ora)

2 使用ORADIM命令的EDIT選項修改例程服務

ORADIM –EDIT –SID sid [ -NEWSID sid ] [ -INTPWD passwd]

[ -STARTMODE a|m ] [ -PFILE fiel ]

[ -SHUTMODE a | i | n ] [ -SHUTTYPE srvc|inst ]

EDIT用於指定編輯例程服務,SHUTMODE用於指定例程服務的關閉模式;SHUTTYPE用於指定關閉型別.

3 使用ORADIM命令的DELETE選項刪除例程服務

ORADIM –DELETE –SID sid | -SRVC service_name

刪除例程服務後,還應手工刪除該例程所對應的口令檔案.

windows平臺上手工建立oracle資料庫的步驟如下:

建立例程服務

建立引數檔案

NOMOUNT方式啟動例程服務

建立資料庫

執行指令碼完成後續操作

1, 建立例程服務

2, 建立引數檔案

windows平臺上使用新例程之前,必須建立並啟動相應的例程服務在windows平臺上建立引數檔案時,應將引數檔案放在%ORACLE_HOME%database子目錄中,PFILE應命名為initORA.ora,SPFILE應命名為spfileSID.ora.

如果已存在例程使用pfile,可以直接使用作業系統的copy命令複製並生成pfile檔案initdemo.ora;如果已存在例程使用spfile,可以直接使用CREATE PFILE命令建立PFILE檔案.只有特權使用者才可以使用CREATE PFILE命令.:

Create pfile=’%oracle_home$databaseinitdemo.ora’ from spfile;

建立spfile

因為spfile更易於管理,所有oracle建議使用spfile,如果已經存在pfile,可以使用create spfile命令建立.

Create spfile=’%oralce_home%databasespfiledemo.ora’

From pfile=’%oracle_home%databaseinitdemo.ora’;

3啟動例程

建立資料庫之前必須首先啟動例程,

Set oracle_sid=demo

Sqlplus sys/oracle as sysdba

Startup nomount

4,建立資料庫

建立資料庫是使用CREATE DATABAS命令完成的,需要注意,該命令只能由具有SYSDBA身份的使用者執行,並且要求示例必須處於NOMOUNT狀態.建立DEMO資料庫的示例如下:

CREATE DATABASE demo

MAXINSTANCES 8

MAXLOGHISTORY 1

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

LOGFILE GROUP 1 ‘D:demoredo01.log’ SIZE 10M,

GROUP 2 ‘D:demoredo02.log’ SIZE 10M

DATAFIEL ‘d:demosystem01.dbf’ size 100M

AUTOEXTEND ON NEXT 10M EXTENT MANAGEMENT LOCAL

SYSAUX DATAFIEL ‘D:demosysaux01.dbf’ SIZE 30M

AUTOEXTEND ON NEXT 10M

DEFAULT TEMPORARY TABLESPACE TEMP

TEMPFILE ‘D:demotemp.dbf’ size 10M AUTOEXTEND ON NEXT 10M

UNDO TABLESPACE UNDOTBS1 DATAFILE ‘D:demoundotbs1.dbf’ SIZE 20M

CHARACTER SET ZHS16GBK

NATIONAL CHARACTER SET AL16UTF16

USER SYS IDENTIFIED BY demo

USER SYSTEM IDENTIFIED BY manager;

其中,MAXINSTANCES 用於指定在RAC環境中可訪問資料庫的最大例程個數;

MAXLOGFILES 用於指定資料庫的最大重做日誌組個數.

MAXLOGMEMBERS用於指定每個重做日誌組的最大日誌成員個數.

MAXDATAFILES用於指定資料庫的最大資料檔案個數.

MAXLOGHISTORY用於指定最大日誌歷史個數.

LOGFILE用於指定重做日誌的名稱的尺寸.其中GROUP1,GROUP2分別表示日誌組一,日誌組二;

第一個DATAFILE用於指定SYSTEM表空間所對應的資料檔名稱和尺寸,AUTOEXTEND ON 表示該資料檔案可以自動擴充套件,NEXT指定了資料檔案每次擴充套件的尺寸,EXTENT MANAGEMENT LOCAL 用於指定SYSTEM表空間採用區域性管理方式;

SYSAUX DATAFILE(ORACLE DATABASE 10G新特性)用於指定SYSAUX表空間所對應的資料檔名稱和尺寸;

DEFAULT TEMPORARY TABLESPACE 用於指定資料庫的預設臨時表空間及其臨時檔案的名稱和尺寸.

UNDO TABLERSPACE 用於指定UNDO表空間及其資料檔案的名稱和尺寸;

CHARACTER SET 用於指定資料庫字符集;

NATIONAL CHARACTER SET 用於指定民族字符集;

USER選項用於改變特權使用者SYSDBA使用者SYSTEM的口令.

執行CREATE DATABASE 命令建立資料庫時,需要主要以下事項.

CREATE DATABASE 後的資料庫名必須和初始化引數DB_NAME一致.

當指定LOGFILE選項時,至少要包含兩個日誌組.

當指定資料檔案,重做日誌和臨時檔案時,必須要確保OS目錄已經存在.

當指定UNDO表空間時,該表空間名稱必須與初始化引數UNDO_TABLESPACE一致.

因為建立了資料庫之後資料庫字符集不能被修改為其他民族所使用的字符集,所以必須規劃好字符集.

5,完成建立資料庫的後續任務.

執行CREATE DATABASE命令建立資料庫後,還必須以SYS使用者身份安裝資料字典檢視和PL/SQL;另外,為了加強應用產品的安全性,還應以SYSTEM使用者身份安裝PRODUCT_USER_PROFILE.

1,安裝資料字典檢視

當執行CREATE DATABASE命令建立資料庫時,oracle會自動執行sql.bsp檔案建立資料字典基表.資料字典基表存放著oracle資料庫的基本資訊,他們時oracle資料庫中最早建立的資料庫物件,只有oracle server可以修改其內容.因為資料字典基表的資料以加密格式存放,所以資料庫使用者幾乎不能直接訪問這些物件.為了獲得oracle資料庫的系統資訊.資料庫使用者可以查詢資料字典檢視,但因為建立資料庫時,oracle並沒有建立資料字典檢視,所有在建立資料庫完成之後必須安裝資料字典檢視.執行%ORACLE_HOME%rdbmsadmincatalog.sql指令碼可以安裝資料字典檢視,但必須以SYS使用者登陸執行該指令碼.

2,安裝oracle系統包

為了擴充套件oracle資料庫的功能,oracle提供了大量的PL/SQL系統包,編寫應用程式時,開發人員可以直接引用ORACLE系統提供的各種過程和函式.執行%ORACLE_HOME%rdbmsadmincatproc.sql指令碼可以安裝資料字典檢視,但必須以SYS使用者登陸執行該指令碼.

3,安裝PRODUCT_USER_PROFILE

控制資料庫使用者的安全性補充,特權使用者和DBA使用者可以使用SQL命令GRANTREVOKE.作為使用者級安全的補充,特權使用者和DBA使用者還可以控制應用產品的安全性.為了控制應用產品的安全性,必須建立PRODUCT_USER_PROFILE表及其相關檢視. 執行%ORACLE_HOME%sqlplusadminpupbld.sql 指令碼可以完成這項任務.必須以SYSTEM使用者執行.

如果沒有安裝PRODUCT_USER_PROFILE,執行SQL*PLUS時如果以普通使用者身份登陸,則會顯示如下警告資訊:

Error accessiong PRODUCT_USER_PROFILE

Warning:product user profile information not loaded!

You may need to run PUPBLD.SQL as system

配置網路

建立oracle資料庫後,為了使客戶應用可以訪問該oracle資料庫,首先需要在服務端配置監聽程式,然後在客戶端配置網路服務名.

配置網路可以使用oracle網路管理工具Net Manager完成.

Net Manager包括一下檔案

概要檔案用於配置網路首選項,日誌和跟蹤資訊.對應於網路檔案sqlnet.ora

服務命名用於配置本地的網路服務名,對應於網路檔案tnsnames.ora;

監聽程式用於配置服務端的監聽程式,對應於網路檔案listener.ora

安裝了Oracle Database 10g,網路配置檔案的預設位置為%ORACLE_HOME%networkadmin.透過設定環境變數TNS_ADMIN可以改變這些網路配置的位置.

配置監聽程式

監聽程式用於接受客戶端的連線請求.當安裝oracle資料庫產品時,會自動建立預設的監聽程式LISTENER.透過該監聽程式可以同時監聽多個資料庫.在同一個伺服器上可以包含多個監聽程式,並且不同的監聽程式可以監聽同一個資料庫.

為了使監聽程式配置生效,必須使用監聽程式控制工具lsnrctl重新啟動監聽程式

Lsnrctl stop / lsnrctl start

配置客戶端

為了使客戶端應用可以訪問oracle資料庫,不僅需要在服務端配置並啟動監聽程式,還必須在客戶端配置網路服務名.

網路服務名的配置資訊儲存在tnsnames.ora 檔案中.

刪除資料庫

oracle database 10g之前,如果要刪除資料庫,必須首先使用ORADIM工具刪除例程服務,然後使用OS命令刪除資料庫所有物理檔案.

oracle database 10g開始.特權使用者可以使用DROP DATABASE 命令刪除該資料庫,使用drop database命令刪除資料庫時,要求資料庫必須處於MOUNT狀態.並且必須使用RESTRICT 方式裝載資料庫.

C:sqlplus sys/oracle as sysdba

SQL>SHUTDOWN

SQL>STARTUP RESTRICT MOUNT

SQL>DROP DATABASE;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245219/,如需轉載,請註明出處,否則將追究法律責任。

相關文章