Oracle 忘記密碼並建庫
問題起源:公司一個同事有一個很急的 BUG 需要調,但是伺服器上的資料庫(Oracle)非常不穩定,總是斷,所以被逼無奈,打算複製一份到本地,並且電腦是老電腦,也並不知道裝沒裝 Oracle。以下是全部檢查以及解決步驟:
1、檢查電腦是否安裝 Oracle:
工作管理員 --> 程序:檢查是否有 oracle.exe?若有,則有 Oracle,若無,則無 Oracle。
(其實也可以通過 dos 進行連線什麼的,但是假如沒裝 Oracle 的話,sqlplus、conn...命令都不識別,服務倒是可以當做一個參考。)
2、不知道 Oracle 賬號密碼:
win+R 進入 dos:
- CONN SYS/SYS_WORD AS SYSDBA;
- ALTER USER SYSTEM IDENTIFIED BY "SYSTEM"
3、建立表空間:
create tablespace FAMILYDOCTOR datafile 'F:\app\Administrator\oradata\orcl\FAMILYDOCTOR.DBF' size 100m;
4、建立使用者:
create user base identified by base default tablespace FAMILYDOCTOR;
5、賦予使用者許可權:
grant connect,resource to base;
6、匯出資料
暫時用的是 navicat 工具匯出資料,實際上是匯出純資料,即一個 .sql 檔案。
用 navicat 的一個好處就是不用登陸伺服器,可以直接在本地電腦直接匯出資料。
7、匯入資料
點選 "轉儲 SQL 檔案" 選項上面的 "執行 SQL 檔案" 選項。
(注意:匯出的 sql 檔案裡面全是伺服器的使用者名稱.表名,匯入的時候需要注意使用者名稱)
(如果你不想和伺服器(匯出的 oracle 的使用者)使用者名稱一樣,則需要修改匯出的 .sql 檔案裡面的使用者名稱,再進行匯入
可能遇到的問題:
第二步:
1、sqlplus 或者 conn 命令不識別:
解決:系統變數path後面加上;F:\app\Administrator\product\10.1.0\db_1\bin
(此路徑為 Oracle 安裝路徑,並且前面必須加上 ";”,以此來分隔前面的環境變數)
(Oracle 安裝路徑可在我的電腦搜尋 product)
Oracle 的目錄結構
按照理論來講,上面的表空間路徑和環境變數的路徑,前面都是指向這個資料夾,到了這個資料夾之後才分叉,一個是指向 oradata 資料夾,一個是指向 product 資料夾
2、命令不執行,出現12345列表序號:
解決:dos 裡面的 sql 結尾主要加 ";”,證明是命令語句並且結束。
第三步:
sql 解析:建立 表空間 表空間名 資料檔案 路徑 大小
第四步:
sql 解析:建立 使用者 使用者名稱 掛上 表空間 表空間名
第五步:
賦予 連線,開發許可權 給 使用者名稱
有興趣的可以到 oracle 資料庫環境裡面寫兩條 sql 查詢一下看看:
1、select * from role_sys_privs where role like 'CONNECT'; --查詢 CONNECT 許可權
2、select * from role_sys_privs where role like 'RESOURCE'; --查詢 RESOURCE 許可權