oracle 11g在本地系統(tǒng)上安裝可能會(huì)出現(xiàn)很多的問題, 所以我選擇在docker上運(yùn)行oracle11g來使用.
下面是我的配置步驟. (該配置過程與具體的系統(tǒng)無關(guān), 只需要部分改動(dòng))
該配置步驟, 我的系統(tǒng)是centos7.3, 使用的是阿里云服務(wù)器. 如果你是其他的系統(tǒng)或者平臺(tái), 僅需改動(dòng)1-4步中的oracle安裝文件的下載方式和解壓方式, 然后根據(jù)自己的進(jìn)行解壓的數(shù)據(jù)庫安裝包路徑, 更改第四步中的<install_folder>即可.
開始前的準(zhǔn)備
- 確保你系統(tǒng)上的docker服務(wù)是可以使用的.
- 下載具體的oracle安裝文件, 也就是兩個(gè)壓縮文件, 下載到你指定的系統(tǒng)上.
notice:我選擇的docker image其實(shí)是一個(gè)"自動(dòng)配置安裝"oracle 11g的鏡像, 所以你需要自己下載oracle11g的安裝包. windows和mac等桌面平臺(tái)比較好下載, 通過shell命令推薦wget. 下面給出示例:(因?yàn)閛racle現(xiàn)在下載軟件需要登錄用戶, 所以我這里示例的下載鏈接你可能不能使用, 這時(shí)候你再去oracle官網(wǎng)重新更換下載鏈接即可)
wget -c -b https://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip?AuthParam=1561175324_b6f19c00413750b39fbe89d3a7dce441
wget -c -b https://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip?AuthParam=1561175324_b6f19c00413750b39fbe89d3a7dce441
開始
-
創(chuàng)建一個(gè)目錄
mkdir install cd install mkdir database
[root@iz2zehkwp9rwg4mvyl3jaez database]# pwd /install/database
這是我創(chuàng)建的目錄, 不需要一定和我一樣.
-
將下載的oracle安裝壓縮文件解壓到/install/database
unzip oracle1/2.zip -d /install/database unzip oracle1/2.zip -d /install/database
如果你的系統(tǒng)中沒有unzip, 可以通過yum install unzip安裝
-
docker image準(zhǔn)備
systemctl start docker
docker pull jaspeen/oracle-11g
該image在docker hub的地址: Here 如果你想進(jìn)一步了解,里面有具體的說明, 這里感謝該image的作者~
-
通過鏡像開啟容器服務(wù)
<install_floader> 是你將oracle11g安裝文件解壓到的文件路徑docker run --privileged --name oracle11g -p 1521:1521 -v <install_folder>:/install jaspeen/oracle-11g
這里給出我的
docker run --privileged --name oracle11g -p 1521:1521 -v /install/database:/install jaspeen/oracle-11g
這里如果出現(xiàn)了Checking swap space: 0 MB available, 150 MB required. Failed
給出一個(gè)我找到的解決方案: centos 安裝oracle 報(bào)Checking swap space: 0 MB available, 150 MB required. Failed <<<<
其他的錯(cuò)誤如果沒有自動(dòng)跳出docker的run啟動(dòng)過程, 就不用管, 這個(gè)過程有點(diǎn)慢, 如果最后停止不動(dòng), 可能是已經(jīng)開啟了服務(wù), 這個(gè)時(shí)候ctrl+z可能不好使, 退出console重新連接, 然后進(jìn)行下一步. -
查看結(jié)果
docker ps
看到這里, oracle11g的容器已經(jīng)開啟.
- 進(jìn)入oracle11g容器
docker exec -it oracle11g /bin/bash
切換到image的oracle用戶
su - oracle
進(jìn)入oracle數(shù)據(jù)庫
sqlplus / as sysdba
- 解鎖scott用戶
SQL> alter user scott account unlock;
User altered.
SQL> commit;
Commit complete.
SQL> conn scott/tiger
ERROR:
ORA-28001: the password has expired
Changing password for scott
New password:
Retype new password:
Password changed
Connected.
SQL>
8.通過數(shù)據(jù)庫管理工具連接oracle數(shù)據(jù)庫(這里我是通過datagrip)
HOST地址根據(jù)你的數(shù)據(jù)庫所在系統(tǒng)的ip地址進(jìn)行設(shè)置