oracle手工建庫

路途中的人2012發表於2016-03-12
000 
環境:OEL6.5+Oracle 11g R2
前提:資料庫軟體已安裝完畢

001 建立引數檔案
1.1 進入init.ora所在目錄
cd $ORACLE_HOME/dbs

1.2 利用init.ora生成init.ora檔案,即所謂的pfile。
cat init.ora | grep -v ^# | grep -v ^$ > initPROD.ora

1.3 修改pfile
需要修改的引數:db_name、audit_file_dest、db_recovery_file_dest、diagnostic_dest、control_files
修改後的initPRDO.ora:
[oracle@hhu dbs]$ vi initPROD.ora 
db_name='PROD'
memory_target=1G
processes = 150
audit_file_dest='/u01/app/oracle/admin/PROD/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
db_recovery_file_dest_size=4G
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=PRODXDB)'
open_cursors=300 
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
control_files = (/u01/app/oracle/oradata/PROD/control01.ctl,/u01/app/oracle/fast_recovery_area/control02.ctl)
compatible ='11.2.0'

1.4 建立引數檔案中提及的目錄
mkdir -p /u01/app/oracle/admin/PROD/adump
mkdir -p /u01/app/oracle/fast_recovery_area
mkdir -p /u01/app/oracle/oradata/PROD

002 建立密碼檔案
orapwd file=orapwPROD password=oracle
用於遠端登入之用,不配置也不影響手工建庫開啟到nomount狀態。

003 執行建立資料庫的指令碼
3.1 編輯建立資料庫的指令碼
直接用vi編輯器建立一個為createdb.sql的指令碼
[oracle@PROD1 ~]$ vi createdb.sql
建立資料庫的指令碼內容可以從官方文件中的administrator's guide一書中找到。需要修改的內容有:sys和system使用者密碼、日誌檔案路徑和數目、資料庫名、undo表空間名由undotbs改為undotbs1。修改後的指令碼內容為:
[oracle@hhu ~]$ cat createdb.sql 
CREATE DATABASE PROD
   USER SYS IDENTIFIED BY oracle
   USER SYSTEM IDENTIFIED BY oracle
   LOGFILE GROUP 1 ('/u01/app/oracle/oradata/PROD/redo01.log') SIZE 100M BLOCKSIZE 512,
           GROUP 2 ('/u01/app/oracle/oradata/PROD/redo02.log') SIZE 100M BLOCKSIZE 512,
           GROUP 3 ('/u01/app/oracle/oradata/PROD/redo03.log') SIZE 100M BLOCKSIZE 512
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 1
   MAXDATAFILES 100
   CHARACTER SET AL32UTF8
   NATIONAL CHARACTER SET AL16UTF16
   EXTENT MANAGEMENT LOCAL
   DATAFILE '/u01/app/oracle/oradata/PROD/system01.dbf' SIZE 325M REUSE
   SYSAUX DATAFILE '/u01/app/oracle/oradata/PROD/sysaux01.dbf' SIZE 325M REUSE
   DEFAULT TABLESPACE users
      DATAFILE '/u01/app/oracle/oradata/PROD/users01.dbf'
      SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
   DEFAULT TEMPORARY TABLESPACE tempts1
      TEMPFILE '/u01/app/oracle/oradata/PROD/temp01.dbf'
      SIZE 20M REUSE
   UNDO TABLESPACE undotbs1
      DATAFILE '/u01/app/oracle/oradata/PROD/undotbs01.dbf'
      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

3.2 將資料庫開啟到nomount狀態:
export ORACLE_SID=PROD
sqlplus / as sysdba
startup nomount
在sqlplus中執行該指令碼:
SQL> @createdb.sql

004 執行幾個後續指令碼
Script Description
CATALOG.SQL Creates the views of the data dictionary tables, the dynamic performance views, and public synonyms for many of the views. Grants PUBLIC access to the synonyms.
CATPROC.SQL Runs all scripts required for or used with PL/SQL.
PUPBLD.SQL Required for SQL*Plus. Enables SQL*Plus to disable commands by user.
The at-sign (@) is shorthand for the command that runs a SQL*Plus script. The question mark (?) is a SQL*Plus variable indicating the Oracle home directory. 意即:“@”是執行一個SQL*Plus指令碼的命令的速寫形式,“?”則是SQL*Plus變數的簡寫,代表著Oracle home directory。
CATALOG.SQL、CATPROC.SQL以sysdba角色執行,PUPBLD.SQL則以system使用者執行。
可以將這三個指令碼的執行整合為一個指令碼BDDV一次執行,如下:
[oracle@hhu ~]$ vi BDDV
sqlplus / as sysdba <<EOF
@?/rdbms/admin/catalog.sql;
@?/rdbms/admin/catproc.sql;
conn system/oracle
@?/sqlplus/admin/pupbld.sql;
quit
EOF

執行該指令碼,先給其賦予可執行許可權:
[oracle@hhu ~]$ chmod 744 BDDV 
[oracle@hhu ~]$ ./BDDV 

驗證資料庫狀態:
SQL> select status from v$instance;

STATUS
------------
OPEN

@760

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

相關文章