バックグラウンド
Linux にオラクルをインストールするのは非常に面倒で、誰もがさまざまな落とし穴に遭遇すると思います。一度インストールしておけば、今後様々なプラットフォームに移植するためにイメージを直接エクスポートしておくのも便利なので、dockerでインストールすることを選択
OracleLinux
Oracle Enterprise Linux (略して OEL) の正式名称である Oracle Linux は、2006 年初頭に Oracle によってリリースされた最初のバージョンです。これは Linux ディストリビューションの 1 つであり、Oracle ソフトウェアとハードウェアの優れたサポートで知られています。
プル画像
DockerHub で Oracle を検索して、Oracle の公式イメージを見つけます。アドレス: https://hub.docker.com/
docker pull oraclelinux
最新のタグがないため、コマンドを使用してイメージをプルすることはできないことに注意してください。したがって、バージョン番号を手動で指定することしかできません.
たとえば、公式イメージをdocker pull oraclelinux
使用すると非常に遅いため、Aliイメージを使用できますdocker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
It can be found on dockerHub (the second one). この構成を参照して、イメージ
をdocker images
表示し、ダウンロードが完了したことを確認できます。
コンテナを起動する
- デフォルトでコンテナを起動する方法
docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
- 永続的な起動方法
docker run -d -it -p 1521:1521 --name oracle --restart=always --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
開始されたスレッドを表示する 実行ステータスnetstat -tulnp
を表示するdocker ps -a
コンテナ環境の構成
コンテナーに入りdocker exec -it oracle11g bash
、root ユーザーに切り替えますsu root
。パスワードはhelowin
docker コンテナー構成環境変数/etc/profile
で、コンテナーはこのファイルを開始しません。
環境変数の構成は、ファイルの下に設定できる /home/oracle/.bashrc
ため、ソフトln -s $ORACLE_HOME/bin/sqlplus /usr/bin
リンクvi /home/oracle/.bashrc
、ファイルの最後に次のコマンドを追加します.
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
wq
保存して終了。次に、環境変数source /home/oracle/.bashrc
を更新して有効にするために
オラクルのコマンドラインを入力してください
sqlplus /nolog
oracleコマンドラインに入り、
「オペレーティング・システム認証」方式を使用してoracleにログインします。conn / as sysdba
デフォルトのルート・ユーザーを直接使用してログインすると、ログインの失敗が報告されます。ここではsu - oracle
、コマンド
ORA-12514、TNS: リスナーは現在、接続記述子でリクエストされたサービスを認識していません
このエラーは、間違ったデータベース名が原因です
su - oracle
sqlplus /nolog
conn / as sysdba
select instance_name from v$instance;
show user;
上記のコマンドを使用して、利用可能なすべての「データベース名」と「ユーザー名」をチェックアウトします
このアリの画像では、すべてのパスワードが統一されていますhelowin
システム ユーザーには DBA 権限がありますが、SYSDBA 権限はありません。通常、このアカウントはデータベースを管理するために使用されます。
sys ユーザーは、Oracle データベースで最高の権限を持つアカウントであり、「SYSDBA」および「SYSOPER」権限を持ち、通常、外部からのログインは許可されません。
ファイアウォールを構成する
外部データベース管理ツールが接続できるように、ファイアウォールはポート 1521 を許可する必要があります。
# 打开防火墙
systemctl start firewalld
# 查询端口状态
firewall-cmd --query-port=1521/tcp
# 永久性开放端口
firewall-cmd --permanent --zone=public --add-port=1521/tcp
# 重启防火墙
firewall-cmd --reload
firewall-cmd --query-port=1521/tcp