手工創建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語句
Ø 爲了保護數據庫,請指定sys和system的密碼
Ø 建立本地化管理的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中未指定system或sysaux的參數,則系統會在默認位置創建這兩個表空間的數據文件
Ø 採用自動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選項,則ddl的NOLOGGING就不起作用了。
在數據庫創建完畢後,可以使用如下語句重新設置或取消該模式:
ALTER DATABASE [NO] FORCE LOGGING。
在表空間級別上你也可以指定FOECE LOGGING模式,ORACLE建議在數據庫一級或在表空間一級指定該模式,不要在兩個級別上同時指定該模式。
FOECE LOGGING是數據庫的靜態屬性(重啓實例不會改變它的值),然而如果你重建控制文件,則必須重新指定該參數。
如果數據庫運行於NOARCHIVELOG模式,則建議不要指定該模式,因爲NOARCHIVELOG模式本來就不支持數據恢復,FOECE LOGGING就變得沒意義了,不但如此而且也影響性能。