Oracle 執行個體建立指令碼

來源:互聯網
上載者:User

標籤:oracle instance

遙想剛入職時,一台伺服器就掛了,所以就是在“危難”中有機會學習。在夜深人靜時,我想去回憶一下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串連方式時,再詳細介紹。

晚安~~希望對您有協助,有什麼可以幫您?請留言。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.