您好,登錄后才能下訂單哦!
遙想剛入職時,一臺服務器就掛了,所以就是在“危難”中有機會學習。在夜深人靜時,我想去回憶一下Oracle實例的創建。一種方法,DBCA,圖形界面,但是需要依賴xming或xmanager這類軟件;另一種方法就是腳本創建Oracle數據庫實例。第一種方法簡單,易上手,但是對初學者,不能學習到更多數據庫知識;第二種方法用腳本就能更了然數據庫的各種文件以及參數。本文只介紹腳本創建Oracle實例。
記得2010年,還是用Oracle10g,如今用11g,他們的差異在于dump 目錄略不同。我們就高不就低,以Oracle 11g創建一個實例為例,一起看看有哪些點需要我們注意滴。
第一步:創建文件目錄,并將文件目錄授權給oracle用戶,以webdb為實例名舉例,進行如下操作,其中adump,dpdump,fast_recovery_area 是必須要有的(這幾個目錄11g跟10g略不同,需要注意),oradata/webdb和/tabdata/webdb的創建根據管理員習慣,一般oradata/webdb用來存儲系統級別文件,如redolog,system file,undo file 等,tabdata/webdb用來放新增表空間文件(數據文件)。
mkdir -p /u00/app/oracle/admin/webdb/adump
mkdir -p /u00/app/oracle/admin/webdb/dpdump
mkdir -p /u00/app/oracle/fast_recovery_area/webdb
mkdir -p /u01/oradata/webdb
mkdir -p /u01/tabdata/webdb
chown oracle:oinstall /u00/app/oracle/admin/webdb/adump
chown oracle:oinstall /u00/app/oracle/admin/webdb/dpdump
chown oracle:oinstall /u00/app/oracle/fast_recovery_area/webdb
chown oracle:oinstall /u01/oradata/webdb
chown oracle:oinstall /u01/tabdata/webdb
第二步:export 實例名稱
ORACLE_SID=webdb; export ORACLE_SID
第三步:手工在/etc/oratab文件下增加實例名稱(這個文件很重要,詳情后續會有文章介紹)
echo "webdb:$ORACLE_HOME:Y" >> /etc/oratab
第四步:手工在$ORACLE_HOME/dbs增加pfile 文件(此文件是實例參數值的重要文件)
vi $ORACLE_HOME/dbs/initwebdb.ora
文件內容如下:
webdb.__db_cache_size=679477248
webdb.__java_pool_size=4194304
webdb.__large_pool_size=4194304
webdb.__oracle_base='/u00/app/oracle'#ORACLE_BASE set from environment
webdb.__pga_aggregate_target=104857600
webdb.__sga_target=943718400
webdb.__shared_io_pool_size=0
webdb.__shared_pool_size=243269632
webdb.__streams_pool_size=0
*.audit_file_dest='/u00/app/oracle/admin/webdb/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/oradata/webdb/control01.ctl','/u00/app/oracle/fast_recovery_area/webdb/control02.ctl'
*.db_block_size=8192
*.db_domain='webex.com'
*.db_name='webdb'
*.db_recovery_file_dest='/u00/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=2097152000
*.diagnostic_dest='/u00/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=webdbXDB)'
*.open_cursors=500
*.pga_aggregate_target=104857600
*.processes=1000
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=1105
*.sga_target=943718400
*.undo_tablespace='UNDOTBS1'
第五步:手工orap生成密碼
$ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapwwebdb password=dbpassword force=y
第六步:運行一些列腳本,直至數據庫創建完畢。
(1)$ORACLE_HOME/bin/sqlplus /nolog
(2)sql>connect "SYS"/"password" as SYSDBA
//創建spfile基于剛給的pfile,為什么創建一個,這個很有用,萬一pfile出錯了,或者被意外更改,spfile的用途很大,后邊有空來詳細介紹下spfile跟pfile的使用,如果有spfile,oracle默認限度spfile,只有當spfile沒有時,才讀pfile。而且spfile是二進制,pfile就是普通的文件,可讀可改。方便的同時也容易被誤操作。
(3)sql>create spfile='$ORACLE_HOME/dbs/spfilewebdb.ora' from pfile='$ORACLE_HOME/dbs/initwebdb.ora';
(4)sql>startup nomount
(5)@createdb.sql
//createdb.sql腳本如下,其中包括redolog 大小,位置,以及系統文件等,尤其注意character set設置在這里,不要一失足,后面該很麻煩滴。關于這個字符集設置,小編也有血淚史,后面給大家介紹些詭異的手法。
CREATE DATABASE webdb
LOGFILE group 1 ('/u01/oradata/webdb/redo01.log' ) SIZE 51200K,
group 2 ('/u01/oradata/webdb/redo02.log' ) SIZE 51200K,
group 3 ('/u01/oradata/webdb/redo03.log' ) size 51200K
DATAFILE '/u01/oradata/webdb/system01.dbf' SIZE 200M autoextend on next 10M maxsize unlimited
sysaux datafile '/u01/oradata/webdb/sysaux01.dbf' size 100M autoextend on next 10M maxsize unlimited
character set WE8ISO8859P1
EXTENT MANAGEMENT LOCAL
undo tablespace UNDOTBS1
datafile '/u01/oradata/webdb/UNDOTBS01.dbf'
size 50M autoextend on next 5M maxsize UNLIMITED
default temporary tablespace temp
tempfile '/u01/oradata/webdb/temp01.dbf'
size 50M autoextend on next 640K maxsize UNLIMITED;
startup force;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
ALTER SYSTEM SWITCH LOGFILE;
(6)@dic.sql
//運行數據字典dic.sql內容如下:
SET VERIFY OFF
connect "SYS"/"password" as SYSDBA
spool dic
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/rdbms/admin/catblock.sql
@?/rdbms/admin/catoctk.sql
@?/rdbms/admin/owminst.plb
spool off
connect "SYSTEM"/"password"
spool pub
@?/sqlplus/admin/pupbld.sql
@?/sqlplus/admin/help/hlpbld.sql helpus.sql
spool off
(7)@ctab.sql
//ctab.sql 是創建表空間,語法格式如下。
connect "SYS"/"password" as SYSDBA
spool ctab
DROP TABLESPACE BACKUPINCLUDING CONTENTS AND DATAFILES;
CREATE TABLESPACE BACKUP DATAFILE
'/u01/tabdata/webdb/BACKUP.dbf' SIZE 1320M AUTOEXTEND ON NEXT 8K MAXSIZE UNLIMITED
LOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
(8)@cuser.sql
//cuser.sql是用來創建用戶。
sqlplus / as sysdba
CREATE USER MAINT
IDENTIFIED BY password
DEFAULT TABLESPACE BACKUP
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;
-- 2 Roles for MAINT
GRANT CONNECT TO MAINT;
GRANT RESOURCE TO MAINT;
ALTER USER MAINT DEFAULT ROLE ALL;
-- 1 System Privilege for WBXMAINT
GRANT UNLIMITED TABLESPACE TO MAINT;
==============================================================================
Done
基于以上步驟,就可以so easy且有所得滴創建一個instance。
還需要在listener 以及tns 文件上天劍才能進行網絡連接。后面會給大家分享OracleDB連接方式時,再詳細介紹。
晚安~~希望對您有幫助,有什么可以幫您?請留言。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。