sql.bsq與資料庫的建立
« 警惕騙子-以同學名義行騙 | Blog首頁 | 中國首屆傑出資料庫工程師評選前10名單 »
如果我們使用指令碼建立資料庫,那麼最先執行的是一個叫做CreateDB.sql的指令碼。
這個指令碼發出CREATE DATABASE的命令,具體類似如下的例子:
CREATE DATABASE eygle MAXINSTANCES 1 MAXLOGHISTORY 1 MAXLOGFILES 5 MAXLOGMEMBERS 3 MAXDATAFILES 100 DATAFILE '/opt/oracle/oradata/eygle/system01.dbf' SIZE 250M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/opt/oracle/oradata/eygle/temp01.dbf' SIZE 40M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED UNDO TABLESPACE "UNDOTBS1" DATAFILE '/opt/oracle/oradata/eygle/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED CHARACTER SET ZHS16GBK NATIONAL CHARACTER SET AL16UTF16 LOGFILE GROUP 1 ('/opt/oracle/oradata/eygle/redo01.log') SIZE 10240K, GROUP 2 ('/opt/oracle/oradata/eygle/redo02.log') SIZE 10240K, GROUP 3 ('/opt/oracle/oradata/eygle/redo03.log') SIZE 10240K; exit; |
在這個過程中,Oracle會呼叫$ORACLE_HOME/rdbms/admin/sql.bsq指令碼,用於建立資料字典。
這個檔案的位置受到一個隱含的初始化引數 (_init_sql_file )的控制:
SQL> @GetParDescrb.sql NAME VALUE DESCRIB |
如果在建立過程中,Oracle無法找到sql.bsq檔案,則資料庫建立將會出錯.
如果我們移除sql.bsq檔案,再看這樣一個資料庫建立過程:
[oracle@jumper scripts]$ sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.4.0 - Production on Fri Aug 18 15:45:26 2006 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to an idle instance. SQL> startup nomount; Total System Global Area 252777592 bytes
|
此時日誌中會記錄:
Fri Aug 18 15:45:49 2006 Errors in file /opt/oracle/admin/eygle/udump/eygle_ora_3632.trc: ORA-01501: CREATE DATABASE failed ORA-01526: error in opening file '?/rdbms/admin/sql.bsq' ORA-07391: sftopn: fopen error, unable to open text file. Error 1526 happened during db open, shutting down database USER: terminating instance due to error 1526 Fri Aug 18 15:45:49 2006 Errors in file /opt/oracle/admin/eygle/bdump/eygle_ckpt_3623.trc: ORA-01526: error in opening file '' Instance terminated by USER, pid = 3632 ORA-1092 signalled during: CREATE DATABASE eygle MAXINSTANCES 1 MAXLOGHISTORY... |
這就是sql.bsq檔案在資料庫建立過程中的作用。知道了這個內容之後,我們可以通過手工修改sql.bsq檔案來更改資料庫字典物件引數,從而實現特殊要求資料庫的建立或測試自定義庫。
我們也可以通過修改_init_sql_file引數來重定位sql.bsq檔案的位置。
ixora網站上有一篇文章可以參考:
http://www.ixora.com.au/tips/creation/bsq.htm
Itpub上的相關文章:
http://www.itpub.net/199099.html
-The End-
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/764/viewspace-120570/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQL:資料庫的建立與刪除SQL資料庫
- 建立資料庫資料庫
- SQLAlchemy - 資料庫的連線、建立會話與模型SQL資料庫會話模型
- springboot建立與資料庫關聯模組Spring Boot資料庫
- Mysql建立資料庫MySql資料庫
- 建立資料庫表資料庫
- 專案資料庫表設計與建立模型資料庫模型
- 小黑框建立資料庫資料庫
- 資料庫 建立 3表資料庫
- mongodb 如何建立資料庫MongoDB資料庫
- 建立資料mysql庫流程MySql
- 資料庫之建立索引資料庫索引
- XamarinSQLite教程建立資料庫aSQLite資料庫
- Oracle各種版本下“示例資料庫的建立”的建立Oracle資料庫
- 【Linux】mysql下載與安裝與重置密碼與建立資料庫LinuxMySql密碼資料庫
- 2.5.1 關於建立資料庫的子句資料庫
- MySQL建立資料庫的兩種方法MySql資料庫
- 用c#建立與資料庫的連線 c#連sqlserverC#資料庫SQLServer
- oracle資料庫建立資料庫例項-九五小龐Oracle資料庫
- mongodb資料庫如何建立索引?MongoDB資料庫索引
- 2 建立和配置資料庫資料庫
- 2.8.1.4 建立資料庫服務資料庫
- 2.2.1 資料庫建立計劃資料庫
- 2.1 關於建立資料庫資料庫
- SQL建立資料庫和表SQL資料庫
- 2.9 資料庫建立後的狐疑事項資料庫
- 2.2.4 建立資料庫的先決條件資料庫
- DB2建立資料庫,建立表空間DB2資料庫
- 如何構建自己的雲資料庫?建立雲資料庫是否要收費?資料庫
- ArcGIs建立企業級資料庫資料庫
- 2.5.8 指定OMF方式建立資料庫資料庫
- 2.5 指定資料庫建立語句資料庫
- 2.4.10 Step 9:手工建立資料庫資料庫
- 2.3 通過DBCA建立資料庫資料庫
- CQL #1:SQLChain 資料庫建立流程SQLAI資料庫
- php sqlite 建立本地資料庫PHPSQLite資料庫
- 建立一個SQL測試資料庫 - 消費者資料庫SQL資料庫
- 【從零開始學習Oracle資料庫】(4)建立表與增刪改和資料庫事務Oracle資料庫