系列文章目錄
Oracle的安裝以及一些相關問題
文章目錄
- 系列文章目錄
- 前言
- 一、Oracle的安裝
- 二、常用命令
- 三、誤刪dbf
- 四、PLSQL亂碼
- 五、oracle更換數據庫字符集
- 總結
前言
一段時間沒更新,主要最近一直在找工作,最終還是順著春招找到工作了,現在已經入職一周了,以后可能會開個專欄記錄一些工作中的bug。
因為公司使用oracle數據庫,所以這周搞了不少oracle的東西,現在記錄一下。
一、Oracle的安裝
為了方便練習,我在本地用Docker裝了一個Oracle用作學習。
我們搜索鏡像,直接找下載量最高的。
直接下載比較慢且文件比較大,網絡不好可以選擇換源或者開個魔法。
docker pull iatebes/oracle_11g
之后創建容器并且進入修改配置。
docker run -d --name oracle11g -p 1521:1521 iatebes/oracle_11g
docker exec -it oracle11g bash
# 修改root密碼
passwd
# 切換oracle用戶
su - oracle
# 匿名登錄
sqlplus /nolog
# dba登錄
conn /as sysdba
# 添加用戶
alter user sys identified by sys;
之后就可以正常使用了,因為僅作練習環境,故不做持久化存儲。
之后使用dbeaver進一下連接測試就可以了。
二、常用命令
# 啟動oracle
startup
# 停止oracle
shutdown immediate;
# 強制停止
shutdown abort;
# 監聽
lsnrctl start
lsnrctl stop
lsnrctl status
三、誤刪dbf
oracle依靠dbf存儲,要刪除數據,需要先刪除表空間在刪除底層的dbf數據文件,順序不能錯,如果先刪除了dbf會導致表空間不可用也不可刪除。
修復方法
# 關閉數據庫
shutdown immediate
# 進入掛載模式
startup mount
# 刪除dbf元數據
alter database datafile 'xxx.dbf' offline drop;
# 打開數據庫
alter database open;
# 刪除表空間
drop tablespace xxx including contents and datafiles;
# 重啟oracle
shutdown immediate
startup
四、PLSQL亂碼
這個是由于電腦環境和oracle環境字符集不匹配造成的。我們需要將數據庫和環境統一。
查看數據庫編碼。
select * from V$NLS_PARAMETERS
公司用的是gbk系列的。
然后將設置新的環境變量
因為公司使用虛擬環境辦公所以很多命令和截圖沒法展示。
五、oracle更換數據庫字符集
# 登錄
sqlplus / as sysdba
# 關閉數據庫
shutdown immediate
# 進入mount
startup mount
# 設置session
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
# 打開數據庫
alter database open;
# 修改字符集
ALTER DATABASE character set INTERNAL_USE xxx;
# 重啟數據庫
shutdown immediate
startup mount
總結
這次就寫到這,我以往是按照章節來寫博客,以后可能會相對更新多一些但更雜一些,看具體情況吧。