win10環境安裝與配置Oracle11g數據庫,以及一些常見的sqlplus命令與問題解決方案

最近在部署一個網頁項目,該項目使用oracle 11g,本來打算在linux環境進行部署,可是由於各類問題最後轉戰到了win10操做系統下面進行oracle 11g安裝與配置,總結一些心得。html

知識點: oracle 11g是甲骨文(Oracle)公司旗下的一款數據庫產品,其中版本號的g表明的是此版本使用了網格(grid)技術。相似的,在更新的版本12c中的c表明的是雲(cloud)技術,就版本9i中的i表明的是因特網(Internet)技術1java

閱讀須知

在撰寫此文時,文主對讀者進行如下假設:linux

  • 理解並贊同"代碼即英文的一種表達"的觀點sql

    • 由此文主再也不對文中簡單的代碼進行註釋或解釋數據庫

  • 瞭解xml語言和其文件的結構windows

  • 第一次接觸Oracle database產品安全

  • 瞭解sql語言,但不瞭解sqlplus語言服務器

在這篇文章中,你將瞭解到:oracle

  • 一部分在windows環境配置oracle 11g可能會遇到的問題,及解決的方案ide

你將不會了解到:

  • 具體的oracle 11g數據庫的安裝步驟

  • 具體的使用oracle 11g數據庫DBCA來進行數據庫建立與刪除

考慮到有讀者是第一次接觸Oracle的產品,文中附有參考連接,其版權歸原做者全部

操做環境

Windows 10 professional x64

安裝篇

安裝環境條件

  • 已經安裝了java

  • 下載了oracle 11g的兩個文件包(下載頁面點這裏,須要oracle帳戶並接受條款),並將其解壓到同一個文件夾中。

    • 解壓後將獲得一個database文件夾,用於安裝的課執行文件setup.exe就在文件夾中。

流程

請先閱讀這篇文章

注意細節:

  • 啓動的時候可能會遇到了INS-13001 環境不知足最低要求的錯誤
    緣由:在Oracle 11g版本發佈的時候win10操做系統尚未面世,須要修改配置信息。
    解決步驟:

    1. database文件夾中,找到stagecvucvu_prereq.xml文件

    2. 打開cvu_prereq.xml,在<CERTIFIED_SYSTEMS>標籤中,添加以下信息:

      <OPERATING_SYSTEM RELEASE="6.2">
              <VERSION VALUE="3"/>
              <ARCHITECTURE VALUE="64-bit"/>
              <NAME VALUE="Windows 10"/>
              <ENV_VAR_LIST>
                  <ENV_VAR NAME="PATH" MAX_LENGTH="1023" />
              </ENV_VAR_LIST>
          </OPERATING_SYSTEM>
    3. 保存文件,退出。

    預期結果:重啓數據庫的setup.exe再次進行安裝,沒有了錯誤提示,而且能夠繼續執行。

  • 測試安裝是否成功
    方法一:

    1. 打開命令行窗口

    2. 按照格式sqlplus user/pwd@db [as sysdba]鏈接數據庫
      解釋一下命令的含義:

      • sqlplus -> oracle 數據庫使用sqlplus語言管理數據庫

      • user -> 用戶名,數據庫默認sys使用

      • pwd -> password,在建立數據庫時設置。

      • db -> database,所要鏈接到哪一個數據庫

      • [as sysdba] -> 可選項,是否使用管理員權限登錄

    方法二:
    打開https://localhost:1158/em/查看Oracle的企業管理頁面,如何能看到以下界面則安裝成功。
    oracle數據庫管理頁面

配置篇

使用DBCA建立/刪除數據庫

參見文末指導資料

SQLPLUS 經常使用命令(以導入數據爲例)

在遭遇並解決了多個導入報錯警告和權限錯誤以後,成功地使用了對應用戶TBSTEST將數據文件test100.dmp導入到數據庫test的表空間TBS_TEST中。

知識點: oracle體系中,一個數據庫實例包括後臺進程/線程以及在服務器分配的共享內存區,而且經過表空間來存儲物理表的,一個數據庫實例能夠有N個表空間,一個表空間下能夠有N張表2

正確的操做步驟

  1. 以系統管理員的身份打開系統的命令行

  2. 以數據庫管理員(DataBase Administrator, DBA)鏈接到數據庫實例test中:

    d:\> sqlplus sys/pwd@test as sysdba
  3. 在SQL命令行中,先建立表空間TBS_TEST

    CREATE TABLESPACE TBS_TEST
        DATAFILE 'D:\database\oradata\test\TBS_TEST.dbf'  -- 指定表空間的存儲位置
        SIZE 50m
        AUTOEXTEND ON;
  4. 在SQL命令行中,建立用戶TBSTEST:

    CREATE USER TBSTEST
        IDENTIFIED BY PWD
        -- 指定默認表空間,該用戶全部操做都將在這個空間中進行
        DEFAULT TABLESPACE TBS_TEST;
  5. 退出SQL命令行,並開始導入test100.dmp的數據:

    d:> imp TBSTEST/PWD@test file='d:\test100.dmp' full=y
  6. 等待導入操做執行完畢。

預期結果:命令行提示「導入操做成功終止,沒有警告」。

可能遇到的錯誤

  • ORA-01031: insufficient privileges

    緣由:若使用`sys`帳戶登陸時遇到,能夠確定是控制單元沒有給予帳戶足夠的權限;或者說是OS沒有予以`oracle DBMS`系統特殊文件的操做權限。  
    解決方案:(牆外)請查看[此視頻](https://www.youtube.com/watch?v=bnVRODAflo8),給電腦的用戶開放權限。  
    注意: 視頻中給全部用戶甚至是訪客用戶也增長了操做權限,形成數據安全風險,請謹慎處理。
  • ORA-000959: tablespace 'TBS_TEST' does not exist

    正如上文說起,Oracle須要表空間存儲物理表,而導入的時候沒有建立表空間`TBS_TEST`而使用默認的`TMP`表空間則會出現此錯誤。  
    解決方法: 如上文建立對應的表空間便可。
  • ORA-12899: 列 "tablespace"."table"."attribute"的值太大(實際值:xxx, 最大值: xxx)

    緣由:導入數據集的原字符集與被導入數據庫的字符集不一致  
    解決方案:修改數據集原字符集或是被導入數據庫的字符集,使其一致,一般修改後者。

若是有疏漏之處,歡迎讀者補充說明。

完整指導資料

[Oracle 11gr2 軟件安裝和數據庫建立步驟詳解
](https://blogs.oracle.com/Data...


  1. Oracle 9i和Oracle 11g中的 i 和 g 分別是什麼意思?
  2. Oracle - 數據庫的實例、表空間、用戶、表之間關係
相關文章
相關標籤/搜索