使用命令列建立資料庫
今天針對如何在Linux作業系統上利用命令列建立Oracle Database進行一個總結及實踐。
下面是官方文件“Database Administrator's Guide”中所講的步驟。Step5針對的是Windows作業系統,本次實踐不會涉及。
現在按照上面的步驟進行建立資料庫。
[oracle@TaylonMeng ~]$ cd $ORACLE_HOME/dbs
[oracle@TaylonMeng dbs]$ ls
hc_MTH.dat initMTH.ora lkMTH orapwMTH spfileMTH.ora
hc_ORCL.dat init.ora lkORCL orapwORCL spfileORCL.ora
initDBUA4624925.ora initORCL.ora orapwDBUA4624925 orapwZYX
(1)使用‘zyx'替換’orcl',大小寫都替換。
(2)用目錄替換<ORACLE_BASE>
(3)修改control_files變數
(4)建立引數檔案中所涉及到的目錄
最後,經過修改的initZYX.ora的內容如下:
可以看到在$ORACLE_HOME/dbs下多了spfileZYX.ora這樣一個檔案。
(1)用‘ZYX’替換原本的‘mynewdb'
(2)修改SYS和SYSTEM使用者的密碼
(3)修改logfile、SYSTEM、SYSAUX、users、tempts1、undotbs資料檔案的路徑
(4)修改undo表空間的名稱為undotbs1,與之前引數檔案中的undo表空間名稱一致
(5)建立所涉及的目錄
(6)根據自己實際情況,修改語句的其他內容
執行CreateDB.sql檔案
此時資料庫已經是open狀態了。
In SQL*Plus, connect to your Oracle Database instance with the SYSDBA administrative privilege:
In SQL*Plus, connect to your Oracle Database instance as SYSTEM user:
下面是四個指令碼各自的作用。
自此,就成功使用命令列建立好了Oracle資料庫。
下面是官方文件“Database Administrator's Guide”中所講的步驟。Step5針對的是Windows作業系統,本次實踐不會涉及。
- Creating a Database with the CREATE DATABASE Statement
- Step 1: Specify an Instance Identifier (SID)
- Step 2: Ensure That the Required Environment Variables Are Set
- Step 3: Choose a Database Administrator Authentication Method
- Step 4: Create the Initialization Parameter File
- Step 5: (Windows Only) Create an Instance
- Step 6: Connect to the Instance
- Step 7: Create a Server Parameter File
- Step 8: Start the Instance
- Step 9: Issue the CREATE DATABASE Statement
- Step 10: Create Additional Tablespaces
- Step 11: Run Scripts to Build Data Dictionary Views
Step 1: Specify an Instance Identifier (SID)
-
[oracle@TaylonMeng ~]$ export ORACLE_SID=ZYX
-
[oracle@TaylonMeng ~]$ echo $ORACLE_SID
- ZYX
注:此處ORACLE_SID應該與後續口令檔案、引數檔案的命名中的SID大小寫保持一致,否則會在Step7報ORA-01078的錯誤。
-
SQL> create spfile from pfile;
-
create spfile from pfile
-
*
-
ERROR at line 1:
-
ORA-01078: failure in processing system parameters
-
LRM-00109: could not open parameter file
- '/oracle/product/11.2.0/dbs/initzyx.ora'
Step 2: Ensure That the Required Environment Variables Are Set
必須設定的幾個變數有ORACLE_SID、ORACLE_HOME、PATH變數中包含ORACLE_HOME/bin目錄。-
[oracle@TaylonMeng ~]$ echo $ORACLE_SID
-
ZYX
-
[oracle@TaylonMeng ~]$ echo $ORACLE_HOME
-
/oracle/product/11.2.0
-
[oracle@TaylonMeng ~]$ echo $PATH
- /oracle/product/11.2.0/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin
Step 3: Choose a Database Administrator Authentication Method
-
With a password file
-
With operating system authentication
- [oracle@TaylonMeng ~]$ orapwd file=$ORACLE_HOME/dbs/orapwZYX password=oracle entries=30
[oracle@TaylonMeng ~]$ cd $ORACLE_HOME/dbs
[oracle@TaylonMeng dbs]$ ls
hc_MTH.dat initMTH.ora lkMTH orapwMTH spfileMTH.ora
hc_ORCL.dat init.ora lkORCL orapwORCL spfileORCL.ora
initDBUA4624925.ora initORCL.ora orapwDBUA4624925 orapwZYX
Step 4: Create the Initialization Parameter File
在$ORACLE_HOME/dbs下,init.ora檔案是pfile的模板,可以通過修改該檔案的內容,生成所需要的pfile。文字引數檔案的預設位置為$ORACLE_HOME/dbs,命名規則為 init<ORACLE_SID>.ora-
[oracle@TaylonMeng dbs]$ cat init.ora | grep -v ^# | grep -v ^$ > initZYX.ora
-
[oracle@TaylonMeng dbs]$ vi initZYX.ora
-
db_name='ORCL'
-
memory_target=1G
-
processes = 150
-
audit_file_dest='<ORACLE_BASE>/admin/orcl/adump'
-
audit_trail ='db'
-
db_block_size=8192
-
db_domain=''
-
db_recovery_file_dest='<ORACLE_BASE>/flash_recovery_area'
-
db_recovery_file_dest_size=2G
-
diagnostic_dest='<ORACLE_BASE>'
-
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
-
open_cursors=300
-
remote_login_passwordfile='EXCLUSIVE'
-
undo_tablespace='UNDOTBS1'
-
control_files = (ora_control1, ora_control2)
- compatible ='11.2.0'
- :%s@orcl@zyx@gi
- :%s@<ORACLE_BASE>@/oracle/product@g
- control_files = (/orasys/ZYX/control01.ctl,/oraidx/ZYX/control02.ctl )
-
[oracle@TaylonMeng dbs]$ mkdir -p /oracle/product/admin/zyx/adump
-
[oracle@TaylonMeng dbs]$ mkdir -p /oracle/product/flash_recovery_area
-
[oracle@TaylonMeng dbs]$ mkdir -p /orasys/ZYX/
- [oracle@TaylonMeng dbs]$ mkdir -p /oraidx/ZYX/
-
[oracle@TaylonMeng dbs]$ more initZYX.ora
-
db_name='zyx'
-
memory_target=1G
-
processes = 150
-
audit_file_dest='/oracle/product/admin/zyx/adump'
-
audit_trail ='db'
-
db_block_size=8192
-
db_domain=''
-
db_recovery_file_dest='/oracle/product/flash_recovery_area'
-
db_recovery_file_dest_size=2G
-
diagnostic_dest='/oracle/product'
-
dispatchers='(PROTOCOL=TCP) (SERVICE=zyxXDB)'
-
open_cursors=300
-
remote_login_passwordfile='EXCLUSIVE'
-
undo_tablespace='UNDOTBS1'
-
control_files = (/orasys/ZYX/control01.ctl,/oraidx/ZYX/control02.ctl )
- compatible ='11.2.0'
Step 6: Connect to the Instance
-
[oracle@TaylonMeng ~]$ sqlplus sys as sysdba
-
-
SQL*Plus: Release 11.2.0.4.0 Production on Sun May 1 18:53:30 2016
-
-
Copyright (c) 1982, 2013, Oracle. All rights reserved.
-
-
Enter password:
- Connected to an idle instance.
Step 7: Create a Server Parameter File
-
SQL> create spfile from pfile;
-
- File created.
-
[oracle@TaylonMeng dbs]$ ls
-
hc_MTH.dat init.ora lkORCL orapwZYX
-
hc_ORCL.dat initORCL.ora orapwDBUA4624925 spfileMTH.ora
-
initDBUA4624925.ora initZYX.ora orapwMTH spfileORCL.ora
- initMTH.ora lkMTH orapwORCL spfileZYX.ora
Step 8: Start the Instance
在啟動例項的過程中,報MEMORY_TARGET設定的錯誤。我將MEMORY_TARGET的值由1G改為了700M,重新生成spfileZYX.ora,之後啟動到nomount狀態。-
SQL> startup nomount
- ORA-00845: MEMORY_TARGET not supported on this system
-
[oracle@TaylonMeng dbs]$ vi initZYX.ora
db_name='ZYX'
memory_target=700M
processes = 150
audit_file_dest='/oracle/product/admin/zyx/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/oracle/product/flash_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/oracle/product'
dispatchers='(PROTOCOL=TCP) (SERVICE=zyxXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
control_files = (/orasys/ZYX/control01.ctl,/oraidx/ZYX/control02.ctl )
compatible ='11.2.0'
[oracle@TaylonMeng dbs]$ sqlplus sys as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sun May 1 19:17:19 2016
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
File created.
ORACLE instance started.
Total System Global Area 730714112 bytes
Fixed Size 2256832 bytes
Variable Size 478150720 bytes
Database Buffers 243269632 bytes
Redo Buffers 7036928 bytes
Step 9: Issue the CREATE DATABASE Statement
編輯一個CreateDB.sql檔案,copy官方文件中的CREATE DATABASE語句,並做修改。-
[oracle@TaylonMeng ~]$ vi CreateDB.sql
-
CREATE DATABASE ZYX
-
USER SYS IDENTIFIED BY sys_password
-
USER SYSTEM IDENTIFIED BY system_password
-
LOGFILE GROUP 1 ('/oraidx/ZYX/redo01a.log','/oralog/ZYX/redo01b.log') SIZE 100M BLOCKSIZE 512,
-
GROUP 2 ('/oraidx/ZYX/redo02a.log','/oralog/ZYX/redo02b.log') SIZE 100M BLOCKSIZE 512,
-
GROUP 3 ('/oraidx/ZYX/redo03a.log','/oralog/ZYX/redo03b.log') SIZE 100M BLOCKSIZE 512
-
MAXLOGFILES 5
-
MAXLOGMEMBERS 5
-
MAXLOGHISTORY 1
-
MAXDATAFILES 100
-
CHARACTER SET AL32UTF8
-
NATIONAL CHARACTER SET AL16UTF16
-
EXTENT MANAGEMENT LOCAL
-
DATAFILE '/orasys/ZYX/system01.dbf' SIZE 325M REUSE
-
SYSAUX DATAFILE '/orasys/ZYX/sysaux01.dbf' SIZE 325M REUSE
-
DEFAULT TABLESPACE users
-
DATAFILE '/orasys/ZYX/users01.dbf'
-
SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
-
DEFAULT TEMPORARY TABLESPACE tempts1
-
TEMPFILE '/orasys/ZYX/temp01.dbf'
-
SIZE 20M REUSE
-
UNDO TABLESPACE undotbs1
-
DATAFILE '/orasys/ZYX/undotbs01.dbf'
- SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
(2)修改SYS和SYSTEM使用者的密碼
(3)修改logfile、SYSTEM、SYSAUX、users、tempts1、undotbs資料檔案的路徑
(4)修改undo表空間的名稱為undotbs1,與之前引數檔案中的undo表空間名稱一致
(5)建立所涉及的目錄
(6)根據自己實際情況,修改語句的其他內容
執行CreateDB.sql檔案
-
SQL> @/home/oracle/CreateDB.sql
-
- Database created.
-
SQL> select open_mode,name from v$database;
-
-
OPEN_MODE NAME
-
-------------------- ---------
- READ WRITE ZYX
Step 11: Run Scripts to Build Data Dictionary Views
In SQL*Plus, connect to your Oracle Database instance with the SYSDBA administrative privilege:
-
@?/rdbms/admin/catalog.sql
-
@?/rdbms/admin/catproc.sql
- @?/rdbms/admin/utlrp.sql
In SQL*Plus, connect to your Oracle Database instance as SYSTEM user:
- @?/sqlplus/admin/pupbld.sql
下面是四個指令碼各自的作用。
Script | Description |
---|---|
CATALOG.SQL | Creates the views of the data dictionary tables, the dynamic performance views, and public synonyms for many of the views. GrantsPUBLIC access to the synonyms. |
CATPROC.SQL | Runs all scripts required for or used with PL/SQL. |
UTLRP.SQL | Recompiles all PL/SQL modules that are in an invalid state, including packages, procedures, and types. |
PUPBLD.SQL |
Required for SQL*Plus. Enables SQL*Plus to disable commands by user. |
自此,就成功使用命令列建立好了Oracle資料庫。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30776559/viewspace-2091852/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 建立資料庫命令資料庫
- 手工命令建立資料庫資料庫
- 在資料庫命令列中使用作業系統命令資料庫命令列作業系統
- 如何使用命令列工具檢查資料庫?命令列資料庫
- 資料庫操作命令列神器:mycli資料庫命令列
- Linux有問必答:如何在命令列建立一個MySQL資料庫Linux命令列MySql資料庫
- 使用陣列建立分頁資料陣列
- mysql命令列建立使用者MySql命令列
- 2 Day DBA-使用DBCA建立和管理資料庫—使用DBCA建立資料庫資料庫
- shell命令列中操作HBase資料庫命令列資料庫
- 使用RMAN建立Duplicate資料庫資料庫
- 建立資料庫時使用schema資料庫
- 使用rman建立standby資料庫資料庫
- oracle11g單例項透過命令列dbca靜默建立資料庫Oracle單例命令列資料庫
- 使用RMAN建立物理Standby資料庫資料庫
- Oracle 使用命令列建立新賬戶Oracle命令列
- 使用Git建立本地倉庫(命令列方式&圖形化介面方式)Git命令列
- 通過cmd命令列連線mysql資料庫命令列MySql資料庫
- Android用命令列方式檢視資料庫Android命令列資料庫
- 安裝mongodb,建立資料庫、使用者、建立表、匯出匯入資料庫MongoDB資料庫
- [Sqlite] 使用Java程式、cmd命令列來備份恢復Sqlite資料庫SQLiteJava命令列資料庫
- 建立資料庫資料庫
- 使用RMAN建立資料庫備份庫(筆記)資料庫筆記
- 2.3.1 有關使用DBCA建立資料庫資料庫
- 2.4.1 使用 CREATE DATABASE 子句建立資料庫Database資料庫
- AIX下使用dbca建立oracle資料庫AIOracle資料庫
- 資料庫及使用者的建立資料庫
- 關係型資料庫:使用正規化建立資料庫(轉)資料庫
- 【備份恢復】閃回資料庫(五)RMAN 命令列閃回資料庫資料庫命令列
- oracle資料庫使用sqlldr命令匯入txt資料Oracle資料庫SQL
- 使用Maven命令列快速建立專案骨架(archetype)Maven命令列
- MySQL 建立資料庫 建立表MySql資料庫
- 列舉資料庫快取使用場景例項和命令速查表資料庫快取
- 2.4 使用 CREATE DATABASE 語句建立資料庫Database資料庫
- 4.2.11 使用 SRVCTL 建立資料庫服務資料庫
- MacOS使用Docker建立MySQL主從資料庫MacDockerMySql資料庫
- MacOS使用Docker建立MySQL主主資料庫MacDockerMySql資料庫
- oracle資料庫使用者建立步驟Oracle資料庫