Docker インストール構成は、ORA-12541: TNS: サードパーティ クライアントに接続するリスナーを解決するために Oracle11g コンテナを起動します。

Windows でのインストールについては、私の記事を参照してください: win11&win7 に oracle11g データベースをインストールするプロセス全体

1. ダウンロードして開始します

前提: docker をインストールして設定する必要があります (ミラー ソースの設定Aliyun アクセラレーションの設定) など。CentOS7 に基づいた docker と docker-compose のインストールと設定を参照してください

Docker コンテナ関連の操作は、私の基本的な Docker コンテナ操作の開始、停止、再起動を参照できます。

//查看docker启动状态,若为active(running)则已经启动。
systemctl status docker

//执行start命令启动docker
systemctl start docker

1.1 Oracle11g イメージのダウンロード

公式ミラーがあるhttps://hub.docker.com/が開けないので、Ali ミラーを使って Oracle11g ミラーをダウンロードします。
oracle11g は、oracle11g イメージの名前です。

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

ここに画像の説明を挿入
注: 鏡像は比較的大きく、7 G 近くあります。

//查看下载好的镜像
docker images

ここに画像の説明を挿入

1.2. コンテナの起動

//默认启动容器的方式(第一次推荐这种)
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

ここではデフォルトの方法を使用してコンテナを起動します。次回からはdocker start コマンドを直接使用してコンテナを起動できます
ここに画像の説明を挿入

//docker start 容器名(Names)或完整的容器ID(CONTAINER ID)或容器ID(CONTAINER ID)的前4位
//620b是djc-RabbitMQ容器ID(CONTAINER ID)的前4位
//执行完命令,再执行docker ps(查看当前启动的容器)查看是否启动成功。
docker start djc-RabbitMQ
docker start 620bd670d79b
docker start 620b
或
docker start -i 以交互模式启动
docker start -t 以附加进程模式启动

ここに画像の説明を挿入

//查看所有容器(包含已经启动和未启动的容器)
//此处第一个就是我们刚刚启动的oracle11g,oracle11g是该oracle11g镜像的Names。
docke ps -a

ここに画像の説明を挿入

//查看启动的线程
netstat -tulnp

ここに画像の説明を挿入

1.3 コンテナ環境の構成

//1-进入容器
docker exec -it oracle11g bash

//2-切换到 root 用户 su root,该Oracle11g的容器密码默认为helowin。
su root

//3-配置环境变量
将环境变量配置在 /home/oracle/.bashrc 中,这样无需再去执行创建软链接的命令 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin


ここに画像の説明を挿入

//4-执行 vi /home/oracle/.bashrc ,按i或insert键编辑.bashrc文件,在文件最后加入下列内容
//编辑好
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH

编辑好,按ECS退出i(insert)模式,:wq保存并退出。  

//5-刷新环境变量,使之生效。
source /home/oracle/.bashrc 

ここに画像の説明を挿入
ここに画像の説明を挿入

//6-查看编辑完成的.bashrc文件
cat .basjrc

ここに画像の説明を挿入

2. ログイン

2.1 ファイアウォールを構成する

防火墙要允许 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

ここに画像の説明を挿入

また

//直接关闭防火墙 
systecmctl stop firewalld

//开机禁用防火墙
systecmctl disable firewalld

ここに画像の説明を挿入

2.2 コマンド

//1-解决sqlplus /nolog 的 Permission denied 问题 【进入oracle容器之前执行】
setenforce 0

//2-进入容器
docker exec -it oracle11g bash


//3-将当前用户切换到Oracle
//如果直接以root用户执行下一步sqlplus /nolog,会报错Permission denied
su - oracle


//4-进入Oracle命令行
//如果直接以root用户执行sqlplus /nolog,会报错Permission denied
sqlplus /nolog




//5-使用 “操作系统认证” 的方式
//如果这里直接以默认的root用户登录,会报登录失败ORA-12456:TNS:permission denied
//这里会报Connected to an idle instance,表示需要使用startup命令启动数据库
conn / as sysdba



//6-启动数据库  后续补充
startup;

//7-select instance_name
select instance_name from v$instance;

//8-show user
show user;

2.3 Oracle ユーザーに切り替える理由

4-Oracle コマンドラインを入力します。root ユーザーとして sqlplus /nolog を直接実行すると、「権限が拒否されました」というエラーが報告されます。

ここに画像の説明を挿入

5- 「オペレーティング システム認証」方法を使用します - ここでデフォルトの root ユーザーとして直接ログインすると、ログイン失敗が報告されます ORA-12456: TNS: 権限が拒否されました
ここに画像の説明を挿入
su - oracle
ここに画像の説明を挿入
ここに画像の説明を挿入

2.4 ログインプロセス全体のスクリーンショット

ここに画像の説明を挿入

3. サードパーティ製クライアント Navicat Premium 16 に接続します。

3.1 ORA-12541: TNS: リスナーがありません

 ORA-12541:TNS: 无监听程序

ここに画像の説明を挿入

原因:lsnrctl 没有启动,导致监听器没有启动。
//查看lsnrctl 状态
lsnrctl status

//reload
lsnrctl reload

//启动lsnrctl,启动监听器。
lsnrctl start


//关闭lsnrctl,关闭监听器
lsnrctl stop

ここに画像の説明を挿入
ここに画像の説明を挿入
lsnrctl を開始し、リスナーを開始します。
ここに画像の説明を挿入
リスナーを開始した後、lsnrctl のステータスを再度確認します
ここに画像の説明を挿入

3.2 Navicat Premium 16 を再度接続する

ここに画像の説明を挿入

ここに画像の説明を挿入

3.3 SELECT * FROM EMP のテスト

ここに画像の説明を挿入

3.5 サードパーティクライアント Navicat Premium 16 に接続するプロセス全体のスクリーンショット

ここに画像の説明を挿入
ここに画像の説明を挿入

3.6 Oracle11g コンテナをシャットダウンする

Dockerコンテナの起動・停止・再起動の基本操作

//1-exit退出Oracle11g容器内
eixt

//2-停止Oracle11g容器并在60s内保存其状态
docker stop -t=60 oracle11g

//3-查看正在运行的容器-若无,则表示Oracle11g容器已经成功关闭
docker ps

ここに画像の説明を挿入
ここに画像の説明を挿入

4. 参考文献

Docker コンテナの基本操作の開始、停止、再起動をインストールします。
oracle をインストールする
と、再配置後にセグメント プロットを復元できません: アクセス許可が拒否されました。
docker インストールの歴史の中で最も完全な手順 oracle11g (写真とテキスト付き)
docker のインストールの歴史の中で最も完全な手順oracle11g (写真とテキスト付き)

おすすめ

転載: blog.csdn.net/qyfx123456/article/details/132009672