【手工建庫】手工方式建立 ORACLE資料庫全程記錄
透過dbca方式建立Oracle資料庫是最常見的方法,除此之外如果對資料庫的建立過程瞭解的話,亦可一步一步的透過命令列的方式完成資料庫的建立。
現將在OEL4.8作業系統上手工建立Oracle資料庫例項的方法記錄在此,供參考。
1.手工建庫前提條件
既然已經到了建立資料庫例項的階段,因此主機上的資料庫軟體需要事先建立完畢。
2.準備.bash_profile配置檔案並確認環境變數
1)編輯.bash_profile檔案
[oracle@secDB ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/sbin:/usr/local/bin
export PATH
unset USERNAME
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export ORACLE_SID=secooler
export PATH=$ORACLE_HOME/bin:$PATH
需要設定的環境變數主要就是這三個:ORACLE_BASE、ORACLE_HOME、ORACLE_SID和PATH
需要說明的是PATH變數的設定,需要將“$ORACLE_HOME/bin”寫在“$PATH”之前,這樣設定主要目的是:Oracle命令優先被選擇。
2)使.bash_profile配置檔案生效
[oracle@secDB ~]$ . ./.bash_profile
或
[oracle@secDB ~]$ source ./.bash_profile
3)確認ORACLE_SID等環境變數被正確設定
[oracle@secDB ~]$ env | grep -i sid
ORACLE_SID=secooler
[oracle@secDB ~]$ env | grep ORACLE_BASE
ORACLE_BASE=/u01/app/oracle
[oracle@secDB ~]$ env | grep ORACLE_HOME
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
3.在$ORACLE_BASE下建立所需的目錄
1)建立四個轉儲目錄
[oracle@secDB ~]$ cd $ORACLE_BASE
[oracle@secDB oracle]$ mkdir -p admin/secooler/adump
[oracle@secDB oracle]$ mkdir -p admin/secooler/bdump
[oracle@secDB oracle]$ mkdir -p admin/secooler/cdump
[oracle@secDB oracle]$ mkdir -p admin/secooler/udump
2)建立存放資料檔案、日誌檔案和控制檔案的目錄
[oracle@secDB oracle]$ mkdir -p oradata/secooler/dfile
[oracle@secDB oracle]$ mkdir -p oradata/secooler/lfile
[oracle@secDB oracle]$ mkdir -p oradata/secooler/cfile
3)建立備份介質存放的目錄
[oracle@secDB oracle]$ mkdir -p rmanbak
4.生成密碼檔案
[oracle@secDB ~]$ cd $ORACLE_HOME/dbs
[oracle@secDB dbs]$ orapwd file=orapwsecooler password=change_on_install entries=10
5.建立所需的pfile和spfile
1)建立pfile檔案並調整
我們根據Oracle安裝軟體$ORACLE_HOME/dbs目錄下自帶的init.ora來定製我們需要的pfile。
(1)進入到$ORACLE_HOME/dbs目錄
[oracle@secDB ~]$ cd $ORACLE_HOME/dbs
(2)去掉預設init.ora檔案中雜亂的內容,僅保留引數本身資訊
[oracle@secDB dbs]$ cat init.ora |grep -v ^# |grep -v ^$ > initsecooler.ora
(3)調整initsecooler.ora引數內容
調整後的內容如下:
[oracle@secDB dbs]$ vi initsecooler.ora
db_name=secooler
db_files = 80 # SMALL
db_file_multiblock_read_count = 8 # SMALL
#db_block_buffers = 100 # SMALL
#shared_pool_size = 3500000 # SMALL
log_checkpoint_interval = 10000
processes = 50 # SMALL
parallel_max_servers = 5 # SMALL
log_buffer = 32768 # SMALL
max_dump_file_size = 10240 # limit trace file size to 5 Meg each
global_names = TRUE
#control_files = (ora_control1, ora_control2)
control_files = (/u01/app/oracle/oradata/secooler/cfile/ora_control1,/u01/app/oracle/oradata/secooler/cfile/ora_control2,/u01/app/oracle/oradata/secooler/cfile/control3)
sga_max_size=300M
sga_target=300M
~
~
較之系統自帶的引數檔案做了如下修改動作:
a.修改db_name引數為
b.登出掉引數db_block_buffers、shared_pool_size
c.修改controlfile引數
c.增加sga_max_size和sga_target引數,大小設定為300M。
2)建立spfile並調整
(1)使用sqlplus命令登陸建立spfile
[oracle@secDB dbs]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 7 22:44:55 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> create spfile from pfile;
(2)啟動資料庫到nomount狀態,調整spfile引數
a.啟動資料庫到nomount狀態
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 96470416 bytes
Database Buffers 213909504 bytes
Redo Buffers 2973696 bytes
b.需要修改的spfile引數如下
SQL> alter system set undo_management=auto scope=spfile;
SQL> alter system set db_create_file_dest='/u01/app/oracle/oradata/secooler/dfile' scope=spfile;
SQL> alter system set db_create_online_log_dest_1='/u01/app/oracle/oradata/secooler/lfile' scope=spfile;
SQL> alter system set job_queue_processes =5 scope=spfile;
SQL> alter system set background_dump_dest='/u01/app/oracle/admin/secooler/bdump' scope=spfile;
SQL> alter system set core_dump_dest= '/u01/app/oracle/admin/secooler/cdump' scope=spfile;
SQL> alter system set user_dump_dest='/u01/app/oracle/admin/secooler/udump' scope=spfile;
SQL> alter system set audit_file_dest='/u01/app/oracle/admin/secooler/adump' scope=spfile;
c.停起資料庫到nomount狀態使spfile調整生效
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 96470416 bytes
Database Buffers 213909504 bytes
Redo Buffers 2973696 bytes
6.建立資料庫
1)編寫create database指令碼
(1)獲取create database的參考指令碼
在Oracle文件中中有一個供參考的建立語句
(1)進入到Oracle官方文件的首頁:;
(2)點選“Books”;
(3)在列出來的參考書目中的找到第5本書“Administrator's Guide”,點選“HTML”進入;
(4)搜尋關鍵字“create database statement”,位到“Step 7: Issue the CREATE DATABASE Statement”,點選進入便可以得到建立資料庫的參考指令碼;
2)調整參考指令碼中的內容為我所用
(1)需要調整的內容
資料庫名字
SYS和SYSTEM密碼
路徑名修改,注意一定要準確全面
表空間tbs_1後面給出具體資料檔案資訊
(2)調整後的指令碼如下
CREATE DATABASE secooler
USER SYS IDENTIFIED BY change_on_install
USER SYSTEM IDENTIFIED BY manager
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/secooler/lfile/redo01.log') SIZE 100M,
GROUP 2 ('/u01/app/oracle/oradata/secooler/lfile/redo02.log') SIZE 100M,
GROUP 3 ('/u01/app/oracle/oradata/secooler/lfile/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/u01/app/oracle/oradata/secooler/dfile/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/app/oracle/oradata/secooler/dfile/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE tbs_1 datafile '/u01/app/oracle/oradata/secooler/dfile/tbs_1.dbf' size 50m
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/app/oracle/oradata/secooler/dfile/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE '/u01/app/oracle/oradata/secooler/dfile/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
3)使用上面的create database指令碼建立資料庫
指令碼執行之後,此時資料庫狀態已經為OPEN狀態。
SQL> select status from v$instance;
STATUS
------------
OPEN
4)設定資料檔案和臨時檔案為自動擴充套件
(1)獲得所有資料檔案和臨時檔案資訊
SQL> col name for a60
SQL> select file#,name from v$datafile union select file#,name from v$tempfile;
FILE# NAME
---------- ------------------------------------------------------------
1 /u01/app/oracle/oradata/secooler/dfile/system01.dbf
1 /u01/app/oracle/oradata/secooler/dfile/temp01.dbf
2 /u01/app/oracle/oradata/secooler/dfile/undotbs01.dbf
3 /u01/app/oracle/oradata/secooler/dfile/sysaux01.dbf
4 /u01/app/oracle/oradata/secooler/dfile/tbs_1.dbf
(2)將其調整為自動擴充套件
SQL> alter database datafile 1 autoextend on;
SQL> alter database datafile 2 autoextend on;
SQL> alter database datafile 3 autoextend on;
SQL> alter database datafile 4 autoextend on;
SQL> alter database tempfile 1 autoextend on;
7.執行catalog.sql和catproc.sql指令碼建立資料字典檢視並配置
注意這兩個指令碼需要以SYSDBA身份來執行
[oracle@secDB ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 7 22:17:18 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> @?/rdbms/admin/catalog.sql
... ...
... 大約需要5分鐘 ...
... ...
SQL> @?/rdbms/admin/catproc.sql
... ...
... 大約需要10分鐘 ...
... ...
8.小結
手工建立資料庫相比dbca來說繁瑣了很多,不過整個安裝過程體現的是Oracle的執行原理,對於理解資料庫細節來說有很大的裨益。
Good luck.
secooler
10.07.07
-- The End --
現將在OEL4.8作業系統上手工建立Oracle資料庫例項的方法記錄在此,供參考。
1.手工建庫前提條件
既然已經到了建立資料庫例項的階段,因此主機上的資料庫軟體需要事先建立完畢。
2.準備.bash_profile配置檔案並確認環境變數
1)編輯.bash_profile檔案
[oracle@secDB ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/sbin:/usr/local/bin
export PATH
unset USERNAME
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export ORACLE_SID=secooler
export PATH=$ORACLE_HOME/bin:$PATH
需要設定的環境變數主要就是這三個:ORACLE_BASE、ORACLE_HOME、ORACLE_SID和PATH
需要說明的是PATH變數的設定,需要將“$ORACLE_HOME/bin”寫在“$PATH”之前,這樣設定主要目的是:Oracle命令優先被選擇。
2)使.bash_profile配置檔案生效
[oracle@secDB ~]$ . ./.bash_profile
或
[oracle@secDB ~]$ source ./.bash_profile
3)確認ORACLE_SID等環境變數被正確設定
[oracle@secDB ~]$ env | grep -i sid
ORACLE_SID=secooler
[oracle@secDB ~]$ env | grep ORACLE_BASE
ORACLE_BASE=/u01/app/oracle
[oracle@secDB ~]$ env | grep ORACLE_HOME
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
3.在$ORACLE_BASE下建立所需的目錄
1)建立四個轉儲目錄
[oracle@secDB ~]$ cd $ORACLE_BASE
[oracle@secDB oracle]$ mkdir -p admin/secooler/adump
[oracle@secDB oracle]$ mkdir -p admin/secooler/bdump
[oracle@secDB oracle]$ mkdir -p admin/secooler/cdump
[oracle@secDB oracle]$ mkdir -p admin/secooler/udump
2)建立存放資料檔案、日誌檔案和控制檔案的目錄
[oracle@secDB oracle]$ mkdir -p oradata/secooler/dfile
[oracle@secDB oracle]$ mkdir -p oradata/secooler/lfile
[oracle@secDB oracle]$ mkdir -p oradata/secooler/cfile
3)建立備份介質存放的目錄
[oracle@secDB oracle]$ mkdir -p rmanbak
4.生成密碼檔案
[oracle@secDB ~]$ cd $ORACLE_HOME/dbs
[oracle@secDB dbs]$ orapwd file=orapwsecooler password=change_on_install entries=10
5.建立所需的pfile和spfile
1)建立pfile檔案並調整
我們根據Oracle安裝軟體$ORACLE_HOME/dbs目錄下自帶的init.ora來定製我們需要的pfile。
(1)進入到$ORACLE_HOME/dbs目錄
[oracle@secDB ~]$ cd $ORACLE_HOME/dbs
(2)去掉預設init.ora檔案中雜亂的內容,僅保留引數本身資訊
[oracle@secDB dbs]$ cat init.ora |grep -v ^# |grep -v ^$ > initsecooler.ora
(3)調整initsecooler.ora引數內容
調整後的內容如下:
[oracle@secDB dbs]$ vi initsecooler.ora
db_name=secooler
db_files = 80 # SMALL
db_file_multiblock_read_count = 8 # SMALL
#db_block_buffers = 100 # SMALL
#shared_pool_size = 3500000 # SMALL
log_checkpoint_interval = 10000
processes = 50 # SMALL
parallel_max_servers = 5 # SMALL
log_buffer = 32768 # SMALL
max_dump_file_size = 10240 # limit trace file size to 5 Meg each
global_names = TRUE
#control_files = (ora_control1, ora_control2)
control_files = (/u01/app/oracle/oradata/secooler/cfile/ora_control1,/u01/app/oracle/oradata/secooler/cfile/ora_control2,/u01/app/oracle/oradata/secooler/cfile/control3)
sga_max_size=300M
sga_target=300M
~
~
較之系統自帶的引數檔案做了如下修改動作:
a.修改db_name引數為
b.登出掉引數db_block_buffers、shared_pool_size
c.修改controlfile引數
c.增加sga_max_size和sga_target引數,大小設定為300M。
2)建立spfile並調整
(1)使用sqlplus命令登陸建立spfile
[oracle@secDB dbs]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 7 22:44:55 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> create spfile from pfile;
(2)啟動資料庫到nomount狀態,調整spfile引數
a.啟動資料庫到nomount狀態
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 96470416 bytes
Database Buffers 213909504 bytes
Redo Buffers 2973696 bytes
b.需要修改的spfile引數如下
SQL> alter system set undo_management=auto scope=spfile;
SQL> alter system set db_create_file_dest='/u01/app/oracle/oradata/secooler/dfile' scope=spfile;
SQL> alter system set db_create_online_log_dest_1='/u01/app/oracle/oradata/secooler/lfile' scope=spfile;
SQL> alter system set job_queue_processes =5 scope=spfile;
SQL> alter system set background_dump_dest='/u01/app/oracle/admin/secooler/bdump' scope=spfile;
SQL> alter system set core_dump_dest= '/u01/app/oracle/admin/secooler/cdump' scope=spfile;
SQL> alter system set user_dump_dest='/u01/app/oracle/admin/secooler/udump' scope=spfile;
SQL> alter system set audit_file_dest='/u01/app/oracle/admin/secooler/adump' scope=spfile;
c.停起資料庫到nomount狀態使spfile調整生效
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 96470416 bytes
Database Buffers 213909504 bytes
Redo Buffers 2973696 bytes
6.建立資料庫
1)編寫create database指令碼
(1)獲取create database的參考指令碼
在Oracle文件中中有一個供參考的建立語句
(1)進入到Oracle官方文件的首頁:;
(2)點選“Books”;
(3)在列出來的參考書目中的找到第5本書“Administrator's Guide”,點選“HTML”進入;
(4)搜尋關鍵字“create database statement”,位到“Step 7: Issue the CREATE DATABASE Statement”,點選進入便可以得到建立資料庫的參考指令碼;
2)調整參考指令碼中的內容為我所用
(1)需要調整的內容
資料庫名字
SYS和SYSTEM密碼
路徑名修改,注意一定要準確全面
表空間tbs_1後面給出具體資料檔案資訊
(2)調整後的指令碼如下
CREATE DATABASE secooler
USER SYS IDENTIFIED BY change_on_install
USER SYSTEM IDENTIFIED BY manager
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/secooler/lfile/redo01.log') SIZE 100M,
GROUP 2 ('/u01/app/oracle/oradata/secooler/lfile/redo02.log') SIZE 100M,
GROUP 3 ('/u01/app/oracle/oradata/secooler/lfile/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/u01/app/oracle/oradata/secooler/dfile/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/app/oracle/oradata/secooler/dfile/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE tbs_1 datafile '/u01/app/oracle/oradata/secooler/dfile/tbs_1.dbf' size 50m
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/app/oracle/oradata/secooler/dfile/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE '/u01/app/oracle/oradata/secooler/dfile/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
3)使用上面的create database指令碼建立資料庫
指令碼執行之後,此時資料庫狀態已經為OPEN狀態。
SQL> select status from v$instance;
STATUS
------------
OPEN
4)設定資料檔案和臨時檔案為自動擴充套件
(1)獲得所有資料檔案和臨時檔案資訊
SQL> col name for a60
SQL> select file#,name from v$datafile union select file#,name from v$tempfile;
FILE# NAME
---------- ------------------------------------------------------------
1 /u01/app/oracle/oradata/secooler/dfile/system01.dbf
1 /u01/app/oracle/oradata/secooler/dfile/temp01.dbf
2 /u01/app/oracle/oradata/secooler/dfile/undotbs01.dbf
3 /u01/app/oracle/oradata/secooler/dfile/sysaux01.dbf
4 /u01/app/oracle/oradata/secooler/dfile/tbs_1.dbf
(2)將其調整為自動擴充套件
SQL> alter database datafile 1 autoextend on;
SQL> alter database datafile 2 autoextend on;
SQL> alter database datafile 3 autoextend on;
SQL> alter database datafile 4 autoextend on;
SQL> alter database tempfile 1 autoextend on;
7.執行catalog.sql和catproc.sql指令碼建立資料字典檢視並配置
注意這兩個指令碼需要以SYSDBA身份來執行
[oracle@secDB ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 7 22:17:18 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> @?/rdbms/admin/catalog.sql
... ...
... 大約需要5分鐘 ...
... ...
SQL> @?/rdbms/admin/catproc.sql
... ...
... 大約需要10分鐘 ...
... ...
8.小結
手工建立資料庫相比dbca來說繁瑣了很多,不過整個安裝過程體現的是Oracle的執行原理,對於理解資料庫細節來說有很大的裨益。
Good luck.
secooler
10.07.07
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31444259/viewspace-2150964/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 2.4.10 Step 9:手工建立資料庫資料庫
- oracle手工建庫後rman無法啟用(RMAN-04015)Oracle
- 簡單介紹Oracle 19c RAC 手工建庫的過程Oracle
- 採用手工方式建立IPSec隧道示例
- 達夢資料庫手工恢復相關命令資料庫
- 主備資料庫狀態手工比對(一)資料庫
- 主備資料庫狀態手工比對(二)資料庫
- 墨者學院-SQL手工注入漏洞測試(MySQL資料庫)MySql資料庫
- 靜默方式安裝、升級oracle(二): 建立資料庫Oracle資料庫
- oracle資料庫建立資料庫例項-九五小龐Oracle資料庫
- [20190104]bbed手工插入資料.txt
- Spring Boot中Thymeleaf和htmx助手工具庫Spring Boot
- 2.5.8 指定OMF方式建立資料庫資料庫
- 實戰記錄之SQL server報錯手工注入SQLServer
- 【AWR】Oracle資料庫建立awr基線Oracle資料庫
- Oracle21c資料庫安裝問題記錄Oracle資料庫
- Oracle 叢集軟體資源的手工註冊(zt)Oracle
- oracle資料庫建立、刪除索引等操作Oracle資料庫索引
- oracle資料庫使用者建立步驟Oracle資料庫
- 揭祕Oracle雲(一):建立雲資料庫Oracle資料庫
- 還在手工生成資料庫文件?3個步驟自動完成了解一下資料庫
- Oracle各種版本下“示例資料庫的建立”的建立Oracle資料庫
- 建立資料庫資料庫
- 揭祕Oracle雲(二):建立自治雲資料庫Oracle資料庫
- 如何構建自己的雲資料庫?建立雲資料庫是否要收費?資料庫
- 資料庫mysql學習筆記記錄資料庫MySql筆記
- IndexedDB 建立資料庫時使用自增的Key 更新資料庫遇到的問題的一點記錄Index資料庫
- oracle 資料庫徹底清除目錄指令碼Oracle資料庫指令碼
- 建立資料庫表資料庫
- Mysql建立資料庫MySql資料庫
- 聊聊關於資料庫表記錄刪除都有哪些解決方式資料庫
- SQL Server 資料庫基本記錄(一)SQLServer資料庫
- 向量資料庫Chroma學習記錄資料庫
- cmdb 查詢資料庫操作記錄資料庫
- WindowsServer 2012資料庫遷移記錄WindowsServer資料庫
- SQL Server 資料庫基本記錄(二)SQLServer資料庫
- SQL Server 資料庫基本記錄(三)SQLServer資料庫
- Oracle資料庫-----資料庫的基本概念Oracle資料庫
- oracle 備份資料庫,匯出資料庫Oracle資料庫