ORACLE管理員指南(二):創建oracle數據庫

手工創建oracle數據庫

Ø         確定數據庫SID

例如執行以下命令設置SID% setenv ORACLE_SID mynewdb

Ø         建立數據庫管理員認證方式

選擇操作系統認證或密碼文件認證

Ø         創建初始化參數文件

對於unix操作系統,參考$ORACLE_HOME/dbs/init.ora文件作爲你的參數文件的藍本,建議把參數文件的路徑和命名規範化,這樣啓動實例時就不需要指定PFILE參數了,具體規則稍後給出!

Ø         連接到新的實例

執行“CONNECT SYS/password  AS SYSDBA命令以sysdba特權連接到新的實例

Ø         創建服務端參數文件(spfile

執行以下命令創建spfile,創建spfile後再重啓實例就會讀取新的spfile

-- create the server parameter file

CREATE SPFILE='/u01/oracle/dbs/spfilemynewdb.ora' FROM

PFILE='/u01/oracle/admin/initmynewdb/scripts/init.ora';

SHUTDOWN

-- the next startup will use the server parameter file

EXIT

Ø         啓動實例

STARTUP NOMOUNT

只啓動SGA和後臺進程,目前數據庫還不存在

Ø         執行create database命令

參考以下語句:

CREATE DATABASE mynewdb

USER SYS IDENTIFIED BY pz6r58

USER SYSTEM IDENTIFIED BY y1tz5p

LOGFILE GROUP 1 ('/u01/oracle/oradata/mynewdb/redo01.log') SIZE 100M,

GROUP 2 ('/u01/oracle/oradata/mynewdb/redo02.log') SIZE 100M,

GROUP 3 ('/u01/oracle/oradata/mynewdb/redo03.log') SIZE 100M

MAXLOGFILES 5

MAXLOGMEMBERS 5

MAXLOGHISTORY 1

MAXDATAFILES 100

MAXINSTANCES 1

CHARACTER SET US7ASCII

NATIONAL CHARACTER SET AL16UTF16

DATAFILE '/u01/oracle/oradata/mynewdb/system01.dbf' SIZE 325M REUSE

EXTENT MANAGEMENT LOCAL

SYSAUX DATAFILE '/u01/oracle/oradata/mynewdb/sysaux01.dbf' SIZE 325M REUSE

DEFAULT TABLESPACE tbs_1

DEFAULT TEMPORARY TABLESPACE tempts1

TEMPFILE '/u01/oracle/oradata/mynewdb/temp01.dbf'

SIZE 20M REUSE

UNDO TABLESPACE undotbs

DATAFILE '/u01/oracle/oradata/mynewdb/undotbs01.dbf'

SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

簡要說明:

由參數文件中CONTROL_FILES參數指定的三個控制文件會自動創建

MAXINSTANCES 1指定再同一時刻只能有一個實例可以掛載並打開這個數據庫

Ø         創建其他表空間(可選)

例如:

CONNECT SYS/password AS SYSDBA

-- create a user tablespace to be assigned as the default tablespace for users

CREATE TABLESPACE users LOGGING

DATAFILE '/u01/oracle/oradata/mynewdb/users01.dbf'

SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED

EXTENT MANAGEMENT LOCAL;

-- create a tablespace for indexes, separate from user tablespace

CREATE TABLESPACE indx LOGGING

DATAFILE '/u01/oracle/oradata/mynewdb/indx01.dbf'

SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED

EXTENT MANAGEMENT LOCAL;

Ø         執行創建數據字典的腳本

CONNECT SYS/password AS SYSDBA

@/u01/oracle/rdbms/admin/catalog.sql

@/u01/oracle/rdbms/admin/catproc.sql

EXIT

Ø         執行安裝其他選項的腳本

Ø         備份數據庫

解析create database語句

Ø        爲了保護數據庫,請指定syssystem的密碼

Ø        建立本地化管理的system表空間

EXTENT MANAGEMENT LOCAL字句用於指定創建本地化管理的system表空間,前提是“COMPATIBLE”初始化參數的值必須大於等於9.2

創建本地化管理的system表空間意味着默認附帶了“AUTOALLOCATE”選項,即extent是數據庫自動分配的,當然也不能指定“UNIFORM”參數。

爲了創建對於本地化管理的system表空間,必須滿足下面兩個條件:

1、  必須存在一個默認的臨時表空間,且名稱不是system(你可以在create databse語句中使用DEFAULT TEMPORARY TABLESPACE子句來創建默認的臨時表空間)

2、  你可以在create databse語句中使用UNDO TABLESPACE子句來創建UNDO表空間

Ø        建立SYSAUX表空間

SYSAUX表空間是system表空間的附屬空間,之前很多使用system的一些特性現在都已經遷移到sysaux表空間以降低system表空間的負載

在創建SYSAUX表空間是你可以只指定datafile參數,以下四個屬性是強制、不可更改的:

PERMANENT

READ WRITE

EXTENT MANAGMENT LOCAL

SEGMENT SPACE MANAGMENT AUTO

你不可以使用ALTER TABLESPACE語句來改變上述四個屬性,你也不能刪除或重命名sysaux表空間

如果在創建system表空間時指定了datafile參數,那麼對於sysaux表空間也必須指定datafile參數

如果在create database中未指定systemsysaux的參數,則系統會在默認位置創建這兩個表空間的數據文件

Ø        採用自動UNDO管理:建立UNDO表空間

自動的UNDO管理是使用UNDO表空間來實現的,即對於“UNDO_MANAGEMENT”初始化參數必須指定爲“AUTO”,在這種模式下UNDO數據是存儲在UNDO表空間中讓oracle自動管理的。如果需要自定義UNDO表空間,在create databse語句中指定“UNDO TABLESPACE”子句。如果你沒有指定該子句且“UNDO_MANAGEMENT”初始化參數必須指定爲“AUTO”,那麼系統會自動創建一個名爲“SYS_UNDOTBS”的UNDO表空間

Ø        建立一個默認的永久表空間

通過“DEFAULT TABLESPACE”子句指定默認的永久表空間。如果新建用戶時沒有爲其指定表空間,那麼會以這個默認的永久表空間作爲該用戶的存儲空間。

Ø        建立一個默認的臨時表空間

通過“DEFAULT TEMPORARY TABLESPACE”子句指定默認的永久表空間。如果新建用戶時沒有爲其指定臨時表空間,那麼會以這個默認的臨時表空間作爲該用戶的臨時表空間。

在創建完數據庫後,你還可以增加或改變默認的臨時表空間

使用“CREATE TEMPORARY TABLESPACE”創建新的臨時表空間,再使用“ALTER DATABASE DEFAULT TEMPORARY TABLESPACE <tbspname>命令修改數據庫的默認臨時表空間。如果system表空間是本地化管理的話,那麼默認的臨時表空間也必須是本地化管理的。對於當前使用的默認臨時表空間,你不能將它刪除或置爲offline狀態。可以查詢“DATABASE_PROPERTIES”視圖查看當前使用的默認臨時表空間。

Ø        在創建數據庫時指定使用給予oracle管理的數據文件

如果在初始化參數文件中指定了諸如DB_CREATE_FILE_DEST,DB_CREATE_ONLINE_LOG_DEST_n, or DB_RECOVERY_FILE_DEST等參數,那麼在創建數據庫時不指定數據文件的位置時,系統會根據上述參數自動給出。

Ø        在創建數據庫時指定“大文件”表空間

“大文件”表空間只能有一個數據文件,但這個文件最大能達4G BLOCKS,因而“大文件”表空間這一特使能夠大大提高oracle的存儲能力

可以在create database語句中指定“SET DEFAULT bigfile TABLESPACE”或“SET DEFAULT smallfile TABLESPACE”語句設置默認的表空間類型,這將影響後續的create tablespace 語句。“小文件”表空間可以最多擁有1022個數據文件,每個文件最大爲4M BLOCKS。當數據庫建立完畢後,可以使用“ALTER DATABASE SET DEFAULT BIGFILE/SMALLFILE TABLESPACE”語句來重新設置默認的表空間類型。

可以通過以下語句查看當前使用的默認表空間類型:

SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES

WHERE PROPERTY_NAME = 'DEFAULT_TBS_TYPE';

Ø        在創建數據庫時設置時區和時區文件

create database 語句中指定SET TIME_ZONE子句設置數據庫的時區,如果不指定該子句,則默認使用操作系統的時區。ALTER SESSION命令也支持SET TIME_ZONE子句修改會話級的時區

Ø        設定FORCE LOGGING 模式

某些ddl語句可以加上NOLOGGING選項設置某些操作不記入重做日誌,如果create database語句指定了FORCE LOGGING選項,則ddlNOLOGGING就不起作用了。

 在數據庫創建完畢後,可以使用如下語句重新設置或取消該模式:

ALTER DATABASE [NO] FORCE LOGGING

在表空間級別上你也可以指定FOECE LOGGING模式,ORACLE建議在數據庫一級或在表空間一級指定該模式,不要在兩個級別上同時指定該模式。

FOECE LOGGING是數據庫的靜態屬性(重啓實例不會改變它的值),然而如果你重建控制文件,則必須重新指定該參數。

如果數據庫運行於NOARCHIVELOG模式,則建議不要指定該模式,因爲NOARCHIVELOG模式本來就不支持數據恢復,FOECE LOGGING就變得沒意義了,不但如此而且也影響性能。

探究數據庫的初始化參數

待續。。。

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